aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/common
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/common
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/common')
-rw-r--r--src/main/java/common/Blocks.java62
-rw-r--r--src/main/java/common/CommonProxy.java47
-rw-r--r--src/main/java/common/Recipes.java144
-rw-r--r--src/main/java/common/Researches.java71
-rw-r--r--src/main/java/common/TileEntities.java56
-rw-r--r--src/main/java/common/blocks/BaseGTUpdateableBlock.java57
-rw-r--r--src/main/java/common/blocks/Block_GDCUnit.java29
-rw-r--r--src/main/java/common/blocks/Block_IchorJar.java230
-rw-r--r--src/main/java/common/blocks/Block_LapotronicEnergyUnit.java173
-rw-r--r--src/main/java/common/blocks/Block_LargeHexPlate.java65
-rw-r--r--src/main/java/common/blocks/Block_TFFTStorageField.java92
-rw-r--r--src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java252
-rw-r--r--src/main/java/common/blocks/Block_YSZUnit.java29
-rw-r--r--src/main/java/common/itemBlocks/IB_IchorJar.java27
-rw-r--r--src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java190
-rw-r--r--src/main/java/common/itemBlocks/IB_TFFTStorageField.java63
-rw-r--r--src/main/java/common/itemBlocks/IB_ThaumiumReinforcedJar.java27
-rw-r--r--src/main/java/common/items/ErrorItem.java48
-rw-r--r--src/main/java/common/items/MetaItem_CraftingComponent.java89
-rw-r--r--src/main/java/common/recipeLoaders/AlloySmelter.java29
-rw-r--r--src/main/java/common/recipeLoaders/Assembler.java295
-rw-r--r--src/main/java/common/recipeLoaders/AssemblyLine.java227
-rw-r--r--src/main/java/common/recipeLoaders/ChemicalReactor.java30
-rw-r--r--src/main/java/common/recipeLoaders/Crafting.java72
-rw-r--r--src/main/java/common/recipeLoaders/FormingPress.java29
-rw-r--r--src/main/java/common/recipeLoaders/Mixer.java48
-rw-r--r--src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java134
-rw-r--r--src/main/java/common/recipeLoaders/Unpackager.java200
-rw-r--r--src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java1214
-rw-r--r--src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java221
-rw-r--r--src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java222
-rw-r--r--src/main/java/common/tileentities/GTMTE_TFFT.java787
-rw-r--r--src/main/java/common/tileentities/GTMTE_TFFTHatch.java271
-rw-r--r--src/main/java/common/tileentities/TE_IchorJar.java10
-rw-r--r--src/main/java/common/tileentities/TE_IchorVoidJar.java10
-rw-r--r--src/main/java/common/tileentities/TE_ThaumiumReinforcedJar.java10
-rw-r--r--src/main/java/common/tileentities/TE_ThaumiumReinforcedVoidJar.java10
37 files changed, 0 insertions, 5570 deletions
diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java
deleted file mode 100644
index ffab6a0716..0000000000
--- a/src/main/java/common/Blocks.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package common;
-
-import net.minecraft.block.Block;
-
-import common.blocks.Block_GDCUnit;
-import common.blocks.Block_IchorJar;
-import common.blocks.Block_LapotronicEnergyUnit;
-import common.blocks.Block_LargeHexPlate;
-import common.blocks.Block_TFFTStorageField;
-import common.blocks.Block_ThaumiumReinforcedJar;
-import common.blocks.Block_YSZUnit;
-
-import gregtech.api.enums.Mods;
-import kekztech.KekzCore;
-
-public class Blocks {
-
- public static Block yszUnit;
- public static Block gdcUnit;
- public static Block tfftStorageField;
- public static Block jarThaumiumReinforced;
- public static Block jarIchor;
- public static Block lscLapotronicEnergyUnit;
-
- public static Block largeHexPlate;
-
- public static void preInit() {
- KekzCore.LOGGER.info("Registering blocks...");
-
- registerBlocks_SOFC();
- registerBlocks_TFFT();
- if (Mods.Thaumcraft.isModLoaded()) {
- registerBlocks_Jars();
- }
- registerBlocks_LSC();
- registerBlocks_Cosmetics();
-
- KekzCore.LOGGER.info("Finished registering blocks");
- }
-
- private static void registerBlocks_SOFC() {
- yszUnit = Block_YSZUnit.registerBlock();
- gdcUnit = Block_GDCUnit.registerBlock();
- }
-
- private static void registerBlocks_TFFT() {
- tfftStorageField = Block_TFFTStorageField.registerBlock();
- }
-
- private static void registerBlocks_Jars() {
- jarThaumiumReinforced = Block_ThaumiumReinforcedJar.registerBlock();
- jarIchor = Block_IchorJar.registerBlock();
- }
-
- private static void registerBlocks_LSC() {
- lscLapotronicEnergyUnit = Block_LapotronicEnergyUnit.registerBlock();
- }
-
- private static void registerBlocks_Cosmetics() {
- largeHexPlate = Block_LargeHexPlate.registerBlock();
- }
-}
diff --git a/src/main/java/common/CommonProxy.java b/src/main/java/common/CommonProxy.java
deleted file mode 100644
index 0687f109be..0000000000
--- a/src/main/java/common/CommonProxy.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package common;
-
-import common.items.ErrorItem;
-import common.items.MetaItem_CraftingComponent;
-import common.tileentities.GTMTE_TFFTHatch;
-
-import cpw.mods.fml.common.event.FMLInitializationEvent;
-import cpw.mods.fml.common.event.FMLPostInitializationEvent;
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
-import gregtech.api.enums.Mods;
-import kekztech.Items;
-
-public class CommonProxy {
-
- public void preInit(final FMLPreInitializationEvent e) {
- // Items
- ErrorItem.getInstance()
- .registerItem();
- MetaItem_CraftingComponent.getInstance()
- .registerItem();
- Items.registerOreDictNames();
- // Blocks
- Blocks.preInit();
- // TileEntities
- TileEntities.preInit();
- if (Mods.Thaumcraft.isModLoaded() && Mods.ThaumicTinkerer.isModLoaded()) {
- // TC Research
- Researches.preInit();
- }
- }
-
- public void init(final FMLInitializationEvent e) {
- // GregTech Meta TileEntities
- TileEntities.init();
- }
-
- public void postInit(final FMLPostInitializationEvent e) {
- // Recipes
- Recipes.postInit();
- if (Mods.Thaumcraft.isModLoaded() && Mods.ThaumicTinkerer.isModLoaded()) {
- // Research
- Researches.postInit();
- }
-
- GTMTE_TFFTHatch.registerAEIntegration();
- }
-}
diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java
deleted file mode 100644
index ba8876ff2e..0000000000
--- a/src/main/java/common/Recipes.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package common;
-
-import static gregtech.api.enums.Mods.ThaumicTinkerer;
-
-import java.util.HashMap;
-
-import net.minecraft.item.ItemStack;
-
-import common.recipeLoaders.AlloySmelter;
-import common.recipeLoaders.Assembler;
-import common.recipeLoaders.AssemblyLine;
-import common.recipeLoaders.ChemicalReactor;
-import common.recipeLoaders.Crafting;
-import common.recipeLoaders.FormingPress;
-import common.recipeLoaders.Mixer;
-import common.recipeLoaders.ResearchableAssemblyLine;
-import common.recipeLoaders.Unpackager;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.Mods;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-import kekztech.KekzCore;
-import thaumcraft.api.ItemApi;
-import thaumcraft.api.ThaumcraftApi;
-import thaumcraft.api.aspects.Aspect;
-import thaumcraft.api.aspects.AspectList;
-import thaumcraft.api.crafting.InfusionRecipe;
-
-public class Recipes {
-
- public static final HashMap<String, InfusionRecipe> infusionRecipes = new HashMap<>();
-
- public static void postInit() {
- KekzCore.LOGGER.info("Registering recipes...");
-
- new AlloySmelter().run();
- new Assembler().run();
- new AssemblyLine().run();
- new ChemicalReactor().run();
- new Crafting().run();
- new FormingPress().run();
- new Mixer().run();
- new ResearchableAssemblyLine().run();
- new Unpackager().run();
-
- if (Mods.Thaumcraft.isModLoaded()) {
- registerRecipes_Jars();
- }
-
- KekzCore.LOGGER.info("Finished registering recipes");
- }
-
- private static void registerRecipes_Jars() {
-
- // Thaumium Reinforced Jar
- final ItemStack[] recipe_jarthaumiumreinforced = {
- GameRegistry.makeItemStack("Thaumcraft:ItemResource", 15, 1, null),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
- new ItemStack(net.minecraft.init.Blocks.glass_pane),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
- new ItemStack(net.minecraft.init.Blocks.glass_pane),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Titanium, 1),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
- new ItemStack(net.minecraft.init.Blocks.glass_pane),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Thaumium, 1),
- new ItemStack(net.minecraft.init.Blocks.glass_pane), };
- final AspectList aspects_jarthaumiumreinforced = new AspectList().add(Aspect.ARMOR, 64)
- .add(Aspect.ORDER, 32)
- .add(Aspect.WATER, 32)
- .add(Aspect.GREED, 16)
- .add(Aspect.VOID, 16)
- .add(Aspect.AIR, 8);
- infusionRecipes.put(
- "THAUMIUMREINFORCEDJAR",
- ThaumcraftApi.addInfusionCraftingRecipe(
- "THAUMIUMREINFORCEDJAR",
- new ItemStack(Blocks.jarThaumiumReinforced, 1, 0),
- 5,
- aspects_jarthaumiumreinforced,
- ItemApi.getBlock("blockJar", 0),
- recipe_jarthaumiumreinforced));
- // Thaumium Reinforced Void Jar
- final ItemStack[] recipe_voidjarupgrade = {
- GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Obsidian, 1),
- GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderEye, 1), ItemApi.getItem("itemNugget", 5) };
- final AspectList aspects_voidjarupgrade = new AspectList().add(Aspect.VOID, 14)
- .add(Aspect.MAGIC, 14)
- .add(Aspect.ENTROPY, 14)
- .add(Aspect.WATER, 14);
- infusionRecipes.put(
- "THAUMIUMREINFORCEDVOIDJAR",
- ThaumcraftApi.addInfusionCraftingRecipe(
- "THAUMIUMREINFORCEDJAR",
- new ItemStack(Blocks.jarThaumiumReinforced, 1, 3),
- 2,
- aspects_voidjarupgrade,
- new ItemStack(Blocks.jarThaumiumReinforced, 1, 0),
- recipe_voidjarupgrade));
-
- final ItemStack[] recipe_jarichor = { GT_ModHandler.getModItem(ThaumicTinkerer.ID, "kamiResource", 1, 0),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
- new ItemStack(net.minecraft.init.Blocks.glass_pane),
- GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
- new ItemStack(net.minecraft.init.Blocks.glass_pane),
- GT_OreDictUnificator.get(OrePrefixes.gemExquisite, Materials.Diamond, 1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
- new ItemStack(net.minecraft.init.Blocks.glass_pane),
- GT_OreDictUnificator.get(OrePrefixes.foil, Materials.Osmiridium, 1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Diamond, 1),
- new ItemStack(net.minecraft.init.Blocks.glass_pane), };
- final AspectList aspects_jarichor = new AspectList().add(Aspect.ARMOR, 256)
- .add(Aspect.ELDRITCH, 128)
- .add(Aspect.ORDER, 128)
- .add(Aspect.WATER, 128)
- .add(Aspect.GREED, 64)
- .add(Aspect.VOID, 64)
- .add(Aspect.AIR, 32);
- infusionRecipes.put(
- "ICHORJAR",
- ThaumcraftApi.addInfusionCraftingRecipe(
- "ICHORJAR",
- new ItemStack(Blocks.jarIchor, 1, 0),
- 15,
- aspects_jarichor,
- ItemApi.getBlock("blockJar", 0),
- recipe_jarichor));
- // Ichor Void Jar
- infusionRecipes.put(
- "ICHORVOIDJAR",
- ThaumcraftApi.addInfusionCraftingRecipe(
- "ICHORJAR",
- new ItemStack(Blocks.jarIchor, 1, 3),
- 5,
- aspects_voidjarupgrade,
- new ItemStack(Blocks.jarIchor, 1, 0),
- recipe_voidjarupgrade));
- }
-
-}
diff --git a/src/main/java/common/Researches.java b/src/main/java/common/Researches.java
deleted file mode 100644
index 0ebe161da4..0000000000
--- a/src/main/java/common/Researches.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package common;
-
-import net.minecraft.item.ItemStack;
-
-import kekztech.KekzCore;
-import thaumcraft.api.aspects.Aspect;
-import thaumcraft.api.aspects.AspectList;
-import thaumcraft.api.research.ResearchItem;
-import thaumcraft.api.research.ResearchPage;
-import thaumic.tinkerer.common.research.KamiResearchItem;
-
-public class Researches {
-
- public static final String THAUMIUMREINFORCEDJAR = "THAUMIUMREINFORCEDJAR";
- public static final String ICHORJAR = "ICHORJAR";
-
- public static void preInit() {
- // Blacklist these researches from being a requirement to unlock TTKami
- KekzCore.LOGGER.info("Blacklisting research " + THAUMIUMREINFORCEDJAR + " from /iskamiunlocked");
- KamiResearchItem.Blacklist.add(ICHORJAR);
- KekzCore.LOGGER.info("Blacklisting research" + ICHORJAR + "from /iskamiunlocked");
- KamiResearchItem.Blacklist.add(ICHORJAR);
- }
-
- public static void postInit() {
- final AspectList aspects_jarthaumiumreinforced = new AspectList().add(Aspect.ARMOR, 3)
- .add(Aspect.WATER, 3)
- .add(Aspect.GREED, 3)
- .add(Aspect.VOID, 3);
- @SuppressWarnings("unused")
- final ResearchItem jar_thaumiumreinforced = new ResearchItem(
- "THAUMIUMREINFORCEDJAR",
- "ALCHEMY",
- aspects_jarthaumiumreinforced,
- 3,
- -4,
- 2,
- new ItemStack(Blocks.jarThaumiumReinforced, 1))
- .setPages(
- new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR.0"),
- new ResearchPage(Recipes.infusionRecipes.get("THAUMIUMREINFORCEDJAR")),
- new ResearchPage(Recipes.infusionRecipes.get("THAUMIUMREINFORCEDVOIDJAR")),
- new ResearchPage("kekztech.research_page.THAUMIUMREINFORCEDJAR.1"))
- .setConcealed()
- .setParents("JARLABEL")
- .registerResearchItem();
-
- final AspectList aspects_jarichor = new AspectList().add(Aspect.ARMOR, 3)
- .add(Aspect.ELDRITCH, 3)
- .add(Aspect.WATER, 3)
- .add(Aspect.GREED, 5)
- .add(Aspect.VOID, 5);
- @SuppressWarnings("unused")
- final ResearchItem jar_ichor = new ResearchItem(
- "ICHORJAR",
- "ALCHEMY",
- aspects_jarichor,
- 2,
- -5,
- 3,
- new ItemStack(Blocks.jarIchor, 1))
- .setPages(
- new ResearchPage("kekztech.research_page.ICHORJAR.0"),
- new ResearchPage(Recipes.infusionRecipes.get("ICHORJAR")),
- new ResearchPage(Recipes.infusionRecipes.get("ICHORVOIDJAR")))
- .setConcealed()
- .setParents("THAUMIUMREINFORCEDJAR")
- .setParentsHidden("ICHOR")
- .registerResearchItem();
- }
-}
diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java
deleted file mode 100644
index 8d1b288c7c..0000000000
--- a/src/main/java/common/TileEntities.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package common;
-
-import common.tileentities.GTMTE_LapotronicSuperCapacitor;
-import common.tileentities.GTMTE_SOFuelCellMK1;
-import common.tileentities.GTMTE_SOFuelCellMK2;
-import common.tileentities.GTMTE_TFFT;
-import common.tileentities.GTMTE_TFFTHatch;
-import common.tileentities.TE_IchorJar;
-import common.tileentities.TE_IchorVoidJar;
-import common.tileentities.TE_ThaumiumReinforcedJar;
-import common.tileentities.TE_ThaumiumReinforcedVoidJar;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import gregtech.api.enums.MetaTileEntityIDs;
-import gregtech.api.enums.Mods;
-
-public class TileEntities {
-
- // Multiblock controllers
- public static GTMTE_SOFuelCellMK1 sofc1;
- public static GTMTE_SOFuelCellMK2 sofc2;
- public static GTMTE_TFFT tfft;
- public static GTMTE_LapotronicSuperCapacitor lsc;
-
- // Singleblocks
- public static GTMTE_TFFTHatch tfftHatch;
-
- public static void preInit() {
- if (Mods.Thaumcraft.isModLoaded()) {
- GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar");
- GameRegistry.registerTileEntity(TE_ThaumiumReinforcedVoidJar.class, "kekztech_thaumiumreinforcedvoidjar");
- GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar");
- GameRegistry.registerTileEntity(TE_IchorVoidJar.class, "kekztech_ichorvoidjar");
- }
- }
-
- public static void init() {
- // Multiblock controllers
- sofc1 = new GTMTE_SOFuelCellMK1(
- MetaTileEntityIDs.sofc1.ID,
- "multimachine.fuelcellmk1",
- "Solid-Oxide Fuel Cell Mk I");
- sofc2 = new GTMTE_SOFuelCellMK2(
- MetaTileEntityIDs.sofc2.ID,
- "multimachine.fuelcellmk2",
- "Solid-Oxide Fuel Cell Mk II");
- tfft = new GTMTE_TFFT(MetaTileEntityIDs.tfft.ID, "multimachine.tfft", "T.F.F.T");
- lsc = new GTMTE_LapotronicSuperCapacitor(
- MetaTileEntityIDs.lsc.ID,
- "multimachine.supercapacitor",
- "Lapotronic Supercapacitor");
-
- // Singleblocks
- tfftHatch = new GTMTE_TFFTHatch(MetaTileEntityIDs.tfftHatch.ID, "machine.tffthatch", "T.F.F.T Multi I/O Hatch");
- }
-}
diff --git a/src/main/java/common/blocks/BaseGTUpdateableBlock.java b/src/main/java/common/blocks/BaseGTUpdateableBlock.java
deleted file mode 100644
index ff38365d79..0000000000
--- a/src/main/java/common/blocks/BaseGTUpdateableBlock.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package common.blocks;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EnumCreatureType;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.World;
-
-import gregtech.api.GregTech_API;
-
-/**
- * Any blocks that are used as structure parts for GregTech multi machines have to inherit from this class. Otherwise
- * the checkMachine() method that verifies a machine's structure won't be called correctly.
- */
-public abstract class BaseGTUpdateableBlock extends Block {
-
- protected BaseGTUpdateableBlock(Material material) {
- super(material);
- GregTech_API.registerMachineBlock(this, -1);
- super.setHarvestLevel("wrench", 2);
- }
-
- @Override
- public int damageDropped(int meta) {
- return meta;
- }
-
- @Override
- public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) {
- return false;
- }
-
- @Override
- public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) {
- return false;
- }
-
- @Override
- public boolean canCreatureSpawn(EnumCreatureType type, IBlockAccess world, int x, int y, int z) {
- return false;
- }
-
- @Override
- 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);
- }
- }
-
- @Override
- public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMetaData) {
- if (GregTech_API.isMachineBlock(this, aMetaData)) {
- GregTech_API.causeMachineUpdate(aWorld, aX, aY, aZ);
- }
- }
-}
diff --git a/src/main/java/common/blocks/Block_GDCUnit.java b/src/main/java/common/blocks/Block_GDCUnit.java
deleted file mode 100644
index 27bc95759d..0000000000
--- a/src/main/java/common/blocks/Block_GDCUnit.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package common.blocks;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.creativetab.CreativeTabs;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import kekztech.KekzCore;
-
-public class Block_GDCUnit extends BaseGTUpdateableBlock {
-
- private static final Block_GDCUnit instance = new Block_GDCUnit();
-
- private Block_GDCUnit() {
- super(Material.iron);
- }
-
- public static Block registerBlock() {
- final String blockName = "kekztech_gdcceramicelectrolyteunit_block";
- instance.setBlockName(blockName);
- instance.setCreativeTab(CreativeTabs.tabMisc);
- instance.setBlockTextureName(KekzCore.MODID + ":" + "GDCCeramicElectrolyteUnit");
- instance.setHardness(5.0f);
- instance.setResistance(6.0f);
- GameRegistry.registerBlock(instance, blockName);
-
- return instance;
- }
-}
diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java
deleted file mode 100644
index a82f9862f0..0000000000
--- a/src/main/java/common/blocks/Block_IchorJar.java
+++ /dev/null
@@ -1,230 +0,0 @@
-package common.blocks;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.entity.item.EntityItem;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.Explosion;
-import net.minecraft.world.World;
-
-import common.itemBlocks.IB_IchorJar;
-import common.tileentities.TE_IchorJar;
-import common.tileentities.TE_IchorVoidJar;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import thaumcraft.api.aspects.Aspect;
-import thaumcraft.api.aspects.AspectList;
-import thaumcraft.common.blocks.BlockJar;
-import thaumcraft.common.config.ConfigBlocks;
-import thaumcraft.common.config.ConfigItems;
-import thaumcraft.common.items.ItemEssence;
-import thaumcraft.common.tiles.TileJarFillable;
-
-public class Block_IchorJar extends BlockJar {
-
- private static final Block_IchorJar INSTANCE = new Block_IchorJar();
-
- private Block_IchorJar() {
- super();
-
- super.setHardness(12.0F);
- super.setResistance(3.0f);
- }
-
- public static Block registerBlock() {
- final String blockName = "kekztech_ichorjar_block";
- INSTANCE.setBlockName(blockName);
- INSTANCE.setHarvestLevel("pickaxe", 3);
- GameRegistry.registerBlock(INSTANCE, IB_IchorJar.class, blockName);
-
- return INSTANCE;
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerBlockIcons(IIconRegister ir) {
- super.iconLiquid = ir.registerIcon("thaumcraft:animatedglow");
- super.iconJarSide = ir.registerIcon("kekztech:ichor_jar_side");
- super.iconJarTop = ir.registerIcon("kekztech:ichor_jar_top");
- super.iconJarTopVoid = ir.registerIcon("kekztech:ichor_jar_top_void");
- super.iconJarSideVoid = ir.registerIcon("kekztech:ichor_jar_side_void");
- super.iconJarBottom = ir.registerIcon("kekztech:ichor_jar_bottom");
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- @SuppressWarnings({ "unchecked" })
- public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
- par3List.add(new ItemStack(par1, 1, 0)); // Normal jar
- par3List.add(new ItemStack(par1, 1, 3)); // Void jar
- }
-
- @Override
- public TileEntity createTileEntity(World world, int meta) {
- if (meta == 3) {
- return new TE_IchorVoidJar();
- } else {
- return new TE_IchorJar();
- }
- }
-
- @Override
- public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float f1, float f2,
- float f3) {
- // Call parent method to handle jar emptying, labels stuff etc
- super.onBlockActivated(world, x, y, z, player, side, f1, f2, f3);
- // Interact with Essentia Phials if the player holds one
- final ItemStack heldItem = player.getHeldItem();
- if (heldItem != null && heldItem.getItem() == ConfigItems.itemEssence) {
- final TileEntity te = world.getTileEntity(x, y, z);
- if (te instanceof TE_IchorJar) {
- return dealWithPhial(world, player, x, y, z);
- } else if (te instanceof TE_IchorVoidJar) {
- return dealWithPhial(world, player, x, y, z);
- }
- }
-
- return true;
- }
-
- /**
- * Handle compatibility with Essentia Phials
- *
- * @param world Pass through from onBlockActivated()
- * @param player Pass through from onBlockActivated()
- * @param x Pass through from onBlockActivated()
- * @param y Pass through from onBlockActivated()
- * @param z Pass through from onBlockActivated()
- * @return Not sure tbh
- */
- private boolean dealWithPhial(World world, EntityPlayer player, int x, int y, int z) {
- final TileJarFillable jarTE = (TileJarFillable) world.getTileEntity(x, y, z);
- final ItemStack heldItem = player.getHeldItem();
- // Check whether to fill or to drain the phial
- if (heldItem.getItemDamage() == 0) {
- if (jarTE.amount >= 8) {
- if (world.isRemote) {
- player.swingItem();
- return false;
- }
-
- final Aspect jarAspect = Aspect.getAspect(jarTE.aspect.getTag());
- if (jarTE.takeFromContainer(jarAspect, 8)) {
- // Take an empty phial from the player's inventory
- heldItem.stackSize--;
- // Fill a new phial
- final ItemStack filledPhial = new ItemStack(ConfigItems.itemEssence, 1, 1);
- final AspectList phialContent = new AspectList().add(jarAspect, 8);
- ((ItemEssence) ConfigItems.itemEssence).setAspects(filledPhial, phialContent);
- // Drop on ground if there's no inventory space
- if (!player.inventory.addItemStackToInventory(filledPhial)) {
- world.spawnEntityInWorld(
- new EntityItem(world, (float) x + 0.5F, (float) y + 0.5F, (float) z + 0.5F, filledPhial));
- }
-
- world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F);
- player.inventoryContainer.detectAndSendChanges();
- return true;
- }
- }
- } else {
- final AspectList phialContent = ((ItemEssence) ConfigItems.itemEssence).getAspects(heldItem);
- if (phialContent != null && phialContent.size() == 1) {
- final Aspect phialAspect = phialContent.getAspects()[0];
- if (jarTE.amount + 8 <= jarTE.maxAmount && jarTE.doesContainerAccept(phialAspect)) {
- if (world.isRemote) {
- player.swingItem();
- return false;
- }
-
- if (jarTE.addToContainer(phialAspect, 8) == 0) {
- world.markBlockForUpdate(x, y, z);
- jarTE.markDirty();
- heldItem.stackSize--;
- // Drop on ground if there's no inventory space
- if (!player.inventory.addItemStackToInventory(new ItemStack(ConfigItems.itemEssence, 1, 0))) {
- world.spawnEntityInWorld(
- new EntityItem(
- world,
- (float) x + 0.5F,
- (float) y + 0.5F,
- (float) z + 0.5F,
- new ItemStack(ConfigItems.itemEssence, 1, 0)));
- }
-
- world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F);
- player.inventoryContainer.detectAndSendChanges();
- return true;
- }
- }
- }
- }
-
- return true;
- }
-
- @Override
- public void breakBlock(World world, int x, int y, int z, Block par5, int par6) {
- final TileEntity te = world.getTileEntity(x, y, z);
- if (te instanceof TE_IchorJar) {
- final TE_IchorJar ite = (TE_IchorJar) te;
- breakBlockWarpy(world, x, y, z, ite.amount, 200, 6.0F);
- } else if (te instanceof TE_IchorVoidJar) {
- final TE_IchorVoidJar ite = (TE_IchorVoidJar) te;
- breakBlockWarpy(world, x, y, z, ite.amount, 200, 6.0F);
- }
- super.breakBlock(world, x, y, z, par5, par6);
- }
-
- private void breakBlockWarpy(World world, int x, int y, int z, int fillAmount, int iterations,
- float explosionStrength) {
- if (fillAmount > 0) {
- // Create a decent explosion in the center of the block (TNT has strength 4.0F)
- world.createExplosion(null, x + 0.5D, y + 0.5D, z + 0.5D, explosionStrength, false);
-
- // Place a lot of Flux in the area
- final int limit = fillAmount / 16;
- int created = 0;
- for (int i = 0; i < iterations; i++) {
- final int xf = x + world.rand.nextInt(7) - world.rand.nextInt(7);
- final int yf = x + world.rand.nextInt(7) - world.rand.nextInt(7);
- final int zf = x + world.rand.nextInt(7) - world.rand.nextInt(7);
- if (world.isAirBlock(xf, yf, zf)) {
- if (yf > y) {
- world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGas, 8, 3);
- } else {
- world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGoo, 8, 3);
- }
-
- if (created++ > limit) {
- break;
- }
- }
- }
- }
- }
-
- @Override
- public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) {
- return new ArrayList<>(Collections.singleton(new ItemStack(this, 1, (meta == 3) ? 3 : 0)));
- }
-
- @Override
- public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5,
- EntityPlayer par6EntityPlayer) {}
-
- @Override
- public boolean canDropFromExplosion(Explosion e) {
- return false;
- }
-}
diff --git a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java
deleted file mode 100644
index 653c99216b..0000000000
--- a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package common.blocks;
-
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.client.renderer.texture.TextureMap;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-import net.minecraft.util.ResourceLocation;
-
-import common.itemBlocks.IB_LapotronicEnergyUnit;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import gregtech.api.enums.Textures;
-import gregtech.api.interfaces.IIconContainer;
-import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Utility;
-
-public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock {
-
- private static final Block_LapotronicEnergyUnit INSTANCE = new Block_LapotronicEnergyUnit();
-
- public enum IconBaseSide implements IIconContainer {
-
- INSTANCE;
-
- @Override
- public IIcon getIcon() {
- return Block_LapotronicEnergyUnit.INSTANCE.iconBaseSide;
- }
-
- @Override
- public IIcon getOverlayIcon() {
- return null;
- }
-
- @Override
- public ResourceLocation getTextureFile() {
- return TextureMap.locationBlocksTexture;
- }
- }
-
- static {
- // technically, this page is owned by me, glee8e, however, I'm kind enough to spare 1 for kekztech since
- // this is basically abandon ware by now.
- GT_Utility.addTexturePage((byte) 42);
- Textures.BlockIcons.setCasingTexture((byte) 42, (byte) 127, TextureFactory.of(IconBaseSide.INSTANCE));
- }
-
- private IIcon iconBaseSide;
- private IIcon iconBaseTop;
-
- private IIcon iconLapoEmptySide;
- private IIcon iconLapoEmptyTop;
- private IIcon iconLapoEVSide;
- private IIcon iconLapoEVTop;
- private IIcon iconLapoIVSide;
- private IIcon iconLapoIVTop;
- private IIcon iconLapoLuVSide;
- private IIcon iconLapoLuVTop;
- private IIcon iconLapoZPMSide;
- private IIcon iconLapoZPMTop;
- private IIcon iconLapoUVSide;
- private IIcon iconLapoUVTop;
- private IIcon iconUltimateSide;
- private IIcon iconUltimateTop;
- private IIcon iconUltimateExtremeSide;
- private IIcon iconUltimateExtremeTop;
- private IIcon iconUltimateInsaneSide;
- private IIcon iconUltimateInsaneTop;
- private IIcon iconUltimateMegaSide;
- private IIcon iconUltimateMegaTop;
-
- private Block_LapotronicEnergyUnit() {
- super(Material.iron);
- }
-
- public static Block registerBlock() {
- final String blockName = "kekztech_lapotronicenergyunit_block";
- INSTANCE.setBlockName(blockName);
- INSTANCE.setCreativeTab(CreativeTabs.tabMisc);
- INSTANCE.setHardness(5.0f);
- INSTANCE.setResistance(6.0f);
- GameRegistry.registerBlock(INSTANCE, IB_LapotronicEnergyUnit.class, blockName);
-
- return INSTANCE;
- }
-
- @Override
- public void registerBlockIcons(IIconRegister ir) {
- iconBaseSide = ir.registerIcon("kekztech:LSCBase_side");
- iconBaseTop = ir.registerIcon("kekztech:LSCBase_top");
-
- iconLapoEmptySide = ir.registerIcon("kekztech:LapotronicEnergyUnit6_side");
- iconLapoEmptyTop = ir.registerIcon("kekztech:LapotronicEnergyUnit6_top");
- iconLapoEVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit7_side");
- iconLapoEVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit7_top");
- iconLapoIVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit1_side");
- iconLapoIVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit1_top");
- iconLapoLuVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit2_side");
- iconLapoLuVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit2_top");
- iconLapoZPMSide = ir.registerIcon("kekztech:LapotronicEnergyUnit3_side");
- iconLapoZPMTop = ir.registerIcon("kekztech:LapotronicEnergyUnit3_top");
- iconLapoUVSide = ir.registerIcon("kekztech:LapotronicEnergyUnit4_side");
- iconLapoUVTop = ir.registerIcon("kekztech:LapotronicEnergyUnit4_top");
-
- iconUltimateSide = ir.registerIcon("kekztech:UltimateEnergyUnit_side");
- iconUltimateTop = ir.registerIcon("kekztech:UltimateEnergyUnit_top");
- iconUltimateExtremeSide = ir.registerIcon("kekztech:ReallyUltimateEnergyUnit_side");
- iconUltimateExtremeTop = ir.registerIcon("kekztech:ReallyUltimateEnergyUnit_top");
- iconUltimateInsaneSide = ir.registerIcon("kekztech:InsanelyUltimateEnergyUnit_side");
- iconUltimateInsaneTop = ir.registerIcon("kekztech:InsanelyUltimateEnergyUnit_top");
- iconUltimateMegaSide = ir.registerIcon("kekztech:MegaUltimateEnergyUnit_side");
- iconUltimateMegaTop = ir.registerIcon("kekztech:MegaUltimateEnergyUnit_top");
- }
-
- @Override
- @SuppressWarnings({ "unchecked" })
- public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
- // Multi casing
- par3List.add(new ItemStack(par1, 1, 0));
- // Empty capacitor
- par3List.add(new ItemStack(par1, 1, 6));
- // Lapo capacitors EV - UV
- par3List.add(new ItemStack(par1, 1, 7));
- par3List.add(new ItemStack(par1, 1, 1));
- par3List.add(new ItemStack(par1, 1, 2));
- par3List.add(new ItemStack(par1, 1, 3));
- par3List.add(new ItemStack(par1, 1, 4));
- // Ultimate battery
- par3List.add(new ItemStack(par1, 1, 5));
- // UEV Cap
- par3List.add(new ItemStack(par1, 1, 8));
- // UIV Cap
- par3List.add(new ItemStack(par1, 1, 9));
- // UMV Cap
- par3List.add(new ItemStack(par1, 1, 10));
- }
-
- @Override
- public IIcon getIcon(int side, int meta) {
- switch (meta) {
- case 0:
- return (side < 2) ? iconBaseTop : iconBaseSide;
- case 1:
- return (side < 2) ? iconLapoIVTop : iconLapoIVSide;
- case 2:
- return (side < 2) ? iconLapoLuVTop : iconLapoLuVSide;
- case 3:
- return (side < 2) ? iconLapoZPMTop : iconLapoZPMSide;
- case 4:
- return (side < 2) ? iconLapoUVTop : iconLapoUVSide;
- case 5:
- return (side < 2) ? iconUltimateTop : iconUltimateSide;
- case 6:
- return (side < 2) ? iconLapoEmptyTop : iconLapoEmptySide;
- case 7:
- return (side < 2) ? iconLapoEVTop : iconLapoEVSide;
- case 8:
- return (side < 2) ? iconUltimateExtremeTop : iconUltimateExtremeSide;
- case 9:
- return (side < 2) ? iconUltimateInsaneTop : iconUltimateInsaneSide;
- case 10:
- return (side < 2) ? iconUltimateMegaTop : iconUltimateMegaSide;
- default:
- return iconUltimateTop;
- }
- }
-}
diff --git a/src/main/java/common/blocks/Block_LargeHexPlate.java b/src/main/java/common/blocks/Block_LargeHexPlate.java
deleted file mode 100644
index ac8174ff34..0000000000
--- a/src/main/java/common/blocks/Block_LargeHexPlate.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package common.blocks;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.util.IIcon;
-import net.minecraft.world.IBlockAccess;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-
-public class Block_LargeHexPlate extends Block {
-
- private static final Block_LargeHexPlate INSTANCE = new Block_LargeHexPlate();
- private static final int BATCH_SIZE = 4;
-
- private final IIcon[][] parts = new IIcon[BATCH_SIZE][BATCH_SIZE];
-
- private Block_LargeHexPlate() {
- super(Material.rock);
- }
-
- public static Block registerBlock() {
- final String blockName = "kekztech_largehextile_block";
- INSTANCE.setBlockName(blockName);
- INSTANCE.setCreativeTab(CreativeTabs.tabMisc);
- INSTANCE.setHardness(6.0f);
- INSTANCE.setResistance(10.0f);
- GameRegistry.registerBlock(INSTANCE, blockName);
-
- return INSTANCE;
- }
-
- @Override
- public void registerBlockIcons(IIconRegister ir) {
- for (int x = 0; x < BATCH_SIZE; x++) {
- for (int z = 0; z < BATCH_SIZE; z++) {
- parts[x][z] = ir.registerIcon("kekztech:LargeHexTile_" + x + "_" + z);
- }
- }
- }
-
- @Override
- public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
- final int xMod = x >= 0 ? Math.abs(x % BATCH_SIZE)
- : Math.abs((Math.abs(x) % BATCH_SIZE) - BATCH_SIZE) % BATCH_SIZE;
- final int yMod = y >= 0 ? Math.abs(y % BATCH_SIZE)
- : Math.abs((Math.abs(y) % BATCH_SIZE) - BATCH_SIZE) % BATCH_SIZE;
- final int zMod = z >= 0 ? Math.abs(z % BATCH_SIZE)
- : Math.abs((Math.abs(z) % BATCH_SIZE) - BATCH_SIZE) % BATCH_SIZE;
-
- if (side == 0 || side == 1) {
- return parts[xMod][zMod];
- } else if (side == 2 || side == 3) {
- return parts[xMod][yMod];
- } else {
- return parts[zMod][yMod];
- }
- }
-
- @Override
- public IIcon getIcon(int side, int meta) {
- return parts[(int) Math.ceil(BATCH_SIZE / 2)][(int) Math.ceil(BATCH_SIZE / 2)];
- }
-}
diff --git a/src/main/java/common/blocks/Block_TFFTStorageField.java b/src/main/java/common/blocks/Block_TFFTStorageField.java
deleted file mode 100644
index 069dd40dca..0000000000
--- a/src/main/java/common/blocks/Block_TFFTStorageField.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package common.blocks;
-
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.client.renderer.texture.TextureMap;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-import net.minecraft.util.ResourceLocation;
-
-import common.itemBlocks.IB_TFFTStorageField;
-import common.tileentities.GTMTE_TFFT;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import gregtech.api.enums.Textures;
-import gregtech.api.interfaces.IIconContainer;
-import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Utility;
-import kekztech.KekzCore;
-
-public class Block_TFFTStorageField extends BaseGTUpdateableBlock {
-
- private static final Block_TFFTStorageField INSTANCE = new Block_TFFTStorageField();
- private static final int SUB_BLOCK_COUNT = GTMTE_TFFT.Field.VALUES.length + 1;
- private static final IIcon[] textures = new IIcon[SUB_BLOCK_COUNT];
-
- public enum TFFTCasingIcon implements IIconContainer {
-
- INSTANCE;
-
- @Override
- public IIcon getIcon() {
- return textures[0];
- }
-
- @Override
- public IIcon getOverlayIcon() {
- return null;
- }
-
- @Override
- public ResourceLocation getTextureFile() {
- return TextureMap.locationBlocksTexture;
- }
- }
-
- // I guess glodblock won't mind
- static {
- GT_Utility.addTexturePage((byte) 12);
- Textures.BlockIcons
- .setCasingTexture((byte) 12, (byte) 127, TextureFactory.of(Block_TFFTStorageField.TFFTCasingIcon.INSTANCE));
- }
-
- private Block_TFFTStorageField() {
- super(Material.iron);
- }
-
- public static Block registerBlock() {
- final String blockName = "kekztech_tfftstoragefield_block";
- INSTANCE.setBlockName(blockName);
- INSTANCE.setCreativeTab(CreativeTabs.tabMisc);
- INSTANCE.setHardness(5.0f);
- INSTANCE.setResistance(6.0f);
- GameRegistry.registerBlock(INSTANCE, IB_TFFTStorageField.class, blockName);
-
- return INSTANCE;
- }
-
- @Override
- public void registerBlockIcons(IIconRegister ir) {
- textures[0] = ir.registerIcon(KekzCore.MODID + ":" + "TFFTCasing");
- for (int i = 1; i < SUB_BLOCK_COUNT; i++) {
- textures[i] = ir.registerIcon(KekzCore.MODID + ":" + "TFFTStorageFieldBlock" + i);
- }
- }
-
- @Override
- public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
- for (int i = 0; i < SUB_BLOCK_COUNT; i++) {
- par3List.add(new ItemStack(par1, 1, i));
- }
- }
-
- @Override
- public IIcon getIcon(int side, int meta) {
- return textures[meta];
- }
-}
diff --git a/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java b/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java
deleted file mode 100644
index 3c91ac6d0d..0000000000
--- a/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java
+++ /dev/null
@@ -1,252 +0,0 @@
-package common.blocks;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.entity.item.EntityItem;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.Explosion;
-import net.minecraft.world.World;
-
-import common.itemBlocks.IB_ThaumiumReinforcedJar;
-import common.tileentities.TE_ThaumiumReinforcedJar;
-import common.tileentities.TE_ThaumiumReinforcedVoidJar;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-import thaumcraft.api.aspects.Aspect;
-import thaumcraft.api.aspects.AspectList;
-import thaumcraft.common.blocks.BlockJar;
-import thaumcraft.common.config.ConfigBlocks;
-import thaumcraft.common.config.ConfigItems;
-import thaumcraft.common.items.ItemEssence;
-import thaumcraft.common.tiles.TileJarFillable;
-
-public class Block_ThaumiumReinforcedJar extends BlockJar {
-
- private static final Block_ThaumiumReinforcedJar INSTANCE = new Block_ThaumiumReinforcedJar();
-
- private Block_ThaumiumReinforcedJar() {
- super();
-
- super.setHardness(6.0F);
- super.setResistance(6.0F);
- }
-
- public static Block registerBlock() {
- final String blockName = "kekztech_thaumiumreinforcedjar_block";
- INSTANCE.setBlockName(blockName);
- INSTANCE.setHarvestLevel("pickaxe", 2);
- GameRegistry.registerBlock(INSTANCE, IB_ThaumiumReinforcedJar.class, blockName);
-
- return INSTANCE;
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- public void registerBlockIcons(IIconRegister ir) {
- super.iconLiquid = ir.registerIcon("thaumcraft:animatedglow");
- super.iconJarSide = ir.registerIcon("kekztech:thaumreinforced_jar_side");
- super.iconJarTop = ir.registerIcon("kekztech:thaumreinforced_jar_top");
- super.iconJarTopVoid = ir.registerIcon("kekztech:thaumreinforced_jar_top_void");
- super.iconJarSideVoid = ir.registerIcon("kekztech:thaumreinforced_jar_side_void");
- super.iconJarBottom = ir.registerIcon("kekztech:thaumreinforced_jar_bottom");
- }
-
- @Override
- @SideOnly(Side.CLIENT)
- @SuppressWarnings({ "unchecked" })
- public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) {
- par3List.add(new ItemStack(par1, 1, 0)); // Normal jar
- par3List.add(new ItemStack(par1, 1, 3)); // Void jar
- }
-
- @Override
- public TileEntity createTileEntity(World world, int meta) {
- if (meta == 3) {
- return new TE_ThaumiumReinforcedVoidJar();
- } else {
- return new TE_ThaumiumReinforcedJar();
- }
- }
-
- @Override
- public void breakBlock(World world, int x, int y, int z, Block par5, int par6) {
- final TileEntity te = world.getTileEntity(x, y, z);
- if (te instanceof TE_ThaumiumReinforcedJar) {
- final TE_ThaumiumReinforcedJar ite = (TE_ThaumiumReinforcedJar) te;
- breakBlockWarpy(world, x, y, z, ite.amount, 50, 1.0F);
- } else if (te instanceof TE_ThaumiumReinforcedVoidJar) {
- final TE_ThaumiumReinforcedVoidJar ite = (TE_ThaumiumReinforcedVoidJar) te;
- breakBlockWarpy(world, x, y, z, ite.amount, 50, 1.0F);
- }
- super.breakBlock(world, x, y, z, par5, par6);
- }
-
- private void breakBlockWarpy(World world, int x, int y, int z, int fillAmount, int iterations,
- float explosionStrength) {
- if (fillAmount > 0) {
- // Create a decent explosion in the center of the block (TNT has strength 4.0F)
- world.createExplosion(null, x + 0.5D, y + 0.5D, z + 0.5D, explosionStrength, false);
-
- // Place a lot of Flux in the area
- final int limit = fillAmount / 16;
- int created = 0;
- for (int i = 0; i < iterations; i++) {
- final int xf = x + world.rand.nextInt(7) - world.rand.nextInt(7);
- final int yf = x + world.rand.nextInt(7) - world.rand.nextInt(7);
- final int zf = x + world.rand.nextInt(7) - world.rand.nextInt(7);
- if (world.isAirBlock(xf, yf, zf)) {
- if (yf > y) {
- world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGas, 8, 3);
- } else {
- world.setBlock(xf, yf, zf, ConfigBlocks.blockFluxGoo, 8, 3);
- }
-
- if (created++ > limit) {
- break;
- }
- }
- }
- }
- }
-
- @Override
- public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float f1, float f2,
- float f3) {
- // Call parent method to handle jar emptying, labels stuff etc
- super.onBlockActivated(world, x, y, z, player, side, f1, f2, f3);
- // Interact with Essentia Phials if the player holds one
- final ItemStack heldItem = player.getHeldItem();
- if (heldItem != null && heldItem.getItem() == ConfigItems.itemEssence) {
- final TileEntity te = world.getTileEntity(x, y, z);
- if (te instanceof TE_ThaumiumReinforcedJar) {
- return dealWithPhial(world, player, x, y, z);
- } else if (te instanceof TE_ThaumiumReinforcedVoidJar) {
- return dealWithPhial(world, player, x, y, z);
- }
- }
-
- return true;
- }
-
- /**
- * Handle compatibility with Essentia Phials
- *
- * @param world Pass through from onBlockActivated()
- * @param player Pass through from onBlockActivated()
- * @param x Pass through from onBlockActivated()
- * @param y Pass through from onBlockActivated()
- * @param z Pass through from onBlockActivated()
- * @return Not sure tbh
- */
- private boolean dealWithPhial(World world, EntityPlayer player, int x, int y, int z) {
- final TileJarFillable kte = (TileJarFillable) world.getTileEntity(x, y, z);
- final ItemStack heldItem = player.getHeldItem();
- // Check whether to fill or to drain the phial
- if (heldItem.getItemDamage() == 0) {
- if (kte.amount >= 8) {
- if (world.isRemote) {
- player.swingItem();
- return false;
- }
-
- final Aspect jarAspect = Aspect.getAspect(kte.aspect.getTag());
- if (kte.takeFromContainer(jarAspect, 8)) {
- // Take an empty phial from the player's inventory
- heldItem.stackSize--;
- // Fill a new phial
- final ItemStack filledPhial = new ItemStack(ConfigItems.itemEssence, 1, 1);
- final AspectList phialContent = new AspectList().add(jarAspect, 8);
- ((ItemEssence) ConfigItems.itemEssence).setAspects(filledPhial, phialContent);
- // Drop on ground if there's no inventory space
- if (!player.inventory.addItemStackToInventory(filledPhial)) {
- world.spawnEntityInWorld(
- new EntityItem(world, (float) x + 0.5F, (float) y + 0.5F, (float) z + 0.5F, filledPhial));
- }
-
- world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F);
- player.inventoryContainer.detectAndSendChanges();
- return true;
- }
- }
- } else {
- final AspectList phialContent = ((ItemEssence) ConfigItems.itemEssence).getAspects(heldItem);
- if (phialContent != null && phialContent.size() == 1) {
- final Aspect phialAspect = phialContent.getAspects()[0];
- if (kte.amount + 8 <= kte.maxAmount && kte.doesContainerAccept(phialAspect)) {
- if (world.isRemote) {
- player.swingItem();
- return false;
- }
-
- if (kte.addToContainer(phialAspect, 8) == 0) {
- world.markBlockForUpdate(x, y, z);
- kte.markDirty();
- heldItem.stackSize--;
- // Drop on ground if there's no inventory space
- if (!player.inventory.addItemStackToInventory(new ItemStack(ConfigItems.itemEssence, 1, 0))) {
- world.spawnEntityInWorld(
- new EntityItem(
- world,
- (float) x + 0.5F,
- (float) y + 0.5F,
- (float) z + 0.5F,
- new ItemStack(ConfigItems.itemEssence, 1, 0)));
- }
-
- world.playSoundAtEntity(player, "game.neutral.swim", 0.25F, 1.0F);
- player.inventoryContainer.detectAndSendChanges();
- return true;
- }
- }
- }
- }
-
- return true;
- }
-
- @Override
- public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) {
- final ArrayList<ItemStack> drops = new ArrayList<>();
- drops.add(new ItemStack(this, 1, (meta == 3) ? 3 : 0));
- final TileEntity te = world.getTileEntity(x, y, z);
- if (te instanceof TE_ThaumiumReinforcedJar) {
- final TE_ThaumiumReinforcedJar ite = (TE_ThaumiumReinforcedJar) te;
- if (ite.aspectFilter != null) {
- final ItemStack droppedLabel = new ItemStack(ConfigItems.itemResource, 1, 13);
- droppedLabel.setTagCompound(new NBTTagCompound());
- final AspectList aspect = new AspectList().add(ite.aspectFilter, 0);
- aspect.writeToNBT(droppedLabel.getTagCompound());
- drops.add(droppedLabel);
- }
- } else if (te instanceof TE_ThaumiumReinforcedVoidJar) {
- final TE_ThaumiumReinforcedVoidJar ite = (TE_ThaumiumReinforcedVoidJar) te;
- if (ite.aspectFilter != null) {
- final ItemStack droppedLabel = new ItemStack(ConfigItems.itemResource, 1, 13);
- droppedLabel.setTagCompound(new NBTTagCompound());
- final AspectList aspect = new AspectList().add(ite.aspectFilter, 0);
- aspect.writeToNBT(droppedLabel.getTagCompound());
- drops.add(droppedLabel);
- }
- }
- return drops;
- }
-
- @Override
- public void onBlockHarvested(World par1World, int par2, int par3, int par4, int par5,
- EntityPlayer par6EntityPlayer) {}
-
- @Override
- public boolean canDropFromExplosion(Explosion e) {
- return false;
- }
-}
diff --git a/src/main/java/common/blocks/Block_YSZUnit.java b/src/main/java/common/blocks/Block_YSZUnit.java
deleted file mode 100644
index 312d3250a4..0000000000
--- a/src/main/java/common/blocks/Block_YSZUnit.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package common.blocks;
-
-import net.minecraft.block.Block;
-import net.minecraft.block.material.Material;
-import net.minecraft.creativetab.CreativeTabs;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import kekztech.KekzCore;
-
-public class Block_YSZUnit extends BaseGTUpdateableBlock {
-
- private static final Block_YSZUnit instance = new Block_YSZUnit();
-
- private Block_YSZUnit() {
- super(Material.iron);
- }
-
- public static Block registerBlock() {
- final String blockName = "kekztech_yszceramicelectrolyteunit_block";
- instance.setBlockName(blockName);
- instance.setCreativeTab(CreativeTabs.tabMisc);
- instance.setBlockTextureName(KekzCore.MODID + ":" + "YSZCeramicElectrolyteUnit");
- instance.setHardness(5.0f);
- instance.setResistance(6.0f);
- GameRegistry.registerBlock(instance, blockName);
-
- return instance;
- }
-}
diff --git a/src/main/java/common/itemBlocks/IB_IchorJar.java b/src/main/java/common/itemBlocks/IB_IchorJar.java
deleted file mode 100644
index 6e2d806a7e..0000000000
--- a/src/main/java/common/itemBlocks/IB_IchorJar.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package common.itemBlocks;
-
-import net.minecraft.block.Block;
-import net.minecraft.item.ItemBlock;
-import net.minecraft.item.ItemStack;
-
-public class IB_IchorJar extends ItemBlock {
-
- public IB_IchorJar(Block block) {
- super(block);
- }
-
- @Override
- public int getMetadata(int meta) {
- return meta;
- }
-
- @Override
- public boolean getHasSubtypes() {
- return true;
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return super.getUnlocalizedName() + "." + stack.getItemDamage();
- }
-}
diff --git a/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java b/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java
deleted file mode 100644
index 971aac494a..0000000000
--- a/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java
+++ /dev/null
@@ -1,190 +0,0 @@
-package common.itemBlocks;
-
-import static com.google.common.math.LongMath.pow;
-
-import java.math.BigInteger;
-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 net.minecraft.util.EnumChatFormatting;
-import net.minecraft.util.StatCollector;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.util.GT_Utility;
-
-public class IB_LapotronicEnergyUnit extends ItemBlock {
-
- public IB_LapotronicEnergyUnit(Block block) {
- super(block);
- }
-
- @Override
- public int getMetadata(int meta) {
- return meta;
- }
-
- @Override
- public boolean getHasSubtypes() {
- return true;
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return super.getUnlocalizedName() + "." + stack.getItemDamage();
- }
-
- // 5 Minutes, 5 mins * 60s * 20 ticks.
- public static long LSC_time_between_wireless_rebalance_in_ticks = 5L * 60L * 20L;
-
- // 60 Trillion EU.
- public static BigInteger LSC_wireless_eu_cap = BigInteger.valueOf(60 * pow(10, 12));
-
- // 10 Billion EU/t
- private static final BigInteger UHV_cap_eu_per_tick = LSC_wireless_eu_cap
- .divide(BigInteger.valueOf(LSC_time_between_wireless_rebalance_in_ticks));
-
- // 6 Quadrillion EU.
- public static BigInteger UEV_wireless_eu_cap = BigInteger.valueOf(100 * 60 * pow(10, 12));
-
- // 1 Trillion EU/t
- private static final BigInteger UEV_cap_eu_per_tick = UEV_wireless_eu_cap
- .divide(BigInteger.valueOf(LSC_time_between_wireless_rebalance_in_ticks));
-
- // 600 Quadrillion EU.
- public static BigInteger UIV_wireless_eu_cap = BigInteger.valueOf(60 * pow(10, 16));
-
- // 100 Trillion EU/t
- private static final BigInteger UIV_cap_eu_per_tick = UIV_wireless_eu_cap
- .divide(BigInteger.valueOf(LSC_time_between_wireless_rebalance_in_ticks));
-
- // 60 Quintillion EU.
- public static BigInteger UMV_wireless_eu_cap = UIV_wireless_eu_cap.multiply(BigInteger.valueOf(100));
-
- // 10 Quadrillion EU/t
- private static final BigInteger UMV_cap_eu_per_tick = UMV_wireless_eu_cap
- .divide(BigInteger.valueOf(LSC_time_between_wireless_rebalance_in_ticks));
-
- public static long EV_cap_storage = 60_000_000L;
- public static long IV_cap_storage = 600_000_000L;
- public static long LuV_cap_storage = 6_000_000_000L;
- public static long ZPM_cap_storage = 60_000_000_000L;
- public static long UV_cap_storage = 600_000_000_000L;
- public static long UHV_cap_storage = Long.MAX_VALUE;
- public static long UEV_cap_storage = Long.MAX_VALUE;
- public static long UIV_cap_storage = Long.MAX_VALUE;
- public static BigInteger UMV_cap_storage = BigInteger.valueOf(UIV_cap_storage)
- .pow(2);
-
- @SuppressWarnings("unchecked")
- @Override
- public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) {
- lines.add(StatCollector.translateToLocal("tile.kekztech_lapotronicenergyunit_block.desc"));
- switch (stack.getItemDamage()) {
- case 1:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(IV_cap_storage)
- + EnumChatFormatting.GRAY
- + "EU");
- break;
- case 2:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(LuV_cap_storage)
- + EnumChatFormatting.GRAY
- + "EU");
- break;
- case 3:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(ZPM_cap_storage)
- + EnumChatFormatting.GRAY
- + "EU");
- break;
- case 4:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UV_cap_storage)
- + EnumChatFormatting.GRAY
- + "EU");
- break;
- case 5:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UHV_cap_storage)
- + EnumChatFormatting.GRAY
- + "EU");
- lines.add(
- "Supports up to " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UHV_cap_eu_per_tick)
- + EnumChatFormatting.GRAY
- + "EU/t of wireless transfer per "
- + GT_Values.TIER_COLORS[9]
- + GT_Values.VN[9]
- + EnumChatFormatting.GRAY
- + " capacitor.");
- break;
- case 6:
- lines.add("Capacity: None");
- break;
- case 7:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(EV_cap_storage)
- + EnumChatFormatting.GRAY
- + " EU");
- break;
- case 8:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UEV_cap_storage)
- + EnumChatFormatting.GRAY
- + "EU");
- lines.add(
- "Supports up to " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UEV_cap_eu_per_tick)
- + EnumChatFormatting.GRAY
- + "EU/t of wireless transfer per "
- + GT_Values.TIER_COLORS[10]
- + GT_Values.VN[10]
- + EnumChatFormatting.GRAY
- + " capacitor.");
- break;
- case 9:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UIV_cap_storage)
- + EnumChatFormatting.GRAY
- + "EU");
- lines.add(
- "Supports up to " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UIV_cap_eu_per_tick)
- + EnumChatFormatting.GRAY
- + "EU/t of wireless transfer per "
- + GT_Values.TIER_COLORS[11]
- + GT_Values.VN[11]
- + EnumChatFormatting.GRAY
- + " capacitor.");
- break;
- case 10:
- lines.add(
- "Capacity: " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UMV_cap_storage)
- + EnumChatFormatting.GRAY
- + "EU");
- lines.add(
- "Supports up to " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(UMV_cap_eu_per_tick)
- + EnumChatFormatting.GRAY
- + "EU/t of wireless transfer per "
- + GT_Values.TIER_COLORS[12]
- + GT_Values.VN[12]
- + EnumChatFormatting.GRAY
- + " capacitor.");
- break;
- }
- }
-}
diff --git a/src/main/java/common/itemBlocks/IB_TFFTStorageField.java b/src/main/java/common/itemBlocks/IB_TFFTStorageField.java
deleted file mode 100644
index 43f4523f27..0000000000
--- a/src/main/java/common/itemBlocks/IB_TFFTStorageField.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package common.itemBlocks;
-
-import java.text.NumberFormat;
-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 net.minecraft.util.EnumChatFormatting;
-import net.minecraft.util.StatCollector;
-
-import common.tileentities.GTMTE_TFFT;
-
-public class IB_TFFTStorageField extends ItemBlock {
-
- private static final int UNIQUE_FLUIDS_PER_CELL = 25;
-
- public IB_TFFTStorageField(Block block) {
- super(block);
- }
-
- @Override
- public int getMetadata(int meta) {
- return meta;
- }
-
- @Override
- public boolean getHasSubtypes() {
- return true;
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return super.getUnlocalizedName() + "." + stack.getItemDamage();
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) {
- int meta = stack.getItemDamage();
- if (meta > 0) {
- lines.add(StatCollector.translateToLocal("tile.kekztech_tfftstoragefield_block.desc"));
- lines.add(
- "Capacity: " + EnumChatFormatting.BLUE
- + NumberFormat.getNumberInstance()
- .format(GTMTE_TFFT.Field.VALUES[meta - 1].getCapacity())
- + EnumChatFormatting.GRAY
- + " L");
- lines.add(
- "Per Fluid Capacity: " + EnumChatFormatting.BLUE
- + NumberFormat.getNumberInstance()
- .format(GTMTE_TFFT.Field.VALUES[meta - 1].getCapacity() / UNIQUE_FLUIDS_PER_CELL)
- + EnumChatFormatting.GRAY
- + " L");
- lines.add(
- "Power Draw: " + EnumChatFormatting.BLUE
- + GTMTE_TFFT.Field.VALUES[meta - 1].getCost()
- + EnumChatFormatting.GRAY
- + " EU/t");
- }
- }
-}
diff --git a/src/main/java/common/itemBlocks/IB_ThaumiumReinforcedJar.java b/src/main/java/common/itemBlocks/IB_ThaumiumReinforcedJar.java
deleted file mode 100644
index 9299126d67..0000000000
--- a/src/main/java/common/itemBlocks/IB_ThaumiumReinforcedJar.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package common.itemBlocks;
-
-import net.minecraft.block.Block;
-import net.minecraft.item.ItemBlock;
-import net.minecraft.item.ItemStack;
-
-public class IB_ThaumiumReinforcedJar extends ItemBlock {
-
- public IB_ThaumiumReinforcedJar(Block block) {
- super(block);
- }
-
- @Override
- public int getMetadata(int meta) {
- return meta;
- }
-
- @Override
- public boolean getHasSubtypes() {
- return true;
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return super.getUnlocalizedName() + "." + stack.getItemDamage();
- }
-}
diff --git a/src/main/java/common/items/ErrorItem.java b/src/main/java/common/items/ErrorItem.java
deleted file mode 100644
index 997686a114..0000000000
--- a/src/main/java/common/items/ErrorItem.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package common.items;
-
-import java.util.List;
-
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import kekztech.KekzCore;
-
-public class ErrorItem extends Item {
-
- private static final ErrorItem INSTANCE = new ErrorItem();
-
- private ErrorItem() {}
-
- public static ErrorItem getInstance() {
- return INSTANCE;
- }
-
- public void registerItem() {
- super.setHasSubtypes(false);
- final String unlocalizedName = "kekztech_error_item";
- super.setUnlocalizedName(unlocalizedName);
- super.setCreativeTab(CreativeTabs.tabMisc);
- super.setMaxStackSize(64);
- super.setTextureName(KekzCore.MODID + ":" + "Error");
- GameRegistry.registerItem(getInstance(), unlocalizedName);
- }
-
- @SuppressWarnings({ "unchecked" })
- @Override
- public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) {
- list.add("REMINDER: KekzTech recipes are only tested to work in GTNH!");
- list.add("Placeholder item in case something went wrong");
- list.add("If this item shows up in GTNH, you may report it to:");
- list.add("https://github.com/kekzdealer/KekzTech");
- }
-
- @Override
- public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player) {
- player.swingItem();
- return item;
- }
-}
diff --git a/src/main/java/common/items/MetaItem_CraftingComponent.java b/src/main/java/common/items/MetaItem_CraftingComponent.java
deleted file mode 100644
index 205e7392c5..0000000000
--- a/src/main/java/common/items/MetaItem_CraftingComponent.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package common.items;
-
-import java.util.List;
-
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.creativetab.CreativeTabs;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import kekztech.KekzCore;
-
-public class MetaItem_CraftingComponent extends Item {
-
- private static final MetaItem_CraftingComponent INSTANCE = new MetaItem_CraftingComponent();
- private final IIcon[] icons = new IIcon[16];
-
- private MetaItem_CraftingComponent() {}
-
- public static MetaItem_CraftingComponent getInstance() {
- return INSTANCE;
- }
-
- public void registerItem() {
- super.setHasSubtypes(true);
- final String unlocalizedName = "kekztech_crafting_item";
- super.setUnlocalizedName(unlocalizedName);
- super.setCreativeTab(CreativeTabs.tabMisc);
- super.setMaxStackSize(64);
- GameRegistry.registerItem(getInstance(), unlocalizedName);
- }
-
- @Override
- public void registerIcons(IIconRegister reg) {
- int counter = 9;
- // Ceramics
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YSZCeramicDust");
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "GDCCeramicDust");
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YttriaDust");
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "ZirconiaDust");
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CeriaDust");
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YSZCeramicPlate");
- icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "GDCCeramicPlate");
- }
-
- @Override
- public IIcon getIconFromDamage(int meta) {
- return icons[meta];
- }
-
- @SuppressWarnings({ "unchecked" })
- @Override
- public void getSubItems(Item item, CreativeTabs tab, List list) {
- for (int i = 9; i < icons.length; i++) {
- list.add(new ItemStack(item, 1, i));
- }
- }
-
- @Override
- public String getUnlocalizedName(ItemStack stack) {
- return super.getUnlocalizedName() + "." + stack.getItemDamage();
- }
-
- @SuppressWarnings({ "unchecked" })
- @Override
- public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) {
- list.add("Crafting component for KekzTech things");
- }
-
- @Override
- public double getDurabilityForDisplay(ItemStack stack) {
- return 0.0d;
- }
-
- @Override
- public boolean showDurabilityBar(ItemStack stack) {
- return false;
- }
-
- public ItemStack getStackFromDamage(int meta) {
- return new ItemStack(getInstance(), 1, meta);
- }
-
- public ItemStack getStackOfAmountFromDamage(int meta, int amount) {
- return new ItemStack(getInstance(), amount, meta);
- }
-}
diff --git a/src/main/java/common/recipeLoaders/AlloySmelter.java b/src/main/java/common/recipeLoaders/AlloySmelter.java
deleted file mode 100644
index 537c054630..0000000000
--- a/src/main/java/common/recipeLoaders/AlloySmelter.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package common.recipeLoaders;
-
-import static gregtech.api.recipe.RecipeMaps.alloySmelterRecipes;
-import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
-
-import common.items.MetaItem_CraftingComponent;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.TierEU;
-import kekztech.Items;
-
-public class AlloySmelter implements Runnable {
-
- @Override
- public void run() {
- final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
-
- // YSZ Cermic Plate
- GT_Values.RA.stdBuilder()
- .itemInputs(
- craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 3),
- ItemList.Shape_Mold_Plate.get(0))
- .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 1))
- .duration(20 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(alloySmelterRecipes);
- }
-}
diff --git a/src/main/java/common/recipeLoaders/Assembler.java b/src/main/java/common/recipeLoaders/Assembler.java
deleted file mode 100644
index da6c863689..0000000000
--- a/src/main/java/common/recipeLoaders/Assembler.java
+++ /dev/null
@@ -1,295 +0,0 @@
-package common.recipeLoaders;
-
-import static gregtech.api.recipe.RecipeMaps.assemblerRecipes;
-import static gregtech.api.util.GT_RecipeBuilder.MINUTES;
-import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.FluidRegistry;
-
-import common.Blocks;
-import common.TileEntities;
-import common.items.ErrorItem;
-import common.items.MetaItem_CraftingComponent;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.MaterialsUEVplus;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.enums.TierEU;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.api.util.GT_Utility;
-import kekztech.Items;
-
-public class Assembler implements Runnable {
-
- @Override
- public void run() {
- // TFFT Casing
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel, 1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DarkSteel, 3),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderPearl, 3))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1))
- .fluidInputs(Materials.Polytetrafluoroethylene.getMolten(144))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(assemblerRecipes);
- // TFFT Multi Hatch
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ItemList.Hull_HV.get(1),
- ItemList.Cover_FluidStorageMonitor.get(1),
- ItemList.Field_Generator_LV.get(4),
- GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.Polytetrafluoroethylene, 25))
- .itemOutputs(TileEntities.tfftHatch.getStackForm(1))
- .fluidInputs(Materials.Plastic.getMolten(432))
- .duration(20 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(assemblerRecipes);
- // TFFTStorageField1
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CrudeSteel, 1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrudeSteel, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Steel, 3),
- ItemList.FluidRegulator_LV.get(1))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 1))
- .fluidInputs(Materials.Glass.getMolten(144))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(assemblerRecipes);
- // TFFTStorageField2
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- ItemList.Casing_Tank_1.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnergeticSilver, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Plastic, 3),
- ItemList.FluidRegulator_MV.get(1))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 2))
- .fluidInputs(Materials.Plastic.getMolten(288))
- .duration(10 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(assemblerRecipes);
- // TFFTStorageField3
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- ItemList.Casing_Tank_3.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VividAlloy, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.StainlessSteel, 3),
- ItemList.Field_Generator_LV.get(1),
- ItemList.FluidRegulator_HV.get(1))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 3))
- .fluidInputs(Materials.Plastic.getMolten(432))
- .duration(20 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(assemblerRecipes);
- // TFFTStorageField4
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- ItemList.Casing_Tank_5.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Enderium, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Polytetrafluoroethylene, 3),
- ItemList.Field_Generator_MV.get(2),
- ItemList.FluidRegulator_EV.get(1))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 4))
- .fluidInputs(Materials.Epoxid.getMolten(864))
- .duration(20 * SECONDS)
- .eut(TierEU.RECIPE_EV)
- .addTo(assemblerRecipes);
- // TFFTStorageField5
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- ItemList.Casing_Tank_7.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Enderium, 3),
- ItemList.Field_Generator_HV.get(4),
- ItemList.FluidRegulator_IV.get(1))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 5))
- .fluidInputs(Materials.Epoxid.getMolten(1152))
- .duration(20 * SECONDS)
- .eut(TierEU.RECIPE_IV)
- .addTo(assemblerRecipes);
- // LSC Casing
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Tantalum, 4),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 2),
- GT_OreDictUnificator.get(OrePrefixes.stickLong, Materials.TungstenSteel, 2),
- GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lapis, 1))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(assemblerRecipes);
- // EV Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6),
- GT_ModHandler.getIC2Item("lapotronCrystal", 1L, GT_Values.W),
- GT_Utility.getIntegratedCircuit(7))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7))
- .duration(10 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(assemblerRecipes);
- // IV Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6),
- ItemList.Energy_LapotronicOrb.get(1L),
- GT_Utility.getIntegratedCircuit(1))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1))
- .duration(20 * SECONDS)
- .eut(TierEU.RECIPE_EV)
- .addTo(assemblerRecipes);
- // LuV Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ItemList.Energy_LapotronicOrb2.get(1),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2))
- .duration(40 * SECONDS)
- .eut(TierEU.RECIPE_IV)
- .addTo(assemblerRecipes);
- // ZPM Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ItemList.Energy_Module.get(1),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3))
- .duration(1 * MINUTES + 20 * SECONDS)
- .eut(TierEU.RECIPE_LuV)
- .addTo(assemblerRecipes);
- // UV Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ItemList.Energy_Cluster.get(1),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4))
- .duration(2 * MINUTES + 40 * SECONDS)
- .eut(TierEU.RECIPE_ZPM)
- .addTo(assemblerRecipes);
- // UHV Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ItemList.ZPM3.get(1),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5))
- .duration(5 * MINUTES + 20 * SECONDS)
- .eut(TierEU.RECIPE_UV)
- .addTo(assemblerRecipes);
- // UEV Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ItemList.ZPM4.get(1),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8))
- .duration(10 * MINUTES + 40 * SECONDS)
- .eut(TierEU.RECIPE_UHV)
- .addTo(assemblerRecipes);
- // UIV Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ItemList.ZPM5.get(1),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.TranscendentMetal, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.TranscendentMetal, 24),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9))
- .duration(10 * MINUTES + 40 * SECONDS)
- .eut(TierEU.RECIPE_UEV)
- .addTo(assemblerRecipes);
- // UMV Capacitor alt recipe
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ItemList.ZPM6.get(1),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SpaceTime, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.SpaceTime, 24),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 10))
- .duration(10 * MINUTES + 40 * SECONDS)
- .eut(TierEU.RECIPE_UIV)
- .addTo(assemblerRecipes);
-
- final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
-
- // YSZ Unit
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 4),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Yttrium, 1),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1),
- ItemList.Electric_Motor_HV.get(1L))
- .itemOutputs(new ItemStack(Blocks.yszUnit, 1))
- .fluidInputs(Materials.Hydrogen.getGas(4000))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(assemblerRecipes);
- // GDC Unit
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 8),
- GT_OreDictUnificator
- .get(OrePrefixes.frameGt, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
- GT_OreDictUnificator
- .get(OrePrefixes.rotor, Materials.Desh, new ItemStack(ErrorItem.getInstance(), 1), 1),
- ItemList.Electric_Motor_IV.get(1L))
- .itemOutputs(new ItemStack(Blocks.gdcUnit, 1))
- .fluidInputs(Materials.Hydrogen.getGas(16000))
- .duration(2 * MINUTES)
- .eut(TierEU.RECIPE_EV)
- .addTo(assemblerRecipes);
- // Hex Tiles
-
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_Utility.getIntegratedCircuit(6),
- GT_OreDictUnificator.get(OrePrefixes.stone, Materials.Concrete, 1),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1),
- GT_OreDictUnificator.get(OrePrefixes.foil, Materials.DarkSteel, 2))
- .itemOutputs(new ItemStack(Blocks.largeHexPlate, 2))
- .fluidInputs(FluidRegistry.getFluidStack("molten.plastic", 36))
- .duration(30 * SECONDS)
- .eut(TierEU.RECIPE_MV)
- .addTo(assemblerRecipes);
-
- }
-}
diff --git a/src/main/java/common/recipeLoaders/AssemblyLine.java b/src/main/java/common/recipeLoaders/AssemblyLine.java
deleted file mode 100644
index bc19db42ab..0000000000
--- a/src/main/java/common/recipeLoaders/AssemblyLine.java
+++ /dev/null
@@ -1,227 +0,0 @@
-package common.recipeLoaders;
-
-import static goodgenerator.loader.Loaders.huiCircuit;
-import static gregtech.api.enums.Mods.Avaritia;
-import static gregtech.api.enums.Mods.EnderIO;
-import static gregtech.api.enums.Mods.EternalSingularity;
-import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
-import static gregtech.api.enums.Mods.UniversalSingularities;
-import static gregtech.api.util.GT_RecipeBuilder.HOURS;
-import static gregtech.api.util.GT_RecipeBuilder.MINUTES;
-import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
-import static gregtech.api.util.GT_RecipeConstants.AssemblyLine;
-import static gregtech.api.util.GT_RecipeConstants.RESEARCH_ITEM;
-import static gregtech.api.util.GT_RecipeConstants.RESEARCH_TIME;
-import static gtPlusPlus.core.material.ELEMENT.STANDALONE.HYPOGEN;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-
-import common.Blocks;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.MaterialsUEVplus;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.enums.TierEU;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-
-public class AssemblyLine implements Runnable {
-
- @Override
- public void run() {
- final Fluid radoxPoly = FluidRegistry.getFluid("molten.radoxpoly") != null
- ? FluidRegistry.getFluid("molten.radoxpoly")
- : FluidRegistry.getFluid("molten.polybenzimidazole");
-
- final Fluid solderIndalloy = FluidRegistry.getFluid("molten.indalloy140") != null
- ? FluidRegistry.getFluid("molten.indalloy140")
- : FluidRegistry.getFluid("molten.solderingalloy");
-
- // TFFTStorageField6
- GT_Values.RA.stdBuilder()
- .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 5))
- .metadata(RESEARCH_TIME, 1 * HOURS + 6 * MINUTES + 40 * SECONDS)
- .itemInputs(
- ItemList.Casing_Tank_7.get(4),
- GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.CrystallinePinkSlime, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Naquadah, 3),
- GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.ChromeBars", 6),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Quantium, 6),
- ItemList.Field_Generator_EV.get(8),
- ItemList.FluidRegulator_LuV.get(1),
- GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EngineeringProcessorFluidEmeraldCore", 4))
- .fluidInputs(Materials.Enderium.getMolten(1440), Materials.Polybenzimidazole.getMolten(1584))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 6))
- .eut(TierEU.RECIPE_LuV)
- .duration(30 * SECONDS)
- .addTo(AssemblyLine);
-
- // TFFTStorageField7
- GT_Values.RA.stdBuilder()
- .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 6))
- .metadata(RESEARCH_TIME, 1 * HOURS + 6 * MINUTES + 40 * SECONDS)
- .itemInputs(
- ItemList.Casing_Tank_10.get(16),
- GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.MelodicAlloy, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.NetherStar, 3),
- GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.OsmiumBars", 6),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.MysteriousCrystal, 6),
- ItemList.Field_Generator_IV.get(16),
- ItemList.Field_Generator_LuV.get(4),
- ItemList.FluidRegulator_UV.get(1),
- GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EngineeringProcessorFluidEmeraldCore", 16))
- .fluidInputs(Materials.CrystallineAlloy.getMolten(2880), Materials.Polybenzimidazole.getMolten(2016))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 7))
- .duration(30 * SECONDS)
- .eut(TierEU.RECIPE_UV)
- .addTo(AssemblyLine);
-
- // TFFTStorageField8
- GT_Values.RA.stdBuilder()
- .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 7))
- .metadata(RESEARCH_TIME, 2 * HOURS + 40 * MINUTES)
- .itemInputs(
- ItemList.Quantum_Tank_IV.get(1),
- GT_ModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 1),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 6),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.DraconiumAwakened, 3),
- GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.NeutroniumBars", 6),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.InfinityCatalyst, 6),
- ItemList.Field_Generator_ZPM.get(16),
- ItemList.Field_Generator_UV.get(4),
- new ItemStack(huiCircuit, 4, 2),
- GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.tinkersConstruct.singularity", 1, 4))
- .fluidInputs(Materials.CrystallinePinkSlime.getMolten(4320), new FluidStack(radoxPoly, 2880))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 8))
- .duration(30 * SECONDS)
- .eut(TierEU.RECIPE_UEV)
- .addTo(AssemblyLine);
-
- GT_Values.RA.stdBuilder()
- .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 8))
- .metadata(RESEARCH_TIME, 2 * HOURS + 13 * MINUTES + 20 * SECONDS)
- .itemInputs(
- ItemList.Quantum_Tank_IV.get(4),
- GT_ModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 2),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.TranscendentMetal, 6),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.TranscendentMetal, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, Materials.Infinity, 3),
- ItemList.EnergisedTesseract.get(1),
- HYPOGEN.getRotor(6),
- ItemList.Field_Generator_UHV.get(16),
- ItemList.Field_Generator_UEV.get(4),
- new ItemStack(huiCircuit, 4, 3),
- GT_ModHandler.getModItem(UniversalSingularities.ID, "universal.tinkersConstruct.singularity", 1, 4))
- .fluidInputs(Materials.MelodicAlloy.getMolten(5760), new FluidStack(radoxPoly, 3456))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 9))
- .duration(30 * SECONDS)
- .eut(TierEU.RECIPE_UMV)
- .addTo(AssemblyLine);
-
- // TFFTStorageField10
- GT_Values.RA.stdBuilder()
- .metadata(RESEARCH_ITEM, new ItemStack(Blocks.tfftStorageField, 1, 9))
- .metadata(RESEARCH_TIME, 2 * HOURS + 46 * MINUTES + 40 * SECONDS)
- .itemInputs(
- ItemList.Quantum_Tank_IV.get(16),
- GT_ModHandler.getModItem(Avaritia.ID, "Neutronium_Compressor", 4),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SpaceTime, 6),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SpaceTime, 6),
- GT_OreDictUnificator.get(OrePrefixes.pipeNonuple, MaterialsUEVplus.SpaceTime, 3),
- ItemList.EnergisedTesseract.get(6),
- GT_OreDictUnificator.get(OrePrefixes.rotor, MaterialsUEVplus.SpaceTime, 6),
- ItemList.Field_Generator_UEV.get(16),
- ItemList.Field_Generator_UIV.get(4),
- new ItemStack(huiCircuit, 4, 4),
- new ItemStack(huiCircuit, 4, 4),
- GT_ModHandler.getModItem(EnderIO.ID, "itemBasicCapacitor", 64, 6),
- GT_ModHandler.getModItem(EternalSingularity.ID, "eternal_singularity", 1))
- .fluidInputs(Materials.StellarAlloy.getMolten(7200), new FluidStack(radoxPoly, 4608))
- .itemOutputs(new ItemStack(Blocks.tfftStorageField, 1, 10))
- .duration(30 * SECONDS)
- .eut(TierEU.RECIPE_UXV)
- .addTo(AssemblyLine);
-
- // LuV Capacitor
- GT_Values.RA.stdBuilder()
- .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1))
- .metadata(RESEARCH_TIME, 4 * HOURS)
- .itemInputs(
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24),
- ItemList.Circuit_Board_Elite.get(1),
- GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahAlloy, 64),
- new Object[] { OrePrefixes.circuit.get(Materials.LuV), 4 },
- ItemList.Circuit_Parts_Crystal_Chip_Master.get(36),
- ItemList.Circuit_Parts_Crystal_Chip_Master.get(36),
- ItemList.Circuit_Chip_HPIC.get(64),
- ItemList.Circuit_Parts_DiodeASMD.get(8),
- ItemList.Circuit_Parts_CapacitorASMD.get(8),
- ItemList.Circuit_Parts_ResistorASMD.get(8),
- ItemList.Circuit_Parts_TransistorASMD.get(8),
- GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Platinum, 64))
- .fluidInputs(new FluidStack(solderIndalloy, 720))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2))
- .duration(50 * SECONDS)
- .eut(80_000)
- .addTo(AssemblyLine);
-
- // ZPM Capacitor
- GT_Values.RA.stdBuilder()
- .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2))
- .metadata(RESEARCH_TIME, 4 * HOURS)
- .itemInputs(
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16L),
- new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.ZPM), 1 },
- ItemList.Energy_LapotronicOrb2.get(8L),
- ItemList.Field_Generator_LuV.get(2),
- ItemList.Circuit_Wafer_SoC2.get(64),
- ItemList.Circuit_Wafer_SoC2.get(64),
- ItemList.Circuit_Parts_DiodeASMD.get(8),
- GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 32))
- .fluidInputs(
- new FluidStack(solderIndalloy, 2880),
- new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3))
- .duration(1 * MINUTES + 40 * SECONDS)
- .eut(100_000)
- .addTo(AssemblyLine);
-
- // UV Capacitor
- GT_Values.RA.stdBuilder()
- .metadata(RESEARCH_ITEM, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3))
- .metadata(RESEARCH_TIME, 4 * HOURS)
- .itemInputs(
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 32L),
- new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UV), 1 },
- ItemList.Energy_Module.get(8L),
- ItemList.Field_Generator_ZPM.get(2),
- ItemList.Circuit_Wafer_HPIC.get(64),
- ItemList.Circuit_Wafer_HPIC.get(64),
- ItemList.Circuit_Parts_DiodeASMD.get(16),
- GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 32))
- .fluidInputs(
- new FluidStack(solderIndalloy, 2880),
- new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000))
- .itemOutputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4))
- .eut(200_000)
- .duration(1 * MINUTES + 40 * SECONDS)
- .addTo(AssemblyLine);
- }
-}
diff --git a/src/main/java/common/recipeLoaders/ChemicalReactor.java b/src/main/java/common/recipeLoaders/ChemicalReactor.java
deleted file mode 100644
index e874333c3e..0000000000
--- a/src/main/java/common/recipeLoaders/ChemicalReactor.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package common.recipeLoaders;
-
-import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
-import static gregtech.api.util.GT_RecipeConstants.UniversalChemical;
-
-import common.items.MetaItem_CraftingComponent;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.TierEU;
-import gregtech.api.util.GT_Utility;
-import kekztech.Items;
-
-public class ChemicalReactor implements Runnable {
-
- @Override
- public void run() {
- final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
-
- // Ceria Dust
- GT_Values.RA.stdBuilder()
- .itemInputs(Materials.Cerium.getDust(1), GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 3))
- .fluidInputs(Materials.Oxygen.getGas(2000))
- .duration(20 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(UniversalChemical);
-
- }
-}
diff --git a/src/main/java/common/recipeLoaders/Crafting.java b/src/main/java/common/recipeLoaders/Crafting.java
deleted file mode 100644
index 912a6a17e7..0000000000
--- a/src/main/java/common/recipeLoaders/Crafting.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package common.recipeLoaders;
-
-import net.minecraft.item.ItemStack;
-
-import common.Blocks;
-import common.TileEntities;
-
-import gregtech.api.enums.GT_Values;
-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_OreDictUnificator;
-import util.Util;
-
-public class Crafting implements Runnable {
-
- @Override
- public void run() {
- // TFFT Controller
- GT_ModHandler.addCraftingRecipe(
- TileEntities.tfft.getStackForm(1),
- new Object[] { "ESE", "FTF", "CVC", 'E', GT_OreDictUnificator.get(OrePrefixes.screw, Materials.EnderEye, 1),
- 'S', ItemList.Cover_Screen.get(1), 'F', ItemList.Field_Generator_LV.get(1), 'T',
- new ItemStack(Blocks.tfftStorageField, 1), 'C', "circuitData", 'V',
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.VibrantAlloy, 1), });
-
- // SOFC Controller mk1
- final Object[] mk1_recipe = { "CCC", "PHP", "FBL", 'C', OrePrefixes.circuit.get(Materials.HV), 'P',
- ItemList.Electric_Pump_HV.get(1L), 'H', ItemList.Hull_HV.get(1L), 'F',
- GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.StainlessSteel, 1), 'B',
- GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.Gold, 1), 'L',
- GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1) };
- GT_ModHandler.addCraftingRecipe(TileEntities.sofc1.getStackForm(1), mk1_recipe);
-
- // SOFC Controller mk2
- final Object[] mk2_recipe = { "CCC", "PHP", "FBL", 'C', OrePrefixes.circuit.get(Materials.LuV), 'P',
- ItemList.Electric_Pump_IV.get(1L), 'H', ItemList.Hull_IV.get(1L), 'F',
- GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1), 'B',
- Util.getStackofAmountFromOreDict("wireGt04SuperconductorEV", 1), 'L',
- GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1) };
- GT_ModHandler.addCraftingRecipe(TileEntities.sofc2.getStackForm(1), mk2_recipe);
-
- // LSC Controller
- final Object[] lsc_recipe = { "LPL", "CBC", "LPL", 'L', ItemList.IC2_LapotronCrystal.getWildcard(1L), 'P',
- ItemList.Circuit_Chip_PIC.get(1L), 'C', OrePrefixes.circuit.get(Materials.LuV), 'B',
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0), };
- GT_ModHandler.addCraftingRecipe(TileEntities.lsc.getStackForm(1), lsc_recipe);
-
- // LSC casing
- final Object[] lcBase_recipe = { "WBW", "RLR", "WBW", 'W', OrePrefixes.plate.get(Materials.Tantalum), 'B',
- OrePrefixes.frameGt.get(Materials.TungstenSteel), 'R', OrePrefixes.stickLong.get(Materials.TungstenSteel),
- 'L', OrePrefixes.block.get(Materials.Lapis) };
- GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0), lcBase_recipe);
-
- // Empty Capacitor
- final Object[] lcEmpty_recipe = { "SLS", "L L", "SLS", 'S', OrePrefixes.screw.get(Materials.Lapis), 'L',
- OrePrefixes.plate.get(Materials.Lapis) };
- GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6), lcEmpty_recipe);
-
- // EV Capacitor
- final Object[] lcEV_recipe = { "SLS", "LCL", "SLS", 'S', OrePrefixes.screw.get(Materials.Lapis), 'L',
- OrePrefixes.plate.get(Materials.Lapis), 'C', GT_ModHandler.getIC2Item("lapotronCrystal", 1L, GT_Values.W) };
- GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7), lcEV_recipe);
-
- // IV Capacitor
- final Object[] lcIV_recipe = { "SLS", "LOL", "SLS", 'S', OrePrefixes.screw.get(Materials.Lapis), 'L',
- OrePrefixes.plate.get(Materials.Lapis), 'O', ItemList.Energy_LapotronicOrb.get(1L) };
- GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), lcIV_recipe);
-
- }
-}
diff --git a/src/main/java/common/recipeLoaders/FormingPress.java b/src/main/java/common/recipeLoaders/FormingPress.java
deleted file mode 100644
index d226ebf2a9..0000000000
--- a/src/main/java/common/recipeLoaders/FormingPress.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package common.recipeLoaders;
-
-import static gregtech.api.recipe.RecipeMaps.formingPressRecipes;
-import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
-
-import common.items.MetaItem_CraftingComponent;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.TierEU;
-import kekztech.Items;
-
-public class FormingPress implements Runnable {
-
- @Override
- public void run() {
- final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
-
- // YSZ Ceramic Plate
- GT_Values.RA.stdBuilder()
- .itemInputs(
- craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
- ItemList.Shape_Mold_Plate.get(0))
- .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 1))
- .duration(40 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(formingPressRecipes);
- }
-}
diff --git a/src/main/java/common/recipeLoaders/Mixer.java b/src/main/java/common/recipeLoaders/Mixer.java
deleted file mode 100644
index 0fd329a01b..0000000000
--- a/src/main/java/common/recipeLoaders/Mixer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package common.recipeLoaders;
-
-import static gregtech.api.recipe.RecipeMaps.mixerRecipes;
-import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
-
-import net.minecraft.item.ItemStack;
-
-import common.items.ErrorItem;
-import common.items.MetaItem_CraftingComponent;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.enums.TierEU;
-import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.api.util.GT_Utility;
-import kekztech.Items;
-
-public class Mixer implements Runnable {
-
- @Override
- public void run() {
- final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
-
- // YSZ Ceramic Dust
- GT_Values.RA.stdBuilder()
- .itemInputs(
- Items.YttriaDust.getOreDictedItemStack(1),
- Items.ZirconiaDust.getOreDictedItemStack(5),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 6))
- .duration(20 * SECONDS)
- .eut(96)
- .addTo(mixerRecipes);
-
- // GDC Ceramic Dust
- GT_Values.RA.stdBuilder()
- .itemInputs(
- GT_OreDictUnificator
- .get(OrePrefixes.dust, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
- craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 9),
- GT_Utility.getIntegratedCircuit(6))
- .itemOutputs(craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10))
- .duration(20 * SECONDS)
- .eut(TierEU.RECIPE_EV)
- .addTo(mixerRecipes);
- }
-}
diff --git a/src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java b/src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java
deleted file mode 100644
index 39e3a035b0..0000000000
--- a/src/main/java/common/recipeLoaders/ResearchableAssemblyLine.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package common.recipeLoaders;
-
-import static gregtech.api.enums.Mods.NewHorizonsCoreMod;
-import static gtPlusPlus.core.material.ELEMENT.STANDALONE.DRAGON_METAL;
-import static gtPlusPlus.core.material.ELEMENT.STANDALONE.HYPOGEN;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-
-import com.github.technus.tectech.recipe.TT_recipeAdder;
-import common.Blocks;
-
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.MaterialsUEVplus;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.enums.TierEU;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-
-public class ResearchableAssemblyLine implements Runnable {
-
- @Override
- public void run() {
- final Fluid solderUEV = FluidRegistry.getFluid("molten.mutatedlivingsolder") != null
- ? FluidRegistry.getFluid("molten.mutatedlivingsolder")
- : FluidRegistry.getFluid("molten.solderingalloy");
-
- // Extremely Ultimate Capacitor (UEV)
- TT_recipeAdder.addResearchableAssemblylineRecipe(
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5),
- 1200000,
- 128,
- (int) TierEU.RECIPE_UEV,
- 16,
- new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Infinity, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24),
- GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.InfinityCatalyst, 32L),
- GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.InfinityCatalyst, 32L),
- new Object[] { OrePrefixes.circuit.get(Materials.UIV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UIV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UIV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UIV), 1 }, ItemList.ZPM3.get(8L),
- ItemList.Field_Generator_UEV.get(4), ItemList.Circuit_Wafer_PPIC.get(64),
- ItemList.Circuit_Wafer_PPIC.get(64), ItemList.Circuit_Wafer_SoC2.get(64),
- ItemList.Circuit_Parts_DiodeXSMD.get(64),
- GT_OreDictUnificator.get(OrePrefixes.wireGt04, Materials.SuperconductorUEV, 64) },
- new FluidStack[] { new FluidStack(solderUEV, 9216), Materials.Quantium.getMolten(18432),
- Materials.Naquadria.getMolten(18432), Materials.SuperCoolant.getFluid(64000) },
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8),
- 250 * 20,
- (int) TierEU.RECIPE_UEV);
-
- // Insanely Ultimate Capacitor (UIV)
- TT_recipeAdder.addResearchableAssemblylineRecipe(
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8),
- 24_000_000,
- 1_280,
- (int) TierEU.RECIPE_UIV,
- 32,
- new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.TranscendentMetal, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.TranscendentMetal, 24),
- HYPOGEN.getPlateDouble(32), HYPOGEN.getPlateDouble(32),
- new Object[] { OrePrefixes.circuit.get(Materials.UMV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UMV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UMV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UMV), 1 }, ItemList.ZPM4.get(8L),
- ItemList.Field_Generator_UIV.get(4), ItemList.Circuit_Wafer_QPIC.get(64),
- ItemList.Circuit_Wafer_QPIC.get(64),
- GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.RawPicoWafer", 64),
- ItemList.Circuit_Parts_DiodeXSMD.get(64), ItemList.Circuit_Parts_InductorXSMD.get(32),
- GT_OreDictUnificator.get(OrePrefixes.wireGt08, Materials.SuperconductorUIV, 64) },
- new FluidStack[] { new FluidStack(solderUEV, 18_432),
- new FluidStack(FluidRegistry.getFluid("molten.celestialtungsten"), 18432),
- Materials.Quantium.getMolten(18_432), Materials.SuperCoolant.getFluid(128_000) },
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9),
- 300 * 20,
- (int) TierEU.RECIPE_UIV);
-
- // Mega Ultimate Capacitor (UMV)
- TT_recipeAdder.addResearchableAssemblylineRecipe(
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9),
- 480_000_000,
- 12_288,
- (int) TierEU.RECIPE_UMV,
- 64,
- new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.SpaceTime, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.SpaceTime, 24),
- DRAGON_METAL.getPlateDouble(32), DRAGON_METAL.getPlateDouble(32),
- new Object[] { OrePrefixes.circuit.get(Materials.UXV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UXV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UXV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UXV), 1 }, ItemList.ZPM5.get(8L),
- ItemList.Field_Generator_UMV.get(4), ItemList.Circuit_Wafer_QPIC.get(64),
- ItemList.Circuit_Wafer_QPIC.get(64),
- GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.PicoWafer", 64),
- ItemList.Circuit_Parts_DiodeXSMD.get(64), ItemList.Circuit_Parts_InductorXSMD.get(64),
- GT_OreDictUnificator.get(OrePrefixes.wireGt16, Materials.SuperconductorUMV, 64) },
- new FluidStack[] { new FluidStack(solderUEV, 36_864),
- new FluidStack(FluidRegistry.getFluid("molten.astraltitanium"), 36_864),
- new FluidStack(FluidRegistry.getFluid("molten.celestialtungsten"), 36_864),
- Materials.SuperCoolant.getFluid(256_000) },
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 10),
- 350 * 20,
- (int) TierEU.RECIPE_UMV);
-
- // Ultimate Capacitor (UHV)
- TT_recipeAdder.addResearchableAssemblylineRecipe(
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4),
- 12000,
- 16,
- 300000,
- 3,
- new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium, 4),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24),
- GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 32L),
- GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 32L),
- new Object[] { OrePrefixes.circuit.get(Materials.UEV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UEV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UEV), 1 },
- new Object[] { OrePrefixes.circuit.get(Materials.UEV), 1 }, ItemList.ZPM2.get(8L),
- ItemList.Field_Generator_UHV.get(4), ItemList.Circuit_Wafer_UHPIC.get(64),
- ItemList.Circuit_Wafer_UHPIC.get(64), ItemList.Circuit_Wafer_SoC2.get(32),
- ItemList.Circuit_Parts_DiodeASMD.get(64),
- GT_OreDictUnificator.get(OrePrefixes.wireGt02, Materials.SuperconductorUHV, 64) },
- new FluidStack[] { new FluidStack(solderUEV, 4608), Materials.Naquadria.getMolten(9216),
- new FluidStack(FluidRegistry.getFluid("ic2coolant"), 32000) },
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5),
- 4000,
- 1600000);
- }
-}
diff --git a/src/main/java/common/recipeLoaders/Unpackager.java b/src/main/java/common/recipeLoaders/Unpackager.java
deleted file mode 100644
index ec25f5c89c..0000000000
--- a/src/main/java/common/recipeLoaders/Unpackager.java
+++ /dev/null
@@ -1,200 +0,0 @@
-package common.recipeLoaders;
-
-import static gregtech.api.recipe.RecipeMaps.unpackagerRecipes;
-import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
-
-import net.minecraft.item.ItemStack;
-
-import common.Blocks;
-
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.MaterialsUEVplus;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.enums.TierEU;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-
-public class Unpackager implements Runnable {
-
- @Override
- public void run() {
-
- // TFFT Recycling
- {
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 1))
- .itemOutputs(
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CrudeSteel, 1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrudeSteel, 6))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 2))
- .itemOutputs(
- ItemList.Casing_Tank_1.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnergeticSilver, 6))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 3))
- .itemOutputs(
- ItemList.Casing_Tank_3.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VividAlloy, 6))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 4))
- .itemOutputs(
- ItemList.Casing_Tank_5.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Enderium, 6))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 5))
- .itemOutputs(
- ItemList.Casing_Tank_7.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.CrystallineAlloy, 6))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 6))
- .itemOutputs(
- ItemList.Casing_Tank_7.get(4),
- GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.CrystallinePinkSlime, 6))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 7))
- .itemOutputs(
- ItemList.Casing_Tank_10.get(16),
- GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, Materials.MelodicAlloy, 6))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 8))
- .itemOutputs(
- ItemList.Quantum_Tank_IV.get(1),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.StellarAlloy, 12))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 9))
- .itemOutputs(
- ItemList.Quantum_Tank_IV.get(4),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.TranscendentMetal, 12))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.tfftStorageField, 1, 10))
- .itemOutputs(
- ItemList.Quantum_Tank_IV.get(16),
- GT_OreDictUnificator.get(OrePrefixes.plateDense, MaterialsUEVplus.SpaceTime, 12))
- .duration(5 * SECONDS)
- .eut(TierEU.RECIPE_HV)
- .addTo(unpackagerRecipes);
-
- }
-
- // Capacitor recycling
- {
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7))
- .itemOutputs(
- GT_ModHandler.getIC2Item("lapotronCrystal", 1L, 26),
- new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1))
- .itemOutputs(ItemList.Energy_LapotronicOrb.get(1L), new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2))
- .itemOutputs(
- ItemList.Energy_LapotronicOrb2.get(1L),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3))
- .itemOutputs(
- ItemList.Energy_Module.get(1L),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4))
- .itemOutputs(
- ItemList.Energy_Cluster.get(1L),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5))
- .itemOutputs(
- ItemList.ZPM3.get(1L),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 8))
- .itemOutputs(ItemList.ZPM4.get(1L), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Infinity, 24))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 9))
- .itemOutputs(
- ItemList.ZPM5.get(1L),
- GT_OreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.TranscendentMetal, 24))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- GT_Values.RA.stdBuilder()
- .itemInputs(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 10))
- .itemOutputs(
- ItemList.ZPM6.get(1L),
- GT_OreDictUnificator.get(OrePrefixes.screw, MaterialsUEVplus.SpaceTime, 24))
- .duration(60 * SECONDS)
- .eut(TierEU.RECIPE_LV)
- .addTo(unpackagerRecipes);
-
- }
- }
-}
diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java
deleted file mode 100644
index 6a25474959..0000000000
--- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java
+++ /dev/null
@@ -1,1214 +0,0 @@
-package common.tileentities;
-
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.onlyIf;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.withChannel;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.EV_cap_storage;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.IV_cap_storage;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.LSC_time_between_wireless_rebalance_in_ticks;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.LSC_wireless_eu_cap;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.LuV_cap_storage;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.UEV_wireless_eu_cap;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.UIV_cap_storage;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.UIV_wireless_eu_cap;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.UMV_cap_storage;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.UMV_wireless_eu_cap;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.UV_cap_storage;
-import static common.itemBlocks.IB_LapotronicEnergyUnit.ZPM_cap_storage;
-import static gregtech.api.enums.GT_HatchElement.Maintenance;
-import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
-import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
-import static gregtech.api.util.GT_StructureUtility.filterByMTEClass;
-import static java.lang.Math.min;
-import static util.Util.toPercentageFrom;
-import static util.Util.toStandardForm;
-
-import java.math.BigInteger;
-import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Queue;
-import java.util.Set;
-import java.util.UUID;
-import java.util.function.Consumer;
-
-import net.minecraft.block.Block;
-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.nbt.NBTTagCompound;
-import net.minecraft.util.EnumChatFormatting;
-import net.minecraft.util.IChatComponent;
-import net.minecraft.util.StatCollector;
-import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import com.github.bartimaeusnek.bartworks.API.BorosilicateGlass;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoMulti;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_DynamoTunnel;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyMulti;
-import com.github.technus.tectech.thing.metaTileEntity.hatch.GT_MetaTileEntity_Hatch_EnergyTunnel;
-import com.google.common.collect.ImmutableList;
-import com.gtnewhorizon.structurelib.StructureLibAPI;
-import com.gtnewhorizon.structurelib.alignment.constructable.ChannelDataAccessor;
-import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
-import com.gtnewhorizon.structurelib.structure.IItemSource;
-import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
-import com.gtnewhorizon.structurelib.structure.IStructureElement;
-import com.gtnewhorizon.structurelib.structure.StructureUtility;
-import com.gtnewhorizon.structurelib.util.ItemStackPredicate.NBTMode;
-import com.gtnewhorizons.modularui.api.drawable.IDrawable;
-import com.gtnewhorizons.modularui.api.drawable.UITexture;
-import com.gtnewhorizons.modularui.api.screen.ModularWindow;
-import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
-import com.gtnewhorizons.modularui.common.widget.ButtonWidget;
-import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
-import common.Blocks;
-
-import client.gui.KT_UITextures;
-import gregtech.api.enums.Dyes;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.Textures.BlockIcons;
-import gregtech.api.gui.modularui.GT_UITextures;
-import gregtech.api.interfaces.IHatchElement;
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
-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_Maintenance;
-import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
-import gregtech.api.util.GT_Utility;
-import gregtech.api.util.IGT_HatchAdder;
-import gregtech.common.misc.WirelessNetworkManager;
-
-public class GTMTE_LapotronicSuperCapacitor
- extends GT_MetaTileEntity_EnhancedMultiBlockBase<GTMTE_LapotronicSuperCapacitor> implements ISurvivalConstructable {
-
- private enum TopState {
- MayBeTop,
- Top,
- NotTop
- }
-
- private boolean canUseWireless = false;
- private boolean wireless_mode = false;
- private boolean not_processed_lsc = true;
- private int counter = 1;
- private boolean balanced = false;
-
- private final Queue<Long> energyInputValues = new LinkedList<>();
- private final Queue<Long> energyOutputValues = new LinkedList<>();
-
- private final long max_passive_drain_eu_per_tick_per_uhv_cap = 1_000_000;
- private final long max_passive_drain_eu_per_tick_per_uev_cap = 100_000_000;
- private final long max_passive_drain_eu_per_tick_per_uiv_cap = (long) Math.pow(10, 10);
- private final long max_passive_drain_eu_per_tick_per_umv_cap = (long) Math.pow(10, 12);
-
- private enum Capacitor {
-
- IV(2, BigInteger.valueOf(IV_cap_storage)),
- LuV(3, BigInteger.valueOf(LuV_cap_storage)),
- ZPM(4, BigInteger.valueOf(ZPM_cap_storage)),
- UV(5, BigInteger.valueOf(UV_cap_storage)),
- UHV(6, MAX_LONG),
- None(0, BigInteger.ZERO),
- EV(1, BigInteger.valueOf(EV_cap_storage)),
- UEV(7, MAX_LONG),
- UIV(8, BigInteger.valueOf(UIV_cap_storage)),
- UMV(9, UMV_cap_storage);
-
- private final int minimalGlassTier;
- private final BigInteger providedCapacity;
- static final Capacitor[] VALUES = values();
- static final Capacitor[] VALUES_BY_TIER = Arrays.stream(values())
- .sorted(Comparator.comparingInt(Capacitor::getMinimalGlassTier))
- .toArray(Capacitor[]::new);
-
- Capacitor(int minimalGlassTier, BigInteger providedCapacity) {
- this.minimalGlassTier = minimalGlassTier;
- this.providedCapacity = providedCapacity;
- }
-
- public int getMinimalGlassTier() {
- return minimalGlassTier;
- }
-
- public BigInteger getProvidedCapacity() {
- return providedCapacity;
- }
-
- public static int getIndexFromGlassTier(int glassTier) {
- for (int index = 0; index < values().length; index++) {
- if (values()[index].getMinimalGlassTier() == glassTier) {
- return index;
- }
- }
- return -1;
- }
- }
-
- private static final String STRUCTURE_PIECE_BASE = "base";
- private static final String STRUCTURE_PIECE_LAYER = "slice";
- private static final String STRUCTURE_PIECE_TOP = "top";
- private static final String STRUCTURE_PIECE_MID = "mid";
- private static final int GLASS_TIER_UNSET = -2;
-
- private static final Block LSC_PART = Blocks.lscLapotronicEnergyUnit;
- private static final Item LSC_PART_ITEM = Item.getItemFromBlock(LSC_PART);
- private static final int CASING_META = 0;
- private static final int CASING_TEXTURE_ID = (42 << 7) | 127;
-
- private static final int DURATION_AVERAGE_TICKS = 100;
-
- // height channel for height.
- // glass channel for glass
- // capacitor channel for capacitor, but it really just pick whatever capacitor it can find in survival
- private static final IStructureDefinition<GTMTE_LapotronicSuperCapacitor> STRUCTURE_DEFINITION = IStructureDefinition
- .<GTMTE_LapotronicSuperCapacitor>builder()
- .addShape(
- STRUCTURE_PIECE_BASE,
- transpose(
- new String[][] { { "bbbbb", "bbbbb", "bbbbb", "bbbbb", "bbbbb", },
- { "bb~bb", "bbbbb", "bbbbb", "bbbbb", "bbbbb", }, }))
- .addShape(
- STRUCTURE_PIECE_LAYER,
- transpose(new String[][] { { "ggggg", "gcccg", "gcccg", "gcccg", "ggggg", }, }))
- .addShape(STRUCTURE_PIECE_TOP, transpose(new String[][] { { "ggggg", "ggggg", "ggggg", "ggggg", "ggggg", }, }))
- .addShape(STRUCTURE_PIECE_MID, transpose(new String[][] { { "ggggg", "gCCCg", "gCCCg", "gCCCg", "ggggg", }, }))
- .addElement(
- 'b',
- buildHatchAdder(GTMTE_LapotronicSuperCapacitor.class)
- .atLeast(LSCHatchElement.Energy, LSCHatchElement.Dynamo, Maintenance)
- .hatchItemFilterAnd(
- (t, h) -> ChannelDataAccessor.getChannelData(h, "glass") < 6
- ? filterByMTEClass(
- ImmutableList.of(
- GT_MetaTileEntity_Hatch_EnergyTunnel.class,
- GT_MetaTileEntity_Hatch_DynamoTunnel.class)).negate()
- : s -> true)
- .casingIndex(CASING_TEXTURE_ID)
- .dot(1)
- .buildAndChain(onElementPass(te -> te.casingAmount++, ofBlock(LSC_PART, CASING_META))))
- .addElement(
- 'g',
- withChannel(
- "glass",
- BorosilicateGlass
- .ofBoroGlass((byte) GLASS_TIER_UNSET, (te, t) -> te.glassTier = t, te -> te.glassTier)))
- .addElement(
- 'c',
- ofChain(
- onlyIf(
- te -> te.topState != TopState.NotTop,
- onElementPass(
- te -> te.topState = TopState.Top,
- withChannel(
- "glass",
- BorosilicateGlass.ofBoroGlass(
- (byte) GLASS_TIER_UNSET,
- (te, t) -> te.glassTier = t,
- te -> te.glassTier)))),
- onlyIf(
- te -> te.topState != TopState.Top,
- onElementPass(
- te -> te.topState = TopState.NotTop,
- new IStructureElement<GTMTE_LapotronicSuperCapacitor>() {
-
- @Override
- public boolean check(GTMTE_LapotronicSuperCapacitor t, World world, int x, int y, int z) {
- Block worldBlock = world.getBlock(x, y, z);
- int meta = worldBlock.getDamageValue(world, x, y, z);
- if (LSC_PART != worldBlock || meta == 0) return false;
- t.capacitors[meta - 1]++;
- return true;
- }
-
- private int getHint(ItemStack stack) {
- return Capacitor.VALUES_BY_TIER[Math.min(
- Capacitor.VALUES_BY_TIER.length,
- ChannelDataAccessor.getChannelData(stack, "capacitor")) - 1].getMinimalGlassTier()
- + 1;
- }
-
- @Override
- public boolean spawnHint(GTMTE_LapotronicSuperCapacitor t, World world, int x, int y, int z,
- ItemStack trigger) {
- StructureLibAPI.hintParticle(world, x, y, z, LSC_PART, getHint(trigger));
- return true;
- }
-
- @Override
- public boolean placeBlock(GTMTE_LapotronicSuperCapacitor t, World world, int x, int y,
- int z, ItemStack trigger) {
- world.setBlock(x, y, z, LSC_PART, getHint(trigger), 3);
- return true;
- }
-
- @Override
- public PlaceResult survivalPlaceBlock(GTMTE_LapotronicSuperCapacitor t, World world, int x,
- int y, int z, ItemStack trigger, IItemSource source, EntityPlayerMP actor,
- Consumer<IChatComponent> chatter) {
- if (check(t, world, x, y, z)) return PlaceResult.SKIP;
- int glassTier = ChannelDataAccessor.getChannelData(trigger, "glass") + 2;
- ItemStack targetStack = source
- .takeOne(
- s -> s != null && s.stackSize >= 0
- && s.getItem() == LSC_PART_ITEM
- && Capacitor.VALUES[Math.min(s.getItemDamage(), Capacitor.VALUES.length)
- - 1].getMinimalGlassTier() > glassTier,
- true);
- if (targetStack == null) return PlaceResult.REJECT;
- return StructureUtility.survivalPlaceBlock(
- targetStack,
- NBTMode.EXACT,
- targetStack.stackTagCompound,
- true,
- world,
- x,
- y,
- z,
- source,
- actor,
- chatter);
- }
- }))))
- .addElement('C', ofBlock(LSC_PART, 1))
- .build();
-
- private static final BigInteger MAX_LONG = BigInteger.valueOf(Long.MAX_VALUE);
-
- private final Set<GT_MetaTileEntity_Hatch_EnergyMulti> mEnergyHatchesTT = new HashSet<>();
- private final Set<GT_MetaTileEntity_Hatch_DynamoMulti> mDynamoHatchesTT = new HashSet<>();
- private final Set<GT_MetaTileEntity_Hatch_EnergyTunnel> mEnergyTunnelsTT = new HashSet<>();
- private final Set<GT_MetaTileEntity_Hatch_DynamoTunnel> mDynamoTunnelsTT = new HashSet<>();
- /**
- * Count the amount of capacitors of each tier in each slot. Index = meta - 1
- */
- private final int[] capacitors = new int[10];
-
- private BigInteger capacity = BigInteger.ZERO;
- private BigInteger stored = BigInteger.ZERO;
- private long passiveDischargeAmount = 0;
- private long inputLastTick = 0;
- private long outputLastTick = 0;
- private int repairStatusCache = 0;
-
- private byte glassTier = -1;
- private int casingAmount = 0;
- private TopState topState = TopState.MayBeTop;
-
- private long mMaxEUIn = 0;
- private long mMaxEUOut = 0;
-
- public GTMTE_LapotronicSuperCapacitor(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional);
- }
-
- public GTMTE_LapotronicSuperCapacitor(String aName) {
- super(aName);
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity var1) {
- return new GTMTE_LapotronicSuperCapacitor(super.mName);
- }
-
- @Override
- public IStructureDefinition<GTMTE_LapotronicSuperCapacitor> getStructureDefinition() {
- return STRUCTURE_DEFINITION;
- }
-
- private void processInputHatch(GT_MetaTileEntity_Hatch aHatch, int aBaseCasingIndex) {
- mMaxEUIn += aHatch.maxEUInput() * aHatch.maxAmperesIn();
- aHatch.updateTexture(aBaseCasingIndex);
- }
-
- private void processOutputHatch(GT_MetaTileEntity_Hatch aHatch, int aBaseCasingIndex) {
- mMaxEUOut += aHatch.maxEUOutput() * aHatch.maxAmperesOut();
- aHatch.updateTexture(aBaseCasingIndex);
- }
-
- private boolean addBottomHatches(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
- if (aTileEntity == null || aTileEntity.isDead()) return false;
- IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
- if (!(aMetaTileEntity instanceof GT_MetaTileEntity_Hatch)) return false;
- if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) {
- ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex);
- return GTMTE_LapotronicSuperCapacitor.this.mMaintenanceHatches
- .add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) {
- // Add GT hatches
- final GT_MetaTileEntity_Hatch_Energy tHatch = ((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity);
- processInputHatch(tHatch, aBaseCasingIndex);
- return mEnergyHatches.add(tHatch);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyTunnel) {
- // Add TT Laser hatches
- final GT_MetaTileEntity_Hatch_EnergyTunnel tHatch = ((GT_MetaTileEntity_Hatch_EnergyTunnel) aMetaTileEntity);
- processInputHatch(tHatch, aBaseCasingIndex);
- return mEnergyTunnelsTT.add(tHatch);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_EnergyMulti) {
- // Add TT hatches
- final GT_MetaTileEntity_Hatch_EnergyMulti tHatch = (GT_MetaTileEntity_Hatch_EnergyMulti) aMetaTileEntity;
- processInputHatch(tHatch, aBaseCasingIndex);
- return mEnergyHatchesTT.add(tHatch);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) {
- // Add GT hatches
- final GT_MetaTileEntity_Hatch_Dynamo tDynamo = (GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity;
- processOutputHatch(tDynamo, aBaseCasingIndex);
- return mDynamoHatches.add(tDynamo);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoTunnel) {
- // Add TT Laser hatches
- final GT_MetaTileEntity_Hatch_DynamoTunnel tDynamo = (GT_MetaTileEntity_Hatch_DynamoTunnel) aMetaTileEntity;
- processOutputHatch(tDynamo, aBaseCasingIndex);
- return mDynamoTunnelsTT.add(tDynamo);
- } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_DynamoMulti) {
- // Add TT hatches
- final GT_MetaTileEntity_Hatch_DynamoMulti tDynamo = (GT_MetaTileEntity_Hatch_DynamoMulti) aMetaTileEntity;
- processOutputHatch(tDynamo, aBaseCasingIndex);
- return mDynamoHatchesTT.add(tDynamo);
- }
- return false;
- }
-
- private int getUHVCapacitorCount() {
- return capacitors[4];
- }
-
- private int getUEVCapacitorCount() {
- return capacitors[7];
- }
-
- private int getUIVCapacitorCount() {
- return capacitors[8];
- }
-
- private int getUMVCapacitorCount() {
- return capacitors[9];
- }
-
- private int wirelessCapableCapacitors() {
- return capacitors[4] + capacitors[7] + capacitors[8] + capacitors[9];
- }
-
- @Override
- protected GT_Multiblock_Tooltip_Builder createTooltip() {
- final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
- tt.addMachineType("Energy Storage")
- .addInfo("Loses energy equal to 1% of the total capacity every 24 hours.")
- .addInfo(
- "Capped at " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(max_passive_drain_eu_per_tick_per_uhv_cap)
- + EnumChatFormatting.GRAY
- + " EU/t passive loss per "
- + GT_Values.TIER_COLORS[9]
- + GT_Values.VN[9]
- + EnumChatFormatting.GRAY
- + " capacitor.")
- .addInfo(
- "The passive loss increases " + EnumChatFormatting.DARK_RED
- + "100"
- + EnumChatFormatting.GRAY
- + "-fold"
- + " for every capacitor tier above.")
- .addInfo("Passive loss is multiplied by the number of maintenance issues present.")
- .addSeparator()
- .addInfo("Glass shell has to be Tier - 3 of the highest capacitor tier.")
- .addInfo(
- GT_Values.TIER_COLORS[8] + GT_Values.VN[8]
- + EnumChatFormatting.GRAY
- + "-tier glass required for "
- + EnumChatFormatting.BLUE
- + "Tec"
- + EnumChatFormatting.DARK_BLUE
- + "Tech"
- + EnumChatFormatting.GRAY
- + " Laser Hatches.")
- .addInfo("Add more or better capacitors to increase capacity.")
- .addSeparator()
- .addInfo("Wireless mode can be enabled by right clicking with a screwdriver.")
- .addInfo(
- "This mode can only be enabled if you have a " + GT_Values.TIER_COLORS[9]
- + GT_Values.VN[9]
- + EnumChatFormatting.GRAY
- + "+ capacitor in the multiblock.")
- .addInfo(
- "When enabled every " + EnumChatFormatting.BLUE
- + GT_Utility.formatNumbers(LSC_time_between_wireless_rebalance_in_ticks)
- + EnumChatFormatting.GRAY
- + " ticks the LSC will attempt to re-balance against your")
- .addInfo("wireless EU network.")
- .addInfo(
- "If there is less than " + EnumChatFormatting.RED
- + GT_Utility.formatNumbers(LSC_wireless_eu_cap)
- + EnumChatFormatting.GRAY
- + "("
- + GT_Values.TIER_COLORS[9]
- + GT_Values.VN[9]
- + EnumChatFormatting.GRAY
- + ") EU in the LSC")
- .addInfo("it will withdraw from the network and add to the LSC.")
- .addInfo("If there is more it will add the EU to the network and remove it from the LSC.")
- .addInfo(
- "The threshold increases " + EnumChatFormatting.DARK_RED
- + "100"
- + EnumChatFormatting.GRAY
- + "-fold"
- + " for every capacitor tier above.")
- .addSeparator()
- .beginVariableStructureBlock(5, 5, 4, 50, 5, 5, false)
- .addStructureInfo("Modular height of 4-50 blocks.")
- .addController("Front center bottom")
- .addOtherStructurePart("Lapotronic Super Capacitor Casing", "5x2x5 base (at least 17x)")
- .addOtherStructurePart(
- "Lapotronic Capacitor (" + GT_Values.TIER_COLORS[4]
- + GT_Values.VN[4]
- + EnumChatFormatting.GRAY
- + "-"
- + GT_Values.TIER_COLORS[8]
- + GT_Values.VN[8]
- + EnumChatFormatting.GRAY
- + "), Ultimate Capacitor ("
- + GT_Values.TIER_COLORS[9]
- + GT_Values.VN[9]
- + EnumChatFormatting.GRAY
- + "-"
- + GT_Values.TIER_COLORS[12]
- + GT_Values.VN[12]
- + EnumChatFormatting.GRAY
- + ")",
- "Center 3x(1-47)x3 above base (9-423 blocks)")
- .addStructureInfo(
- "You can also use the Empty Capacitor to save materials if you use it for less than half the blocks")
- .addOtherStructurePart("Borosilicate Glass (any)", "41-777x, Encase capacitor pillar")
- .addEnergyHatch("Any casing")
- .addDynamoHatch("Any casing")
- .addOtherStructurePart(
- "Laser Target/Source Hatches",
- "Any casing, must be using " + GT_Values.TIER_COLORS[8]
- + GT_Values.VN[8]
- + EnumChatFormatting.GRAY
- + "-tier glass")
- .addStructureInfo("You can have several I/O Hatches")
- .addSubChannelUsage("glass", "Borosilicate Glass Tier")
- .addSubChannelUsage("capacitor", "Maximum Capacitor Tier")
- .addSubChannelUsage("height", "Height of structure")
- .addMaintenanceHatch("Any casing")
- .toolTipFinisher("KekzTech");
- return tt;
- }
-
- @Override
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side,
- ForgeDirection forgeDirectionacing, int colorIndex, boolean aActive, boolean aRedstone) {
- ITexture[] sTexture = new ITexture[] {
- TextureFactory.of(BlockIcons.MACHINE_CASING_FUSION_GLASS, Dyes.getModulation(-1, Dyes._NULL.mRGBa)) };
- if (side == forgeDirectionacing && aActive) {
- sTexture = new ITexture[] { TextureFactory
- .of(BlockIcons.MACHINE_CASING_FUSION_GLASS_YELLOW, Dyes.getModulation(-1, Dyes._NULL.mRGBa)) };
- }
- return sTexture;
- }
-
- private UUID global_energy_user_uuid;
-
- @Override
- public void onPreTick(IGregTechTileEntity tileEntity, long aTick) {
- super.onPreTick(tileEntity, aTick);
-
- // On first tick (aTick restarts from 0 upon world reload).
- if (not_processed_lsc && tileEntity.isServerSide()) {
- // Add user to wireless network.
- WirelessNetworkManager.strongCheckOrAddUser(tileEntity.getOwnerUuid());
-
- // Get team UUID.
- global_energy_user_uuid = tileEntity.getOwnerUuid();
-
- not_processed_lsc = false;
- }
- }
-
- @Override
- public boolean isCorrectMachinePart(ItemStack stack) {
- return true;
- }
-
- @Override
- public boolean checkRecipe(ItemStack stack) {
- this.mProgresstime = 1;
- this.mMaxProgresstime = 1;
- this.mEUt = 0;
- this.mEfficiencyIncrease = 10000;
- return true;
- }
-
- @Override
- public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) {
- WirelessNetworkManager.strongCheckOrAddUser(thisController.getOwnerUuid());
-
- // Reset capacitor counts
- Arrays.fill(capacitors, 0);
- // Clear TT hatches
- mEnergyHatchesTT.clear();
- mDynamoHatchesTT.clear();
- mEnergyTunnelsTT.clear();
- mDynamoTunnelsTT.clear();
-
- mMaxEUIn = 0;
- mMaxEUOut = 0;
-
- glassTier = GLASS_TIER_UNSET;
- casingAmount = 0;
-
- if (!checkPiece(STRUCTURE_PIECE_BASE, 2, 1, 0)) return false;
-
- if (casingAmount < 17) return false;
-
- topState = TopState.NotTop; // need at least one layer of capacitor to form, obviously
- int layer = 2;
- while (true) {
- if (!checkPiece(STRUCTURE_PIECE_LAYER, 2, layer, 0)) return false;
- layer++;
- if (topState == TopState.Top) break; // top found, break out
- topState = TopState.MayBeTop;
- if (layer > 50) return false; // too many layers
- }
-
- // Make sure glass tier is T-2 of the highest tier capacitor in the structure
- // Count down from the highest tier until an entry is found
- // Borosilicate glass after 5 are just recolours of 0
- for (int highestGlassTier = capacitors.length - 1; highestGlassTier >= 0; highestGlassTier--) {
- int highestCapacitor = Capacitor.getIndexFromGlassTier(highestGlassTier);
- if (capacitors[highestCapacitor] > 0) {
- if (Capacitor.VALUES[highestCapacitor].getMinimalGlassTier() > glassTier) return false;
- break;
- }
- }
-
- // Glass has to be at least UV-tier to allow TT Laser hatches
- if (glassTier < 8) {
- if (mEnergyTunnelsTT.size() > 0 || mDynamoTunnelsTT.size() > 0) return false;
- }
-
- // Check if enough (more than 50%) non-empty caps
- if (capacitors[5] > capacitors[0] + capacitors[1]
- + capacitors[2]
- + capacitors[3]
- + getUHVCapacitorCount()
- + capacitors[6]
- + getUEVCapacitorCount()
- + getUIVCapacitorCount()
- + getUMVCapacitorCount()) return false;
-
- // Calculate total capacity
- capacity = BigInteger.ZERO;
- for (int i = 0; i < capacitors.length; i++) {
- int count = capacitors[i];
- capacity = capacity.add(
- Capacitor.VALUES[i].getProvidedCapacity()
- .multiply(BigInteger.valueOf(count)));
- }
- // Calculate how much energy to void each tick
- passiveDischargeAmount = recalculateLossWithMaintenance(getRepairStatus());
- return mMaintenanceHatches.size() == 1;
- }
-
- @Override
- public void construct(ItemStack stackSize, boolean hintsOnly) {
- int layer = min(stackSize.stackSize + 3, 50);
- buildPiece(STRUCTURE_PIECE_BASE, stackSize, hintsOnly, 2, 1, 0);
- for (int i = 2; i < layer - 1; i++) buildPiece(STRUCTURE_PIECE_MID, stackSize, hintsOnly, 2, i, 0);
- buildPiece(STRUCTURE_PIECE_TOP, stackSize, hintsOnly, 2, layer - 1, 0);
- }
-
- @Override
- public int survivalConstruct(ItemStack stackSize, int elementBudget, IItemSource source, EntityPlayerMP actor) {
- if (mMachine) return -1;
- int layer = Math.min(ChannelDataAccessor.getChannelData(stackSize, "height") + 3, 50);
- int built;
- built = survivialBuildPiece(
- STRUCTURE_PIECE_BASE,
- stackSize,
- 2,
- 1,
- 0,
- elementBudget,
- source,
- actor,
- false,
- true);
- if (built >= 0) return built;
- for (int i = 2; i < layer - 1; i++) built = survivialBuildPiece(
- STRUCTURE_PIECE_MID,
- stackSize,
- 2,
- i,
- 0,
- elementBudget,
- source,
- actor,
- false,
- true);
- if (built >= 0) return built;
- return survivialBuildPiece(
- STRUCTURE_PIECE_TOP,
- stackSize,
- 2,
- layer - 1,
- 0,
- elementBudget,
- source,
- actor,
- false,
- true);
- }
-
- @Override
- public boolean onRunningTick(ItemStack stack) {
- // Reset I/O cache
- inputLastTick = 0;
- outputLastTick = 0;
-
- long temp_stored = 0L;
-
- // Draw energy from GT hatches
- for (GT_MetaTileEntity_Hatch_Energy eHatch : super.mEnergyHatches) {
- if (eHatch == null || !eHatch.isValid()) {
- continue;
- }
- final long power = getPowerToDraw(eHatch.maxEUInput() * eHatch.maxAmperesIn());
- if (eHatch.getEUVar() >= power) {
- eHatch.setEUVar(eHatch.getEUVar() - power);
- temp_stored += power;
- inputLastTick += power;
- }
- }
-
- // Output energy to GT hatches
- for (GT_MetaTileEntity_Hatch_Dynamo eDynamo : super.mDynamoHatches) {
- if (eDynamo == null || !eDynamo.isValid()) {
- continue;
- }
- final long power = getPowerToPush(eDynamo.maxEUOutput() * eDynamo.maxAmperesOut());
- if (power <= eDynamo.maxEUStore() - eDynamo.getEUVar()) {
- eDynamo.setEUVar(eDynamo.getEUVar() + power);
- temp_stored -= power;
- outputLastTick += power;
- }
- }
-
- // Draw energy from TT hatches
- for (GT_MetaTileEntity_Hatch_EnergyMulti eHatch : mEnergyHatchesTT) {
- if (eHatch == null || !eHatch.isValid()) {
- continue;
- }
- final long power = getPowerToDraw(eHatch.maxEUInput() * eHatch.maxAmperesIn());
- if (eHatch.getEUVar() >= power) {
- eHatch.setEUVar(eHatch.getEUVar() - power);
- temp_stored += power;
- inputLastTick += power;
- }
- }
-
- // Output energy to TT hatches
- for (GT_MetaTileEntity_Hatch_DynamoMulti eDynamo : mDynamoHatchesTT) {
- if (eDynamo == null || !eDynamo.isValid()) {
- continue;
- }
- final long power = getPowerToPush(eDynamo.maxEUOutput() * eDynamo.maxAmperesOut());
- if (power <= eDynamo.maxEUStore() - eDynamo.getEUVar()) {
- eDynamo.setEUVar(eDynamo.getEUVar() + power);
- temp_stored -= power;
- outputLastTick += power;
- }
- }
-
- // Draw energy from TT Laser hatches
- for (GT_MetaTileEntity_Hatch_EnergyTunnel eHatch : mEnergyTunnelsTT) {
- if (eHatch == null || !eHatch.isValid()) {
- continue;
- }
- final long ttLaserWattage = eHatch.maxEUInput() * eHatch.Amperes - (eHatch.Amperes / 20);
- final long power = getPowerToDraw(ttLaserWattage);
- if (eHatch.getEUVar() >= power) {
- eHatch.setEUVar(eHatch.getEUVar() - power);
- temp_stored += power;
- inputLastTick += power;
- }
- }
-
- // Output energy to TT Laser hatches
- for (GT_MetaTileEntity_Hatch_DynamoTunnel eDynamo : mDynamoTunnelsTT) {
- if (eDynamo == null || !eDynamo.isValid()) {
- continue;
- }
- final long ttLaserWattage = eDynamo.maxEUOutput() * eDynamo.Amperes - (eDynamo.Amperes / 20);
- final long power = getPowerToPush(ttLaserWattage);
- if (power <= eDynamo.maxEUStore() - eDynamo.getEUVar()) {
- eDynamo.setEUVar(eDynamo.getEUVar() + power);
- temp_stored -= power;
- outputLastTick += power;
- }
- }
-
- if (wirelessCapableCapacitors() <= 0) {
- wireless_mode = false;
- }
-
- // Every LSC_time_between_wireless_rebalance_in_ticks check against wireless network for re-balancing.
- counter++;
- if (wireless_mode && (counter >= LSC_time_between_wireless_rebalance_in_ticks)) {
-
- // Reset tick counter.
- counter = rebalance();
- }
-
- // Lose some energy.
- // Re-calculate if the repair status changed.
- if (super.getRepairStatus() != repairStatusCache) {
- passiveDischargeAmount = recalculateLossWithMaintenance(super.getRepairStatus());
- }
-
- // This will break if you transfer more than 2^63 EU/t, so don't do that. Thanks <3
- temp_stored -= passiveDischargeAmount;
- stored = stored.add(BigInteger.valueOf(temp_stored));
-
- // Check that the machine has positive EU stored.
- stored = (stored.compareTo(BigInteger.ZERO) <= 0) ? BigInteger.ZERO : stored;
-
- IGregTechTileEntity tBMTE = this.getBaseMetaTileEntity();
-
- tBMTE.injectEnergyUnits(ForgeDirection.UNKNOWN, inputLastTick, 1L);
- tBMTE.drainEnergyUnits(ForgeDirection.UNKNOWN, outputLastTick, 1L);
-
- // Add I/O values to Queues
- if (energyInputValues.size() > DURATION_AVERAGE_TICKS) {
- energyInputValues.remove();
- }
- energyInputValues.offer(inputLastTick);
-
- if (energyOutputValues.size() > DURATION_AVERAGE_TICKS) {
- energyOutputValues.remove();
- }
-
- energyOutputValues.offer(outputLastTick);
-
- return true;
- }
-
- private int rebalance() {
-
- balanced = true;
-
- // Find difference.
- BigInteger transferred_eu = stored.subtract(
- (LSC_wireless_eu_cap.multiply(BigInteger.valueOf(getUHVCapacitorCount())))
- .add(UEV_wireless_eu_cap.multiply(BigInteger.valueOf(getUEVCapacitorCount())))
- .add(UIV_wireless_eu_cap.multiply(BigInteger.valueOf(getUIVCapacitorCount())))
- .add(UMV_wireless_eu_cap.multiply(BigInteger.valueOf(getUMVCapacitorCount()))));
-
- if (transferred_eu.signum() == 1) {
- inputLastTick += transferred_eu.longValue();
- } else {
- outputLastTick += transferred_eu.longValue();
- }
-
- // If that difference can be added then do so.
- if (WirelessNetworkManager.addEUToGlobalEnergyMap(global_energy_user_uuid, transferred_eu)) {
- // If it succeeds there was sufficient energy so set the internal capacity as such.
- stored = LSC_wireless_eu_cap.multiply(BigInteger.valueOf(getUHVCapacitorCount()))
- .add(
- UEV_wireless_eu_cap.multiply(BigInteger.valueOf(getUEVCapacitorCount()))
- .add(UIV_wireless_eu_cap.multiply(BigInteger.valueOf(getUIVCapacitorCount())))
- .add(UMV_wireless_eu_cap.multiply(BigInteger.valueOf(getUMVCapacitorCount()))));
- }
-
- return 1;
- }
-
- /**
- * To be called whenever the maintenance status changes or the capacity was recalculated
- *
- * @param repairStatus This machine's repair status
- * @return new BigInteger instance for passiveDischargeAmount
- */
- private long recalculateLossWithMaintenance(int repairStatus) {
- repairStatusCache = repairStatus;
-
- long temp_capacity_divided = 0;
-
- if (wirelessCapableCapacitors() == 0) {
- temp_capacity_divided = capacity.divide(BigInteger.valueOf(100L * 86400L * 20L))
- .longValue();
- }
-
- // Passive loss is multiplied by number of UHV+ caps. Minimum of 1 otherwise loss is 0 for non-UHV+ caps
- // calculations.
- if (wirelessCapableCapacitors() != 0) {
- temp_capacity_divided = getUHVCapacitorCount() * max_passive_drain_eu_per_tick_per_uhv_cap
- + getUEVCapacitorCount() * max_passive_drain_eu_per_tick_per_uev_cap
- + getUIVCapacitorCount() * max_passive_drain_eu_per_tick_per_uiv_cap
- + getUMVCapacitorCount() * max_passive_drain_eu_per_tick_per_umv_cap;
- }
-
- // Passive loss is multiplied by number of maintenance issues.
- long total_passive_loss = temp_capacity_divided * (getIdealStatus() - repairStatus + 1);
-
- // Maximum of 100,000 EU/t drained per UHV cell. The logic is 1% of EU capacity should be drained every 86400
- // seconds (1 day).
- return total_passive_loss;
- }
-
- /**
- * Calculate how much EU to draw from an Energy Hatch
- *
- * @param hatchWatts Hatch amperage * voltage
- * @return EU amount
- */
- private long getPowerToDraw(long hatchWatts) {
- final BigInteger remcapActual = capacity.subtract(stored);
- final BigInteger recampLimited = (MAX_LONG.compareTo(remcapActual) > 0) ? remcapActual : MAX_LONG;
- return min(hatchWatts, recampLimited.longValue());
- }
-
- /**
- * Calculate how much EU to push into a Dynamo Hatch
- *
- * @param hatchWatts Hatch amperage * voltage
- * @return EU amount
- */
- private long getPowerToPush(long hatchWatts) {
- final BigInteger remStoredLimited = (MAX_LONG.compareTo(stored) > 0) ? stored : MAX_LONG;
- return min(hatchWatts, remStoredLimited.longValue());
- }
-
- private long getAvgIn() {
- long sum = 0L;
- for (long l : energyInputValues) {
- sum += l;
- }
- return sum / Math.max(energyInputValues.size(), 1);
- }
-
- private long getAvgOut() {
- long sum = 0L;
- for (long l : energyOutputValues) {
- sum += l;
- }
- return sum / Math.max(energyOutputValues.size(), 1);
- }
-
- @Override
- public String[] getInfoData() {
- NumberFormat nf = NumberFormat.getNumberInstance();
- int secInterval = DURATION_AVERAGE_TICKS / 20;
-
- // Caching avgin and avgout
- double avgIn = getAvgIn();
- double avgOut = getAvgOut();
-
- final ArrayList<String> ll = new ArrayList<>();
- ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET);
- ll.add("EU Stored: " + nf.format(stored) + " EU");
- ll.add("EU Stored: " + toStandardForm(stored) + " EU");
- ll.add("Used Capacity: " + toPercentageFrom(stored, capacity));
- ll.add("Total Capacity: " + nf.format(capacity) + " EU");
- ll.add("Total Capacity: " + toStandardForm(capacity) + " EU");
- ll.add("Passive Loss: " + nf.format(passiveDischargeAmount) + " EU/t");
- ll.add("EU IN: " + GT_Utility.formatNumbers(inputLastTick) + " EU/t");
- ll.add("EU OUT: " + GT_Utility.formatNumbers(outputLastTick) + " EU/t");
- ll.add("Avg EU IN: " + nf.format(avgIn) + " (last " + secInterval + " seconds)");
- ll.add("Avg EU OUT: " + nf.format(avgOut) + " (last " + secInterval + " seconds)");
-
- // Check if the system is charging or discharging
- if (avgIn > avgOut) {
- // Calculate time to full if charging
- if (avgIn != 0) {
- double timeToFull = (capacity.longValue() - stored.longValue()) / avgIn / 20;
- String timeToFullString = formatTime(timeToFull);
- ll.add("Time to Full: " + timeToFullString);
- }
- } else {
- // Calculate time to empty if discharging
- if (avgOut != 0) {
- double timeToEmpty = stored.longValue() / avgOut / 20;
- String timeToEmptyString = formatTime(timeToEmpty);
- ll.add("Time to Empty: " + timeToEmptyString);
- }
- }
- ll.add(
- "Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus())
- ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET
- : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET));
- ll.add(
- "Wireless mode: " + (wireless_mode ? EnumChatFormatting.GREEN + "enabled" + EnumChatFormatting.RESET
- : EnumChatFormatting.RED + "disabled" + EnumChatFormatting.RESET));
- ll.add(
- GT_Values.TIER_COLORS[9] + GT_Values.VN[9]
- + EnumChatFormatting.RESET
- + " Capacitors detected: "
- + getUHVCapacitorCount());
- ll.add(
- GT_Values.TIER_COLORS[10] + GT_Values.VN[10]
- + EnumChatFormatting.RESET
- + " Capacitors detected: "
- + getUEVCapacitorCount());
- ll.add(
- GT_Values.TIER_COLORS[11] + GT_Values.VN[11]
- + EnumChatFormatting.RESET
- + " Capacitors detected: "
- + getUIVCapacitorCount());
- ll.add(
- GT_Values.TIER_COLORS[12] + GT_Values.VN[12]
- + EnumChatFormatting.RESET
- + " Capacitors detected: "
- + getUMVCapacitorCount());
- ll.add(
- "Total wireless EU: " + EnumChatFormatting.RED
- + nf.format(WirelessNetworkManager.getUserEU(global_energy_user_uuid))
- + " EU");
- ll.add(
- "Total wireless EU: " + EnumChatFormatting.RED
- + toStandardForm(WirelessNetworkManager.getUserEU(global_energy_user_uuid))
- + " EU");
-
- final String[] a = new String[ll.size()];
- return ll.toArray(a);
- }
-
- // Method to format time in seconds, minutes, days, and years
- private String formatTime(double time) {
- if (time < 1) {
- return "Completely " + (time < 0 ? "empty" : "full");
- } else if (time < 60) {
- return String.format("%.2f seconds", time);
- } else if (time < 3600) {
- return String.format("%.2f minutes", time / 60);
- } else if (time < 86400) {
- return String.format("%.2f hours", time / 3600);
- } else if (time < 31536000) {
- return String.format("%.2f days", time / 86400);
- } else {
- return String.format("%.2f years", time / 31536000);
- }
- }
-
- @Override
- public void saveNBTData(NBTTagCompound nbt) {
- nbt = (nbt == null) ? new NBTTagCompound() : nbt;
-
- nbt.setByteArray("capacity", capacity.toByteArray());
- nbt.setByteArray("stored", stored.toByteArray());
- nbt.setBoolean("wireless_mode", wireless_mode);
- nbt.setInteger("wireless_mode_cooldown", counter);
-
- super.saveNBTData(nbt);
- }
-
- @Override
- public void loadNBTData(NBTTagCompound nbt) {
- nbt = (nbt == null) ? new NBTTagCompound() : nbt;
-
- capacity = new BigInteger(nbt.getByteArray("capacity"));
- stored = new BigInteger(nbt.getByteArray("stored"));
- wireless_mode = nbt.getBoolean("wireless_mode");
- counter = nbt.getInteger("wireless_mode_cooldown");
-
- super.loadNBTData(nbt);
- }
-
- @Override
- public boolean isGivingInformation() {
- return true;
- }
-
- @Override
- public int getMaxEfficiency(ItemStack stack) {
- return 10000;
- }
-
- @Override
- public int getPollutionPerTick(ItemStack stack) {
- return 0;
- }
-
- @Override
- public int getDamageToComponent(ItemStack stack) {
- return 0;
- }
-
- @Override
- public boolean explodesOnComponentBreak(ItemStack stack) {
- return false;
- }
-
- // called by the getEUCapacity() function in BaseMetaTileEntity
- @Override
- public long maxEUStore() {
- return capacity.longValue();
- }
-
- // called by the getEUStored() function in BaseMetaTileEntity
- @Override
- public long getEUVar() {
- return stored.longValue();
- }
-
- /*
- * all of these are needed for the injectEnergyUnits() and drainEnergyUnits() in IGregTechTileEntity
- */
- @Override
- public long maxEUInput() {
- if (wireless_mode) {
- return Long.MAX_VALUE;
- } else {
- return mMaxEUIn;
- }
- }
-
- @Override
- public long maxAmperesIn() {
- return 1L;
- }
-
- @Override
- public long maxEUOutput() {
- if (wireless_mode) {
- return Long.MAX_VALUE;
- } else {
- return mMaxEUOut;
- }
- }
-
- @Override
- public long maxAmperesOut() {
- return 1L;
- }
-
- @Override
- public boolean isEnetInput() {
- return true;
- }
-
- @Override
- public boolean isEnetOutput() {
- return true;
- }
-
- protected boolean canUseWireless() {
- return wirelessCapableCapacitors() != 0;
- }
-
- @Override
- public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- if (canUseWireless()) {
- wireless_mode = !wireless_mode;
- GT_Utility.sendChatToPlayer(aPlayer, "Wireless network mode " + (wireless_mode ? "enabled." : "disabled."));
- } else {
- GT_Utility.sendChatToPlayer(
- aPlayer,
- "Wireless mode cannot be enabled without at least 1 " + GT_Values.TIER_COLORS[9]
- + GT_Values.VN[9]
- + EnumChatFormatting.RESET
- + "+ capacitor.");
- wireless_mode = false;
- }
- }
-
- @Override
- public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) {
- super.addUIWidgets(builder, buildContext);
- builder.widget(new ButtonWidget().setOnClick((clickData, widget) -> {
- if (!widget.isClient()) {
- canUseWireless = canUseWireless();
- }
- if (canUseWireless) {
- wireless_mode = !wireless_mode;
- }
- })
- .setPlayClickSound(true)
- .setBackground(() -> {
- List<UITexture> ret = new ArrayList<>();
- ret.add(GT_UITextures.BUTTON_STANDARD);
- if (canUseWireless) {
- if (wireless_mode) {
- ret.add(KT_UITextures.OVERLAY_BUTTON_WIRELESS_ON);
- } else {
- ret.add(KT_UITextures.OVERLAY_BUTTON_WIRELESS_OFF);
- }
- } else {
- ret.add(KT_UITextures.OVERLAY_BUTTON_WIRELESS_OFF_DISABLED);
- }
- return ret.toArray(new IDrawable[0]);
- })
- .setPos(80, 91)
- .setSize(16, 16)
- .addTooltip(StatCollector.translateToLocal("gui.kekztech_lapotronicenergyunit.wireless"))
- .setTooltipShowUpDelay(TOOLTIP_DELAY))
- .widget(new FakeSyncWidget.BooleanSyncer(() -> wireless_mode, val -> wireless_mode = val))
- .widget(new FakeSyncWidget.BooleanSyncer(this::canUseWireless, val -> canUseWireless = val))
- .widget(new ButtonWidget().setOnClick((clickData, widget) -> {
- if (mMachine && wireless_mode && canUseWireless && !balanced) {
- counter = rebalance();
- }
- })
- .setPlayClickSound(true)
- .setBackground(() -> {
- List<UITexture> ret = new ArrayList<>();
- ret.add(GT_UITextures.BUTTON_STANDARD);
- ret.add(KT_UITextures.OVERLAY_BUTTON_WIRELESS_REBALANCE);
- return ret.toArray(new IDrawable[0]);
- })
- .setPos(98, 91)
- .setSize(16, 16)
- .setEnabled((widget) -> wireless_mode && canUseWireless && !balanced)
- .addTooltip(StatCollector.translateToLocal("gui.kekztech_lapotronicenergyunit.wireless_rebalance"))
- .setTooltipShowUpDelay(TOOLTIP_DELAY));
- }
-
- private enum LSCHatchElement implements IHatchElement<GTMTE_LapotronicSuperCapacitor> {
-
- Energy(GT_MetaTileEntity_Hatch_EnergyMulti.class, GT_MetaTileEntity_Hatch_Energy.class) {
-
- @Override
- public long count(GTMTE_LapotronicSuperCapacitor t) {
- return t.mEnergyHatches.size() + t.mEnergyHatchesTT.size() + t.mEnergyTunnelsTT.size();
- }
- },
- Dynamo(GT_MetaTileEntity_Hatch_DynamoMulti.class, GT_MetaTileEntity_Hatch_Dynamo.class) {
-
- @Override
- public long count(GTMTE_LapotronicSuperCapacitor t) {
- return t.mDynamoHatches.size() + t.mDynamoHatchesTT.size() + t.mDynamoTunnelsTT.size();
- }
- },;
-
- private final List<? extends Class<? extends IMetaTileEntity>> mteClasses;
-
- @SafeVarargs
- LSCHatchElement(Class<? extends IMetaTileEntity>... mteClasses) {
- this.mteClasses = Arrays.asList(mteClasses);
- }
-
- @Override
- public List<? extends Class<? extends IMetaTileEntity>> mteClasses() {
- return mteClasses;
- }
-
- @Override
- public IGT_HatchAdder<? super GTMTE_LapotronicSuperCapacitor> adder() {
- return GTMTE_LapotronicSuperCapacitor::addBottomHatches;
- }
- }
-}
diff --git a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java
deleted file mode 100644
index 8ec9d43ddd..0000000000
--- a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java
+++ /dev/null
@@ -1,221 +0,0 @@
-package common.tileentities;
-
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAnyMeta;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
-import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER;
-import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE;
-import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE_GLOW;
-import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_GLOW;
-import static gregtech.api.util.GT_StructureUtility.ofHatchAdder;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import javax.annotation.Nonnull;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidStack;
-
-import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
-import common.Blocks;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.Materials;
-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_EnhancedMultiBlockBase;
-import gregtech.api.recipe.RecipeMaps;
-import gregtech.api.recipe.check.CheckRecipeResult;
-import gregtech.api.recipe.check.CheckRecipeResultRegistry;
-import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-
-public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_EnhancedMultiBlockBase<GTMTE_SOFuelCellMK1> {
-
- private final int OXYGEN_PER_SEC = 100;
- private final int EU_PER_TICK = 2048;
- private final int STEAM_PER_SEC = 20000;
-
- public GTMTE_SOFuelCellMK1(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional);
- }
-
- public GTMTE_SOFuelCellMK1(String aName) {
- super(aName);
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity var1) {
- return new GTMTE_SOFuelCellMK1(super.mName);
- }
-
- private int mCasing = 0;
-
- private static final int CASING_TEXTURE_ID = 49;
- private static final String STRUCTURE_PIECE_MAIN = "main";
- private static final IStructureDefinition<GTMTE_SOFuelCellMK1> STRUCTURE_DEFINITION = IStructureDefinition
- .<GTMTE_SOFuelCellMK1>builder()
- .addShape(
- STRUCTURE_PIECE_MAIN,
- transpose(
- new String[][] { { "ccc", "ccc", "ccc", "ccc", "ccc" }, { "c~c", "geg", "geg", "geg", "cdc" },
- { "ccc", "ccc", "ccc", "ccc", "ccc" } }))
- .addElement(
- 'c',
- ofChain(
- onElementPass(te -> te.mCasing++, ofBlock(GregTech_API.sBlockCasings4, 1)),
- ofHatchAdder(GTMTE_SOFuelCellMK1::addInputToMachineList, CASING_TEXTURE_ID, 1),
- ofHatchAdder(GTMTE_SOFuelCellMK1::addMaintenanceToMachineList, CASING_TEXTURE_ID, 1),
- ofHatchAdder(GTMTE_SOFuelCellMK1::addOutputToMachineList, CASING_TEXTURE_ID, 1)))
- .addElement('d', ofHatchAdder(GTMTE_SOFuelCellMK1::addDynamoToMachineList, CASING_TEXTURE_ID, 1))
- .addElement('g', ofBlockAnyMeta(GameRegistry.findBlock("IC2", "blockAlloyGlass")))
- .addElement('e', ofBlockAnyMeta(Blocks.yszUnit))
- .build();
-
- @Override
- public IStructureDefinition<GTMTE_SOFuelCellMK1> getStructureDefinition() {
- return STRUCTURE_DEFINITION;
- }
-
- @Override
- protected GT_Multiblock_Tooltip_Builder createTooltip() {
- final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
- tt.addMachineType("Gas Turbine")
- .addInfo("Oxidizes gas fuels to generate electricity without polluting the environment")
- .addInfo(
- "Consumes up to " + GT_Utility.formatNumbers(EU_PER_TICK * 20)
- + "EU worth of fuel with up to 100% efficiency each second")
- .addInfo("Steam production requires the SOFC to heat up completely first")
- .addInfo("Outputs " + EU_PER_TICK + "EU/t and " + STEAM_PER_SEC + "L/s Steam")
- .addInfo("Additionally, requires " + OXYGEN_PER_SEC + "L/s Oxygen gas")
- .addSeparator()
- .beginStructureBlock(3, 3, 5, false)
- .addController("Front center")
- .addCasingInfoMin("Clean Stainless Steel Casing", 12, false)
- .addOtherStructurePart("YSZ Ceramic Electrolyte Unit", "3x, Center 1x1x3")
- .addOtherStructurePart("Reinforced Glass", "6x, touching the electrolyte units on the horizontal sides")
- .addDynamoHatch("Back center", 1)
- .addMaintenanceHatch("Any casing")
- .addInputHatch("Fuel, any casing")
- .addInputHatch("Oxygen, any casing")
- .addOutputHatch("Steam, any casing")
- .toolTipFinisher("KekzTech");
- return tt;
- }
-
- @Override
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side,
- final ForgeDirection facing, final int colorIndex, final boolean aActive, final boolean aRedstone) {
- if (side == facing) {
- if (aActive) return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE)
- .extFacing()
- .build(),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE_GLOW)
- .extFacing()
- .glow()
- .build() };
- return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_HEAT_EXCHANGER)
- .extFacing()
- .build(),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_HEAT_EXCHANGER_GLOW)
- .extFacing()
- .glow()
- .build() };
- }
- return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID) };
- }
-
- @Override
- public boolean isCorrectMachinePart(ItemStack stack) {
- return true;
- }
-
- @Nonnull
- @Override
- public CheckRecipeResult checkProcessing() {
- final ArrayList<FluidStack> storedFluids = super.getStoredFluids();
- Collection<GT_Recipe> recipeList = RecipeMaps.gasTurbineFuels.getAllRecipes();
-
- for (FluidStack hatchFluid : storedFluids) {
- for (GT_Recipe aFuel : recipeList) {
- FluidStack liquid;
- if ((liquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null
- && hatchFluid.isFluidEqual(liquid)) {
-
- liquid.amount = (EU_PER_TICK * 20) / aFuel.mSpecialValue;
-
- if (super.depleteInput(liquid)) {
-
- if (!super.depleteInput(Materials.Oxygen.getGas(OXYGEN_PER_SEC))) {
- super.mEUt = 0;
- super.mEfficiency = 0;
- return CheckRecipeResultRegistry.NO_FUEL_FOUND;
- }
-
- super.mEUt = EU_PER_TICK;
- super.mMaxProgresstime = 20;
- super.mEfficiencyIncrease = 40;
- if (super.mEfficiency == getMaxEfficiency(null)) {
- super.addOutput(GT_ModHandler.getSteam(STEAM_PER_SEC));
- }
- return CheckRecipeResultRegistry.GENERATING;
- }
- }
- }
- }
-
- super.mEUt = 0;
- super.mEfficiency = 0;
- return CheckRecipeResultRegistry.NO_FUEL_FOUND;
- }
-
- @Override
- public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) {
- this.mCasing = 0;
-
- if (!checkPiece(STRUCTURE_PIECE_MAIN, 1, 1, 0)) return false;
-
- return (this.mCasing >= 12 && this.mMaintenanceHatches.size() == 1 && this.mInputHatches.size() >= 2);
- }
-
- @Override
- public int getMaxEfficiency(ItemStack stack) {
- return 10000;
- }
-
- @Override
- public int getPollutionPerTick(ItemStack stack) {
- return 0;
- }
-
- @Override
- public int getDamageToComponent(ItemStack stack) {
- return 0;
- }
-
- @Override
- public boolean explodesOnComponentBreak(ItemStack stack) {
- return false;
- }
-
- @Override
- public void construct(ItemStack itemStack, boolean b) {
- buildPiece(STRUCTURE_PIECE_MAIN, itemStack, b, 1, 1, 0);
- }
-}
diff --git a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java
deleted file mode 100644
index 01150ab910..0000000000
--- a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java
+++ /dev/null
@@ -1,222 +0,0 @@
-package common.tileentities;
-
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockAnyMeta;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
-import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER;
-import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE;
-import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE_GLOW;
-import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_GLOW;
-import static gregtech.api.util.GT_StructureUtility.ofHatchAdder;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import javax.annotation.Nonnull;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-
-import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
-import common.Blocks;
-
-import cpw.mods.fml.common.registry.GameRegistry;
-import gregtech.api.GregTech_API;
-import gregtech.api.enums.Materials;
-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_EnhancedMultiBlockBase;
-import gregtech.api.recipe.RecipeMaps;
-import gregtech.api.recipe.check.CheckRecipeResult;
-import gregtech.api.recipe.check.CheckRecipeResultRegistry;
-import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
-import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
-
-public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_EnhancedMultiBlockBase<GTMTE_SOFuelCellMK2> {
-
- private final int OXYGEN_PER_SEC = 2000;
- private final int EU_PER_TICK = 24576; // 100% Efficiency, 3A IV
- private final int STEAM_PER_SEC = 96000; // SH Steam (10,800EU/t @ 150% Efficiency)
-
- public GTMTE_SOFuelCellMK2(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional);
- }
-
- public GTMTE_SOFuelCellMK2(String aName) {
- super(aName);
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity var1) {
- return new GTMTE_SOFuelCellMK2(super.mName);
- }
-
- private int mCasing = 0;
-
- private static final int CASING_TEXTURE_ID = 48;
- private static final String STRUCTURE_PIECE_MAIN = "main";
- private static final IStructureDefinition<GTMTE_SOFuelCellMK2> STRUCTURE_DEFINITION = IStructureDefinition
- .<GTMTE_SOFuelCellMK2>builder()
- .addShape(
- STRUCTURE_PIECE_MAIN,
- transpose(
- new String[][] { { "ccc", "ccc", "ccc", "ccc", "ccc" }, { "c~c", "geg", "geg", "geg", "cdc" },
- { "ccc", "ccc", "ccc", "ccc", "ccc" } }))
- .addElement(
- 'c',
- ofChain(
- onElementPass(te -> te.mCasing++, ofBlock(GregTech_API.sBlockCasings4, 0)),
- ofHatchAdder(GTMTE_SOFuelCellMK2::addInputToMachineList, CASING_TEXTURE_ID, 1),
- ofHatchAdder(GTMTE_SOFuelCellMK2::addMaintenanceToMachineList, CASING_TEXTURE_ID, 1),
- ofHatchAdder(GTMTE_SOFuelCellMK2::addOutputToMachineList, CASING_TEXTURE_ID, 1)))
- .addElement('d', ofHatchAdder(GTMTE_SOFuelCellMK2::addDynamoToMachineList, CASING_TEXTURE_ID, 1))
- .addElement('g', ofBlockAnyMeta(GameRegistry.findBlock("IC2", "blockAlloyGlass")))
- .addElement('e', ofBlockAnyMeta(Blocks.gdcUnit))
- .build();
-
- @Override
- public IStructureDefinition<GTMTE_SOFuelCellMK2> getStructureDefinition() {
- return STRUCTURE_DEFINITION;
- }
-
- @Override
- protected GT_Multiblock_Tooltip_Builder createTooltip() {
- final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
- tt.addMachineType("Gas Turbine")
- .addInfo("Oxidizes gas fuels to generate electricity without polluting the environment")
- .addInfo(
- "Consumes up to " + GT_Utility.formatNumbers(EU_PER_TICK * 20)
- + "EU worth of fuel with up to 100% efficiency each second")
- .addInfo("Nitrobenzene and other gas fuels above 1M EU/bucket are more efficient")
- .addInfo("Steam production requires the SOFC to heat up completely first")
- .addInfo("Outputs " + EU_PER_TICK + "EU/t and " + STEAM_PER_SEC + "L/s Steam")
- .addInfo("Additionally, requires " + OXYGEN_PER_SEC + "L/s Oxygen gas")
- .addSeparator()
- .beginStructureBlock(3, 3, 5, false)
- .addController("Front center")
- .addCasingInfoMin("Robust Tungstensteel Machine Casing", 12, false)
- .addOtherStructurePart("GDC Ceramic Electrolyte Unit", "3x, Center 1x1x3")
- .addOtherStructurePart("Reinforced Glass", "6x, touching the electrolyte units on the horizontal sides")
- .addDynamoHatch("Back center", 1)
- .addMaintenanceHatch("Any casing")
- .addInputHatch("Fuel, any casing")
- .addInputHatch("Oxygen, any casing")
- .addOutputHatch("Superheated Steam, any casing")
- .toolTipFinisher("KekzTech");
- return tt;
- }
-
- @Override
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final ForgeDirection side,
- final ForgeDirection facing, final int colorIndex, final boolean aActive, final boolean aRedstone) {
- if (side == facing) {
- if (aActive) return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE)
- .extFacing()
- .build(),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE_GLOW)
- .extFacing()
- .glow()
- .build() };
- return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_HEAT_EXCHANGER)
- .extFacing()
- .build(),
- TextureFactory.builder()
- .addIcon(OVERLAY_FRONT_HEAT_EXCHANGER_GLOW)
- .extFacing()
- .glow()
- .build() };
- }
- return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID) };
- }
-
- @Override
- public boolean isCorrectMachinePart(ItemStack stack) {
- return true;
- }
-
- @Nonnull
- @Override
- public CheckRecipeResult checkProcessing() {
- final ArrayList<FluidStack> storedFluids = super.getStoredFluids();
- Collection<GT_Recipe> recipeList = RecipeMaps.gasTurbineFuels.getAllRecipes();
-
- for (FluidStack hatchFluid : storedFluids) {
- for (GT_Recipe aFuel : recipeList) {
- FluidStack liquid;
- if ((liquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null
- && hatchFluid.isFluidEqual(liquid)) {
-
- liquid.amount = (EU_PER_TICK * 20) / aFuel.mSpecialValue / Math.max(1, aFuel.mSpecialValue / 1000);
-
- if (super.depleteInput(liquid)) {
-
- if (!super.depleteInput(Materials.Oxygen.getGas(OXYGEN_PER_SEC))) {
- super.mEUt = 0;
- super.mEfficiency = 0;
- return CheckRecipeResultRegistry.NO_FUEL_FOUND;
- }
-
- super.mEUt = EU_PER_TICK;
- super.mMaxProgresstime = 20;
- super.mEfficiencyIncrease = 80;
- if (super.mEfficiency == getMaxEfficiency(null)) {
- super.addOutput(FluidRegistry.getFluidStack("ic2superheatedsteam", STEAM_PER_SEC));
- }
- return CheckRecipeResultRegistry.GENERATING;
- }
- }
- }
- }
-
- super.mEUt = 0;
- super.mEfficiency = 0;
- return CheckRecipeResultRegistry.NO_FUEL_FOUND;
- }
-
- @Override
- public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) {
- this.mCasing = 0;
-
- if (!checkPiece(STRUCTURE_PIECE_MAIN, 1, 1, 0)) return false;
-
- return (this.mCasing >= 12 && this.mMaintenanceHatches.size() == 1 && this.mInputHatches.size() >= 2);
- }
-
- @Override
- public int getMaxEfficiency(ItemStack stack) {
- return 10000;
- }
-
- @Override
- public int getPollutionPerTick(ItemStack stack) {
- return 0;
- }
-
- @Override
- public int getDamageToComponent(ItemStack stack) {
- return 0;
- }
-
- @Override
- public boolean explodesOnComponentBreak(ItemStack stack) {
- return false;
- }
-
- @Override
- public void construct(ItemStack itemStack, boolean b) {
- buildPiece(STRUCTURE_PIECE_MAIN, itemStack, b, 1, 1, 0);
- }
-}
diff --git a/src/main/java/common/tileentities/GTMTE_TFFT.java b/src/main/java/common/tileentities/GTMTE_TFFT.java
deleted file mode 100644
index 18867c0656..0000000000
--- a/src/main/java/common/tileentities/GTMTE_TFFT.java
+++ /dev/null
@@ -1,787 +0,0 @@
-package common.tileentities;
-
-import static com.github.bartimaeusnek.bartworks.util.BW_Util.ofGlassTieredMixed;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlockUnlocalizedName;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass;
-import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
-import static gregtech.api.enums.GT_HatchElement.Energy;
-import static gregtech.api.enums.GT_HatchElement.InputHatch;
-import static gregtech.api.enums.GT_HatchElement.Maintenance;
-import static gregtech.api.enums.GT_HatchElement.OutputHatch;
-import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
-import static java.lang.Math.min;
-import static net.minecraft.util.StatCollector.translateToLocal;
-
-import java.math.BigInteger;
-import java.text.MessageFormat;
-import java.text.NumberFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.EnumChatFormatting;
-import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidRegistry;
-import net.minecraftforge.fluids.FluidStack;
-import net.minecraftforge.fluids.FluidTankInfo;
-
-import com.gtnewhorizon.structurelib.StructureLibAPI;
-import com.gtnewhorizon.structurelib.alignment.constructable.ChannelDataAccessor;
-import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable;
-import com.gtnewhorizon.structurelib.structure.AutoPlaceEnvironment;
-import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
-import com.gtnewhorizon.structurelib.structure.IStructureElement;
-import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment;
-import com.gtnewhorizon.structurelib.structure.StructureUtility;
-import com.gtnewhorizon.structurelib.util.ItemStackPredicate;
-import common.Blocks;
-
-import gregtech.api.enums.Textures;
-import gregtech.api.fluid.FluidTankGT;
-import gregtech.api.interfaces.IHatchElement;
-import gregtech.api.interfaces.IIconContainer;
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
-import gregtech.api.render.TextureFactory;
-import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
-import gregtech.api.util.GT_Utility;
-import gregtech.api.util.IGT_HatchAdder;
-import gregtech.common.items.GT_IntegratedCircuit_Item;
-
-public class GTMTE_TFFT extends GT_MetaTileEntity_EnhancedMultiBlockBase<GTMTE_TFFT> implements ISurvivalConstructable {
-
- public enum Field {
-
- T1(1_000_000L, 1), // LV
- T2(4_000_000L, 2), // MV
- T3(16_000_000L, 5), // HV
- T4(64_000_000L, 14), // EV
- T5(256_000_000L, 42), // IV
-
- T6(2_048_000_000L, 132), // LuV
- T7(131_072_000_000L, 429), // UV
- T8(8_388_608_000_000L, 1430), // UEV
- T9(536_870_912_000_000L, 4862), // UMV
-
- T10(1_099_511_627_776_000_000L, 0); // UXV
-
- public static final GTMTE_TFFT.Field[] VALUES = values();
- private final long capacity;
- private final int cost;
-
- Field(long capacity, int cost) {
- this.capacity = capacity;
- this.cost = cost;
- }
-
- public long getCapacity() {
- return capacity;
- }
-
- public int getCost() {
- return cost;
- }
- }
-
- private enum TFFTMultiHatch implements IHatchElement<GTMTE_TFFT> {
-
- INSTANCE;
-
- private final List<? extends Class<? extends IMetaTileEntity>> mteClasses;
-
- @SafeVarargs
- TFFTMultiHatch(Class<? extends IMetaTileEntity>... mteClasses) {
- this.mteClasses = Arrays.asList(mteClasses);
- }
-
- @Override
- public List<? extends Class<? extends IMetaTileEntity>> mteClasses() {
- return mteClasses;
- }
-
- @Override
- public IGT_HatchAdder<? super GTMTE_TFFT> adder() {
- return GTMTE_TFFT::addMultiHatchToMachineList;
- }
-
- @Override
- public long count(GTMTE_TFFT t) {
- return t.tfftHatch == null ? 0 : 1;
- }
- }
-
- private enum TFFTStorageFieldElement implements IStructureElement<GTMTE_TFFT> {
-
- INSTANCE;
-
- @Override
- public boolean check(GTMTE_TFFT t, World world, int x, int y, int z) {
- Block worldBlock = world.getBlock(x, y, z);
- int meta = worldBlock.getDamageValue(world, x, y, z);
- if (TFFT_FIELD != worldBlock || meta == 0) return false;
- t.FIELDS[meta - 1]++;
- return true;
- }
-
- private int getHint(ItemStack stack) {
- return Math.min(Field.VALUES.length, ChannelDataAccessor.getChannelData(stack, "field"));
- }
-
- @Override
- public boolean spawnHint(GTMTE_TFFT t, World world, int x, int y, int z, ItemStack trigger) {
- StructureLibAPI.hintParticle(world, x, y, z, TFFT_FIELD, getHint(trigger));
- return true;
- }
-
- @Override
- public boolean placeBlock(GTMTE_TFFT t, World world, int x, int y, int z, ItemStack trigger) {
- world.setBlock(x, y, z, TFFT_FIELD, getHint(trigger), 3);
- return true;
- }
-
- @Override
- public PlaceResult survivalPlaceBlock(GTMTE_TFFT t, World world, int x, int y, int z, ItemStack trigger,
- AutoPlaceEnvironment env) {
- if (check(t, world, x, y, z)) return PlaceResult.SKIP;
- int fieldTier = getHint(trigger);
- ItemStack result = env.getSource()
- .takeOne(
- s -> s != null && s.stackSize >= 0
- && s.getItem() == TFFT_FIELD_ITEM
- && s.getItemDamage() != CASING_META
- && s.getItemDamage() <= fieldTier,
- true);
- if (result == null) return PlaceResult.REJECT;
-
- return StructureUtility.survivalPlaceBlock(
- result,
- ItemStackPredicate.NBTMode.EXACT,
- null,
- true,
- world,
- x,
- y,
- z,
- env.getSource(),
- env.getActor(),
- env.getChatter());
- }
- }
-
- private static final IIconContainer TEXTURE_TFFT = new Textures.BlockIcons.CustomIcon("iconsets/TFFT");
- private static final IIconContainer TEXTURE_TFFT_ACTIVE = new Textures.BlockIcons.CustomIcon(
- "iconsets/TFFT_ACTIVE");
- private static final IIconContainer TEXTURE_TFFT_ACTIVE_GLOW = new Textures.BlockIcons.CustomIcon(
- "iconsets/TFFT_ACTIVE_GLOW");
- private static final int CASING_TEXTURE_ID_1 = (12 << 7) | 127;
- private static final int CASING_TEXTURE_ID_2 = 176;
-
- private static final Block TFFT_FIELD = Blocks.tfftStorageField;
- private static final Item TFFT_FIELD_ITEM = Item.getItemFromBlock(TFFT_FIELD);
- public static final int MAX_DISTINCT_FLUIDS = 25;
- private static final BigInteger MAX_CAPACITY = BigInteger.valueOf(Long.MAX_VALUE)
- .multiply(BigInteger.valueOf(25));
- private static final int CASING_META = 0;
- private static final int MIN_CASING_AMOUNT = 20;
- private static final int MAX_LAYER_AMOUNT = 13;
- private static final int DEFAULT_LAYER_AMOUNT = 3;
-
- private static final String STRUCTURE_PIECE_TOP = "top";
- private static final String STRUCTURE_PIECE_MID = "mid";
- private static final String STRUCTURE_PIECE_BOTTOM = "bottom";
-
- @Override
- public String[] getStructureDescription(ItemStack stackSize) {
- return description;
- }
-
- private static final String[] description = new String[] {
- translateToLocal("tile.kekztech_tfftstoragefield_block.hint.1"), // Casing
- translateToLocal("tile.kekztech_tfftstoragefield_block.hint.2"), // Casing, Maintenance Hatch, T.F.F.T Multi
- // I/O Hatch, Input/Output Hatch, Energy
- // Hatch
- translateToLocal("tile.kekztech_tfftstoragefield_block.hint.3"), // Glass, T.F.F.T Multi I/O Hatch,
- // Input/Output Hatch
- translateToLocal("tile.kekztech_tfftstoragefield_block.hint.4"), // Glass
- };
-
- // height channel for height
- // field channel for field
- private static final IStructureDefinition<GTMTE_TFFT> STRUCTURE_DEFINITION = IStructureDefinition
- .<GTMTE_TFFT>builder()
- .addShape(
- STRUCTURE_PIECE_TOP,
- transpose(new String[][] { { "ccccc" }, { "cCCCc" }, { "cC~Cc" }, { "cCCCc" }, { "ccccc" } }))
- .addShape(
- STRUCTURE_PIECE_MID,
- transpose(new String[][] { { "gGGGg" }, { "GfffG" }, { "GfffG" }, { "GfffG" }, { "gGGGg" } }))
- .addShape(
- STRUCTURE_PIECE_BOTTOM,
- transpose(new String[][] { { "ccccc" }, { "cCCCc" }, { "cCCCc" }, { "cCCCc" }, { "ccccc" } }))
- .addElement(
- 'c',
- buildHatchAdder(GTMTE_TFFT.class).atLeast(Energy, Maintenance)
- .casingIndex(CASING_TEXTURE_ID_1)
- .dot(1)
- .buildAndChain(onElementPass(te -> te.casingAmount++, ofBlock(TFFT_FIELD, CASING_META))))
- .addElement(
- 'C',
- buildHatchAdder(GTMTE_TFFT.class).casingIndex(CASING_TEXTURE_ID_1)
- .atLeast(
- Energy,
- Maintenance,
- InputHatch.or(TFFTMultiHatch.INSTANCE),
- OutputHatch.or(TFFTMultiHatch.INSTANCE))
- .dot(2)
- .buildAndChain(onElementPass(te -> te.casingAmount++, ofBlock(TFFT_FIELD, CASING_META))))
- .addElement(
- 'G',
- buildHatchAdder(GTMTE_TFFT.class)
- .atLeast(InputHatch.or(TFFTMultiHatch.INSTANCE), OutputHatch.or(TFFTMultiHatch.INSTANCE))
- .casingIndex(CASING_TEXTURE_ID_2)
- .dot(3)
- .buildAndChain(
- ofBlockUnlocalizedName("Thaumcraft", "blockCosmeticOpaque", 2, false),
- ofGlassTieredMixed((byte) 4, (byte) 127, 3)))
- .addElement(
- 'g',
- ofChain(
- ofBlockUnlocalizedName("Thaumcraft", "blockCosmeticOpaque", 2, false),
- ofGlassTieredMixed((byte) 4, (byte) 127, 4)))
- .addElement('f', ofChain(TFFTStorageFieldElement.INSTANCE))
- .build();
-
- public final FluidTankGT[] STORE = new FluidTankGT[MAX_DISTINCT_FLUIDS];
-
- {
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- STORE[i] = new FluidTankGT(0);
- }
- }
-
- private final int[] FIELDS = new int[Field.VALUES.length];
-
- private BigInteger capacity = BigInteger.ZERO;
- private long capacityPerFluid = 0L;
- private int casingAmount = 0;
- private int runningCost = 0;
-
- private boolean locked = true;
- private boolean doVoidExcess = false;
- private byte fluidSelector = -1;
-
- private GTMTE_TFFTHatch tfftHatch = null;
-
- public GTMTE_TFFT(String aName) {
- super(aName);
- }
-
- public GTMTE_TFFT(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional);
- }
-
- @Override
- public IStructureDefinition<GTMTE_TFFT> getStructureDefinition() {
- return STRUCTURE_DEFINITION;
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GTMTE_TFFT(super.mName);
- }
-
- @Override
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing,
- int colorIndex, boolean aActive, boolean aRedstone) {
- if (side == facing) {
- if (aActive) return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID_1),
- TextureFactory.builder()
- .addIcon(TEXTURE_TFFT_ACTIVE)
- .extFacing()
- .build(),
- TextureFactory.builder()
- .addIcon(TEXTURE_TFFT_ACTIVE_GLOW)
- .extFacing()
- .glow()
- .build() };
- return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID_1),
- TextureFactory.builder()
- .addIcon(TEXTURE_TFFT)
- .extFacing()
- .build() };
- }
- return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID_1) };
- }
-
- @Override
- protected GT_Multiblock_Tooltip_Builder createTooltip() {
- final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
- tt.addMachineType("Fluid Tank")
- .addInfo("High-Tech fluid tank that can hold up to 25 different fluids!")
- .addInfo("Has 1/25th of the total capacity as capacity for each fluid.")
- .addInfo("Right clicking the controller with a screwdriver will turn on excess voiding.")
- .addInfo("Fluid storage amount and running cost depends on the storage field blocks used.")
- .addSeparator()
- .addInfo("Note on hatch locking:")
- .addInfo("Use an Integrated Circuit in the GUI slot to limit which fluid is output.")
- .addInfo("The index of a stored fluid can be obtained through the Tricorder.")
- .addSeparator()
- .beginVariableStructureBlock(5, 5, 5, 15, 5, 5, false)
- .addController("Top Center")
- .addCasingInfoMin("T.F.F.T Casing", MIN_CASING_AMOUNT, false)
- .addOtherStructurePart("Storage Field Blocks (Tier I-X)", "Inner 3xhx3 solid pillar")
- .addStructureInfo("Energy hatch is not required when running cost is 0")
- .addOtherStructurePart("EV+ Tier Glass/Warded Glass/Reinforced Glass", "Outer 5xhx5 glass shell")
- .addMaintenanceHatch("Any top or bottom casing")
- .addEnergyHatch("Any top or bottom casing")
- .addInputHatch("Instead of any casing or glass, has to touch storage field block")
- .addOutputHatch("Instead of any casing or glass, has to touch storage field block")
- .addStructureInfo("You can have a bunch of hatches")
- .addOtherStructurePart(
- "Multi I/O Hatches",
- "Instead of any casing or glass, has to touch storage field block")
- .addStructureInfo("Use MIOH with conduits or fluid storage busses to see all fluids at once.")
- .addSubChannelUsage("field", "Maximum Field Tier")
- .addSubChannelUsage("height", "Height of structure")
- .toolTipFinisher("KekzTech");
- return tt;
- }
-
- @Override
- public void construct(ItemStack stackSize, boolean hintsOnly) {
- int layer = min(stackSize.stackSize + DEFAULT_LAYER_AMOUNT, MAX_LAYER_AMOUNT + 1);
- buildPiece(STRUCTURE_PIECE_TOP, stackSize, hintsOnly, 2, 2, 0);
- for (int i = -1; i >= 1 - layer; i--) buildPiece(STRUCTURE_PIECE_MID, stackSize, hintsOnly, 2, 2, i);
- buildPiece(STRUCTURE_PIECE_BOTTOM, stackSize, hintsOnly, 2, 2, -layer);
- }
-
- @Override
- public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBuildEnvironment env) {
- if (mMachine) return -1;
- int build = survivialBuildPiece(STRUCTURE_PIECE_TOP, stackSize, 2, 2, 0, elementBudget, env, false, true);
- if (build >= 0) return build;
- int layer = min(stackSize.stackSize + DEFAULT_LAYER_AMOUNT, MAX_LAYER_AMOUNT + 1);
- for (int i = -1; i >= 1 - layer; i--) {
- build = survivialBuildPiece(STRUCTURE_PIECE_MID, stackSize, 2, 2, i, elementBudget, env, false, true);
- if (build >= 0) return build;
- }
- return survivialBuildPiece(STRUCTURE_PIECE_BOTTOM, stackSize, 2, 2, -layer, elementBudget, env, false, true);
- }
-
- @Override
- public boolean isCorrectMachinePart(ItemStack aStack) {
- return true;
- }
-
- @Override
- public void clearHatches() {
- super.clearHatches();
- if (tfftHatch != null) {
- tfftHatch.unbind();
- tfftHatch = null;
- }
- }
-
- @Override
- public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) {
- Arrays.fill(FIELDS, 0);
-
- this.capacity = BigInteger.ZERO;
- this.capacityPerFluid = 0L;
- this.casingAmount = 0;
- this.runningCost = 0;
-
- if (!checkPiece(STRUCTURE_PIECE_TOP, 2, 2, 0)) return false;
-
- int layer = 1;
- while (checkPiece(STRUCTURE_PIECE_MID, 2, 2, -layer)) layer++;
- if (layer - 1 > MAX_LAYER_AMOUNT || layer - 1 < DEFAULT_LAYER_AMOUNT) return false;
- if (!checkPiece(STRUCTURE_PIECE_BOTTOM, 2, 2, -layer)) return false;
- if (casingAmount >= MIN_CASING_AMOUNT
- && (tfftHatch != null || (!mInputHatches.isEmpty() && !mOutputHatches.isEmpty()))
- && mInputHatches.size() + mOutputHatches.size() <= MAX_DISTINCT_FLUIDS * 2
- && mMaintenanceHatches.size() == 1) {
- BigInteger tempCap = BigInteger.ZERO;
- for (int i = 0; i < this.FIELDS.length; i++) {
- tempCap = tempCap.add(
- BigInteger.valueOf(Field.VALUES[i].getCapacity())
- .multiply(BigInteger.valueOf(this.FIELDS[i])));
- this.runningCost += Field.VALUES[i].getCost() * this.FIELDS[i];
- }
- this.setCapacity(tempCap);
-
- if (tfftHatch != null) tfftHatch.bind(this);
-
- if (this.runningCost == 0) {
- return true;
- }
-
- return !mEnergyHatches.isEmpty();
- }
- return false;
- }
-
- @Override
- public boolean checkRecipe(ItemStack itemStack) {
- mEfficiency = getCurrentEfficiency(null);
- mEfficiencyIncrease = 10000;
- mEUt = this.runningCost;
- mMaxProgresstime = 20;
-
- this.fluidSelector = (itemStack != null && itemStack.getItem() instanceof GT_IntegratedCircuit_Item)
- ? (byte) itemStack.getItemDamage()
- : -1;
-
- // Suck in fluids
- final ArrayList<FluidStack> inputFluids = getStoredFluids();
-
- if (!inputFluids.isEmpty()) {
- for (FluidStack aFluid : inputFluids) {
- final FluidStack toDeplete = aFluid.copy();
- toDeplete.amount = this.pull(aFluid, true);
- depleteInput(toDeplete);
- }
- }
-
- // Push out fluids
- if (!this.mOutputHatches.isEmpty()) {
- final FluidTankGT sFluid = this.getSelectedFluid();
- boolean isFluidSelected = this.fluidSelector != -1;
-
- if (!isFluidSelected || !sFluid.isEmpty()) {
- for (GT_MetaTileEntity_Hatch_Output tHatch : this.mOutputHatches) {
- int hatchCapacity = tHatch.getCapacity();
- int hatchAmount = tHatch.getFluidAmount();
- int remaining = hatchCapacity - hatchAmount;
-
- if (remaining <= 0) continue;
-
- final FluidStack tFluid = tHatch.getFluid();
-
- String lockedFluidName = tHatch.getLockedFluidName() == null ? "" : tHatch.getLockedFluidName();
- String tFluidName = tFluid == null ? ""
- : tFluid.getFluid()
- .getName();
-
- boolean isFluidLocked = tHatch.isFluidLocked();
- boolean isFluidEmpty = tFluid == null || tHatch.getFluidAmount() == 0;
-
- if (isFluidLocked && !this.contains(lockedFluidName)) continue;
- if (!isFluidEmpty && !this.contains(tFluid)) continue;
- if ((isFluidLocked && !isFluidEmpty) && !lockedFluidName.equals(tFluidName)) continue;
-
- if (isFluidSelected) {
- if (isFluidLocked && !lockedFluidName.equals(sFluid.name())) continue;
- if (!isFluidEmpty && !sFluid.contains(tFluid)) continue;
-
- tHatch.fill(this.push(sFluid.get(remaining), true), true);
- } else if (isFluidLocked) {
- if (!isFluidEmpty && !lockedFluidName.equals(
- tFluid.getFluid()
- .getName()))
- continue;
-
- FluidStack aFluid = FluidRegistry.getFluidStack(lockedFluidName, remaining);
- tHatch.fill(this.push(aFluid, true), true);
- } else if (isFluidEmpty) {
- if (this.firstNotNull() != null) tHatch.fill(this.push(hatchCapacity, true), true);
- } else {
- tHatch.fill(this.push(new FluidStack(tFluid, remaining), true), true);
- }
- }
- }
- }
-
- if (this.mEUt > 0) this.mEUt = -this.mEUt;
-
- return true;
- }
-
- @Override
- public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
- super.onPostTick(aBaseMetaTileEntity, aTick);
- if (aBaseMetaTileEntity.isServerSide()) this.locked = !aBaseMetaTileEntity.isActive();
- }
-
- @Override
- public String[] getInfoData() {
- ArrayList<String> ll = new ArrayList<>();
- NumberFormat nf = NumberFormat.getNumberInstance();
-
- ll.add(EnumChatFormatting.YELLOW + "Stored Fluids:" + EnumChatFormatting.RESET);
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- FluidTankGT tank = STORE[i];
- if (tank.isEmpty()) {
- ll.add(MessageFormat.format("{0} - {1}: {2}L ({3}%)", i, "NULL", 0, 0));
- } else {
- String localizedName = STORE[i].get()
- .getLocalizedName();
- String amount = nf.format(STORE[i].amount());
- String percentage = capacityPerFluid > 0 ? String.valueOf(STORE[i].amount() * 100 / capacityPerFluid)
- : "";
-
- ll.add(MessageFormat.format("{0} - {1}: {2}L ({3}%)", i, localizedName, amount, percentage));
- }
- }
- ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET);
- ll.add("Used Capacity: " + nf.format(getStoredAmount()) + "L");
- ll.add("Total Capacity: " + nf.format(capacity) + "L");
- ll.add("Per-Fluid Capacity: " + nf.format(capacityPerFluid) + "L");
- ll.add("Running Cost: " + getActualEnergyUsage() + "EU/t");
- ll.add("Auto-voiding: " + doVoidExcess);
- ll.add(
- "Maintenance Status: " + ((getRepairStatus() == getIdealStatus())
- ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET
- : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET));
- ll.add("---------------------------------------------");
-
- return ll.toArray(new String[0]);
- }
-
- @Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setByteArray("capacity", capacity.toByteArray());
- aNBT.setBoolean("doVoidExcess", doVoidExcess);
- aNBT.setInteger("runningCost", runningCost);
- aNBT.setBoolean("lockFluid", locked);
- aNBT.setByte("fluidSelector", fluidSelector);
-
- NBTTagCompound fluidNBT = new NBTTagCompound();
- aNBT.setTag("STORE", fluidNBT);
-
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- STORE[i].writeToNBT(fluidNBT, String.valueOf(i));
- }
-
- super.saveNBTData(aNBT);
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
- this.setCapacity(new BigInteger(aNBT.getByteArray("capacity")));
- this.setDoVoidExcess(aNBT.getBoolean("doVoidExcess"));
- this.runningCost = aNBT.getInteger("runningCost");
- this.locked = aNBT.getBoolean("lockFluid");
- this.fluidSelector = aNBT.getByte("fluidSelector");
-
- NBTTagCompound fluidNBT = (NBTTagCompound) aNBT.getTag("STORE");
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- STORE[i].readFromNBT(fluidNBT, String.valueOf(i));
- }
-
- super.loadNBTData(aNBT);
- }
-
- @Override
- public boolean isGivingInformation() {
- return true;
- }
-
- @Override
- public int getMaxEfficiency(ItemStack stack) {
- return 10000;
- }
-
- @Override
- public int getPollutionPerTick(ItemStack stack) {
- return 0;
- }
-
- @Override
- public int getDamageToComponent(ItemStack stack) {
- return 0;
- }
-
- @Override
- public boolean explodesOnComponentBreak(ItemStack stack) {
- return false;
- }
-
- @Override
- public void onScrewdriverRightClick(ForgeDirection side, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- super.onScrewdriverRightClick(side, aPlayer, aX, aY, aZ);
- this.setDoVoidExcess(!doVoidExcess);
- GT_Utility.sendChatToPlayer(aPlayer, "Auto-voiding " + (this.doVoidExcess ? "enabled" : "disabled"));
- }
-
- private boolean addMultiHatchToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) {
- if (aTileEntity != null) {
- final IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();
- if (aMetaTileEntity instanceof GTMTE_TFFTHatch) {
- if (this.tfftHatch != null) return false;
- this.tfftHatch = (GTMTE_TFFTHatch) aMetaTileEntity;
- this.tfftHatch.updateTexture(aBaseCasingIndex);
- return true;
- }
- }
- return false;
- }
-
- public int pull(FluidStack aFluid, boolean doPull) {
- if (locked) return 0;
- int index = getFluidPosition(aFluid);
- if (index >= 0) {
- return STORE[index].fill(aFluid, doPull);
- } else if (fluidCount() < MAX_DISTINCT_FLUIDS) {
- return STORE[getNullSlot()].setCapacity(capacityPerFluid)
- .fill(aFluid, doPull);
- }
- return 0;
- }
-
- public long pull(FluidStack aFluid, long amount, boolean doPull) {
- if (locked) return 0;
- int index = getFluidPosition(aFluid);
- if (index >= 0) {
- FluidTankGT tank = STORE[index];
- if (doPull) return tank.add(amount);
- return doVoidExcess ? amount
- : tank.amount() + amount > tank.capacity() ? tank.capacity() - tank.amount() : amount;
- } else if (fluidCount() < MAX_DISTINCT_FLUIDS) {
- FluidTankGT tank = STORE[getNullSlot()];
- if (doPull) return tank.add(amount, aFluid);
- return doVoidExcess ? amount : Math.min(amount, tank.capacity());
- }
- return 0;
- }
-
- public FluidStack push(FluidStack aFluid, boolean doPush) {
- if (locked) return null;
- int index = getFluidPosition(aFluid);
- if (index < 0) return null;
- return STORE[index].drain(aFluid.amount, doPush);
- }
-
- public FluidStack push(int amount, boolean doPush) {
- if (locked) return null;
- int index = firstNotNullSlot();
- if (index < 0) return null;
- return STORE[index].drain(amount, doPush);
- }
-
- public long push(FluidStack aFluid, long amount, boolean doPush) {
- if (locked) return 0;
- int index = getFluidPosition(aFluid);
- if (index < 0) return 0;
- if (doPush) return STORE[index].remove(amount);
- return STORE[index].amount(amount);
- }
-
- public long getCapacityPerFluid() {
- return this.capacityPerFluid;
- }
-
- public void setCapacity(BigInteger capacity) {
- if (capacity.compareTo(MAX_CAPACITY) > 0) {
- this.capacity = MAX_CAPACITY;
- this.capacityPerFluid = Long.MAX_VALUE;
- } else {
- this.capacity = capacity;
- this.capacityPerFluid = capacity.divide(BigInteger.valueOf(MAX_DISTINCT_FLUIDS))
- .longValue();
- }
-
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- FluidTankGT tank = STORE[i];
- if (tank.setCapacity(capacityPerFluid)
- .amount() > capacityPerFluid) {
- STORE[i] = new FluidTankGT(tank.get(), capacityPerFluid, capacityPerFluid);
- }
- }
- }
-
- public int fluidCount() {
- int tCount = 0;
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- if (!STORE[i].isEmpty()) tCount++;
- }
- return tCount;
- }
-
- public int getFluidPosition(String fluidName) {
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- if (!STORE[i].isEmpty() && STORE[i].name()
- .equals(fluidName)) return i;
- }
- return -1;
- }
-
- public int getFluidPosition(FluidStack aFluid) {
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- if (STORE[i].contains(aFluid)) return i;
- }
- return -1;
- }
-
- public int getNullSlot() {
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- if (STORE[i].isEmpty()) return i;
- }
- return -1;
- }
-
- public boolean contains(String fluidName) {
- return getFluidPosition(fluidName) >= 0;
- }
-
- public boolean contains(FluidStack aFluid) {
- return getFluidPosition(aFluid) >= 0;
- }
-
- public int firstNotNullSlot() {
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- if (!STORE[i].isEmpty()) return i;
- }
- return -1;
- }
-
- public FluidTankGT firstNotNull() {
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- if (!STORE[i].isEmpty()) return STORE[i];
- }
- return null;
- }
-
- public BigInteger getStoredAmount() {
- BigInteger amount = BigInteger.ZERO;
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- amount = amount.add(BigInteger.valueOf(STORE[i].amount()));
- }
- return amount;
- }
-
- public byte getFluidSelector() {
- return fluidSelector;
- }
-
- public FluidTankGT getSelectedFluid() {
- return fluidSelector != -1 ? STORE[fluidSelector] : null;
- }
-
- public void setDoVoidExcess(boolean doVoidExcess) {
- this.doVoidExcess = doVoidExcess;
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- STORE[i].setVoidExcess(doVoidExcess);
- }
- }
-
- public FluidTankInfo[] getTankInfo() {
- FluidTankInfo[] info = new FluidTankInfo[MAX_DISTINCT_FLUIDS];
- for (int i = 0; i < MAX_DISTINCT_FLUIDS; i++) {
- STORE[i].getFluid(); //
- info[i] = STORE[i].getInfo();
- }
- return info;
- }
-}
diff --git a/src/main/java/common/tileentities/GTMTE_TFFTHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTHatch.java
deleted file mode 100644
index 448d088345..0000000000
--- a/src/main/java/common/tileentities/GTMTE_TFFTHatch.java
+++ /dev/null
@@ -1,271 +0,0 @@
-package common.tileentities;
-
-import java.util.HashMap;
-
-import net.minecraft.tileentity.TileEntity;
-import net.minecraftforge.common.util.ForgeDirection;
-import net.minecraftforge.fluids.FluidStack;
-import net.minecraftforge.fluids.FluidTankInfo;
-
-import appeng.api.AEApi;
-import appeng.api.config.AccessRestriction;
-import appeng.api.config.Actionable;
-import appeng.api.networking.security.BaseActionSource;
-import appeng.api.storage.IExternalStorageHandler;
-import appeng.api.storage.IMEInventory;
-import appeng.api.storage.IMEMonitor;
-import appeng.api.storage.IMEMonitorHandlerReceiver;
-import appeng.api.storage.StorageChannel;
-import appeng.api.storage.data.IAEFluidStack;
-import appeng.api.storage.data.IItemList;
-import appeng.util.item.AEFluidStack;
-import appeng.util.item.FluidList;
-import cpw.mods.fml.common.Optional;
-import gregtech.api.enums.Textures;
-import gregtech.api.fluid.FluidTankGT;
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.BaseMetaTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
-import gregtech.api.render.TextureFactory;
-
-@Optional.Interface(iface = "appeng.api.storage.IMEMonitor", modid = "appliedenergistics2", striprefs = true)
-public class GTMTE_TFFTHatch extends GT_MetaTileEntity_Hatch implements IMEMonitor<IAEFluidStack> {
-
- @Optional.Interface(
- iface = "appeng.api.storage.IExternalStorageHandler",
- modid = "appliedenergistics2",
- striprefs = true)
- private static class AE2TFFTHatchHandler implements IExternalStorageHandler {
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public boolean canHandle(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource mySrc) {
- return channel == StorageChannel.FLUIDS && te instanceof BaseMetaTileEntity
- && ((BaseMetaTileEntity) te).getMetaTileEntity() instanceof GTMTE_TFFTHatch;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public IMEInventory getInventory(TileEntity te, ForgeDirection d, StorageChannel channel,
- BaseActionSource src) {
- if (channel == StorageChannel.FLUIDS) {
- return ((GTMTE_TFFTHatch) (((BaseMetaTileEntity) te).getMetaTileEntity()));
- }
- return null;
- }
- }
-
- private static final Textures.BlockIcons.CustomIcon TEXTURE_TFFT_HATCH = new Textures.BlockIcons.CustomIcon(
- "iconsets/TFFT_HATCH");
-
- private HashMap<IMEMonitorHandlerReceiver<IAEFluidStack>, Object> listeners = new HashMap<>();
- private GTMTE_TFFT controller;
-
- public GTMTE_TFFTHatch(int aID, String aName, String aNameRegional) {
- super(aID, aName, aNameRegional, 3, 0, "All-in-one access for the T.F.F.T");
- }
-
- public GTMTE_TFFTHatch(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) {
- super(aName, aTier, 0, aDescription, aTextures);
- }
-
- @Override
- public boolean isFacingValid(ForgeDirection facing) {
- return true;
- }
-
- @Override
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing,
- int colorIndex, boolean aActive, boolean aRedstone) {
- return super.getTexture(aBaseMetaTileEntity, side, facing, colorIndex, aActive, aRedstone);
- }
-
- @Override
- public ITexture[] getTexturesActive(ITexture aBaseTexture) {
- return new ITexture[] { aBaseTexture, TextureFactory.of(Textures.BlockIcons.OVERLAY_PIPE_IN),
- TextureFactory.builder()
- .addIcon(TEXTURE_TFFT_HATCH)
- .extFacing()
- .build() };
- }
-
- @Override
- public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
- return new ITexture[] { aBaseTexture, TextureFactory.of(Textures.BlockIcons.OVERLAY_PIPE_IN),
- TextureFactory.builder()
- .addIcon(TEXTURE_TFFT_HATCH)
- .extFacing()
- .build() };
- }
-
- @Override
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GTMTE_TFFTHatch(mName, mTier, mDescriptionArray, mTextures);
- }
-
- @Override
- public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
- return (controller != null) ? controller.pull(resource, doFill) : 0;
- }
-
- @Override
- public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
- if (controller != null) {
- final FluidTankGT sFluid = controller.getSelectedFluid();
- if (controller.getFluidSelector() == -1 || (sFluid != null && sFluid.contains(resource))) {
- return controller.push(resource, doDrain);
- }
- }
- return null;
- }
-
- @Override
- public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
- if (controller != null) {
- final FluidTankGT sFluid = controller.getSelectedFluid();
- if (controller.getFluidSelector() == -1) return controller.push(maxDrain, doDrain);
- if (sFluid != null) return controller.push(sFluid.get(maxDrain), doDrain);
- }
- return null;
- }
-
- @Override
- public FluidTankInfo[] getTankInfo(ForgeDirection from) {
- return (controller != null) ? controller.getTankInfo() : null;
- }
-
- public void bind(GTMTE_TFFT controller) {
- this.controller = controller;
- }
-
- public void unbind() {
- this.controller = null;
- }
-
- @Optional.Method(modid = "appliedenergistics2")
- public static void registerAEIntegration() {
- AEApi.instance()
- .registries()
- .externalStorage()
- .addExternalStorageInterface(new AE2TFFTHatchHandler());
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public IItemList<IAEFluidStack> getAvailableItems(IItemList out, int iteration) {
- if (controller != null) {
- for (int i = 0; i < GTMTE_TFFT.MAX_DISTINCT_FLUIDS; i++) {
- if (!controller.STORE[i].isEmpty()) {
- IAEFluidStack s = AEFluidStack.create(controller.STORE[i].get());
- s.setStackSize(controller.STORE[i].amount());
- out.add(s);
- }
- }
- }
- return out;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public IItemList<IAEFluidStack> getStorageList() {
- IItemList<IAEFluidStack> fluidList = new FluidList();
- if (controller != null) {
- for (int i = 0; i < GTMTE_TFFT.MAX_DISTINCT_FLUIDS; i++) {
- if (!controller.STORE[i].isEmpty()) {
- IAEFluidStack s = AEFluidStack.create(controller.STORE[i].get());
- s.setStackSize(controller.STORE[i].amount());
- fluidList.add(s);
- }
- }
- }
- return fluidList;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public void addListener(IMEMonitorHandlerReceiver<IAEFluidStack> l, Object verificationToken) {
- if (listeners == null) listeners = new HashMap<>();
- listeners.put(l, verificationToken);
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public void removeListener(IMEMonitorHandlerReceiver<IAEFluidStack> l) {
- if (listeners == null) listeners = new HashMap<>();
- listeners.remove(l);
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public AccessRestriction getAccess() {
- return AccessRestriction.READ_WRITE;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public boolean isPrioritized(IAEFluidStack input) {
- if (controller == null || input == null) return false;
- return controller.contains(input.getFluidStack()) || controller.fluidCount() < GTMTE_TFFT.MAX_DISTINCT_FLUIDS;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public boolean canAccept(IAEFluidStack input) {
- if (controller == null || input == null) return false;
- return controller.contains(input.getFluidStack()) || controller.fluidCount() < GTMTE_TFFT.MAX_DISTINCT_FLUIDS;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public int getPriority() {
- return 0;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public int getSlot() {
- return 0;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public boolean validForPass(int i) {
- return true;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public IAEFluidStack injectItems(IAEFluidStack input, Actionable mode, BaseActionSource src) {
- final FluidStack inputStack = input.getFluidStack();
- if (inputStack == null) return null;
- if (controller == null || getBaseMetaTileEntity() == null) return input;
- if (mode != Actionable.SIMULATE) getBaseMetaTileEntity().markDirty();
- long amount = controller.pull(input.getFluidStack(), input.getStackSize(), mode != Actionable.SIMULATE);
- if (amount == 0) return input;
- if (amount == input.getStackSize()) return null;
- IAEFluidStack result = AEFluidStack.create(input.getFluidStack());
- result.setStackSize(input.getStackSize() - amount);
- return result;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public IAEFluidStack extractItems(IAEFluidStack request, Actionable mode, BaseActionSource src) {
- if (controller == null || getBaseMetaTileEntity() == null) return null;
- if (mode != Actionable.SIMULATE) getBaseMetaTileEntity().markDirty();
- long amount = controller.push(request.getFluidStack(), request.getStackSize(), mode != Actionable.SIMULATE);
- if (amount == 0) return null;
- if (amount == request.getStackSize()) return request.copy();
- IAEFluidStack result = AEFluidStack.create(request.getFluidStack());
- result.setStackSize(amount);
- return result;
- }
-
- @Override
- @Optional.Method(modid = "appliedenergistics2")
- public StorageChannel getChannel() {
- return StorageChannel.FLUIDS;
- }
-}
diff --git a/src/main/java/common/tileentities/TE_IchorJar.java b/src/main/java/common/tileentities/TE_IchorJar.java
deleted file mode 100644
index b5e85a9f2b..0000000000
--- a/src/main/java/common/tileentities/TE_IchorJar.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package common.tileentities;
-
-import thaumcraft.common.tiles.TileJarFillable;
-
-public class TE_IchorJar extends TileJarFillable {
-
- public TE_IchorJar() {
- super.maxAmount = 4096;
- }
-}
diff --git a/src/main/java/common/tileentities/TE_IchorVoidJar.java b/src/main/java/common/tileentities/TE_IchorVoidJar.java
deleted file mode 100644
index 9046b2bc33..0000000000
--- a/src/main/java/common/tileentities/TE_IchorVoidJar.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package common.tileentities;
-
-import thaumcraft.common.tiles.TileJarFillableVoid;
-
-public class TE_IchorVoidJar extends TileJarFillableVoid {
-
- public TE_IchorVoidJar() {
- super.maxAmount = 4096;
- }
-}
diff --git a/src/main/java/common/tileentities/TE_ThaumiumReinforcedJar.java b/src/main/java/common/tileentities/TE_ThaumiumReinforcedJar.java
deleted file mode 100644
index e54324220f..0000000000
--- a/src/main/java/common/tileentities/TE_ThaumiumReinforcedJar.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package common.tileentities;
-
-import thaumcraft.common.tiles.TileJarFillable;
-
-public class TE_ThaumiumReinforcedJar extends TileJarFillable {
-
- public TE_ThaumiumReinforcedJar() {
- super.maxAmount = 256;
- }
-}
diff --git a/src/main/java/common/tileentities/TE_ThaumiumReinforcedVoidJar.java b/src/main/java/common/tileentities/TE_ThaumiumReinforcedVoidJar.java
deleted file mode 100644
index dd0166fe6e..0000000000
--- a/src/main/java/common/tileentities/TE_ThaumiumReinforcedVoidJar.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package common.tileentities;
-
-import thaumcraft.common.tiles.TileJarFillableVoid;
-
-public class TE_ThaumiumReinforcedVoidJar extends TileJarFillableVoid {
-
- public TE_ThaumiumReinforcedVoidJar() {
- super.maxAmount = 256;
- }
-}