diff options
author | NotAPenguin <michiel.vandeginste@gmail.com> | 2024-09-02 23:17:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-02 23:17:17 +0200 |
commit | 1b820de08a05070909a267e17f033fcf58ac8710 (patch) | |
tree | 02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/common | |
parent | afd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff) | |
download | GT5-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')
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; - } -} |