From 1e2d5bc47c6037a317f771962c85b5581640811a Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 1 Jun 2020 23:25:03 +0200 Subject: Reworked LSC capacitor recipe generation to be static and not dynamic. Nerfed Ultimate Capacitor to use Really Ultimate Battery recipe. --- src/main/java/common/Recipes.java | 152 ++++++++++++++++++++------------------ 1 file changed, 80 insertions(+), 72 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 0e3fdfc41f..e036c2619c 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -24,8 +24,6 @@ import thaumcraft.api.aspects.AspectList; import thaumcraft.api.crafting.InfusionRecipe; import util.Util; -import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; public class Recipes { @@ -46,23 +44,6 @@ public class Recipes { KekzCore.LOGGER.info("Finished registering recipes"); } - private static void lapoCapacitorRecipeAdder(GT_Recipe.GT_Recipe_AssemblyLine baseRecipe, Materials boxMaterial, ItemStack newResearchTrigger, ItemStack result) { - if(baseRecipe != null) { - final ArrayList baseInputs = new ArrayList<>(Arrays.asList(baseRecipe.mInputs)); - if(baseInputs.size() <= 14){ - baseInputs.add(GT_OreDictUnificator.get(OrePrefixes.frameGt, boxMaterial, 4)); - baseInputs.add(GT_OreDictUnificator.get(OrePrefixes.screw, boxMaterial, 24)); - - GT_Values.RA.addAssemblylineRecipe(newResearchTrigger, baseRecipe.mResearchTime, - Util.toItemStackArray(baseInputs), baseRecipe.mFluidInputs, result, - baseRecipe.mDuration * 2, baseRecipe.mEUt); - KekzCore.LOGGER.info("Successfully extended Lapotronic Battery recipe for Lapotronic Capacitor of tier " + result.getItemDamage()); - } - } else { - KekzCore.LOGGER.info("Base recipe was NULL. Failed to extended Lapotronic Battery recipe for Lapotronic Capacitor of tier " + result.getItemDamage()); - } - } - private static void registerRecipes_TFFT() { // Controller @@ -499,77 +480,104 @@ public class Recipes { }; GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), lcIV_recipe); - KekzCore.LOGGER.info("Reading Assembly Line recipes from GregTech recipe map"); - GT_Recipe.GT_Recipe_AssemblyLine arLuV = null; - // Next two are hardcoded because my code can't find them - GT_Recipe.GT_Recipe_AssemblyLine arZPM = new GT_Recipe.GT_Recipe_AssemblyLine( - ItemList.Energy_LapotronicOrb2.get(1L), 288000, new ItemStack[] { + // LuV Capacitor + GT_Values.RA.addAssemblylineRecipe( + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), 288000, + new Object[] { + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16L), + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 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), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24) + }, + new FluidStack[] { + Materials.SolderingAlloy.getMolten(2880), + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000) + }, + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), 2000, 100000 + ); + // ZPM Capacitor + GT_Values.RA.addAssemblylineRecipe( + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), 288000, + new Object[] { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16L), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 1), + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 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) + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 32), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24) }, new FluidStack[] { Materials.SolderingAlloy.getMolten(2880), new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000) }, - ItemList.Energy_Module.get(1), 2000, 100000 + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3), 2000, 100000 ); - GT_Recipe.GT_Recipe_AssemblyLine arUV = new GT_Recipe.GT_Recipe_AssemblyLine( - ItemList.Energy_Module.get(1L), 288000, new ItemStack[] { - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 32L), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Superconductor, 1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Superconductor, 1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Superconductor, 1), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Superconductor, 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) + // UV Capacitor + GT_Values.RA.addAssemblylineRecipe( + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3), 288000, + new Object[] { + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Americium, 32L), + new Object[]{OrePrefixes.circuit.get(Materials.Superconductor), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Superconductor), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Superconductor), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Superconductor), 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), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24) }, new FluidStack[] { Materials.SolderingAlloy.getMolten(2880), new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000) }, - ItemList.Energy_Cluster.get(1), 2000, 200000 + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4), 2000, 200000 + ); + // Ultimate Capacitor + GT_Values.RA.addAssemblylineRecipe( + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4), 288000, + new Object[] { + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 32L), + GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Neutronium, 32L), + new Object[]{OrePrefixes.circuit.get(Materials.Bio), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Bio), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Bio), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Bio), 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.frameGt, Materials.CosmicNeutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24) + }, + new FluidStack[] { + Materials.SolderingAlloy.getMolten(3760), + Materials.Naquadria.getMolten(9216), + new FluidStack(FluidRegistry.getFluid("ic2coolant"), 32000) + }, + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5), 2000, 200000 ); - GT_Recipe.GT_Recipe_AssemblyLine arU = null; - for(GT_Recipe.GT_Recipe_AssemblyLine ar : GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes) { - if(GT_Utility.areStacksEqual(ar.mOutput, ItemList.Energy_LapotronicOrb2.get(1L), true)) { - // LuV Lapo Orb - arLuV = ar; - } else if(GT_Utility.areStacksEqual(ar.mOutput, ItemList.Energy_Module.get(1L), true)) { - // ZPM Lapo Orb - KekzCore.LOGGER.info("Found matching recipe for Energy Module?"); - } else if(GT_Utility.areStacksEqual(ar.mOutput, ItemList.Energy_Cluster.get(1L), true)) { - // UV Lapo Orb - KekzCore.LOGGER.info("Found matching recipe for Energy Cluster?"); - } else if(GT_Utility.areStacksEqual(ar.mOutput, ItemList.ZPM2.get(1L), true)) { - // Ultimate Battery - arU = ar; - } - } - lapoCapacitorRecipeAdder(arLuV, Materials.Osmiridium, - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Lapis, 1), - new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2)); - lapoCapacitorRecipeAdder(arZPM, Materials.NaquadahAlloy, - new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), - new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3)); - lapoCapacitorRecipeAdder(arUV, Materials.Neutronium, - new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3), - new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4)); - lapoCapacitorRecipeAdder(arU, Materials.CosmicNeutronium, - new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4), - new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5)); // Capacitor recycling GT_Values.RA.addUnboxingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), -- cgit From 221dab12df5cb3555bf0888d2ef1d13e0319992e Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 1 Jun 2020 23:53:04 +0200 Subject: refactored weirdly formatted code --- src/main/java/common/Recipes.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index e036c2619c..ac4160bad2 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -8,7 +8,6 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import items.ErrorItem; import items.MetaItem_CraftingComponent; @@ -400,15 +399,11 @@ public class Recipes { ThaumcraftApi.addInfusionCraftingRecipe("THAUMIUMREINFORCEDJAR", new ItemStack(Blocks.jarThaumiumReinforced, 1, 0), 5, aspects_jarthaumiumreinforced, ItemApi.getBlock("blockJar", 0), recipe_jarthaumiumreinforced)); // Thaumium Reinforced Void Jar - final ItemStack n1 = GT_OreDictUnificator.get(OrePrefixes.plateDense, Materials.Obsidian, 1); - final ItemStack n2 = GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Blaze, 1); - final ItemStack n3 = GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderEye, 1); - final ItemStack n4 = ItemApi.getItem("itemNugget", 5); final ItemStack[] recipe_voidjarupgrade = { - n1, - n2, - n3, - n4 + 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) -- cgit From 36832d19447ede49cf85a8480ae5c869d1263e3c Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 00:54:41 +0200 Subject: code cleanup --- src/main/java/common/Recipes.java | 4 +- src/main/java/common/items/ErrorItem.java | 48 +++++ .../common/items/MetaItem_CraftingComponent.java | 102 ++++++++++ .../common/items/MetaItem_ReactorComponent.java | 142 ++++++++++++++ src/main/java/config/ConfigIO.java | 49 ----- src/main/java/items/ErrorItem.java | 50 ----- .../java/items/MetaItem_CraftingComponent.java | 104 ---------- src/main/java/items/MetaItem_ReactorComponent.java | 148 --------------- src/main/java/kekztech/Items.java | 188 +++++++++--------- src/main/java/kekztech/KekzCore.java | 210 ++++++++++----------- src/main/java/util/Util.java | 102 +++++----- 11 files changed, 544 insertions(+), 603 deletions(-) create mode 100644 src/main/java/common/items/ErrorItem.java create mode 100644 src/main/java/common/items/MetaItem_CraftingComponent.java create mode 100644 src/main/java/common/items/MetaItem_ReactorComponent.java delete mode 100644 src/main/java/config/ConfigIO.java delete mode 100644 src/main/java/items/ErrorItem.java delete mode 100644 src/main/java/items/MetaItem_CraftingComponent.java delete mode 100644 src/main/java/items/MetaItem_ReactorComponent.java (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index ac4160bad2..82d7708ee8 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -9,8 +9,8 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import items.ErrorItem; -import items.MetaItem_CraftingComponent; +import common.items.ErrorItem; +import common.items.MetaItem_CraftingComponent; import kekztech.Items; import kekztech.KekzCore; import net.minecraft.item.ItemStack; diff --git a/src/main/java/common/items/ErrorItem.java b/src/main/java/common/items/ErrorItem.java new file mode 100644 index 0000000000..4b79e5fbd8 --- /dev/null +++ b/src/main/java/common/items/ErrorItem.java @@ -0,0 +1,48 @@ +package common.items; + +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +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; + +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 new file mode 100644 index 0000000000..ac57222b79 --- /dev/null +++ b/src/main/java/common/items/MetaItem_CraftingComponent.java @@ -0,0 +1,102 @@ +package common.items; + +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +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; + +public class MetaItem_CraftingComponent extends Item { + + private static final MetaItem_CraftingComponent INSTANCE = new MetaItem_CraftingComponent(); + private final IIcon[] icons = new IIcon[17]; + + 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 = 0; + // Raw heat pipes + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CopperHeatPipe"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "SilverHeatPipe"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideHeatPipe"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "DiamondHeatPipe"); + // Dust + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "AmineCarbamateDust"); + // Crystal + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideCrystal"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondCrystal"); + // 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"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerBlade"); + } + + @Override + public IIcon getIconFromDamage(int meta) { + return icons[meta]; + } + + @SuppressWarnings({"unchecked"}) + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; 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/items/MetaItem_ReactorComponent.java b/src/main/java/common/items/MetaItem_ReactorComponent.java new file mode 100644 index 0000000000..705c6e8693 --- /dev/null +++ b/src/main/java/common/items/MetaItem_ReactorComponent.java @@ -0,0 +1,142 @@ +package common.items; + +import java.util.List; + +import org.lwjgl.input.Keyboard; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +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.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IIcon; +import reactor.items.CoolantCell; +import reactor.items.FuelRod; +import reactor.items.HeatExchanger; +import reactor.items.HeatVent; +import reactor.items.NeutronReflector; + +public class MetaItem_ReactorComponent extends Item { + + private static final MetaItem_ReactorComponent INSTANCE = new MetaItem_ReactorComponent(); + private final IIcon[] icons = new IIcon[50]; + + private MetaItem_ReactorComponent() { } + + public static MetaItem_ReactorComponent getInstance() { + return INSTANCE; + } + + public void registerItem() { + super.setHasSubtypes(true); + final String unlocalizedName = "kekztech_reactor_item"; + super.setUnlocalizedName(unlocalizedName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setMaxStackSize(1); + GameRegistry.registerItem(getInstance(), unlocalizedName); + } + + @Override + public void registerIcons(IIconRegister reg) { + int counter = 0; + for(String s : HeatVent.RESOURCE_NAMES) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : HeatExchanger.RESOURCE_NAME) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : FuelRod.RESOURCE_NAME) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : FuelRod.RESOURCE_NAME_DEPLETED) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : NeutronReflector.RESOURCE_NAME) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : CoolantCell.RESOURCE_NAME) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + } + + @Override + public IIcon getIconFromDamage(int meta) { + return icons[meta]; + } + + @SuppressWarnings({"unchecked"}) + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; 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) { + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + list.add("Property = 1"); + } else { + list.add("Part for the Modular Nuclear Reactor"); + list.add("Hold " + EnumChatFormatting.BOLD + "[LSHIFT]" + EnumChatFormatting.RESET + EnumChatFormatting.GRAY + " to display properties"); + } + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + NBTTagCompound nbt = (stack.getTagCompound() == null) ? new NBTTagCompound() : stack.getTagCompound(); + if(nbt.getInteger("HEALTH") != 0 && nbt.getInteger("MAXHEALTH") != 0) { + return 1 - (double) (nbt.getInteger("HEALTH") / nbt.getInteger("MAXHEALTH")); + } else { + return 0.0d; + } + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + final int meta = stack.getItemDamage(); + return meta < 31 || meta > 45; + } + + public ItemStack getStackFromDamage(int meta) { + return new ItemStack(getInstance(), 1, meta); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/config/ConfigIO.java b/src/main/java/config/ConfigIO.java deleted file mode 100644 index 4898c9b58d..0000000000 --- a/src/main/java/config/ConfigIO.java +++ /dev/null @@ -1,49 +0,0 @@ -package config; - -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Properties; - -public class ConfigIO { - - private static final String CONFIG_PATH = "main/java/config/config.properties"; - private static final int CONFIG_SIZE = 0; - - private static Properties config; - - private ConfigIO() { - - } - - public static void load() { - config = new Properties(); - try { - config.load(new FileInputStream(CONFIG_PATH)); - } catch (IOException e) { - throw new IllegalStateException("Failed to load KekzTech config!"); - } - if(config.size() != CONFIG_SIZE) { - throw new IllegalStateException("KekzTech config is not expected size!"); - } - } - - @SuppressWarnings("unchecked") - public T get(String key, T valueType) { - if(config.size() != CONFIG_SIZE) { - throw new IllegalStateException("Tried to access config without loading it first"); - } - return (T) config.get((Object) key); - } - - public static void saveConfig() { - try { - config = (config == null) ? new Properties() : config; - config.setProperty("key", "value"); - config.store(new FileOutputStream(CONFIG_PATH), "Welcome to KekzTech's config file :)"); - } catch (IOException e) { - System.err.println("Failed to save changes to KekzTech config. Settings may be lost."); - } - } - -} diff --git a/src/main/java/items/ErrorItem.java b/src/main/java/items/ErrorItem.java deleted file mode 100644 index f0dbc9e600..0000000000 --- a/src/main/java/items/ErrorItem.java +++ /dev/null @@ -1,50 +0,0 @@ -package items; - -import java.util.List; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -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; - -public class ErrorItem extends Item { - - private static final ErrorItem instance = new ErrorItem(); - - private ErrorItem() { - // I am a singleton - } - - 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", "rawtypes"}) - @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/items/MetaItem_CraftingComponent.java b/src/main/java/items/MetaItem_CraftingComponent.java deleted file mode 100644 index ae5bedad91..0000000000 --- a/src/main/java/items/MetaItem_CraftingComponent.java +++ /dev/null @@ -1,104 +0,0 @@ -package items; - -import java.util.List; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -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; - -public class MetaItem_CraftingComponent extends Item { - - private static MetaItem_CraftingComponent instance = new MetaItem_CraftingComponent(); - private final IIcon[] icons = new IIcon[17]; - - private MetaItem_CraftingComponent() { - // I am a singleton - } - - 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 = 0; - // Raw heat pipes - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CopperHeatPipe"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "SilverHeatPipe"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideHeatPipe"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "DiamondHeatPipe"); - // Dust - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "AmineCarbamateDust"); - // Crystal - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideCrystal"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondCrystal"); - // 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"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerBlade"); - } - - @Override - public IIcon getIconFromDamage(int meta) { - return icons[meta]; - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < icons.length; i++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public String getUnlocalizedName(ItemStack stack) { - return super.getUnlocalizedName() + "." + stack.getItemDamage(); - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @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/items/MetaItem_ReactorComponent.java b/src/main/java/items/MetaItem_ReactorComponent.java deleted file mode 100644 index 13a19dbc7c..0000000000 --- a/src/main/java/items/MetaItem_ReactorComponent.java +++ /dev/null @@ -1,148 +0,0 @@ -package items; - -import java.util.List; - -import org.lwjgl.input.Keyboard; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -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.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IIcon; -import reactor.items.CoolantCell; -import reactor.items.FuelRod; -import reactor.items.HeatExchanger; -import reactor.items.HeatVent; -import reactor.items.NeutronReflector; - -public class MetaItem_ReactorComponent extends Item { - - private static MetaItem_ReactorComponent instance = new MetaItem_ReactorComponent(); - private final IIcon[] icons = new IIcon[50]; - - private MetaItem_ReactorComponent() { - // I am a singleton - } - - public static MetaItem_ReactorComponent getInstance() { - return instance; - } - - public void registerItem() { - super.setHasSubtypes(true); - final String unlocalizedName = "kekztech_reactor_item"; - super.setUnlocalizedName(unlocalizedName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setMaxStackSize(1); - GameRegistry.registerItem(getInstance(), unlocalizedName); - } - - @Override - public void registerIcons(IIconRegister reg) { - int counter = 0; - for(String s : HeatVent.RESOURCE_NAMES) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : HeatExchanger.RESOURCE_NAME) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : FuelRod.RESOURCE_NAME) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : FuelRod.RESOURCE_NAME_DEPLETED) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : NeutronReflector.RESOURCE_NAME) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : CoolantCell.RESOURCE_NAME) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - } - - @Override - public IIcon getIconFromDamage(int meta) { - return icons[meta]; - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < icons.length; i++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public String getUnlocalizedName(ItemStack stack) { - return super.getUnlocalizedName() + "." + stack.getItemDamage(); - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { - if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - list.add("Property = 1"); - } else { - list.add("Part for the Modular Nuclear Reactor"); - list.add("Hold " + EnumChatFormatting.BOLD + "[LSHIFT]" + EnumChatFormatting.RESET + EnumChatFormatting.GRAY + " to display properties"); - } - } - - @Override - public double getDurabilityForDisplay(ItemStack stack) { - NBTTagCompound nbt = (stack.getTagCompound() == null) ? new NBTTagCompound() : stack.getTagCompound(); - if(nbt.getInteger("HEALTH") != 0 && nbt.getInteger("MAXHEALTH") != 0) { - return 1 - (double) (nbt.getInteger("HEALTH") / nbt.getInteger("MAXHEALTH")); - } else { - return 0.0d; - } - } - - @Override - public boolean showDurabilityBar(ItemStack stack) { - final int meta = stack.getItemDamage(); - if(meta >= 31 && meta <= 45) { - return false; - } else { - return true; - } - } - - public ItemStack getStackFromDamage(int meta) { - return new ItemStack(getInstance(), 1, meta); - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} diff --git a/src/main/java/kekztech/Items.java b/src/main/java/kekztech/Items.java index cb79d01947..66a8f996e3 100644 --- a/src/main/java/kekztech/Items.java +++ b/src/main/java/kekztech/Items.java @@ -1,94 +1,94 @@ -package kekztech; - -import items.MetaItem_CraftingComponent; -import items.MetaItem_ReactorComponent; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; -import util.Util; - -import java.util.Arrays; - -public enum Items { - // Heat Vents - T1HeatVent(0,0), T2HeatVent(1,0), T3HeatVent(2,0), T4HeatVent(3,0), - T1ComponentHeatVent(4,0), T2ComponentHeatVent(5,0), T3ComponentHeatVent(6,0), T4ComponentHeatVent(7,0), - T1OverclockedHeatVent(8,0), T2OverclockedHeatVent(9,0), T3OverclockedHeatVent(10,0), T4OverclockedHeatVent(11,0), - // Heat Exchanger - T1HeatExchanger(12,0), T2HeatExchanger(13,0), T3HeatExchanger(14,0), T4HeatExchanger(15,0), - // Fuel Rods - UraniumFuelRod(16,0), UraniumDualFuelRod(17,0), UraniumQuadFuelRod(18,0), - ThoriumFuelRod(19,0), ThoriumDualFuelRod(20,0), ThoriumQuadFuelRod(21,0), - MOXFuelRod(22,0), MOXDualFuelRod(23,0), MOXQuadFuelRod(24,0), - NaquadahFuelRod(25,0), NaquadahDualFuelRod(26,0), NaquadahQuadFuelRod(27,0), - Th_MOXFuelRod(28,0), Th_MOXDualFuelRod(29,0), Th_MOXQuadFuelRod(30,0), - // Depleted Fuel Rods - DepletedUraniumFuelRod(31,0), DepletedUraniumDualFuelRod(32,0), DepletedUraniumQuadFuelRod(33,0), - DepletedThoriumFuelRod(34,0), DepletedThoriumDualFuelRod(35,0), DepletedThoriumQuadFuelRod(36,0), - DepletedMOXFuelRod(37,0), DepletedMOXDualFuelRod(38,0), DepletedMOXQuadFuelRod(39,0), - DepletedNaquadahFuelRod(40,0), DepletedNaquadahDualFuelRod(41,0), DepletedNaquadahQuadFuelRod(42,0), - Th_DepletedMOXFuelRod(43,0), Th_DepletedMOXDualFuelRod(44,0), Th_DepletedMOXQuadFuelRod(45,0), - // Neutron Reflectors - T1NeutronReflector(46,0), T2NeutronReflector(47,0), - // Coolant Cells - HeliumCoolantCell360k(48,0), NaKCoolantCell360k(49,0), - - // Heat Pipes - CopperHeatPipe(0,1), SilverHeatPipe(1,1), BoronArsenideHeatPipe(2,1), DiamondHeatPipe(3,1), - BoronArsenideDust(4,1), IsotopicallyPureDiamondDust(5,1), AmineCarbamiteDust(6,1), - BoronArsenideCrystal(7,1), IsotopicallyPureDiamondCrystal(8,1), - // Ceramics - YSZCeramicDust(9,1), GDCCeramicDust(10,1), - YttriaDust(11,1), ZirconiaDust(12,1), CeriaDust(13,1), - YSZCeramicPlate(14,1), GDCCeramicPlate(15,1), - ItemServerBlade(16,1), - // Error Item - Error(0,1), - // Configurator - Configurator(0, 1); - - static { - YttriaDust.setOreDictName("dustYttriumOxide"); - ZirconiaDust.setOreDictName("dustCubicZirconia"); - } - - private final int metaID; - private final int identifier; - - private Items(int metaID, int identifier) { - this.metaID = metaID; - this.identifier = identifier; - } - - public int getMetaID() { - return metaID; - } - - String OreDictName; - - private void registerOreDict(){ - OreDictionary.registerOre(getOreDictName(),getNonOreDictedItemStack(1)); - } - - public static void registerOreDictNames(){ - Arrays.stream(Items.values()).filter(e -> e.getOreDictName() != null).forEach(Items::registerOreDict); - } - - public ItemStack getNonOreDictedItemStack(int amount){ - return identifier == 0 ? new ItemStack(MetaItem_ReactorComponent.getInstance(),amount,this.getMetaID()) : - new ItemStack(MetaItem_CraftingComponent.getInstance(),amount,this.getMetaID()); - } - - public ItemStack getOreDictedItemStack(int amount){ - return this.getOreDictName() != null ? Util.getStackofAmountFromOreDict(this.getOreDictName(),amount) : - identifier == 0 ? new ItemStack(MetaItem_ReactorComponent.getInstance(),amount,this.getMetaID()) : - new ItemStack(MetaItem_CraftingComponent.getInstance(),amount,this.getMetaID()); - } - - public String getOreDictName() { - return OreDictName; - } - - public void setOreDictName(String oreDictName) { - OreDictName = oreDictName; - } -} +package kekztech; + +import common.items.MetaItem_CraftingComponent; +import common.items.MetaItem_ReactorComponent; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; +import util.Util; + +import java.util.Arrays; + +public enum Items { + // Heat Vents + T1HeatVent(0,0), T2HeatVent(1,0), T3HeatVent(2,0), T4HeatVent(3,0), + T1ComponentHeatVent(4,0), T2ComponentHeatVent(5,0), T3ComponentHeatVent(6,0), T4ComponentHeatVent(7,0), + T1OverclockedHeatVent(8,0), T2OverclockedHeatVent(9,0), T3OverclockedHeatVent(10,0), T4OverclockedHeatVent(11,0), + // Heat Exchanger + T1HeatExchanger(12,0), T2HeatExchanger(13,0), T3HeatExchanger(14,0), T4HeatExchanger(15,0), + // Fuel Rods + UraniumFuelRod(16,0), UraniumDualFuelRod(17,0), UraniumQuadFuelRod(18,0), + ThoriumFuelRod(19,0), ThoriumDualFuelRod(20,0), ThoriumQuadFuelRod(21,0), + MOXFuelRod(22,0), MOXDualFuelRod(23,0), MOXQuadFuelRod(24,0), + NaquadahFuelRod(25,0), NaquadahDualFuelRod(26,0), NaquadahQuadFuelRod(27,0), + Th_MOXFuelRod(28,0), Th_MOXDualFuelRod(29,0), Th_MOXQuadFuelRod(30,0), + // Depleted Fuel Rods + DepletedUraniumFuelRod(31,0), DepletedUraniumDualFuelRod(32,0), DepletedUraniumQuadFuelRod(33,0), + DepletedThoriumFuelRod(34,0), DepletedThoriumDualFuelRod(35,0), DepletedThoriumQuadFuelRod(36,0), + DepletedMOXFuelRod(37,0), DepletedMOXDualFuelRod(38,0), DepletedMOXQuadFuelRod(39,0), + DepletedNaquadahFuelRod(40,0), DepletedNaquadahDualFuelRod(41,0), DepletedNaquadahQuadFuelRod(42,0), + Th_DepletedMOXFuelRod(43,0), Th_DepletedMOXDualFuelRod(44,0), Th_DepletedMOXQuadFuelRod(45,0), + // Neutron Reflectors + T1NeutronReflector(46,0), T2NeutronReflector(47,0), + // Coolant Cells + HeliumCoolantCell360k(48,0), NaKCoolantCell360k(49,0), + + // Heat Pipes + CopperHeatPipe(0,1), SilverHeatPipe(1,1), BoronArsenideHeatPipe(2,1), DiamondHeatPipe(3,1), + BoronArsenideDust(4,1), IsotopicallyPureDiamondDust(5,1), AmineCarbamiteDust(6,1), + BoronArsenideCrystal(7,1), IsotopicallyPureDiamondCrystal(8,1), + // Ceramics + YSZCeramicDust(9,1), GDCCeramicDust(10,1), + YttriaDust(11,1), ZirconiaDust(12,1), CeriaDust(13,1), + YSZCeramicPlate(14,1), GDCCeramicPlate(15,1), + ItemServerBlade(16,1), + // Error Item + Error(0,1), + // Configurator + Configurator(0, 1); + + static { + YttriaDust.setOreDictName("dustYttriumOxide"); + ZirconiaDust.setOreDictName("dustCubicZirconia"); + } + + private final int metaID; + private final int identifier; + + Items(int metaID, int identifier) { + this.metaID = metaID; + this.identifier = identifier; + } + + public int getMetaID() { + return metaID; + } + + String OreDictName; + + private void registerOreDict(){ + OreDictionary.registerOre(getOreDictName(),getNonOreDictedItemStack(1)); + } + + public static void registerOreDictNames(){ + Arrays.stream(Items.values()).filter(e -> e.getOreDictName() != null).forEach(Items::registerOreDict); + } + + public ItemStack getNonOreDictedItemStack(int amount){ + return identifier == 0 ? new ItemStack(MetaItem_ReactorComponent.getInstance(),amount,this.getMetaID()) : + new ItemStack(MetaItem_CraftingComponent.getInstance(),amount,this.getMetaID()); + } + + public ItemStack getOreDictedItemStack(int amount){ + return this.getOreDictName() != null ? Util.getStackofAmountFromOreDict(this.getOreDictName(),amount) : + identifier == 0 ? new ItemStack(MetaItem_ReactorComponent.getInstance(),amount,this.getMetaID()) : + new ItemStack(MetaItem_CraftingComponent.getInstance(),amount,this.getMetaID()); + } + + public String getOreDictName() { + return OreDictName; + } + + public void setOreDictName(String oreDictName) { + OreDictName = oreDictName; + } +} diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java index 7574c1f399..10d9281c49 100644 --- a/src/main/java/kekztech/KekzCore.java +++ b/src/main/java/kekztech/KekzCore.java @@ -1,105 +1,105 @@ -package kekztech; - -import client.renderer.TESR_SECapacitor; -import client.renderer.TESR_SETether; -import common.Blocks; -import common.Recipes; -import common.Researches; -import common.tileentities.*; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import items.ErrorItem; -import items.MetaItem_CraftingComponent; -import items.MetaItem_ReactorComponent; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -/** - * My GT-Meta-IDs are: 13101 - 13500 - * - * @author kekzdealer - * - */ -@Mod(modid = KekzCore.MODID, name = KekzCore.NAME, version = KekzCore.VERSION, - dependencies = - "required-after:IC2;" - + "required-after:gregtech;" - + "required-after:tectech;" - + "required-after:Thaumcraft;" - + "required-after:ThaumicTinkerer;" - + "after:bartworks;" - + "after:dreamcraft" - ) -public class KekzCore { - - public static final String NAME = "KekzTech"; - public static final String MODID = "kekztech"; - public static final String VERSION = "0.4.5"; - - public static final Logger LOGGER = LogManager.getLogger(NAME); - - @Mod.Instance("kekztech") - public static KekzCore instance; - - public static GTMTE_SOFuelCellMK1 sofc1; - public static GTMTE_SOFuelCellMK2 sofc2; - public static GTMTE_ModularNuclearReactor mdr; - public static GTMTE_FluidMultiStorage fms; - public static GTMTE_ItemServer is; - public static GTMTE_LapotronicSuperCapacitor lsc; - public static GTMTE_SpaceElevator se; - - @Mod.EventHandler - public void preInit(FMLPreInitializationEvent event) { - // Items - ErrorItem.getInstance().registerItem(); - MetaItem_ReactorComponent.getInstance().registerItem(); - MetaItem_CraftingComponent.getInstance().registerItem(); - Items.registerOreDictNames(); - - Blocks.preInit(); - - // Register TileEntities - GameRegistry.registerTileEntity(TE_TFFTMultiHatch.class, "kekztech_tfftmultihatch_tile"); - //GameRegistry.registerTileEntity(TE_ItemServerIOPort.class, "kekztech_itemserverioport_tile"); - GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile"); - GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile"); - GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); - GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); - GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); - - // Register guis - NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); - - // Register TESR - ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); - ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); - - Researches.preInit(); - } - - @Mod.EventHandler - public void init(FMLInitializationEvent event) { - // Multiblock controllers - sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); - sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); - mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); - fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); - //is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server"); - lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); - se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); - // Register renderer - //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); - } - - @Mod.EventHandler - public void postInit(FMLPostInitializationEvent event) { - Recipes.postInit(); - Researches.postInit(); - } -} +package kekztech; + +import client.renderer.TESR_SECapacitor; +import client.renderer.TESR_SETether; +import common.Blocks; +import common.Recipes; +import common.Researches; +import common.tileentities.*; +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import common.items.ErrorItem; +import common.items.MetaItem_CraftingComponent; +import common.items.MetaItem_ReactorComponent; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +/** + * My GT-Meta-IDs are: 13101 - 13500 + * + * @author kekzdealer + * + */ +@Mod(modid = KekzCore.MODID, name = KekzCore.NAME, version = KekzCore.VERSION, + dependencies = + "required-after:IC2;" + + "required-after:gregtech;" + + "required-after:tectech;" + + "required-after:Thaumcraft;" + + "required-after:ThaumicTinkerer;" + + "after:bartworks;" + + "after:dreamcraft" + ) +public class KekzCore { + + public static final String NAME = "KekzTech"; + public static final String MODID = "kekztech"; + public static final String VERSION = "0.4.5"; + + public static final Logger LOGGER = LogManager.getLogger(NAME); + + @Mod.Instance("kekztech") + public static KekzCore instance; + + public static GTMTE_SOFuelCellMK1 sofc1; + public static GTMTE_SOFuelCellMK2 sofc2; + public static GTMTE_ModularNuclearReactor mdr; + public static GTMTE_FluidMultiStorage fms; + public static GTMTE_ItemServer is; + public static GTMTE_LapotronicSuperCapacitor lsc; + public static GTMTE_SpaceElevator se; + + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) { + // Items + ErrorItem.getInstance().registerItem(); + MetaItem_ReactorComponent.getInstance().registerItem(); + MetaItem_CraftingComponent.getInstance().registerItem(); + Items.registerOreDictNames(); + + Blocks.preInit(); + + // Register TileEntities + GameRegistry.registerTileEntity(TE_TFFTMultiHatch.class, "kekztech_tfftmultihatch_tile"); + //GameRegistry.registerTileEntity(TE_ItemServerIOPort.class, "kekztech_itemserverioport_tile"); + GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile"); + GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile"); + GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); + GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); + GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); + + // Register guis + NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); + + // Register TESR + ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); + ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); + + Researches.preInit(); + } + + @Mod.EventHandler + public void init(FMLInitializationEvent event) { + // Multiblock controllers + sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); + sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); + mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); + fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); + //is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server"); + lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); + se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); + // Register renderer + //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); + } + + @Mod.EventHandler + public void postInit(FMLPostInitializationEvent event) { + Recipes.postInit(); + Researches.postInit(); + } +} diff --git a/src/main/java/util/Util.java b/src/main/java/util/Util.java index aa362d67d7..8ccf3313ac 100644 --- a/src/main/java/util/Util.java +++ b/src/main/java/util/Util.java @@ -1,51 +1,51 @@ -package util; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import items.ErrorItem; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.oredict.OreDictionary; - -public class Util { - - public static ItemStack getStackofAmountFromOreDict(String oredictName, final int amount){ - final ArrayList list = OreDictionary.getOres(oredictName); - if(!list.isEmpty()) { - final ItemStack ret = list.get(0).copy(); - ret.stackSize = amount; - return ret; - } - System.err.println("Failed to find " + oredictName + " in OreDict"); - return new ItemStack(ErrorItem.getInstance(), amount); - } - - public static ItemStack[] toItemStackArray(List stacksList) { - if(stacksList.size() == 0) { - return null; - } - - ItemStack[] ret = new ItemStack[stacksList.size()]; - Iterator iterator = stacksList.iterator(); - for(int i = 0; i < ret.length; i++ ) { - ret[i] = iterator.next(); - } - return ret; - } - - public static FluidStack[] toFluidStackArray(List stacksList) { - if(stacksList.size() == 0) { - return null; - } - - FluidStack[] ret = new FluidStack[stacksList.size()]; - Iterator iterator = stacksList.iterator(); - for(int i = 0; i < ret.length; i++ ) { - ret[i] = iterator.next(); - } - return ret; - } - -} +package util; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import common.items.ErrorItem; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.oredict.OreDictionary; + +public class Util { + + public static ItemStack getStackofAmountFromOreDict(String oredictName, final int amount){ + final ArrayList list = OreDictionary.getOres(oredictName); + if(!list.isEmpty()) { + final ItemStack ret = list.get(0).copy(); + ret.stackSize = amount; + return ret; + } + System.err.println("Failed to find " + oredictName + " in OreDict"); + return new ItemStack(ErrorItem.getInstance(), amount); + } + + public static ItemStack[] toItemStackArray(List stacksList) { + if(stacksList.size() == 0) { + return null; + } + + ItemStack[] ret = new ItemStack[stacksList.size()]; + Iterator iterator = stacksList.iterator(); + for(int i = 0; i < ret.length; i++ ) { + ret[i] = iterator.next(); + } + return ret; + } + + public static FluidStack[] toFluidStackArray(List stacksList) { + if(stacksList.size() == 0) { + return null; + } + + FluidStack[] ret = new FluidStack[stacksList.size()]; + Iterator iterator = stacksList.iterator(); + for(int i = 0; i < ret.length; i++ ) { + ret[i] = iterator.next(); + } + return ret; + } + +} -- cgit From cf4206d981762fbcd00ab62f89034eb351559356 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 01:49:21 +0200 Subject: Refactored into sided proxies --- src/main/java/client/ClientProxy.java | 29 ++++++++++++++++++ src/main/java/common/CommonProxy.java | 46 ++++++++++++++++++++++++++++ src/main/java/common/TileEntities.java | 36 ++++++++++++++++++++++ src/main/java/kekztech/KekzCore.java | 53 +++++---------------------------- src/main/java/kekztech/ServerProxy.java | 7 +++++ 5 files changed, 126 insertions(+), 45 deletions(-) create mode 100644 src/main/java/client/ClientProxy.java create mode 100644 src/main/java/common/CommonProxy.java create mode 100644 src/main/java/common/TileEntities.java create mode 100644 src/main/java/kekztech/ServerProxy.java (limited to 'src') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java new file mode 100644 index 0000000000..e50639b878 --- /dev/null +++ b/src/main/java/client/ClientProxy.java @@ -0,0 +1,29 @@ +package client; + +import client.renderer.TESR_SECapacitor; +import client.renderer.TESR_SETether; +import common.CommonProxy; +import common.tileentities.TE_SpaceElevatorCapacitor; +import common.tileentities.TE_SpaceElevatorTether; +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class ClientProxy extends CommonProxy { + + @Override + public void preInit(final FMLPreInitializationEvent e) { + super.preInit(e); + // Register TESR + ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); + ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); + } + + @Override + public void init(final FMLInitializationEvent e) { + super.init(e); + // Register Simple Block Renderers + //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); + } + +} diff --git a/src/main/java/common/CommonProxy.java b/src/main/java/common/CommonProxy.java new file mode 100644 index 0000000000..3341019ffc --- /dev/null +++ b/src/main/java/common/CommonProxy.java @@ -0,0 +1,46 @@ +package common; + +import common.items.ErrorItem; +import common.items.MetaItem_CraftingComponent; +import common.items.MetaItem_ReactorComponent; +import common.tileentities.*; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.GuiHandler; +import kekztech.Items; +import kekztech.KekzCore; + +public class CommonProxy { + + public void preInit(final FMLPreInitializationEvent e) { + // Items + ErrorItem.getInstance().registerItem(); + MetaItem_ReactorComponent.getInstance().registerItem(); + MetaItem_CraftingComponent.getInstance().registerItem(); + Items.registerOreDictNames(); + // Blocks + Blocks.preInit(); + // TileEntities + TileEntities.preInit(); + // TC Research + Researches.preInit(); + // GUI Handler + NetworkRegistry.INSTANCE.registerGuiHandler(KekzCore.instance, new GuiHandler()); + } + + public void init(final FMLInitializationEvent e) { + // GregTech Meta TileEntities + TileEntities.init(); + } + + public void postInit(final FMLPostInitializationEvent e) { + // Recipes + Recipes.postInit(); + // Research + Researches.postInit(); + } + +} diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java new file mode 100644 index 0000000000..2e51dec473 --- /dev/null +++ b/src/main/java/common/TileEntities.java @@ -0,0 +1,36 @@ +package common; + +import common.tileentities.*; +import cpw.mods.fml.common.registry.GameRegistry; + +public class TileEntities { + + public static GTMTE_SOFuelCellMK1 sofc1; + public static GTMTE_SOFuelCellMK2 sofc2; + public static GTMTE_ModularNuclearReactor mdr; + public static GTMTE_FluidMultiStorage fms; + public static GTMTE_ItemServer is; + public static GTMTE_LapotronicSuperCapacitor lsc; + public static GTMTE_SpaceElevator se; + + public static void preInit() { + GameRegistry.registerTileEntity(TE_TFFTMultiHatch.class, "kekztech_tfftmultihatch_tile"); + //GameRegistry.registerTileEntity(TE_ItemServerIOPort.class, "kekztech_itemserverioport_tile"); + GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile"); + GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile"); + GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); + GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); + GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); + } + + public static void init() { + sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); + sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); + mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); + fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); + //is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server"); + lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); + se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); + } + +} diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java index 10d9281c49..49f7cfa54e 100644 --- a/src/main/java/kekztech/KekzCore.java +++ b/src/main/java/kekztech/KekzCore.java @@ -3,11 +3,13 @@ package kekztech; import client.renderer.TESR_SECapacitor; import client.renderer.TESR_SETether; import common.Blocks; +import common.CommonProxy; import common.Recipes; import common.Researches; import common.tileentities.*; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -46,60 +48,21 @@ public class KekzCore { @Mod.Instance("kekztech") public static KekzCore instance; - public static GTMTE_SOFuelCellMK1 sofc1; - public static GTMTE_SOFuelCellMK2 sofc2; - public static GTMTE_ModularNuclearReactor mdr; - public static GTMTE_FluidMultiStorage fms; - public static GTMTE_ItemServer is; - public static GTMTE_LapotronicSuperCapacitor lsc; - public static GTMTE_SpaceElevator se; - + @SidedProxy(clientSide = "client.ClientProxy", serverSide = "kekztech.ServerProxy") + public static CommonProxy proxy; + @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { - // Items - ErrorItem.getInstance().registerItem(); - MetaItem_ReactorComponent.getInstance().registerItem(); - MetaItem_CraftingComponent.getInstance().registerItem(); - Items.registerOreDictNames(); - - Blocks.preInit(); - - // Register TileEntities - GameRegistry.registerTileEntity(TE_TFFTMultiHatch.class, "kekztech_tfftmultihatch_tile"); - //GameRegistry.registerTileEntity(TE_ItemServerIOPort.class, "kekztech_itemserverioport_tile"); - GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile"); - GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile"); - GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); - GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); - GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); - - // Register guis - NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); - - // Register TESR - ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); - ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); - - Researches.preInit(); + proxy.preInit(event); } @Mod.EventHandler public void init(FMLInitializationEvent event) { - // Multiblock controllers - sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); - sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); - mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); - fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); - //is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server"); - lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); - se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); - // Register renderer - //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); + proxy.init(event); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { - Recipes.postInit(); - Researches.postInit(); + proxy.postInit(event); } } diff --git a/src/main/java/kekztech/ServerProxy.java b/src/main/java/kekztech/ServerProxy.java new file mode 100644 index 0000000000..0291cf687f --- /dev/null +++ b/src/main/java/kekztech/ServerProxy.java @@ -0,0 +1,7 @@ +package kekztech; + +import common.CommonProxy; + +public class ServerProxy extends CommonProxy { + +} -- cgit From 840d85d3b1304f06af21058706fa562bdf499634 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 02:02:09 +0200 Subject: organize imports --- src/main/java/common/CommonProxy.java | 2 -- 1 file changed, 2 deletions(-) (limited to 'src') diff --git a/src/main/java/common/CommonProxy.java b/src/main/java/common/CommonProxy.java index 3341019ffc..1e577148fb 100644 --- a/src/main/java/common/CommonProxy.java +++ b/src/main/java/common/CommonProxy.java @@ -3,12 +3,10 @@ package common; import common.items.ErrorItem; import common.items.MetaItem_CraftingComponent; import common.items.MetaItem_ReactorComponent; -import common.tileentities.*; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.registry.GameRegistry; import kekztech.GuiHandler; import kekztech.Items; import kekztech.KekzCore; -- cgit From d0f9393fe5d3ca7fbbdad4901071d779391206ac Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 02:34:55 +0200 Subject: fixed Recipe class and added recipe to turn RU Battery into LSC equivalent --- src/main/java/common/Recipes.java | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 82d7708ee8..f9e80a7a2b 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -54,7 +54,7 @@ public class Recipes { 'V', OrePrefixes.rotor.get(Materials.VibrantAlloy), 'C', OrePrefixes.circuit.get(Materials.Data) }; - GT_ModHandler.addCraftingRecipe(KekzCore.fms.getStackForm(1), tfft_recipe); + GT_ModHandler.addCraftingRecipe(TileEntities.fms.getStackForm(1), tfft_recipe); // Blocks final ItemStack[] tfftcasing = { @@ -155,7 +155,7 @@ public class Recipes { 'B', GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.Gold, 1), 'L', GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1) }; - GT_ModHandler.addCraftingRecipe(KekzCore.sofc1.getStackForm(1), mk1_recipe); + GT_ModHandler.addCraftingRecipe(TileEntities.sofc1.getStackForm(1), mk1_recipe); final Object[] mk2_recipe = { "CCC", "PHP", "FBL", 'C', OrePrefixes.circuit.get(Materials.Master), @@ -165,7 +165,7 @@ public class Recipes { 'B', Util.getStackofAmountFromOreDict("wireGt04SuperconductorEV", 1), 'L', GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1) }; - GT_ModHandler.addCraftingRecipe(KekzCore.sofc2.getStackForm(1), mk2_recipe); + GT_ModHandler.addCraftingRecipe(TileEntities.sofc2.getStackForm(1), mk2_recipe); // Blocks final ItemStack[] yszUnit = { @@ -326,7 +326,7 @@ public class Recipes { 'P', GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 1), 'Z', GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 1) }; - GT_ModHandler.addCraftingRecipe(KekzCore.is.getStackForm(1), is_recipe); + GT_ModHandler.addCraftingRecipe(TileEntities.is.getStackForm(1), is_recipe); // Blocks final Object[] is_rack_recipe = { @@ -456,7 +456,7 @@ public class Recipes { 'C', OrePrefixes.circuit.get(Materials.Master), 'B', new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 0), }; - GT_ModHandler.addCraftingRecipe(KekzCore.lsc.getStackForm(1), lsc_recipe); + GT_ModHandler.addCraftingRecipe(TileEntities.lsc.getStackForm(1), lsc_recipe); // Blocks final Object[] lcBase_recipe = { @@ -595,6 +595,19 @@ public class Recipes { ItemList.ZPM2.get(1L), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24), 1200, 32); + + // For the people that already made the Really Ultimate Battery but want to use the LSC + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { + ItemList.ZPM3.get(1), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.CosmicNeutronium, 4), + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24), + GT_Utility.getIntegratedCircuit(6) + }, + null, + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5), + 1200000, 12000 + ); } private static void registerRecipes_SpaceElevator() { @@ -605,7 +618,7 @@ public class Recipes { 'C', OrePrefixes.cableGt16.get(Materials.Aluminium), 'P', OrePrefixes.circuit.get(Materials.Master) }; - GT_ModHandler.addCraftingRecipe(KekzCore.se.getStackForm(1), se_recipe); + GT_ModHandler.addCraftingRecipe(TileEntities.se.getStackForm(1), se_recipe); // Blocks final Object[] seBase_recipe = { "DRD", "RCR", "DRD", -- cgit From 116452b6574d430b6a3fb685c9f63f2b0a9836df Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 02:41:25 +0200 Subject: version bump --- build.gradle | 2 +- src/main/java/kekztech/KekzCore.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/build.gradle b/build.gradle index 9449608a1a..15da6c830d 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ apply plugin: 'forge' sourceCompatibility = 1.8 targetCompatibility = 1.8 -version = "0.4.5" +version = "0.4.6" group= "kekztech" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "kekztech" diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java index 49f7cfa54e..312559d633 100644 --- a/src/main/java/kekztech/KekzCore.java +++ b/src/main/java/kekztech/KekzCore.java @@ -41,7 +41,7 @@ public class KekzCore { public static final String NAME = "KekzTech"; public static final String MODID = "kekztech"; - public static final String VERSION = "0.4.5"; + public static final String VERSION = "0.4.6"; public static final Logger LOGGER = LogManager.getLogger(NAME); -- cgit From 28663f08609daa4c784e236159dd89875ab41562 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 03:32:25 +0200 Subject: recipe fixes after some testing --- src/main/java/common/Recipes.java | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index f9e80a7a2b..6662660535 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -479,23 +479,22 @@ public class Recipes { GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), 288000, new Object[] { - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16L), - new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, - new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, - new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, - new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 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_Board_Elite.get(1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahAlloy, 64), + new Object[]{OrePrefixes.circuit.get(Materials.Master), 4}, + // 36 lapo chip + // 36 lapo chip + ItemList.Circuit_Chip_HPIC.get(64), ItemList.Circuit_Parts_DiodeASMD.get(8), - GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 32), + ItemList.Circuit_Parts_CapacitorASMD.get(8), + ItemList.Circuit_Parts_ResistorASMD.get(8), + ItemList.Circuit_Parts_TransistorASMD.get(8), + GT_OreDictUnificator.get(OrePrefixes.wire, Materials.Platinum, 64), GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24) }, new FluidStack[] { - Materials.SolderingAlloy.getMolten(2880), - new FluidStack(FluidRegistry.getFluid("ic2coolant"), 16000) + Materials.SolderingAlloy.getMolten(720) }, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), 2000, 100000 ); @@ -606,7 +605,7 @@ public class Recipes { }, null, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 5), - 1200000, 12000 + 12000, 200000 ); } -- cgit From 8974844cff3a73b422703864df069c58faeebf20 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 13:40:51 +0200 Subject: more fixes after testing --- src/main/java/common/Recipes.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 6662660535..1fe759f426 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -482,14 +482,14 @@ public class Recipes { ItemList.Circuit_Board_Elite.get(1), GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahAlloy, 64), new Object[]{OrePrefixes.circuit.get(Materials.Master), 4}, - // 36 lapo chip - // 36 lapo chip + 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.wire, Materials.Platinum, 64), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Platinum, 64), GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24) }, -- cgit From 560b53c9cd34c7ba538938d57a28cb2535ab1f1c Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 13:45:46 +0200 Subject: removed unfinished content for release - revert this later --- src/main/java/common/Blocks.java | 2 +- src/main/java/common/Recipes.java | 2 +- src/main/java/common/TileEntities.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index 18725b6000..f8d7215af9 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -48,7 +48,7 @@ public class Blocks { //registerBlocks_ItemProxy(); registerBlocks_Jars(); registerBlocks_LSC(); - registerBlocks_SpaceElevator(); + //registerBlocks_SpaceElevator(); KekzCore.LOGGER.info("Finished registering blocks"); } diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 1fe759f426..b556aeb94d 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -38,7 +38,7 @@ public class Recipes { //registerRecipes_ItemServer(); registerRecipes_Jars(); registerRecipes_LSC(); - registerRecipes_SpaceElevator(); + //registerRecipes_SpaceElevator(); KekzCore.LOGGER.info("Finished registering recipes"); } diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index 2e51dec473..fecbbf7a86 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -30,7 +30,7 @@ public class TileEntities { fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); //is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server"); lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); - se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); + //se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); } } -- cgit From 95a078ef3139b568dd65f91518f1f13ffc9feae6 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 13:53:07 +0200 Subject: Revert "removed unfinished content for release - revert this later" This reverts commit 560b53c9cd34c7ba538938d57a28cb2535ab1f1c. --- src/main/java/common/Blocks.java | 2 +- src/main/java/common/Recipes.java | 2 +- src/main/java/common/TileEntities.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index f8d7215af9..18725b6000 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -48,7 +48,7 @@ public class Blocks { //registerBlocks_ItemProxy(); registerBlocks_Jars(); registerBlocks_LSC(); - //registerBlocks_SpaceElevator(); + registerBlocks_SpaceElevator(); KekzCore.LOGGER.info("Finished registering blocks"); } diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index b556aeb94d..1fe759f426 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -38,7 +38,7 @@ public class Recipes { //registerRecipes_ItemServer(); registerRecipes_Jars(); registerRecipes_LSC(); - //registerRecipes_SpaceElevator(); + registerRecipes_SpaceElevator(); KekzCore.LOGGER.info("Finished registering recipes"); } diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index fecbbf7a86..2e51dec473 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -30,7 +30,7 @@ public class TileEntities { fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); //is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server"); lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); - //se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); + se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); } } -- cgit From c178019f0705440e5231386903586ed97f718ee6 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 4 Jun 2020 02:24:08 +0200 Subject: Register SE Cap TE; Make caps not red when structure forms (only for debugging checkMachine()) --- src/main/java/common/TileEntities.java | 1 + src/main/java/common/tileentities/GTMTE_SpaceElevator.java | 5 +++++ 2 files changed, 6 insertions(+) (limited to 'src') diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index 2e51dec473..9e3a648667 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -21,6 +21,7 @@ public class TileEntities { GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); + GameRegistry.registerTileEntity(TE_SpaceElevatorCapacitor.class, "kekztech_secapacitor"); } public static void init() { diff --git a/src/main/java/common/tileentities/GTMTE_SpaceElevator.java b/src/main/java/common/tileentities/GTMTE_SpaceElevator.java index 8f7827f4be..49ea5963a3 100644 --- a/src/main/java/common/tileentities/GTMTE_SpaceElevator.java +++ b/src/main/java/common/tileentities/GTMTE_SpaceElevator.java @@ -140,6 +140,7 @@ public class GTMTE_SpaceElevator extends GT_MetaTileEntity_MultiBlockBase { boolean formationChecklist = true; int minCasingAmount = 320; int firstCoilMeta = -1; + capacitors.clear(); // Base floor for(int X = -7; X <= 7; X++){ @@ -215,6 +216,10 @@ public class GTMTE_SpaceElevator extends GT_MetaTileEntity_MultiBlockBase { formationChecklist = false; } + for(TE_SpaceElevatorCapacitor cap : capacitors){ + cap.setIsDamaged(false); + } + return formationChecklist; } -- cgit From 6187ece02c4b90cedbcd8ca6ec83d0b7803b6e63 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 4 Jun 2020 22:16:41 +0200 Subject: Implemented sub types for TFFT Multi hatch --- .../common/blocks/Block_LapotronicEnergyUnit.java | 16 +- .../java/common/blocks/Block_TFFTMultiHatch.java | 47 ++- .../java/common/itemBlocks/IB_TFFTMultiHatch.java | 23 +- .../common/tileentities/GTMTE_SpaceElevator.java | 15 - .../common/tileentities/TE_TFFTMultiHatch.java | 9 +- src/main/resources/assets/kekztech/lang/en_US.lang | 370 +++++++++++---------- 6 files changed, 258 insertions(+), 222 deletions(-) (limited to 'src') diff --git a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java index 9a6aad0b5b..b49d287669 100644 --- a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java +++ b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java @@ -14,7 +14,7 @@ import net.minecraft.util.IIcon; public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { - private static final Block_LapotronicEnergyUnit instance = new Block_LapotronicEnergyUnit(); + private static final Block_LapotronicEnergyUnit INSTANCE = new Block_LapotronicEnergyUnit(); private IIcon iconBaseSide; private IIcon iconBaseTop; @@ -36,13 +36,13 @@ public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { 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; + 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 diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java index be7b588fa5..e9e4230572 100644 --- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java @@ -9,29 +9,58 @@ import gregtech.api.util.GT_Utility; import kekztech.KekzCore; 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.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; import net.minecraft.world.World; +import java.util.List; + public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { - private static Block_TFFTMultiHatch instance = new Block_TFFTMultiHatch(); - + private static final Block_TFFTMultiHatch INSTANCE = new Block_TFFTMultiHatch(); + + private final IIcon[] tieredTexture = new IIcon[3]; + private Block_TFFTMultiHatch() { super(Material.iron); } public static Block registerBlock() { final String blockName = "kekztech_tfftmultihatch_block"; - instance.setBlockName(blockName); - instance.setCreativeTab(CreativeTabs.tabMisc); - instance.setBlockTextureName(KekzCore.MODID + ":" + "TFFTMultiHatch"); - instance.setHardness(5.0f); - instance.setResistance(6.0f); - GameRegistry.registerBlock(instance, IB_TFFTMultiHatch.class, blockName); + INSTANCE.setBlockName(blockName); + INSTANCE.setCreativeTab(CreativeTabs.tabMisc); + INSTANCE.setBlockTextureName(KekzCore.MODID + ":" + "TFFTMultiHatch"); + INSTANCE.setHardness(5.0f); + INSTANCE.setResistance(6.0f); + GameRegistry.registerBlock(INSTANCE, IB_TFFTMultiHatch.class, blockName); - return instance; + return INSTANCE; + } + + @Override + public void registerBlockIcons(IIconRegister ir) { + for(int i = 0; i < tieredTexture.length; i++) { + tieredTexture[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + (i + 1)); + } + } + + @Override + @SuppressWarnings({"unchecked" }) + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { + // HV, IV, ZPM + par3List.add(new ItemStack(par1, 1, 0)); + par3List.add(new ItemStack(par1, 1, 1)); + par3List.add(new ItemStack(par1, 1, 2)); + } + + @Override + public IIcon getIcon(int side, int meta) { + return tieredTexture[meta]; } @Override diff --git a/src/main/java/common/itemBlocks/IB_TFFTMultiHatch.java b/src/main/java/common/itemBlocks/IB_TFFTMultiHatch.java index 38b8997f0f..c5ecdca46d 100644 --- a/src/main/java/common/itemBlocks/IB_TFFTMultiHatch.java +++ b/src/main/java/common/itemBlocks/IB_TFFTMultiHatch.java @@ -2,6 +2,7 @@ package common.itemBlocks; import java.util.List; +import common.tileentities.TE_TFFTMultiHatch; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; @@ -13,13 +14,31 @@ public class IB_TFFTMultiHatch extends ItemBlock { public IB_TFFTMultiHatch(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) { + final int outputPerSecond = (int) (TE_TFFTMultiHatch.BASE_OUTPUT_PER_SECOND * Math.pow(10, stack.getItemDamage())); + lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.0.desc")); lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.1.desc")); lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.2.desc")); - lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.3.desc")); + lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.3.desc" ) + + " " + outputPerSecond + "L/s"); } } diff --git a/src/main/java/common/tileentities/GTMTE_SpaceElevator.java b/src/main/java/common/tileentities/GTMTE_SpaceElevator.java index 49ea5963a3..24d941b39b 100644 --- a/src/main/java/common/tileentities/GTMTE_SpaceElevator.java +++ b/src/main/java/common/tileentities/GTMTE_SpaceElevator.java @@ -12,7 +12,6 @@ import gregtech.api.objects.GT_RenderedTexture; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; @@ -237,20 +236,6 @@ public class GTMTE_SpaceElevator extends GT_MetaTileEntity_MultiBlockBase { return ll.toArray(a); } - @Override - public void saveNBTData(NBTTagCompound nbt) { - nbt = (nbt == null) ? new NBTTagCompound() : nbt; - - super.saveNBTData(nbt); - } - - @Override - public void loadNBTData(NBTTagCompound nbt) { - nbt = (nbt == null) ? new NBTTagCompound() : nbt; - - super.loadNBTData(nbt); - } - @Override public boolean isGivingInformation() { return true; diff --git a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java index c4f9451478..d387e4968d 100644 --- a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java @@ -16,7 +16,7 @@ import net.minecraftforge.fluids.IFluidHandler; public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { - private static final int OUTPUT_PER_SECOND = 1000; // L/s + public static final int BASE_OUTPUT_PER_SECOND = 2000; // L/s private MultiFluidHandler mfh; private int tickCounter = 0; @@ -50,12 +50,13 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { final TileEntity t = this.getWorldObj().getTileEntity( this.xCoord + d.offsetX, this.yCoord + d.offsetY, - this.zCoord + d.offsetZ); + this.zCoord + d.offsetZ + ); if(t instanceof IFluidHandler) { final IFluidHandler fh = (IFluidHandler) t; - + final int meta = t.getWorldObj().getBlockMetadata(t.xCoord, t.yCoord, t.zCoord); // Cycle through fluids final Iterator volumes = mfh.getFluids().iterator(); while(volumes.hasNext()) { @@ -69,7 +70,7 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { // Test how much can be output final FluidStack copy = volume.copy(); - copy.amount = Math.min(copy.amount, OUTPUT_PER_SECOND); + copy.amount = (int) Math.min(copy.amount, BASE_OUTPUT_PER_SECOND * Math.pow(10, meta)); // How much is drawn copy.amount = mfh.pullFluid(copy, false); diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index b86fe84543..16f7233e17 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -1,185 +1,187 @@ -item.kekztech_error_item.name=KekzTech Error Coin - -# -------- Multiblock Tooltip Builder Keywords -# -------- Context can be found in the class util.MultiBlockTooltipBuilder -mbdesc.beginStructureBlock.Dimensions=Dimensions -mbdesc.beginStructureBlock.Structure=Structure -mbdesc.addController.Controller=Controller -mbdesc.addCasing.atleast=(at least) -mbdesc.addEnergyHatch.EnergyHatch=Energy Hatch -mbdesc.addDynamoHatch.DynamoHatch=Dynamo Hatch -mbdesc.addMaintenanceHatch.MaintenanceHatch=Maintenance Hatch -mbdesc.addIOHatches.IOHatches=I/O Hatches -mbdesc.addInputBus.InputBus=Input Bus/ses -mbdesc.addInputHatch.InputHatch=Input Hatch/es -mbdesc.addOutputBus.OutputBus=Output Bus/ses -mbdesc.addOutputHatch.OutputHatch=Output Hatch/es -mbdesc.signAndFinalize.Hold=Hold -mbdesc.signAndFinalize.todisplay=to display structure guidelines -mbdesc.signAndFinalize.createdby=Created by - -# -------- Reactor: Structure Blocks -tile.kekztech_controlrod_block.name=Nuclear Reactor Control Rod -tile.kekztech_reactorchamberoff_block.name=Nuclear Reactor Chamber (OFF) -tile.kekztech_reactorchamberon_block.name=Nuclear Reactor Chamber (ON) - -# -------- Reactor: Heat Vents -item.kekztech_reactor_item.0.name=Weak Heat Vent -item.kekztech_reactor_item.1.name=Basic Heat Vent -item.kekztech_reactor_item.2.name=Advanced Heat Vent -item.kekztech_reactor_item.3.name=High-Tech Heat Vent -item.kekztech_reactor_item.4.name=Weak Component Heat Vent -item.kekztech_reactor_item.5.name=Basic Component Heat Vent -item.kekztech_reactor_item.6.name=Advanced Component Heat Vent -item.kekztech_reactor_item.7.name=High-Tech Component Heat Vent -item.kekztech_reactor_item.8.name=Weak Overclocked Heat Vent -item.kekztech_reactor_item.9.name=Basic Overclocked Heat Vent -item.kekztech_reactor_item.10.name=Advanced Overclocked Heat Vent -item.kekztech_reactor_item.11.name=High-Tech Overclocked Heat Vent - -# -------- Reactor: Heat Exchangers -item.kekztech_reactor_item.12.name=Weak Heat Exchanger -item.kekztech_reactor_item.13.name=Basic Heat Exchanger -item.kekztech_reactor_item.14.name=Advanced Heat Exchanger -item.kekztech_reactor_item.15.name=High-Tech Heat Exchanger - -# -------- Reactor: Fuel Rods -item.kekztech_reactor_item.16.name=Fuel Rod (Enriched Uranium) -item.kekztech_reactor_item.17.name=Dual Fuel Rod (Enriched Uranium) -item.kekztech_reactor_item.18.name=Quad Fuel Rod (Enriched Uranium) -item.kekztech_reactor_item.19.name=Fuel Rod (Thorium) -item.kekztech_reactor_item.20.name=Dual Fuel Rod (Thorium) -item.kekztech_reactor_item.21.name=Quad Fuel Rod (Thorium) -item.kekztech_reactor_item.22.name=Fuel Rod (Plutonium MOX) -item.kekztech_reactor_item.23.name=Dual Fuel Rod (Plutonium MOX) -item.kekztech_reactor_item.24.name=Quad Fuel Rod (Plutonium MOX) -item.kekztech_reactor_item.25.name=Fuel Rod (Enriched Naquadah) -item.kekztech_reactor_item.26.name=Dual Fuel Rod (Enriched Naquadah) -item.kekztech_reactor_item.27.name=Quad Fuel Rod (Enriched Naquadah) -item.kekztech_reactor_item.28.name=Fuel Rod (Thorium MOX) -item.kekztech_reactor_item.29.name=Dual Fuel Rod (Thorium MOX) -item.kekztech_reactor_item.30.name=Quad Fuel Rod (Thorium MOX) - -# -------- Reactor: Fuel Rods (Depleted) -item.kekztech_reactor_item.31.name=Depleted Fuel Rod (Enriched Uranium) -item.kekztech_reactor_item.32.name=Depleted Dual Fuel Rod (Enriched Uranium) -item.kekztech_reactor_item.33.name=Depleted Quad Fuel Rod (Enriched Uranium) -item.kekztech_reactor_item.34.name=Depleted Fuel Rod (Thorium) -item.kekztech_reactor_item.35.name=Depleted Dual Fuel Rod (Thorium) -item.kekztech_reactor_item.36.name=Depleted Quad Fuel Rod (Thorium) -item.kekztech_reactor_item.37.name=Depleted Fuel Rod (Plutonium MOX) -item.kekztech_reactor_item.38.name=Depleted Dual Fuel Rod (Plutonium MOX) -item.kekztech_reactor_item.39.name=Depleted Quad Fuel Rod (Plutonium MOX) -item.kekztech_reactor_item.40.name=Depleted Fuel Rod (Enriched Naquadah) -item.kekztech_reactor_item.41.name=Depleted Dual Fuel Rod (Enriched Naquadah) -item.kekztech_reactor_item.42.name=Depleted Quad Fuel Rod (Enriched Naquadah) -item.kekztech_reactor_item.43.name=Depleted Fuel Rod (Thorium MOX) -item.kekztech_reactor_item.44.name=Depleted Fuel Rod (Thorium MOX) -item.kekztech_reactor_item.45.name=Depleted Fuel Rod (Thorium MOX) - -# -------- Reactor: Neutron Reflectors -item.kekztech_reactor_item.46.name=Neutron Reflector -item.kekztech_reactor_item.47.name=Neutron Supermirror (Unbreakable) - -# -------- Reactor: Coolant Cells -item.kekztech_reactor_item.48.name=Helium Coolant Cell -item.kekztech_reactor_item.49.name=NaK Coolant Cell - -# -------- Reactor: Crafting Components -item.kekztech_crafting_item.0.name=Copper Heat Pipe -item.kekztech_crafting_item.1.name=Silver Heat Pipe -item.kekztech_crafting_item.2.name=Boron Arsenide Heat Pipe -item.kekztech_crafting_item.3.name=Diamond Heat Pipe -item.kekztech_crafting_item.4.name=Boron Arsenide Dust -item.kekztech_crafting_item.5.name=Isotopically Pure Diamond Dust -item.kekztech_crafting_item.6.name=Amine Carbamate Dust -item.kekztech_crafting_item.7.name=Boron Arsenide Crystal -item.kekztech_crafting_item.8.name=Isotopically Pure Diamond Crystal - -# -------- Fuel Cell: Structure Blocks -tile.kekztech_gdcceramicelectrolyteunit_block.name=GDC Ceramic Electrolyte Unit -tile.kekztech_yszceramicelectrolyteunit_block.name=YSZ Ceramic Electrolyte Unit - -# -------- Fuel Cell: Crafting Components -item.kekztech_crafting_item.9.name=YSZ Ceramic Dust -item.kekztech_crafting_item.10.name=GDC Ceramic Dust -item.kekztech_crafting_item.11.name=Yttria Dust -item.kekztech_crafting_item.12.name=Zirconia Dust -item.kekztech_crafting_item.13.name=Ceria Dust -item.kekztech_crafting_item.14.name=YSZ Ceramic Plate -item.kekztech_crafting_item.15.name=GDC Ceramic Plate - -# -------- TFFT: Structure Blocks -tile.kekztech_tfftcasingblock_block.name=T.F.F.T Casing -tile.kekztech_tfftstoragefieldblock1_block.name=T.F.F.T Storage Field Block (Tier I) -tile.kekztech_tfftstoragefieldblock1_block.0.desc=This is not a fluid tank -tile.kekztech_tfftstoragefieldblock2_block.name=T.F.F.T Storage Field Block (Tier II) -tile.kekztech_tfftstoragefieldblock3_block.name=T.F.F.T Storage Field Block (Tier III) -tile.kekztech_tfftstoragefieldblock4_block.name=T.F.F.T Storage Field Block (Tier IV) -tile.kekztech_tfftstoragefieldblock5_block.name=T.F.F.T Storage Field Block (Tier V) -tile.kekztech_tfftmultihatch_block.name=T.F.F.T Multi-Fluid I/O Hatch -tile.kekztech_tfftmultihatch_block.0.desc=Special hatch for the T.F.F.T -tile.kekztech_tfftmultihatch_block.1.desc=Allows for automated interaction with all stored fluids in a single place -tile.kekztech_tfftmultihatch_block.2.desc=Right-click with screwdriver to activate auto-output -tile.kekztech_tfftmultihatch_block.3.desc=Auto-output will try to output fluids into adjacent tanks at a rate of 1000L/s per fluid - -# -------- Item Server: Structure Blocks -tile.kekztech_itemserverdrive_block.name=Item Server Drive -tile.kekztech_itemserverdrive_block.0.desc=Item Server Storage Drive -tile.kekztech_itemserverrackcasing_block.name=Item Server Rack Casing -tile.kekztech_itemserverrackcasing_block.0.desc=Shiny new server rack -tile.kekztech_itemserverioport_block.name=Item Server I/O Port -tile.kekztech_itemserverioport_block.0.desc=I/O Port for interfacing with an Item Server - -# -------- Item Server: Crafting Components -item.kekztech_crafting_item.16.name=Item Server Blade - -# -------- Item Proxy: Structure Blocks -tile.kekztech_itemproxycable_block.name=Item Proxy Network Cable -tile.kekztech_itemproxycable_block.0.desc=Connects Item Proxy Nodes -tile.kekztech_itemproxysource_block.name=Item Proxy Network Source -tile.kekztech_itemproxysource_block.0.desc=Point to an inventory to act as source for the item proxy network -tile.kekztech_itemproxysource_block.1.desc=Insert an Integrated Circuit to set the network channel -tile.kekztech_itemproxysource_block.2.desc=Only one source can use one channel on the same network -tile.kekztech_itemproxyendpoint_block.name=Item Proxy Network Endpoint -tile.kekztech_itemproxyendpoint_block.0.desc=Point the marked side to where you want to provide an inventory proxy to -tile.kekztech_itemproxyendpoint_block.1.desc=Insert an Integrated Circuit to set the network channel - -# -------- Lapotronic Super Capacitor: Structure Blocks -tile.kekztech_lapotronicenergyunit_block.0.name=Lapotronic Super Capacitor Casing -tile.kekztech_lapotronicenergyunit_block.1.name=Lapotronic Capacitor (IV) -tile.kekztech_lapotronicenergyunit_block.2.name=Lapotronic Capacitor (LuV) -tile.kekztech_lapotronicenergyunit_block.3.name=Lapotronic Capacitor (ZPM) -tile.kekztech_lapotronicenergyunit_block.4.name=Lapotronic Capacitor (UV) -tile.kekztech_lapotronicenergyunit_block.5.name=Ultimate Capacitor (UHV) -tile.kekztech_lapotronicenergyunit_block.desc=Part of the Lapotronic Super Capacitor - -# -------- Thaumium Reinforced Jar: Block -tile.kekztech_thaumiumreinforcedjar_block.0.name=Thaumium Reinforced Jar -tile.kekztech_thaumiumreinforcedjar_block.3.name=Thaumium Reinforced Void Jar - -# -------- Thaumium Reinforced Jar: Research -# This is the name of the research -tc.research_name.THAUMIUMREINFORCEDJAR=Thaumium Reinforced Jars -# This is the subtext for the research note -tc.research_text.THAUMIUMREINFORCEDJAR=Slightly better jars -# Lore text for the research pages -kekztech.research_page.THAUMIUMREINFORCEDJAR.0=You have heard your fellow Thaumaturges talk about the benefits of digitized Essentia Storage.

Storing enough Essentia for your advanced infusions has indeed been an issue for you too. However those jars are simply too pleasing to look at to even consider the idea of replacing them with some compact technological construct.

Thanks to this new discovery, you have managed to quadruple the capacity of your jars by improving them with a thick Thaumium lining. This should buy you some more time to come up with a better solution. -kekztech.research_page.THAUMIUMREINFORCEDJAR.1=Compressing this much Essentia in such a tiny space causes some volatility. Picking up reinforced jars is probably a bad idea...

You imagine that you could get even more out of your jars if only you had some kind of material harder than even diamond or any of the other magical metal you have seen so far. - -# -------- Ichor Jar: Block -tile.kekztech_ichorjar_block.0.name=Ichor Jar -tile.kekztech_ichorjar_block.3.name=Ichor Void Jar - -# -------- Ichor Jar: Research -tc.research_name.ICHORJAR=Ichor Jars -tc.research_text.ICHORJAR=Much better jars -kekztech.research_page.ICHORJAR.0=This is it!

By infusing a jar with just a single piece of Ichor you have created something to rival digitized Essentia storage without sacrificing any of the beauty of Warded Jars.

Ichor Jars can hold an astounding 4096 Essentia and fit nicely into your recently aquired set of Ichor based achievements.

You definitely don't want to disturb these jars. Luckily Ichor is resilient enough to make accidentially destroying one unlikely. - -# -------- Space Elevator: Block -tile.kekztech_spaceelevator_block.0.name=Space Elevator Base -tile.kekztech_spaceelevator_block.1.name=Space Elevator Coil Holder -tile.kekztech_spaceelevator_block.desc=Part of the Space Elevator Base Station -tile.kekztech_spaceelevatorcapacitor_block.name=Space Elevator Capacitor -tile.kekztech_spaceelevatorcapacitor_block.desc=The see-through is good for your FPS! +item.kekztech_error_item.name=KekzTech Error Coin + +# -------- Multiblock Tooltip Builder Keywords +# -------- Context can be found in the class util.MultiBlockTooltipBuilder +mbdesc.beginStructureBlock.Dimensions=Dimensions +mbdesc.beginStructureBlock.Structure=Structure +mbdesc.addController.Controller=Controller +mbdesc.addCasing.atleast=(at least) +mbdesc.addEnergyHatch.EnergyHatch=Energy Hatch +mbdesc.addDynamoHatch.DynamoHatch=Dynamo Hatch +mbdesc.addMaintenanceHatch.MaintenanceHatch=Maintenance Hatch +mbdesc.addIOHatches.IOHatches=I/O Hatches +mbdesc.addInputBus.InputBus=Input Bus/ses +mbdesc.addInputHatch.InputHatch=Input Hatch/es +mbdesc.addOutputBus.OutputBus=Output Bus/ses +mbdesc.addOutputHatch.OutputHatch=Output Hatch/es +mbdesc.signAndFinalize.Hold=Hold +mbdesc.signAndFinalize.todisplay=to display structure guidelines +mbdesc.signAndFinalize.createdby=Created by + +# -------- Reactor: Structure Blocks +tile.kekztech_controlrod_block.name=Nuclear Reactor Control Rod +tile.kekztech_reactorchamberoff_block.name=Nuclear Reactor Chamber (OFF) +tile.kekztech_reactorchamberon_block.name=Nuclear Reactor Chamber (ON) + +# -------- Reactor: Heat Vents +item.kekztech_reactor_item.0.name=Weak Heat Vent +item.kekztech_reactor_item.1.name=Basic Heat Vent +item.kekztech_reactor_item.2.name=Advanced Heat Vent +item.kekztech_reactor_item.3.name=High-Tech Heat Vent +item.kekztech_reactor_item.4.name=Weak Component Heat Vent +item.kekztech_reactor_item.5.name=Basic Component Heat Vent +item.kekztech_reactor_item.6.name=Advanced Component Heat Vent +item.kekztech_reactor_item.7.name=High-Tech Component Heat Vent +item.kekztech_reactor_item.8.name=Weak Overclocked Heat Vent +item.kekztech_reactor_item.9.name=Basic Overclocked Heat Vent +item.kekztech_reactor_item.10.name=Advanced Overclocked Heat Vent +item.kekztech_reactor_item.11.name=High-Tech Overclocked Heat Vent + +# -------- Reactor: Heat Exchangers +item.kekztech_reactor_item.12.name=Weak Heat Exchanger +item.kekztech_reactor_item.13.name=Basic Heat Exchanger +item.kekztech_reactor_item.14.name=Advanced Heat Exchanger +item.kekztech_reactor_item.15.name=High-Tech Heat Exchanger + +# -------- Reactor: Fuel Rods +item.kekztech_reactor_item.16.name=Fuel Rod (Enriched Uranium) +item.kekztech_reactor_item.17.name=Dual Fuel Rod (Enriched Uranium) +item.kekztech_reactor_item.18.name=Quad Fuel Rod (Enriched Uranium) +item.kekztech_reactor_item.19.name=Fuel Rod (Thorium) +item.kekztech_reactor_item.20.name=Dual Fuel Rod (Thorium) +item.kekztech_reactor_item.21.name=Quad Fuel Rod (Thorium) +item.kekztech_reactor_item.22.name=Fuel Rod (Plutonium MOX) +item.kekztech_reactor_item.23.name=Dual Fuel Rod (Plutonium MOX) +item.kekztech_reactor_item.24.name=Quad Fuel Rod (Plutonium MOX) +item.kekztech_reactor_item.25.name=Fuel Rod (Enriched Naquadah) +item.kekztech_reactor_item.26.name=Dual Fuel Rod (Enriched Naquadah) +item.kekztech_reactor_item.27.name=Quad Fuel Rod (Enriched Naquadah) +item.kekztech_reactor_item.28.name=Fuel Rod (Thorium MOX) +item.kekztech_reactor_item.29.name=Dual Fuel Rod (Thorium MOX) +item.kekztech_reactor_item.30.name=Quad Fuel Rod (Thorium MOX) + +# -------- Reactor: Fuel Rods (Depleted) +item.kekztech_reactor_item.31.name=Depleted Fuel Rod (Enriched Uranium) +item.kekztech_reactor_item.32.name=Depleted Dual Fuel Rod (Enriched Uranium) +item.kekztech_reactor_item.33.name=Depleted Quad Fuel Rod (Enriched Uranium) +item.kekztech_reactor_item.34.name=Depleted Fuel Rod (Thorium) +item.kekztech_reactor_item.35.name=Depleted Dual Fuel Rod (Thorium) +item.kekztech_reactor_item.36.name=Depleted Quad Fuel Rod (Thorium) +item.kekztech_reactor_item.37.name=Depleted Fuel Rod (Plutonium MOX) +item.kekztech_reactor_item.38.name=Depleted Dual Fuel Rod (Plutonium MOX) +item.kekztech_reactor_item.39.name=Depleted Quad Fuel Rod (Plutonium MOX) +item.kekztech_reactor_item.40.name=Depleted Fuel Rod (Enriched Naquadah) +item.kekztech_reactor_item.41.name=Depleted Dual Fuel Rod (Enriched Naquadah) +item.kekztech_reactor_item.42.name=Depleted Quad Fuel Rod (Enriched Naquadah) +item.kekztech_reactor_item.43.name=Depleted Fuel Rod (Thorium MOX) +item.kekztech_reactor_item.44.name=Depleted Fuel Rod (Thorium MOX) +item.kekztech_reactor_item.45.name=Depleted Fuel Rod (Thorium MOX) + +# -------- Reactor: Neutron Reflectors +item.kekztech_reactor_item.46.name=Neutron Reflector +item.kekztech_reactor_item.47.name=Neutron Supermirror (Unbreakable) + +# -------- Reactor: Coolant Cells +item.kekztech_reactor_item.48.name=Helium Coolant Cell +item.kekztech_reactor_item.49.name=NaK Coolant Cell + +# -------- Reactor: Crafting Components +item.kekztech_crafting_item.0.name=Copper Heat Pipe +item.kekztech_crafting_item.1.name=Silver Heat Pipe +item.kekztech_crafting_item.2.name=Boron Arsenide Heat Pipe +item.kekztech_crafting_item.3.name=Diamond Heat Pipe +item.kekztech_crafting_item.4.name=Boron Arsenide Dust +item.kekztech_crafting_item.5.name=Isotopically Pure Diamond Dust +item.kekztech_crafting_item.6.name=Amine Carbamate Dust +item.kekztech_crafting_item.7.name=Boron Arsenide Crystal +item.kekztech_crafting_item.8.name=Isotopically Pure Diamond Crystal + +# -------- Fuel Cell: Structure Blocks +tile.kekztech_gdcceramicelectrolyteunit_block.name=GDC Ceramic Electrolyte Unit +tile.kekztech_yszceramicelectrolyteunit_block.name=YSZ Ceramic Electrolyte Unit + +# -------- Fuel Cell: Crafting Components +item.kekztech_crafting_item.9.name=YSZ Ceramic Dust +item.kekztech_crafting_item.10.name=GDC Ceramic Dust +item.kekztech_crafting_item.11.name=Yttria Dust +item.kekztech_crafting_item.12.name=Zirconia Dust +item.kekztech_crafting_item.13.name=Ceria Dust +item.kekztech_crafting_item.14.name=YSZ Ceramic Plate +item.kekztech_crafting_item.15.name=GDC Ceramic Plate + +# -------- TFFT: Structure Blocks +tile.kekztech_tfftcasingblock_block.name=T.F.F.T Casing +tile.kekztech_tfftstoragefieldblock1_block.name=T.F.F.T Storage Field Block (Tier I) +tile.kekztech_tfftstoragefieldblock1_block.0.desc=This is not a fluid tank +tile.kekztech_tfftstoragefieldblock2_block.name=T.F.F.T Storage Field Block (Tier II) +tile.kekztech_tfftstoragefieldblock3_block.name=T.F.F.T Storage Field Block (Tier III) +tile.kekztech_tfftstoragefieldblock4_block.name=T.F.F.T Storage Field Block (Tier IV) +tile.kekztech_tfftstoragefieldblock5_block.name=T.F.F.T Storage Field Block (Tier V) +tile.kekztech_tfftmultihatch_block.0.name=T.F.F.T Multi-Fluid I/O Hatch (Tier I) +tile.kekztech_tfftmultihatch_block.1.name=T.F.F.T Multi-Fluid I/O Hatch (Tier II) +tile.kekztech_tfftmultihatch_block.2.name=T.F.F.T Multi-Fluid I/O Hatch (Tier III) +tile.kekztech_tfftmultihatch_block.0.desc=Special hatch for the T.F.F.T +tile.kekztech_tfftmultihatch_block.1.desc=Allows for automated interaction with all stored fluids in a single place +tile.kekztech_tfftmultihatch_block.2.desc=Right-click with screwdriver to activate auto-output +tile.kekztech_tfftmultihatch_block.3.desc=Auto-output will try to output fluids into adjacent tanks at a per fluid rate of + +# -------- Item Server: Structure Blocks +tile.kekztech_itemserverdrive_block.name=Item Server Drive +tile.kekztech_itemserverdrive_block.0.desc=Item Server Storage Drive +tile.kekztech_itemserverrackcasing_block.name=Item Server Rack Casing +tile.kekztech_itemserverrackcasing_block.0.desc=Shiny new server rack +tile.kekztech_itemserverioport_block.name=Item Server I/O Port +tile.kekztech_itemserverioport_block.0.desc=I/O Port for interfacing with an Item Server + +# -------- Item Server: Crafting Components +item.kekztech_crafting_item.16.name=Item Server Blade + +# -------- Item Proxy: Structure Blocks +tile.kekztech_itemproxycable_block.name=Item Proxy Network Cable +tile.kekztech_itemproxycable_block.0.desc=Connects Item Proxy Nodes +tile.kekztech_itemproxysource_block.name=Item Proxy Network Source +tile.kekztech_itemproxysource_block.0.desc=Point to an inventory to act as source for the item proxy network +tile.kekztech_itemproxysource_block.1.desc=Insert an Integrated Circuit to set the network channel +tile.kekztech_itemproxysource_block.2.desc=Only one source can use one channel on the same network +tile.kekztech_itemproxyendpoint_block.name=Item Proxy Network Endpoint +tile.kekztech_itemproxyendpoint_block.0.desc=Point the marked side to where you want to provide an inventory proxy to +tile.kekztech_itemproxyendpoint_block.1.desc=Insert an Integrated Circuit to set the network channel + +# -------- Lapotronic Super Capacitor: Structure Blocks +tile.kekztech_lapotronicenergyunit_block.0.name=Lapotronic Super Capacitor Casing +tile.kekztech_lapotronicenergyunit_block.1.name=Lapotronic Capacitor (IV) +tile.kekztech_lapotronicenergyunit_block.2.name=Lapotronic Capacitor (LuV) +tile.kekztech_lapotronicenergyunit_block.3.name=Lapotronic Capacitor (ZPM) +tile.kekztech_lapotronicenergyunit_block.4.name=Lapotronic Capacitor (UV) +tile.kekztech_lapotronicenergyunit_block.5.name=Ultimate Capacitor (UHV) +tile.kekztech_lapotronicenergyunit_block.desc=Part of the Lapotronic Super Capacitor + +# -------- Thaumium Reinforced Jar: Block +tile.kekztech_thaumiumreinforcedjar_block.0.name=Thaumium Reinforced Jar +tile.kekztech_thaumiumreinforcedjar_block.3.name=Thaumium Reinforced Void Jar + +# -------- Thaumium Reinforced Jar: Research +# This is the name of the research +tc.research_name.THAUMIUMREINFORCEDJAR=Thaumium Reinforced Jars +# This is the subtext for the research note +tc.research_text.THAUMIUMREINFORCEDJAR=Slightly better jars +# Lore text for the research pages +kekztech.research_page.THAUMIUMREINFORCEDJAR.0=You have heard your fellow Thaumaturges talk about the benefits of digitized Essentia Storage.

Storing enough Essentia for your advanced infusions has indeed been an issue for you too. However those jars are simply too pleasing to look at to even consider the idea of replacing them with some compact technological construct.

Thanks to this new discovery, you have managed to quadruple the capacity of your jars by improving them with a thick Thaumium lining. This should buy you some more time to come up with a better solution. +kekztech.research_page.THAUMIUMREINFORCEDJAR.1=Compressing this much Essentia in such a tiny space causes some volatility. Picking up reinforced jars is probably a bad idea...

You imagine that you could get even more out of your jars if only you had some kind of material harder than even diamond or any of the other magical metal you have seen so far. + +# -------- Ichor Jar: Block +tile.kekztech_ichorjar_block.0.name=Ichor Jar +tile.kekztech_ichorjar_block.3.name=Ichor Void Jar + +# -------- Ichor Jar: Research +tc.research_name.ICHORJAR=Ichor Jars +tc.research_text.ICHORJAR=Much better jars +kekztech.research_page.ICHORJAR.0=This is it!

By infusing a jar with just a single piece of Ichor you have created something to rival digitized Essentia storage without sacrificing any of the beauty of Warded Jars.

Ichor Jars can hold an astounding 4096 Essentia and fit nicely into your recently aquired set of Ichor based achievements.

You definitely don't want to disturb these jars. Luckily Ichor is resilient enough to make accidentially destroying one unlikely. + +# -------- Space Elevator: Block +tile.kekztech_spaceelevator_block.0.name=Space Elevator Base +tile.kekztech_spaceelevator_block.1.name=Space Elevator Coil Holder +tile.kekztech_spaceelevator_block.desc=Part of the Space Elevator Base Station +tile.kekztech_spaceelevatorcapacitor_block.name=Space Elevator Capacitor +tile.kekztech_spaceelevatorcapacitor_block.desc=The see-through is good for your FPS! tile.kekztech_spaceelevatortether_block.name=Space Elevator Tether \ No newline at end of file -- cgit From 80902192efb41acf3ed8821e714826677a82a29f Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 4 Jun 2020 22:20:49 +0200 Subject: Set correct harvest tool for Jars --- src/main/java/common/blocks/Block_IchorJar.java | 1 + src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/java/common/blocks/Block_IchorJar.java b/src/main/java/common/blocks/Block_IchorJar.java index 560fd0c37b..0c2417b2f1 100644 --- a/src/main/java/common/blocks/Block_IchorJar.java +++ b/src/main/java/common/blocks/Block_IchorJar.java @@ -42,6 +42,7 @@ public class Block_IchorJar extends BlockJar { 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; diff --git a/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java b/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java index 61ca0e2390..cce03b0236 100644 --- a/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java +++ b/src/main/java/common/blocks/Block_ThaumiumReinforcedJar.java @@ -30,7 +30,7 @@ import java.util.List; public class Block_ThaumiumReinforcedJar extends BlockJar { - private static final Block_ThaumiumReinforcedJar instance = new Block_ThaumiumReinforcedJar(); + private static final Block_ThaumiumReinforcedJar INSTANCE = new Block_ThaumiumReinforcedJar(); private Block_ThaumiumReinforcedJar() { super(); @@ -41,10 +41,11 @@ public class Block_ThaumiumReinforcedJar extends BlockJar { public static Block registerBlock() { final String blockName = "kekztech_thaumiumreinforcedjar_block"; - instance.setBlockName(blockName); - GameRegistry.registerBlock(instance, IB_ThaumiumReinforcedJar.class, blockName); + INSTANCE.setBlockName(blockName); + INSTANCE.setHarvestLevel("pickaxe", 2); + GameRegistry.registerBlock(INSTANCE, IB_ThaumiumReinforcedJar.class, blockName); - return instance; + return INSTANCE; } @Override -- cgit From 065481ed6bfe450d2b5606346de7d31c5c5bdb4b Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 4 Jun 2020 22:26:50 +0200 Subject: New recipes for the three tiers of Multi Hatches --- src/main/java/common/Recipes.java | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 1fe759f426..eaaad88570 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -131,14 +131,31 @@ public class Recipes { FluidRegistry.getFluidStack("molten.epoxid", 1152), new ItemStack(Blocks.tfftStorageField5, 1), 400, 6147); - final Object[] multi_hatch = { + // Multi Hatch + final Object[] multi_hatch_HV = { "PRP", "UFU", "PRP", - 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NiobiumTitanium, 1), + 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 1), 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1), + 'U', ItemList.Electric_Pump_HV.get(1L), + 'F', ItemList.Field_Generator_LV.get(1L) + }; + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_HV); + final Object[] multi_hatch_IV = { + "PRP", "UFU", "PRP", + 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 1), + 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.TungstenSteel, 1), 'U', ItemList.Electric_Pump_IV.get(1L), 'F', ItemList.Field_Generator_HV.get(1L) }; - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch); + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_IV); + final Object[] multi_hatch_ZPM = { + "PRP", "UFU", "PRP", + 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NaquadahAlloy, 1), + 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.NaquadahAlloy, 1), + 'U', ItemList.Electric_Pump_ZPM.get(1L), + 'F', ItemList.Field_Generator_IV.get(1L) + }; + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_ZPM); } private static void registerRecipes_SOFC() { -- cgit From 8fd1775f96fe9402019446945ef61e60a4741bbf Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Fri, 5 Jun 2020 00:45:10 +0200 Subject: Multi hatch only shows connection texture on outwards facing side --- .../java/common/blocks/Block_TFFTMultiHatch.java | 45 +++++++++++++++++++--- .../common/tileentities/TE_TFFTMultiHatch.java | 16 +++++++- 2 files changed, 54 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java index e9e4230572..6e392f2a22 100644 --- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java @@ -1,5 +1,6 @@ package common.blocks; +import common.Blocks; import common.itemBlocks.IB_TFFTMultiHatch; import common.tileentities.TE_TFFTMultiHatch; import cpw.mods.fml.common.registry.GameRegistry; @@ -11,12 +12,17 @@ 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.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; +import thaumcraft.common.tiles.TileJarFillable; import java.util.List; @@ -24,6 +30,7 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { private static final Block_TFFTMultiHatch INSTANCE = new Block_TFFTMultiHatch(); + private IIcon casing; private final IIcon[] tieredTexture = new IIcon[3]; private Block_TFFTMultiHatch() { @@ -38,12 +45,13 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { INSTANCE.setHardness(5.0f); INSTANCE.setResistance(6.0f); GameRegistry.registerBlock(INSTANCE, IB_TFFTMultiHatch.class, blockName); - + return INSTANCE; } @Override public void registerBlockIcons(IIconRegister ir) { + casing = ir.registerIcon("kekztech:TFFTCasing"); for(int i = 0; i < tieredTexture.length; i++) { tieredTexture[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + (i + 1)); } @@ -59,17 +67,21 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { } @Override - public IIcon getIcon(int side, int meta) { - return tieredTexture[meta]; + public IIcon getIcon(IBlockAccess blockAccess, int x, int y, int z, int side) { + final TileEntity te = blockAccess.getTileEntity(x, y, z); + if(te instanceof TE_TFFTMultiHatch && ((TE_TFFTMultiHatch) te).hasFacingOnSide((byte) side)){ + return tieredTexture[blockAccess.getBlockMetadata(x, y, z)]; + } + return casing; } @Override - public TileEntity createTileEntity(World world, int p_149915_2_) { + public TileEntity createTileEntity(World world, int meta) { return new TE_TFFTMultiHatch(); } @Override - public boolean hasTileEntity(int metadata) { + public boolean hasTileEntity(int meta) { return true; } @@ -91,4 +103,27 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { } return false; } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase ent, ItemStack stack) { + final TileEntity te = world.getTileEntity(x, y, z); + if (te instanceof TE_TFFTMultiHatch) { + final TE_TFFTMultiHatch hatchTE = (TE_TFFTMultiHatch) te; + for(int i = 0; i < 6; i++) { + final ForgeDirection d = ForgeDirection.getOrientation(i); + final Block n = world.getBlock(x + d.offsetX, y + d.offsetY, z + d.offsetZ); + KekzCore.LOGGER.info("Block on side " + i + " is " + n.getUnlocalizedName()); + // Always implement your tiered blocks as sub-blocks so you don't have to do this + if(n.equals(Blocks.tfftStorageField1) + || n.equals(Blocks.tfftStorageField2) + || n.equals(Blocks.tfftStorageField3) + || n.equals(Blocks.tfftStorageField4) + || n.equals(Blocks.tfftStorageField5)) { + KekzCore.LOGGER.info("Found Storage Field at side: " + i); + hatchTE.setFacingOnSide((byte) ForgeDirection.OPPOSITES[i], true); + } + } + } + } + } diff --git a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java index d387e4968d..30e6b0ee0e 100644 --- a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java @@ -17,11 +17,23 @@ import net.minecraftforge.fluids.IFluidHandler; public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { public static final int BASE_OUTPUT_PER_SECOND = 2000; // L/s - + + private byte facings = 0x0; + private MultiFluidHandler mfh; private int tickCounter = 0; private boolean autoOutput = false; - + + public boolean hasFacingOnSide(byte side) { + final byte key = (byte) Math.pow(0x2, side); + return (facings & key) == key; + } + + public void setFacingOnSide(byte side, boolean b) { + final byte key = (byte) Math.pow(0x2, side); + facings = (byte) (b ? facings | key : facings ^ key); + } + public void setMultiFluidHandler(MultiFluidHandler mfh) { this.mfh = mfh; } -- cgit From a8d3d4797dc392611d86982365e9984a744ab51f Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Fri, 5 Jun 2020 15:07:31 +0200 Subject: new textures --- src/main/java/common/blocks/Block_TFFTMultiHatch.java | 2 -- .../assets/kekztech/textures/blocks/TFFTMultiHatch.png | Bin 5558 -> 0 bytes .../assets/kekztech/textures/blocks/TFFTMultiHatch1.png | Bin 0 -> 1840 bytes .../assets/kekztech/textures/blocks/TFFTMultiHatch2.png | Bin 0 -> 1840 bytes .../assets/kekztech/textures/blocks/TFFTMultiHatch3.png | Bin 0 -> 1839 bytes 5 files changed, 2 deletions(-) delete mode 100644 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch.png create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png (limited to 'src') diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java index 6e392f2a22..a70e983ed3 100644 --- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java @@ -18,11 +18,9 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import thaumcraft.common.tiles.TileJarFillable; import java.util.List; diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch.png deleted file mode 100644 index 5c9b1189b6..0000000000 Binary files a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch.png and /dev/null differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png new file mode 100755 index 0000000000..3b897857a6 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png new file mode 100755 index 0000000000..eb749ca0e8 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png new file mode 100755 index 0000000000..8d0c0d2fdc Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png differ -- cgit From 43770380ba9be1061322b38e40703cc1d9c6d3ed Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 7 Jun 2020 16:58:27 +0200 Subject: save multi hatch facings to nbt --- src/main/java/common/tileentities/TE_TFFTMultiHatch.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java index 30e6b0ee0e..8336f841a6 100644 --- a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java @@ -194,6 +194,7 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { nbt = (nbt == null) ? new NBTTagCompound() : nbt; nbt.setBoolean("autoOutput", autoOutput); + nbt.setByte("facings", facings); super.writeToNBT(nbt); } @@ -203,6 +204,7 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { nbt = (nbt == null) ? new NBTTagCompound() : nbt; autoOutput = nbt.getBoolean("autoOutput"); + facings = nbt.getByte("facings"); super.readFromNBT(nbt); } -- cgit From c26c2895e7188c0d4cdeae0af104075efcc404f0 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 7 Jun 2020 17:35:50 +0200 Subject: implemented correct item rendering for new multi hatches --- src/main/java/client/ClientProxy.java | 3 + src/main/java/client/renderer/HatchRenderer.java | 77 +++++++++++++++++++++ .../java/common/blocks/Block_TFFTMultiHatch.java | 41 ++++++++--- .../textures/blocks/TFFTMultiHatch0_off.png | Bin 0 -> 2022 bytes .../textures/blocks/TFFTMultiHatch0_on.png | Bin 0 -> 2022 bytes .../kekztech/textures/blocks/TFFTMultiHatch1.png | Bin 1840 -> 0 bytes .../textures/blocks/TFFTMultiHatch1_off.png | Bin 0 -> 2022 bytes .../textures/blocks/TFFTMultiHatch1_on.png | Bin 0 -> 2022 bytes .../kekztech/textures/blocks/TFFTMultiHatch2.png | Bin 1840 -> 0 bytes .../textures/blocks/TFFTMultiHatch2_off.png | Bin 0 -> 2022 bytes .../textures/blocks/TFFTMultiHatch2_on.png | Bin 0 -> 2022 bytes .../kekztech/textures/blocks/TFFTMultiHatch3.png | Bin 1839 -> 0 bytes 12 files changed, 113 insertions(+), 8 deletions(-) create mode 100644 src/main/java/client/renderer/HatchRenderer.java create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_off.png create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_on.png delete mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_off.png create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_on.png delete mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_off.png create mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_on.png delete mode 100755 src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png (limited to 'src') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index e50639b878..c863198976 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -1,11 +1,13 @@ package client; +import client.renderer.HatchRenderer; import client.renderer.TESR_SECapacitor; import client.renderer.TESR_SETether; import common.CommonProxy; import common.tileentities.TE_SpaceElevatorCapacitor; import common.tileentities.TE_SpaceElevatorTether; import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -24,6 +26,7 @@ public class ClientProxy extends CommonProxy { super.init(e); // Register Simple Block Renderers //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); + RenderingRegistry.registerBlockHandler(HatchRenderer.getInstance()); } } diff --git a/src/main/java/client/renderer/HatchRenderer.java b/src/main/java/client/renderer/HatchRenderer.java new file mode 100644 index 0000000000..0a764b3118 --- /dev/null +++ b/src/main/java/client/renderer/HatchRenderer.java @@ -0,0 +1,77 @@ +package client.renderer; + +import common.tileentities.TE_ItemProxyCable; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; +import org.lwjgl.opengl.GL11; + +public class HatchRenderer implements ISimpleBlockRenderingHandler { + + public static final int RID = RenderingRegistry.getNextAvailableRenderId(); + private static final HatchRenderer INSTANCE = new HatchRenderer(); + + private HatchRenderer() { + + } + + public static HatchRenderer getInstance() { + return INSTANCE; + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + final Tessellator t = Tessellator.instance; + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + t.startDrawingQuads(); + t.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(6, meta)); + t.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, + RenderBlocks renderer) { + + + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return HatchRenderer.RID; + } +} diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java index a70e983ed3..eda34c8ce3 100644 --- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java @@ -1,9 +1,13 @@ package common.blocks; +import client.renderer.ConduitRenderer; +import client.renderer.HatchRenderer; import common.Blocks; import common.itemBlocks.IB_TFFTMultiHatch; import common.tileentities.TE_TFFTMultiHatch; import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; @@ -29,7 +33,8 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { private static final Block_TFFTMultiHatch INSTANCE = new Block_TFFTMultiHatch(); private IIcon casing; - private final IIcon[] tieredTexture = new IIcon[3]; + private final IIcon[] overlayOff = new IIcon[3]; + private final IIcon[] overlayOn = new IIcon[3]; private Block_TFFTMultiHatch() { super(Material.iron); @@ -39,7 +44,6 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { final String blockName = "kekztech_tfftmultihatch_block"; INSTANCE.setBlockName(blockName); INSTANCE.setCreativeTab(CreativeTabs.tabMisc); - INSTANCE.setBlockTextureName(KekzCore.MODID + ":" + "TFFTMultiHatch"); INSTANCE.setHardness(5.0f); INSTANCE.setResistance(6.0f); GameRegistry.registerBlock(INSTANCE, IB_TFFTMultiHatch.class, blockName); @@ -50,8 +54,9 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { @Override public void registerBlockIcons(IIconRegister ir) { casing = ir.registerIcon("kekztech:TFFTCasing"); - for(int i = 0; i < tieredTexture.length; i++) { - tieredTexture[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + (i + 1)); + for(int i = 0; i < overlayOff.length; i++) { + overlayOff[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + i + "_off"); + overlayOn[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + i + "_on"); } } @@ -64,13 +69,33 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { par3List.add(new ItemStack(par1, 1, 2)); } + @Override + public IIcon getIcon(int side, int meta) { + if(side != 3) { + return casing; + } else { + return overlayOff[meta]; + } + } + @Override public IIcon getIcon(IBlockAccess blockAccess, int x, int y, int z, int side) { - final TileEntity te = blockAccess.getTileEntity(x, y, z); - if(te instanceof TE_TFFTMultiHatch && ((TE_TFFTMultiHatch) te).hasFacingOnSide((byte) side)){ - return tieredTexture[blockAccess.getBlockMetadata(x, y, z)]; + if(side != 3) { + return casing; + } else { + return overlayOff[blockAccess.getBlockMetadata(x, y, z)]; } - return casing; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() { + return 0; + } + + @Override + public int getRenderType() { + return HatchRenderer.RID; } @Override diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_off.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_off.png new file mode 100755 index 0000000000..96ced7f091 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_off.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_on.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_on.png new file mode 100755 index 0000000000..149c7c847e Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch0_on.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png deleted file mode 100755 index 3b897857a6..0000000000 Binary files a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1.png and /dev/null differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_off.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_off.png new file mode 100755 index 0000000000..259826d921 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_off.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_on.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_on.png new file mode 100755 index 0000000000..ed5dd7610b Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch1_on.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png deleted file mode 100755 index eb749ca0e8..0000000000 Binary files a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2.png and /dev/null differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_off.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_off.png new file mode 100755 index 0000000000..30fbb78f34 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_off.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_on.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_on.png new file mode 100755 index 0000000000..be6c2a6856 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch2_on.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png b/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png deleted file mode 100755 index 8d0c0d2fdc..0000000000 Binary files a/src/main/resources/assets/kekztech/textures/blocks/TFFTMultiHatch3.png and /dev/null differ -- cgit From 8a002687160784898ec9c67a378ec2055f38327e Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 7 Jun 2020 21:07:14 +0200 Subject: just pushing to repo --- src/main/java/client/renderer/HatchRenderer.java | 31 ++++++- .../java/common/blocks/Block_TFFTMultiHatch.java | 101 ++++++++++++++++----- .../common/tileentities/TE_TFFTMultiHatch.java | 15 +-- 3 files changed, 110 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/main/java/client/renderer/HatchRenderer.java b/src/main/java/client/renderer/HatchRenderer.java index 0a764b3118..b2670af76b 100644 --- a/src/main/java/client/renderer/HatchRenderer.java +++ b/src/main/java/client/renderer/HatchRenderer.java @@ -1,14 +1,11 @@ package client.renderer; -import common.tileentities.TE_ItemProxyCable; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; public class HatchRenderer implements ISimpleBlockRenderingHandler { @@ -60,7 +57,35 @@ public class HatchRenderer implements ISimpleBlockRenderingHandler { @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + final Tessellator t = Tessellator.instance; + // Set colour + int mb = block.getMixedBrightnessForBlock(world, x, y, z); + t.setBrightness(mb); + + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + + if (block.shouldSideBeRendered(world, x, y - 1, z, 6)) { + renderer.renderFaceYNeg(block, x, y, z, block.getIcon(world, x, y, z, 0)); + } + if (block.shouldSideBeRendered(world, x, y + 1, z, 6)) { + t.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, x, y, z, block.getIcon(world, x, y, z, 1)); + } + + if (block.shouldSideBeRendered(world, x, y, z - 1, 6)) { + renderer.renderFaceZNeg(block, x, y, z, block.getIcon(world, x, y, z, 2)); + } + if (block.shouldSideBeRendered(world, x, y, z + 1, 6)) { + renderer.renderFaceZPos(block, x, y, z, block.getIcon(world, x, y, z, 3)); + } + if (block.shouldSideBeRendered(world, x - 1, y, z, 6)) { + renderer.renderFaceXNeg(block, x, y, z, block.getIcon(world, x, y, z, 4)); + } + if (block.shouldSideBeRendered(world, x + 1, y, z, 6)) { + renderer.renderFaceXPos(block, x, y, z, block.getIcon(world, x, y, z, 5)); + } return false; } diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java index eda34c8ce3..d2780c8c4b 100644 --- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java @@ -1,8 +1,6 @@ package common.blocks; -import client.renderer.ConduitRenderer; import client.renderer.HatchRenderer; -import common.Blocks; import common.itemBlocks.IB_TFFTMultiHatch; import common.tileentities.TE_TFFTMultiHatch; import cpw.mods.fml.common.registry.GameRegistry; @@ -11,7 +9,6 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; -import kekztech.KekzCore; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; @@ -22,9 +19,11 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import thaumcraft.common.tiles.TileJarFillable; import java.util.List; @@ -80,12 +79,49 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { @Override public IIcon getIcon(IBlockAccess blockAccess, int x, int y, int z, int side) { - if(side != 3) { - return casing; + final TileEntity te = blockAccess.getTileEntity(x, y, z); + if(te instanceof TE_TFFTMultiHatch) { + final TE_TFFTMultiHatch hatchTE = (TE_TFFTMultiHatch) te; + if(hatchTE.hasFacingOnSide((byte) side)) { + final int meta = blockAccess.getBlockMetadata(x, y, z); + if(hatchTE.isOutputting()) { + return overlayOn[meta]; + } else { + return overlayOff[meta]; + } + } else { + return casing; + } } else { - return overlayOff[blockAccess.getBlockMetadata(x, y, z)]; + return casing; } } + // ========= Leagris stuff + @Override + public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) { + return true; + } + + @Override + public int getLightOpacity(IBlockAccess world, int x, int y, int z) { + return 255; + } + + @Override + public int getLightValue() { + return 0; + } + + @Override + public boolean recolourBlock(World world, int x, int y, int z, ForgeDirection side, int colour) { + return false; + } + + //============== Leagris over + @Override + public boolean renderAsNormalBlock() { + return false; + } @Override @SideOnly(Side.CLIENT) @@ -109,8 +145,8 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { } @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { - // Code block taken from GregTech's BaseMetaTileEntity.class + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float p_149727_7_, float p_149727_8_, float p_149727_9_) { + // Code block taken from GregTech's api.metatileentity.BaseMetaTileEntity.class if (GT_Utility.isStackInList(player.getHeldItem(), GregTech_API.sScrewdriverList)) { if (GT_ModHandler.damageOrDechargeItem(player.getHeldItem(), 1, 200, player)) { final TileEntity te = world.getTileEntity(x, y, z); @@ -123,30 +159,49 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { } } return true; + } else if (GT_Utility.isStackInList(player.getHeldItem(), GregTech_API.sWrenchList)) { + if (GT_ModHandler.damageOrDechargeItem(player.getHeldItem(), 1, 200, player)) { + final TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TE_TFFTMultiHatch) { + ((TE_TFFTMultiHatch) te).setFacingToSide((byte) side); + GT_Utility.sendSoundToPlayers(world, GregTech_API.sSoundList.get(100), 1.0F, -1.0F, x, y, z); + } + } + return true; } return false; } - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase ent, ItemStack stack) { + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase placer, ItemStack stack) { + final int yaw = MathHelper.floor_double((double)(placer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + final int pitch = MathHelper.floor_double((double)(placer.rotationPitch * 4.0F / 360.0F) + 0.5D) & 3; final TileEntity te = world.getTileEntity(x, y, z); if (te instanceof TE_TFFTMultiHatch) { - final TE_TFFTMultiHatch hatchTE = (TE_TFFTMultiHatch) te; - for(int i = 0; i < 6; i++) { - final ForgeDirection d = ForgeDirection.getOrientation(i); - final Block n = world.getBlock(x + d.offsetX, y + d.offsetY, z + d.offsetZ); - KekzCore.LOGGER.info("Block on side " + i + " is " + n.getUnlocalizedName()); - // Always implement your tiered blocks as sub-blocks so you don't have to do this - if(n.equals(Blocks.tfftStorageField1) - || n.equals(Blocks.tfftStorageField2) - || n.equals(Blocks.tfftStorageField3) - || n.equals(Blocks.tfftStorageField4) - || n.equals(Blocks.tfftStorageField5)) { - KekzCore.LOGGER.info("Found Storage Field at side: " + i); - hatchTE.setFacingOnSide((byte) ForgeDirection.OPPOSITES[i], true); + if(pitch == 0 || pitch == 2) { + if (yaw == 0) { + ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 2); + } + + if (yaw == 1) { + ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 5); + } + + if (yaw == 2) { + ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 3); + } + + if (yaw == 3) { + ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 4); + } + } else { + if(pitch == 1) { + ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 1); + } else { + ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 0); } } } + } } diff --git a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java index 8336f841a6..161cad3110 100644 --- a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java @@ -29,9 +29,8 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { return (facings & key) == key; } - public void setFacingOnSide(byte side, boolean b) { - final byte key = (byte) Math.pow(0x2, side); - facings = (byte) (b ? facings | key : facings ^ key); + public void setFacingToSide(byte side) { + facings = (byte) Math.pow(0x2, side); } public void setMultiFluidHandler(MultiFluidHandler mfh) { @@ -191,22 +190,16 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { @Override public void writeToNBT(NBTTagCompound nbt) { - nbt = (nbt == null) ? new NBTTagCompound() : nbt; - + super.writeToNBT(nbt); nbt.setBoolean("autoOutput", autoOutput); nbt.setByte("facings", facings); - - super.writeToNBT(nbt); } @Override public void readFromNBT(NBTTagCompound nbt) { - nbt = (nbt == null) ? new NBTTagCompound() : nbt; - + super.readFromNBT(nbt); autoOutput = nbt.getBoolean("autoOutput"); facings = nbt.getByte("facings"); - - super.readFromNBT(nbt); } -- cgit From 76b15123238ca2f01c1bf46db8a4ea20dc7ced2b Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 8 Jun 2020 02:50:03 +0200 Subject: Removed everything related to Item Server; Deprecated current TFFT Multi Hatch in favor of GTMTE version --- GregTech.lang | 10 + src/main/java/client/ClientProxy.java | 2 - src/main/java/client/renderer/HatchRenderer.java | 102 -- src/main/java/common/Blocks.java | 9 +- src/main/java/common/Recipes.java | 62 -- src/main/java/common/TileEntities.java | 15 +- .../java/common/blocks/Block_ItemServerDrive.java | 57 -- .../java/common/blocks/Block_ItemServerIOPort.java | 43 - .../common/blocks/Block_ItemServerRackCasing.java | 30 - .../java/common/blocks/Block_TFFTMultiHatch.java | 77 +- .../java/common/itemBlocks/IB_ItemServerDrive.java | 22 - .../common/itemBlocks/IB_ItemServerIOPort.java | 22 - .../common/itemBlocks/IB_ItemServerRackCasing.java | 22 - .../java/common/itemBlocks/IB_TFFTMultiHatch.java | 7 +- .../common/items/MetaItem_CraftingComponent.java | 3 +- .../tileentities/GTMTE_FluidMultiStorage.java | 1052 ++++++++++---------- .../java/common/tileentities/GTMTE_ItemServer.java | 393 -------- .../common/tileentities/GTMTE_TFFTMultiHatch.java | 196 ++++ .../common/tileentities/TE_ItemServerIOPort.java | 145 --- .../common/tileentities/TE_TFFTMultiHatch.java | 1 + src/main/java/kekztech/Items.java | 1 - src/main/java/kekztech/MultiFluidHandler.java | 5 +- src/main/java/kekztech/MultiItemHandler.java | 185 ---- src/main/resources/assets/kekztech/lang/en_US.lang | 22 +- 24 files changed, 751 insertions(+), 1732 deletions(-) delete mode 100644 src/main/java/client/renderer/HatchRenderer.java delete mode 100644 src/main/java/common/blocks/Block_ItemServerDrive.java delete mode 100644 src/main/java/common/blocks/Block_ItemServerIOPort.java delete mode 100644 src/main/java/common/blocks/Block_ItemServerRackCasing.java delete mode 100644 src/main/java/common/itemBlocks/IB_ItemServerDrive.java delete mode 100644 src/main/java/common/itemBlocks/IB_ItemServerIOPort.java delete mode 100644 src/main/java/common/itemBlocks/IB_ItemServerRackCasing.java delete mode 100644 src/main/java/common/tileentities/GTMTE_ItemServer.java create mode 100644 src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java delete mode 100644 src/main/java/common/tileentities/TE_ItemServerIOPort.java delete mode 100644 src/main/java/kekztech/MultiItemHandler.java (limited to 'src') diff --git a/GregTech.lang b/GregTech.lang index a0cbff982a..227be0de63 100644 --- a/GregTech.lang +++ b/GregTech.lang @@ -3578,9 +3578,18 @@ languagefile { S:TileEntity_DESCRIPTION_13107_Index_4=----------------------------------------- S:TileEntity_DESCRIPTION_13107_Index_5=Hold §l[LSHIFT]§r§7 to display structure guidelines S:TileEntity_DESCRIPTION_13107_Index_6=Created by Kekzdealer + S:TileEntity_DESCRIPTION_13108_Index_0=All-in-one access for the T.F.F.T + S:TileEntity_DESCRIPTION_13108_Index_1=Right-click with a screwdriver to toggle auto-output + S:TileEntity_DESCRIPTION_13108_Index_2=Throughput: 2000L/s per fluid + S:TileEntity_DESCRIPTION_13109_Index_0=All-in-one access for the T.F.F.T + S:TileEntity_DESCRIPTION_13109_Index_1=Right-click with a screwdriver to toggle auto-output + S:TileEntity_DESCRIPTION_13109_Index_2=Throughput: 20000L/s per fluid S:TileEntity_DESCRIPTION_1310_Index_0=Max Voltage: %s S:TileEntity_DESCRIPTION_1310_Index_1=Max Amperage: %s S:TileEntity_DESCRIPTION_1310_Index_2=Loss/Meter/Ampere: %s EU-Volt + S:TileEntity_DESCRIPTION_13110_Index_0=All-in-one access for the T.F.F.T + S:TileEntity_DESCRIPTION_13110_Index_1=Right-click with a screwdriver to toggle auto-output + S:TileEntity_DESCRIPTION_13110_Index_2=Throughput: 200000L/s per fluid S:TileEntity_DESCRIPTION_1311_Index_0=Max Voltage: %s S:TileEntity_DESCRIPTION_1311_Index_1=Max Amperage: %s S:TileEntity_DESCRIPTION_1311_Index_2=Loss/Meter/Ampere: %s EU-Volt @@ -13169,6 +13178,7 @@ languagefile { S:gt.blockmachines.machine.avr.tier.12.name=UMV AVR Micro-controller S:gt.blockmachines.machine.dehydrator.tier.00.name=Basic Dehydrator I S:gt.blockmachines.machine.dehydrator.tier.01.name=Basic Dehydrator II + S:gt.blockmachines.machine.multihatch.name=T.F.F.T Multi I/O Hatch [HV] S:gt.blockmachines.machine.tt.buck.05.name=Insane Buck Converter S:gt.blockmachines.machine.tt.buck.06.name=Ludicrous Buck Converter S:gt.blockmachines.machine.tt.buck.07.name=ZPM Voltage Buck Converter diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index c863198976..f608861c0d 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -1,6 +1,5 @@ package client; -import client.renderer.HatchRenderer; import client.renderer.TESR_SECapacitor; import client.renderer.TESR_SETether; import common.CommonProxy; @@ -26,7 +25,6 @@ public class ClientProxy extends CommonProxy { super.init(e); // Register Simple Block Renderers //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); - RenderingRegistry.registerBlockHandler(HatchRenderer.getInstance()); } } diff --git a/src/main/java/client/renderer/HatchRenderer.java b/src/main/java/client/renderer/HatchRenderer.java deleted file mode 100644 index b2670af76b..0000000000 --- a/src/main/java/client/renderer/HatchRenderer.java +++ /dev/null @@ -1,102 +0,0 @@ -package client.renderer; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import org.lwjgl.opengl.GL11; - -public class HatchRenderer implements ISimpleBlockRenderingHandler { - - public static final int RID = RenderingRegistry.getNextAvailableRenderId(); - private static final HatchRenderer INSTANCE = new HatchRenderer(); - - private HatchRenderer() { - - } - - public static HatchRenderer getInstance() { - return INSTANCE; - } - - @Override - public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { - block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - renderer.setRenderBoundsFromBlock(block); - final Tessellator t = Tessellator.instance; - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - t.startDrawingQuads(); - t.setNormal(0.0F, -1.0F, 0.0F); - renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(0.0F, 1.0F, 0.0F); - renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(1.0F, 0.0F, 0.0F); - renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(-1.0F, 0.0F, 0.0F); - renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(0.0F, 0.0F, 1.0F); - renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(0.0F, 0.0F, -1.0F); - renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(6, meta)); - t.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, - RenderBlocks renderer) { - final Tessellator t = Tessellator.instance; - // Set colour - int mb = block.getMixedBrightnessForBlock(world, x, y, z); - t.setBrightness(mb); - - block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - renderer.setRenderBoundsFromBlock(block); - - if (block.shouldSideBeRendered(world, x, y - 1, z, 6)) { - renderer.renderFaceYNeg(block, x, y, z, block.getIcon(world, x, y, z, 0)); - } - if (block.shouldSideBeRendered(world, x, y + 1, z, 6)) { - t.setNormal(0.0F, 1.0F, 0.0F); - renderer.renderFaceYPos(block, x, y, z, block.getIcon(world, x, y, z, 1)); - } - - if (block.shouldSideBeRendered(world, x, y, z - 1, 6)) { - renderer.renderFaceZNeg(block, x, y, z, block.getIcon(world, x, y, z, 2)); - } - if (block.shouldSideBeRendered(world, x, y, z + 1, 6)) { - renderer.renderFaceZPos(block, x, y, z, block.getIcon(world, x, y, z, 3)); - } - - if (block.shouldSideBeRendered(world, x - 1, y, z, 6)) { - renderer.renderFaceXNeg(block, x, y, z, block.getIcon(world, x, y, z, 4)); - } - if (block.shouldSideBeRendered(world, x + 1, y, z, 6)) { - renderer.renderFaceXPos(block, x, y, z, block.getIcon(world, x, y, z, 5)); - } - - return false; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return HatchRenderer.RID; - } -} diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index 18725b6000..bc8b2ff573 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -44,7 +44,6 @@ public class Blocks { registerBlocks_SOFC(); registerBlocks_TFFT(); registerBlocks_Nuclear(); - //registerBlocks_ItemServer(); //registerBlocks_ItemProxy(); registerBlocks_Jars(); registerBlocks_LSC(); @@ -73,13 +72,7 @@ public class Blocks { reactorChamberON = Block_ReactorChamber_ON.registerBlock(); reactorControlRod = Block_ControlRod.registerBlock(); } - - private static void registerBlocks_ItemServer() { - itemServerDrive = Block_ItemServerDrive.registerBlock(); - itemServerRackCasing = Block_ItemServerRackCasing.registerBlock(); - itemServerIOPort = Block_ItemServerIOPort.registerBlock(); - } - + private static void registerBlocks_ItemProxy() { itemProxyCable = Block_ItemProxyCable.registerBlock(); itemProxySource = Block_ItemProxySource.registerBlock(); diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index eaaad88570..b694805c96 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -35,7 +35,6 @@ public class Recipes { registerRecipes_TFFT(); registerRecipes_SOFC(); registerRecipes_Nuclear(); - //registerRecipes_ItemServer(); registerRecipes_Jars(); registerRecipes_LSC(); registerRecipes_SpaceElevator(); @@ -329,67 +328,6 @@ public class Recipes { null, 1200, 7680); } - private static void registerRecipes_ItemServer() { - - final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance(); - - // Controller - final Object[] is_recipe = { - "FRF", "CGC", "PZP", - 'F', GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1), - 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.TungstenSteel, 1), - 'C', ItemList.Conveyor_Module_LuV.get(1L), - 'G', ItemList.Field_Generator_EV.get(1L), - 'P', GT_OreDictUnificator.get(OrePrefixes.cableGt04, Materials.VanadiumGallium, 1), - 'Z', GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Master, 1) - }; - GT_ModHandler.addCraftingRecipe(TileEntities.is.getStackForm(1), is_recipe); - - // Blocks - final Object[] is_rack_recipe = { - "BRB", "CFC", "BRB", - 'B', GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BlueSteel, 1), - 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Aluminium, 1), - 'C', GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Platinum, 1), - 'F', GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.TungstenSteel, 1), - }; - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.itemServerRackCasing), is_rack_recipe); - final ItemStack[] is_ioport = { - GT_Utility.getIntegratedCircuit(6), - new ItemStack(Blocks.itemServerRackCasing), - GT_OreDictUnificator.get(OrePrefixes.bolt, Materials.Platinum, 16), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Platinum, 2), - ItemList.Field_Generator_HV.get(1L), - ItemList.Robot_Arm_EV.get(4L) - }; - GT_Values.RA.addAssemblerRecipe( - is_ioport, - FluidRegistry.getFluidStack("molten.polytetrafluoroethylene", 144), - new ItemStack(Blocks.itemServerIOPort, 1), - 200, 7680); - final Object[] is_blade = { - "CRC", "CMC", "HPH", - 'C', GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 1), - 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Aluminium, 1), - 'P', GT_OreDictUnificator.get(OrePrefixes.cableGt08, Materials.Platinum, 1), - 'M', ItemList.Electric_Motor_EV.get(1L), - 'H', craftingItem.getStackFromDamage(Items.BoronArsenideHeatPipe.getMetaID()), - }; - GT_ModHandler.addCraftingRecipe(craftingItem.getStackOfAmountFromDamage(Items.ItemServerBlade.getMetaID(), 8), is_blade); - final ItemStack[] is_drive = { - GT_Utility.getIntegratedCircuit(6), - craftingItem.getStackOfAmountFromDamage(Items.ItemServerBlade.getMetaID(), 8), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.BlueSteel, 4), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Aluminium, 1), - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Aluminium, 16) - }; - GT_Values.RA.addAssemblerRecipe( - is_drive, - FluidRegistry.getFluidStack("molten.polyethylene", 1152), - new ItemStack(Blocks.itemServerDrive, 1), - 200, 7680); - } - private static void registerRecipes_Jars() { // Thaumium Reinforced Jar diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index 9e3a648667..35ac65d2e6 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -5,17 +5,20 @@ import cpw.mods.fml.common.registry.GameRegistry; public class TileEntities { + // Multiblock controllers public static GTMTE_SOFuelCellMK1 sofc1; public static GTMTE_SOFuelCellMK2 sofc2; public static GTMTE_ModularNuclearReactor mdr; public static GTMTE_FluidMultiStorage fms; - public static GTMTE_ItemServer is; public static GTMTE_LapotronicSuperCapacitor lsc; public static GTMTE_SpaceElevator se; - + // Singleblocks + public static GTMTE_TFFTMultiHatch mhHV; + public static GTMTE_TFFTMultiHatch mhIV; + public static GTMTE_TFFTMultiHatch mhZPM; + public static void preInit() { GameRegistry.registerTileEntity(TE_TFFTMultiHatch.class, "kekztech_tfftmultihatch_tile"); - //GameRegistry.registerTileEntity(TE_ItemServerIOPort.class, "kekztech_itemserverioport_tile"); GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile"); GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile"); GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); @@ -25,13 +28,17 @@ public class TileEntities { } public static void init() { + // Multiblock controllers sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); - //is = new GTMTE_ItemServer(13105, "multimachine.itemserver", "Item Server"); lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); + // Singleblocks + mhHV = new GTMTE_TFFTMultiHatch(13108, "machine.multihatch", "T.F.F.T Multi I/O Hatch [HV]", 3); + mhIV = new GTMTE_TFFTMultiHatch(13109, "machine.multihatch", "T.F.F.T Multi I/O Hatch [IV]", 5); + mhZPM = new GTMTE_TFFTMultiHatch(13110, "machine.multihatch", "T.F.F.T Multi I/O Hatch [ZPM]", 7); } } diff --git a/src/main/java/common/blocks/Block_ItemServerDrive.java b/src/main/java/common/blocks/Block_ItemServerDrive.java deleted file mode 100644 index 63747a8598..0000000000 --- a/src/main/java/common/blocks/Block_ItemServerDrive.java +++ /dev/null @@ -1,57 +0,0 @@ -package common.blocks; - -import common.itemBlocks.IB_ItemServerDrive; -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -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; - -public class Block_ItemServerDrive extends BaseGTUpdateableBlock{ - - private static Block_ItemServerDrive instance = new Block_ItemServerDrive(); - - private IIcon[] faces = new IIcon[6]; - - private Block_ItemServerDrive() { - super(Material.iron); - } - - public static Block registerBlock() { - final String blockName = "kekztech_itemserverdrive_block"; - instance.setBlockName(blockName); - instance.setCreativeTab(CreativeTabs.tabMisc); - instance.setHardness(5.0f); - instance.setResistance(6.0f); - GameRegistry.registerBlock(instance, IB_ItemServerDrive.class, blockName); - - return instance; - } - - @Override - public void registerBlockIcons(IIconRegister reg) { - for(int i = 0; i < 6; i++) { - if(i == 0) { - faces[i] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerDrive_BOTTOM"); - } else if(i == 1) { - faces[i] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerDrive_TOP"); - } else { - faces[i] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerDrive"); - } - - } - } - - @Override - public IIcon getIcon(int side, int meta) { - return faces[side]; - } - - @Override - public int getLightValue() { - return 7; - } - -} diff --git a/src/main/java/common/blocks/Block_ItemServerIOPort.java b/src/main/java/common/blocks/Block_ItemServerIOPort.java deleted file mode 100644 index 6af90b6e42..0000000000 --- a/src/main/java/common/blocks/Block_ItemServerIOPort.java +++ /dev/null @@ -1,43 +0,0 @@ -package common.blocks; - -import common.itemBlocks.IB_ItemServerIOPort; -import common.tileentities.TE_ItemServerIOPort; -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class Block_ItemServerIOPort extends BaseGTUpdateableBlock { - - private static Block_ItemServerIOPort instance = new Block_ItemServerIOPort(); - - private Block_ItemServerIOPort() { - super(Material.iron); - } - - public static Block registerBlock() { - final String blockName = "kekztech_itemserverioport_block"; - instance.setBlockName(blockName); - instance.setCreativeTab(CreativeTabs.tabMisc); - instance.setBlockTextureName(KekzCore.MODID + ":" + "ItemServerIOPort"); - instance.setHardness(5.0f); - instance.setResistance(6.0f); - GameRegistry.registerBlock(instance, IB_ItemServerIOPort.class, blockName); - - return instance; - } - - @Override - public boolean hasTileEntity(int metadata) { - return true; - } - - @Override - public TileEntity createTileEntity(World world, int metadata) { - return new TE_ItemServerIOPort(); - } - -} diff --git a/src/main/java/common/blocks/Block_ItemServerRackCasing.java b/src/main/java/common/blocks/Block_ItemServerRackCasing.java deleted file mode 100644 index db0ec9c3e6..0000000000 --- a/src/main/java/common/blocks/Block_ItemServerRackCasing.java +++ /dev/null @@ -1,30 +0,0 @@ -package common.blocks; - -import common.itemBlocks.IB_ItemServerRackCasing; -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class Block_ItemServerRackCasing extends BaseGTUpdateableBlock { - - private static Block_ItemServerRackCasing instance = new Block_ItemServerRackCasing(); - - private Block_ItemServerRackCasing() { - super(Material.iron); - } - - public static Block registerBlock() { - final String blockName = "kekztech_itemserverrackcasing_block"; - instance.setBlockName(blockName); - instance.setCreativeTab(CreativeTabs.tabMisc); - instance.setBlockTextureName(KekzCore.MODID + ":" + "ItemServerRackCasing"); - instance.setHardness(5.0f); - instance.setResistance(6.0f); - GameRegistry.registerBlock(instance, IB_ItemServerRackCasing.class, blockName); - - return instance; - } - -} diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java index d2780c8c4b..37f9e47bcc 100644 --- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java @@ -1,11 +1,8 @@ package common.blocks; -import client.renderer.HatchRenderer; import common.itemBlocks.IB_TFFTMultiHatch; import common.tileentities.TE_TFFTMultiHatch; import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; @@ -13,20 +10,17 @@ 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.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import thaumcraft.common.tiles.TileJarFillable; import java.util.List; +@Deprecated public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { private static final Block_TFFTMultiHatch INSTANCE = new Block_TFFTMultiHatch(); @@ -96,43 +90,6 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { return casing; } } - // ========= Leagris stuff - @Override - public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) { - return true; - } - - @Override - public int getLightOpacity(IBlockAccess world, int x, int y, int z) { - return 255; - } - - @Override - public int getLightValue() { - return 0; - } - - @Override - public boolean recolourBlock(World world, int x, int y, int z, ForgeDirection side, int colour) { - return false; - } - - //============== Leagris over - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() { - return 0; - } - - @Override - public int getRenderType() { - return HatchRenderer.RID; - } @Override public TileEntity createTileEntity(World world, int meta) { @@ -172,36 +129,4 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { return false; } - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase placer, ItemStack stack) { - final int yaw = MathHelper.floor_double((double)(placer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - final int pitch = MathHelper.floor_double((double)(placer.rotationPitch * 4.0F / 360.0F) + 0.5D) & 3; - final TileEntity te = world.getTileEntity(x, y, z); - if (te instanceof TE_TFFTMultiHatch) { - if(pitch == 0 || pitch == 2) { - if (yaw == 0) { - ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 2); - } - - if (yaw == 1) { - ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 5); - } - - if (yaw == 2) { - ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 3); - } - - if (yaw == 3) { - ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 4); - } - } else { - if(pitch == 1) { - ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 1); - } else { - ((TE_TFFTMultiHatch)te).setFacingToSide((byte) 0); - } - } - } - - } - } diff --git a/src/main/java/common/itemBlocks/IB_ItemServerDrive.java b/src/main/java/common/itemBlocks/IB_ItemServerDrive.java deleted file mode 100644 index a937230da5..0000000000 --- a/src/main/java/common/itemBlocks/IB_ItemServerDrive.java +++ /dev/null @@ -1,22 +0,0 @@ -package common.itemBlocks; - -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.StatCollector; - -public class IB_ItemServerDrive extends ItemBlock { - - public IB_ItemServerDrive(Block block) { - super(block); - } - - @SuppressWarnings({"unchecked"}) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) { - lines.add(StatCollector.translateToLocal("tile.kekztech_itemserverdrive_block.0.desc")); - } -} diff --git a/src/main/java/common/itemBlocks/IB_ItemServerIOPort.java b/src/main/java/common/itemBlocks/IB_ItemServerIOPort.java deleted file mode 100644 index 10803af14c..0000000000 --- a/src/main/java/common/itemBlocks/IB_ItemServerIOPort.java +++ /dev/null @@ -1,22 +0,0 @@ -package common.itemBlocks; - -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.StatCollector; - -public class IB_ItemServerIOPort extends ItemBlock { - - public IB_ItemServerIOPort(Block block) { - super(block); - } - - @SuppressWarnings({"unchecked"}) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) { - lines.add(StatCollector.translateToLocal("tile.kekztech_itemserverioport_block.0.desc")); - } -} diff --git a/src/main/java/common/itemBlocks/IB_ItemServerRackCasing.java b/src/main/java/common/itemBlocks/IB_ItemServerRackCasing.java deleted file mode 100644 index f1da1fcb5e..0000000000 --- a/src/main/java/common/itemBlocks/IB_ItemServerRackCasing.java +++ /dev/null @@ -1,22 +0,0 @@ -package common.itemBlocks; - -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.StatCollector; - -public class IB_ItemServerRackCasing extends ItemBlock { - - public IB_ItemServerRackCasing(Block block) { - super(block); - } - - @SuppressWarnings({"unchecked"}) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) { - lines.add(StatCollector.translateToLocal("tile.kekztech_itemserverrackcasing_block.0.desc=")); - } -} diff --git a/src/main/java/common/itemBlocks/IB_TFFTMultiHatch.java b/src/main/java/common/itemBlocks/IB_TFFTMultiHatch.java index c5ecdca46d..f00c5ef0c2 100644 --- a/src/main/java/common/itemBlocks/IB_TFFTMultiHatch.java +++ b/src/main/java/common/itemBlocks/IB_TFFTMultiHatch.java @@ -9,6 +9,7 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; +@Deprecated public class IB_TFFTMultiHatch extends ItemBlock { public IB_TFFTMultiHatch(Block block) { @@ -33,12 +34,6 @@ public class IB_TFFTMultiHatch extends ItemBlock { @SuppressWarnings({"unchecked"}) @Override public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) { - final int outputPerSecond = (int) (TE_TFFTMultiHatch.BASE_OUTPUT_PER_SECOND * Math.pow(10, stack.getItemDamage())); - lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.0.desc")); - lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.1.desc")); - lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.2.desc")); - lines.add(StatCollector.translateToLocal("tile.kekztech_tfftmultihatch_block.3.desc" ) - + " " + outputPerSecond + "L/s"); } } diff --git a/src/main/java/common/items/MetaItem_CraftingComponent.java b/src/main/java/common/items/MetaItem_CraftingComponent.java index ac57222b79..2b1c989831 100644 --- a/src/main/java/common/items/MetaItem_CraftingComponent.java +++ b/src/main/java/common/items/MetaItem_CraftingComponent.java @@ -14,7 +14,7 @@ import net.minecraft.util.IIcon; public class MetaItem_CraftingComponent extends Item { private static final MetaItem_CraftingComponent INSTANCE = new MetaItem_CraftingComponent(); - private final IIcon[] icons = new IIcon[17]; + private final IIcon[] icons = new IIcon[16]; private MetaItem_CraftingComponent() { } @@ -54,7 +54,6 @@ public class MetaItem_CraftingComponent extends Item { icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CeriaDust"); icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YSZCeramicPlate"); icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "GDCCeramicPlate"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "ItemServerBlade"); } @Override diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index 1c32525c4e..e06d1cc4a6 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -1,531 +1,523 @@ -package common.tileentities; - -import gregtech.api.enums.Textures.BlockIcons; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; -import gregtech.api.objects.GT_RenderedTexture; -import kekztech.MultiFluidHandler; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.FluidStack; -import org.lwjgl.input.Keyboard; - -import common.Blocks; -import common.blocks.*; -import util.MultiBlockTooltipBuilder; -import util.Vector3i; -import util.Vector3ic; - -import java.util.ArrayList; -import java.util.HashSet; - -public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { - - private final static String glassNameIC2Reinforced = "blockAlloyGlass"; - private final static Block CASING = Blocks.tfftCasing; - private final static Block_TFFTStorageFieldBlockT1 STORAGE_FIELD1 = (Block_TFFTStorageFieldBlockT1) Blocks.tfftStorageField1; - private final static Block_TFFTStorageFieldBlockT2 STORAGE_FIELD2 = (Block_TFFTStorageFieldBlockT2) Blocks.tfftStorageField2; - private final static Block_TFFTStorageFieldBlockT3 STORAGE_FIELD3 = (Block_TFFTStorageFieldBlockT3) Blocks.tfftStorageField3; - private final static Block_TFFTStorageFieldBlockT4 STORAGE_FIELD4 = (Block_TFFTStorageFieldBlockT4) Blocks.tfftStorageField4; - private final static Block_TFFTStorageFieldBlockT5 STORAGE_FIELD5 = (Block_TFFTStorageFieldBlockT5) Blocks.tfftStorageField5; - private final static Block MULTI_HATCH = Blocks.tfftMultiHatch; - private final static int CASING_TEXTURE_ID = 176; - - private MultiFluidHandler mfh; - private HashSet multiHatches = new HashSet<>(); - - private int runningCost = 0; - private boolean doVoidExcess = false; - private byte fluidSelector = 0; - - public GTMTE_FluidMultiStorage(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional); - } - - public GTMTE_FluidMultiStorage(String aName) { - super(aName); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity var1) { - return new GTMTE_FluidMultiStorage(super.mName); - } - - @Override - public String[] getDescription() { - final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); - b.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() - .beginStructureBlock(5, 9, 5) - .addController("Top Center") - .addEnergyHatch("Any top or bottom casing") - .addOtherStructurePart("Inner 3x7x3 solid pillar", "Storage Field Blocks") - .addOtherStructurePart("Outer 5x7x5 glass shell", "IC2 Reinforced Glass") - .addMaintenanceHatch("Any top or bottom casing") - .addIOHatches("Instead of any casing or glass, have to touch storage field.") - .signAndFinalize("Kekzdealer"); - if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return b.getInformation(); - } else { - return b.getStructureInformation(); - } - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { - return aSide == aFacing - ? new ITexture[]{BlockIcons.casingTexturePages[1][48], - new GT_RenderedTexture(aActive - ? BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE - : BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR)} - : new ITexture[]{BlockIcons.casingTexturePages[1][48]}; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), - "MultiblockDisplay.png"); - } - - @Override - public boolean isCorrectMachinePart(ItemStack var1) { - return true; - } - - @Override - public boolean checkRecipe(ItemStack guiSlotItem) { - - super.mEfficiency = 10000 - (super.getIdealStatus() - super.getRepairStatus()) * 1000; - super.mEfficiencyIncrease = 10000; - super.mEUt = runningCost; - super.mMaxProgresstime = 10; - - if(guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) { - this.fluidSelector = (byte) guiSlotItem.getItemDamage(); - } - - // If there are no basic I/O hatches, let multi hatches handle it and skip a lot of code! - if (multiHatches.size() > 0 && super.mInputHatches.size() == 0 && super.mOutputHatches.size() == 0) { - return true; - } - - // Suck in fluids - final ArrayList inputHatchFluids = super.getStoredFluids(); - if (inputHatchFluids.size() > 0) { - - for (FluidStack fluidStack : inputHatchFluids) { - - final int pushed = mfh.pushFluid(fluidStack, true); - final FluidStack toDeplete = fluidStack.copy(); - toDeplete.amount = pushed; - super.depleteInput(toDeplete); - } - } - - // Push out fluids - if (guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) { - final FluidStack storedFluid = mfh.getFluid(fluidSelector); - // Sum available output capacity - int possibleOutput = 0; - for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { - if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluid.getUnlocalizedName())) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } else if (outputHatch.getFluid() == null) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } - } - // Output as much as possible - final FluidStack tempStack = storedFluid.copy(); - tempStack.amount = possibleOutput; - tempStack.amount = mfh.pullFluid(tempStack, fluidSelector, true); - super.addOutput(tempStack); - - } else { - for (FluidStack storedFluid : mfh.getFluids()) { - // Sum available output capacity - int possibleOutput = 0; - for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { - if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluid.getUnlocalizedName())) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } else if (outputHatch.getFluid() == null) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } - } - // output as much as possible - final FluidStack tempStack = storedFluid.copy(); - tempStack.amount = possibleOutput; - // TODO possible concurrent modification exception as pullFluid calls remove() without an iterator - tempStack.amount = mfh.pullFluid(tempStack, true); - super.addOutput(tempStack); - } - } - - return true; - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - - if (mfh != null) { - mfh.setLock(!super.getBaseMetaTileEntity().isActive()); - mfh.setFluidSelector(fluidSelector); - mfh.setDoVoidExcess(doVoidExcess); - } - } - - public Vector3ic rotateOffsetVector(Vector3ic forgeDirection, int x, int y, int z) { - final Vector3i offset = new Vector3i(); - - // either direction on z-axis - if (forgeDirection.x() == 0 && forgeDirection.z() == -1) { - offset.x = x; - offset.y = y; - offset.z = z; - } - if (forgeDirection.x() == 0 && forgeDirection.z() == 1) { - offset.x = -x; - offset.y = y; - offset.z = -z; - } - // either direction on x-axis - if (forgeDirection.x() == -1 && forgeDirection.z() == 0) { - offset.x = z; - offset.y = y; - offset.z = -x; - } - if (forgeDirection.x() == 1 && forgeDirection.z() == 0) { - offset.x = -z; - offset.y = y; - offset.z = x; - } - // either direction on y-axis - if (forgeDirection.y() == -1) { - offset.x = x; - offset.y = z; - offset.z = y; - } - - return offset; - } - - @Override - public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) { - // Figure out the vector for the direction the back face of the controller is facing - final Vector3ic forgeDirection = new Vector3i( - ForgeDirection.getOrientation(thisController.getBackFacing()).offsetX, - ForgeDirection.getOrientation(thisController.getBackFacing()).offsetY, - ForgeDirection.getOrientation(thisController.getBackFacing()).offsetZ - ); - int minCasingAmount = 20; - boolean formationChecklist = true; // If this is still true at the end, machine is good to go :) - float runningCostAcc = 0; - double fluidCapacityAcc = 0; - - multiHatches.clear(); - - // Front segment - for (int X = -2; X <= 2; X++) { - for (int Y = -2; Y <= 2; Y++) { - if (X == 0 && Y == 0) { - continue; // Skip controller - } - - // Get next TE - final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, 0); - final IGregTechTileEntity currentTE = - thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); - - // Fluid hatches should touch the storage field. - // Maintenance/Energy hatch can go anywhere - if (X > -2 && X < 2 && Y > -2 && Y < 2) { - if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - - final Block b = thisController.getBlockOffset(offset.x(), offset.y(), offset.z()); - - // If it's not a hatch, is it the right casing for this machine? Check block and block meta. - // Also check for multi hatch - if (b == CASING) { - // Seems to be valid casing. Decrement counter. - minCasingAmount--; - } else if (b == MULTI_HATCH) { - final TE_TFFTMultiHatch mh = - (TE_TFFTMultiHatch) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), - thisController.getYCoord() + offset.y(), - thisController.getZCoord() + offset.z()); - multiHatches.add(mh); - } else { - formationChecklist = false; - } - } - } else { - if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - - // If it's not a hatch, is it the right casing for this machine? Check block and block meta. - if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { - // Seems to be valid casing. Decrement counter. - minCasingAmount--; - } else { - formationChecklist = false; - } - } - } - } - } - - // Middle seven long segment - for (int X = -2; X <= 2; X++) { - for (int Y = -2; Y <= 2; Y++) { - for (int Z = -1; Z >= -7; Z--) { - final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, Z); - if (X > -2 && X < 2 && Y > -2 && Y < 2) { - if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() - .equals(STORAGE_FIELD1.getUnlocalizedName())) { - runningCostAcc += 0.5f; - fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT1.getCapacity(); - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() - .equals(STORAGE_FIELD2.getUnlocalizedName())) { - runningCostAcc += 1.0f; - fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT2.getCapacity(); - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() - .equals(STORAGE_FIELD3.getUnlocalizedName())) { - runningCostAcc += 2.0f; - fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT3.getCapacity(); - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() - .equals(STORAGE_FIELD4.getUnlocalizedName())) { - runningCostAcc += 4.0f; - fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT4.getCapacity(); - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() - .equals(STORAGE_FIELD5.getUnlocalizedName())) { - runningCostAcc += 8.0f; - fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT5.getCapacity(); - } else { - formationChecklist = false; - } - continue; - } - - // Get next TE - final IGregTechTileEntity currentTE = - thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); - - // Corner allows only glass - if (X == -2 && Y == -2 || X == 2 && Y == 2 || X == -2 && Y == 2 || X == 2 && Y == -2) { - if (!(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameIC2Reinforced))) { - formationChecklist = false; - } - } else { - // Tries to add TE as either of those kinds of hatches. - // The number is the texture index number for the texture that needs to be painted over the hatch texture (TAE for GT++) - if (!super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID)) { - - // If it's not a hatch, is it the right casing for this machine? Check block and block meta. - // Also check for multi hatch - if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { - // Seems to be valid casing. Decrement counter. - minCasingAmount--; - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == MULTI_HATCH) { - final TE_TFFTMultiHatch mh = - (TE_TFFTMultiHatch) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), - thisController.getYCoord() + offset.y(), - thisController.getZCoord() + offset.z()); - multiHatches.add(mh); - } else if (!thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameIC2Reinforced)) { - formationChecklist = false; - } - } - } - } - } - } - - // Back segment - for (int X = -2; X <= 2; X++) { - for (int Y = -2; Y <= 2; Y++) { - // Get next TE - final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, -8); - final IGregTechTileEntity currentTE = - thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); - - // Fluid hatches should touch the storage field. - // Maintenance/Energy hatch can go anywhere - if (X > -2 && X < 2 && Y > -2 && Y < 2) { - if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - - // If it's not a hatch, is it the right casing for this machine? Check block and block meta. - if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { - // Seems to be valid casing. Decrement counter. - minCasingAmount--; - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == MULTI_HATCH) { - final TE_TFFTMultiHatch mh = - (TE_TFFTMultiHatch) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), - thisController.getYCoord() + offset.y(), - thisController.getZCoord() + offset.z()); - multiHatches.add(mh); - } else { - formationChecklist = false; - } - } - } else { - if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - - // If it's not a hatch, is it the right casing for this machine? Check block and block meta. - if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { - // Seems to be valid casing. Decrement counter. - minCasingAmount--; - } else { - formationChecklist = false; - } - } - } - } - } - - if (this.mEnergyHatches.size() < 1) { - formationChecklist = false; - } - - if (this.mMaintenanceHatches.size() < 1) { - formationChecklist = false; - } - - if (minCasingAmount > 0) { - formationChecklist = false; - } - - if (formationChecklist) { - runningCost = Math.round(-runningCostAcc); - // Update MultiFluidHandler in case storage cells have been changed - final int capacityPerFluid = (int) Math.round(fluidCapacityAcc / 25.0f); - if (mfh == null) { - mfh = new MultiFluidHandler(capacityPerFluid); - } else { - if (mfh.getCapacity() != capacityPerFluid) { - mfh = new MultiFluidHandler(capacityPerFluid, mfh.getFluids()); - } - } - for (TE_TFFTMultiHatch mh : multiHatches) { - mh.setMultiFluidHandler(mfh); - } - } - - return formationChecklist; - } - - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (doVoidExcess) { - doVoidExcess = false; - aPlayer.addChatComponentMessage(new ChatComponentText("Auto-voiding turned off")); - } else { - doVoidExcess = true; - aPlayer.addChatComponentMessage(new ChatComponentText("Auto-voiding turned on")); - } - } - - @Override - public String[] getInfoData() { - final ArrayList ll = mfh.getInfoData(); - - ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET); - ll.add("Auto-voiding: " + doVoidExcess); - ll.add("Per-Fluid Capacity: " + mfh.getCapacity() + "L"); - ll.add("Running Cost: " - // mEUt does not naturally reflect efficiency status. Do that here. - + ((-super.mEUt) * 10000 / Math.max(1000, super.mEfficiency)) + "EU/t"); - ll.add("Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus()) - ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET - : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET)); - ll.add("---------------------------------------------"); - - final String[] a = new String[ll.size()]; - return ll.toArray(a); - } - - @Override - public void saveNBTData(NBTTagCompound nbt) { - nbt = (nbt == null) ? new NBTTagCompound() : nbt; - - nbt.setInteger("runningCost", runningCost); - nbt.setBoolean("doVoidExcess", doVoidExcess); - - nbt.setInteger("capacityPerFluid", mfh.getCapacity()); - nbt.setTag("fluids", mfh.saveNBTData(new NBTTagCompound())); - - super.saveNBTData(nbt); - } - - @Override - public void loadNBTData(NBTTagCompound nbt) { - nbt = (nbt == null) ? new NBTTagCompound() : nbt; - - runningCost = nbt.getInteger("runningCost"); - doVoidExcess = nbt.getBoolean("doVoidExcess"); - - mfh = new MultiFluidHandler(); - mfh.loadNBTData(nbt); - for (TE_TFFTMultiHatch mh : multiHatches) { - mh.setMultiFluidHandler(mfh); - } - super.loadNBTData(nbt); - } - - @Override - public boolean isGivingInformation() { - return true; - } - - @Override - public int getMaxEfficiency(ItemStack var1) { - return 10000; - } - - @Override - public int getPollutionPerTick(ItemStack var1) { - return 0; - } - - @Override - public int getDamageToComponent(ItemStack var1) { - return 0; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack var1) { - return false; - } +package common.tileentities; + +import common.Blocks; +import common.blocks.*; +import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.gui.GT_GUIContainer_MultiMachine; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.*; +import gregtech.api.objects.GT_RenderedTexture; +import kekztech.MultiFluidHandler; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; +import org.lwjgl.input.Keyboard; +import util.MultiBlockTooltipBuilder; +import util.Vector3i; +import util.Vector3ic; + +import java.util.ArrayList; +import java.util.HashSet; + +public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { + + private final static String glassNameIC2Reinforced = "blockAlloyGlass"; + private final static Block CASING = Blocks.tfftCasing; + private final static Block_TFFTStorageFieldBlockT1 STORAGE_FIELD1 = (Block_TFFTStorageFieldBlockT1) Blocks.tfftStorageField1; + private final static Block_TFFTStorageFieldBlockT2 STORAGE_FIELD2 = (Block_TFFTStorageFieldBlockT2) Blocks.tfftStorageField2; + private final static Block_TFFTStorageFieldBlockT3 STORAGE_FIELD3 = (Block_TFFTStorageFieldBlockT3) Blocks.tfftStorageField3; + private final static Block_TFFTStorageFieldBlockT4 STORAGE_FIELD4 = (Block_TFFTStorageFieldBlockT4) Blocks.tfftStorageField4; + private final static Block_TFFTStorageFieldBlockT5 STORAGE_FIELD5 = (Block_TFFTStorageFieldBlockT5) Blocks.tfftStorageField5; + private final static int CASING_TEXTURE_ID = 176; + + private MultiFluidHandler mfh; + private final HashSet sMultiHatches = new HashSet<>(); + + private int runningCost = 0; + private boolean doVoidExcess = false; + private byte fluidSelector = 0; + + public GTMTE_FluidMultiStorage(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + } + + public GTMTE_FluidMultiStorage(String aName) { + super(aName); + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity var1) { + return new GTMTE_FluidMultiStorage(super.mName); + } + + @Override + public String[] getDescription() { + final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); + b.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() + .beginStructureBlock(5, 9, 5) + .addController("Top Center") + .addEnergyHatch("Any top or bottom casing") + .addOtherStructurePart("Inner 3x7x3 solid pillar", "Storage Field Blocks") + .addOtherStructurePart("Outer 5x7x5 glass shell", "IC2 Reinforced Glass") + .addMaintenanceHatch("Any top or bottom casing") + .addIOHatches("Instead of any casing or glass, have to touch storage field.") + .signAndFinalize("Kekzdealer"); + if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return b.getInformation(); + } else { + return b.getStructureInformation(); + } + } + + @Override + public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, + boolean aActive, boolean aRedstone) { + return aSide == aFacing + ? new ITexture[]{BlockIcons.casingTexturePages[1][48], + new GT_RenderedTexture(aActive + ? BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE + : BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR)} + : new ITexture[]{BlockIcons.casingTexturePages[1][48]}; + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), + "MultiblockDisplay.png"); + } + + @Override + public boolean isCorrectMachinePart(ItemStack var1) { + return true; + } + + @Override + public boolean checkRecipe(ItemStack guiSlotItem) { + + super.mEfficiency = 10000 - (super.getIdealStatus() - super.getRepairStatus()) * 1000; + super.mEfficiencyIncrease = 10000; + super.mEUt = runningCost; + super.mMaxProgresstime = 10; + + if(guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) { + this.fluidSelector = (byte) guiSlotItem.getItemDamage(); + } + + // If there are no basic I/O hatches, let multi hatches handle it and skip a lot of code! + if (sMultiHatches.size() > 0 && super.mInputHatches.size() == 0 && super.mOutputHatches.size() == 0) { + return true; + } + + // Suck in fluids + final ArrayList inputHatchFluids = super.getStoredFluids(); + if (inputHatchFluids.size() > 0) { + + for (FluidStack fluidStack : inputHatchFluids) { + + final int pushed = mfh.pushFluid(fluidStack, true); + final FluidStack toDeplete = fluidStack.copy(); + toDeplete.amount = pushed; + super.depleteInput(toDeplete); + } + } + + // Push out fluids + if (guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) { + final FluidStack storedFluid = mfh.getFluid(fluidSelector); + // Sum available output capacity + int possibleOutput = 0; + for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { + if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { + possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluid.getUnlocalizedName())) { + possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + } else if (outputHatch.getFluid() == null) { + possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + } + } + // Output as much as possible + final FluidStack tempStack = storedFluid.copy(); + tempStack.amount = possibleOutput; + tempStack.amount = mfh.pullFluid(tempStack, fluidSelector, true); + super.addOutput(tempStack); + + } else { + for (FluidStack storedFluid : mfh.getFluids()) { + // Sum available output capacity + int possibleOutput = 0; + for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { + if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { + possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluid.getUnlocalizedName())) { + possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + } else if (outputHatch.getFluid() == null) { + possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + } + } + // output as much as possible + final FluidStack tempStack = storedFluid.copy(); + tempStack.amount = possibleOutput; + // TODO possible concurrent modification exception as pullFluid calls remove() without an iterator + tempStack.amount = mfh.pullFluid(tempStack, true); + super.addOutput(tempStack); + } + } + + return true; + } + + @Override + public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPostTick(aBaseMetaTileEntity, aTick); + + if (mfh != null) { + mfh.setLock(!super.getBaseMetaTileEntity().isActive()); + mfh.setFluidSelector(fluidSelector); + mfh.setDoVoidExcess(doVoidExcess); + } + } + + public Vector3ic rotateOffsetVector(Vector3ic forgeDirection, int x, int y, int z) { + final Vector3i offset = new Vector3i(); + + // either direction on z-axis + if (forgeDirection.x() == 0 && forgeDirection.z() == -1) { + offset.x = x; + offset.y = y; + offset.z = z; + } + if (forgeDirection.x() == 0 && forgeDirection.z() == 1) { + offset.x = -x; + offset.y = y; + offset.z = -z; + } + // either direction on x-axis + if (forgeDirection.x() == -1 && forgeDirection.z() == 0) { + offset.x = z; + offset.y = y; + offset.z = -x; + } + if (forgeDirection.x() == 1 && forgeDirection.z() == 0) { + offset.x = -z; + offset.y = y; + offset.z = x; + } + // either direction on y-axis + if (forgeDirection.y() == -1) { + offset.x = x; + offset.y = z; + offset.z = y; + } + + return offset; + } + + @Override + public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) { + // Figure out the vector for the direction the back face of the controller is facing + final Vector3ic forgeDirection = new Vector3i( + ForgeDirection.getOrientation(thisController.getBackFacing()).offsetX, + ForgeDirection.getOrientation(thisController.getBackFacing()).offsetY, + ForgeDirection.getOrientation(thisController.getBackFacing()).offsetZ + ); + int minCasingAmount = 20; + boolean formationChecklist = true; // If this is still true at the end, machine is good to go :) + float runningCostAcc = 0; + double fluidCapacityAcc = 0; + + sMultiHatches.clear(); + + // Front segment + for (int X = -2; X <= 2; X++) { + for (int Y = -2; Y <= 2; Y++) { + if (X == 0 && Y == 0) { + continue; // Skip controller + } + + // Get next TE + final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, 0); + final IGregTechTileEntity currentTE = + thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); + + // Fluid hatches should touch the storage field. + // Maintenance/Energy hatch can go anywhere + if (X > -2 && X < 2 && Y > -2 && Y < 2) { + if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID) + && !addMultiHatchToMachineList(currentTE, CASING_TEXTURE_ID)) { + + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. + // Also check for multi hatch + if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { + // Seems to be valid casing. Decrement counter. + minCasingAmount--; + } else { + formationChecklist = false; + } + } + } else { + if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { + + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. + if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { + // Seems to be valid casing. Decrement counter. + minCasingAmount--; + } else { + formationChecklist = false; + } + } + } + } + } + + // Middle seven long segment + for (int X = -2; X <= 2; X++) { + for (int Y = -2; Y <= 2; Y++) { + for (int Z = -1; Z >= -7; Z--) { + final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, Z); + if (X > -2 && X < 2 && Y > -2 && Y < 2) { + if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + .equals(STORAGE_FIELD1.getUnlocalizedName())) { + runningCostAcc += 0.5f; + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT1.getCapacity(); + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + .equals(STORAGE_FIELD2.getUnlocalizedName())) { + runningCostAcc += 1.0f; + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT2.getCapacity(); + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + .equals(STORAGE_FIELD3.getUnlocalizedName())) { + runningCostAcc += 2.0f; + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT3.getCapacity(); + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + .equals(STORAGE_FIELD4.getUnlocalizedName())) { + runningCostAcc += 4.0f; + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT4.getCapacity(); + } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName() + .equals(STORAGE_FIELD5.getUnlocalizedName())) { + runningCostAcc += 8.0f; + fluidCapacityAcc += (float) Block_TFFTStorageFieldBlockT5.getCapacity(); + } else { + formationChecklist = false; + } + continue; + } + + // Get next TE + final IGregTechTileEntity currentTE = + thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); + + // Corner allows only glass + if (X == -2 && Y == -2 || X == 2 && Y == 2 || X == -2 && Y == 2 || X == 2 && Y == -2) { + if (!(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameIC2Reinforced))) { + formationChecklist = false; + } + } else { + // Tries to add TE as either of those kinds of hatches. + // The number is the texture index number for the texture that needs to be painted over the hatch texture (TAE for GT++) + if (!super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID) + && !addMultiHatchToMachineList(currentTE, CASING_TEXTURE_ID)) { + + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. + // Also check for multi hatch + if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { + // Seems to be valid casing. Decrement counter. + minCasingAmount--; + } else if (!thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameIC2Reinforced)) { + formationChecklist = false; + } + } + } + } + } + } + + // Back segment + for (int X = -2; X <= 2; X++) { + for (int Y = -2; Y <= 2; Y++) { + // Get next TE + final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, -8); + final IGregTechTileEntity currentTE = + thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); + + // Fluid hatches should touch the storage field. + // Maintenance/Energy hatch can go anywhere + if (X > -2 && X < 2 && Y > -2 && Y < 2) { + if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID) + && !addMultiHatchToMachineList(currentTE, CASING_TEXTURE_ID)) { + + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. + if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { + // Seems to be valid casing. Decrement counter. + minCasingAmount--; + } else { + formationChecklist = false; + } + } + } else { + if (!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { + + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. + if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { + // Seems to be valid casing. Decrement counter. + minCasingAmount--; + } else { + formationChecklist = false; + } + } + } + } + } + + if (this.mEnergyHatches.size() < 1) { + formationChecklist = false; + } + + if (this.mMaintenanceHatches.size() != 1) { + formationChecklist = false; + } + + if (minCasingAmount > 0) { + formationChecklist = false; + } + + if (formationChecklist) { + runningCost = Math.round(-runningCostAcc); + // Update MultiFluidHandler in case storage cells have been changed + final int capacityPerFluid = (int) Math.round(fluidCapacityAcc / 25.0f); + if (mfh == null) { + mfh = new MultiFluidHandler(capacityPerFluid); + } else { + if (mfh.getCapacity() != capacityPerFluid) { + mfh = new MultiFluidHandler(capacityPerFluid, mfh.getFluids()); + } + } + for (GTMTE_TFFTMultiHatch mh : sMultiHatches) { + mh.setMultiFluidHandler(mfh); + } + } + + return formationChecklist; + } + + public boolean addMultiHatchToMachineList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { + if (aTileEntity == null) { + return false; + } else { + final IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } else if (aMetaTileEntity instanceof GTMTE_TFFTMultiHatch) { + ((GTMTE_TFFTMultiHatch)aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.sMultiHatches.add((GTMTE_TFFTMultiHatch)aMetaTileEntity); + } else { + return false; + } + } + } + + @Override + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + if (doVoidExcess) { + doVoidExcess = false; + aPlayer.addChatComponentMessage(new ChatComponentText("Auto-voiding turned off")); + } else { + doVoidExcess = true; + aPlayer.addChatComponentMessage(new ChatComponentText("Auto-voiding turned on")); + } + } + + @Override + public String[] getInfoData() { + final ArrayList ll = mfh.getInfoData(); + + ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET); + ll.add("Auto-voiding: " + doVoidExcess); + ll.add("Per-Fluid Capacity: " + mfh.getCapacity() + "L"); + ll.add("Running Cost: " + // mEUt does not naturally reflect efficiency status. Do that here. + + ((-super.mEUt) * 10000 / Math.max(1000, super.mEfficiency)) + "EU/t"); + ll.add("Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus()) + ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET + : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET)); + ll.add("---------------------------------------------"); + + final String[] a = new String[ll.size()]; + return ll.toArray(a); + } + + @Override + public void saveNBTData(NBTTagCompound nbt) { + nbt = (nbt == null) ? new NBTTagCompound() : nbt; + + nbt.setInteger("runningCost", runningCost); + nbt.setBoolean("doVoidExcess", doVoidExcess); + + nbt.setInteger("capacityPerFluid", mfh.getCapacity()); + nbt.setTag("fluids", mfh.saveNBTData(new NBTTagCompound())); + + super.saveNBTData(nbt); + } + + @Override + public void loadNBTData(NBTTagCompound nbt) { + nbt = (nbt == null) ? new NBTTagCompound() : nbt; + + runningCost = nbt.getInteger("runningCost"); + doVoidExcess = nbt.getBoolean("doVoidExcess"); + + mfh = new MultiFluidHandler(); + mfh.loadNBTData(nbt); + for (GTMTE_TFFTMultiHatch mh : sMultiHatches) { + mh.setMultiFluidHandler(mfh); + } + super.loadNBTData(nbt); + } + + @Override + public boolean isGivingInformation() { + return true; + } + + @Override + public int getMaxEfficiency(ItemStack var1) { + return 10000; + } + + @Override + public int getPollutionPerTick(ItemStack var1) { + return 0; + } + + @Override + public int getDamageToComponent(ItemStack var1) { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack var1) { + return false; + } } \ No newline at end of file diff --git a/src/main/java/common/tileentities/GTMTE_ItemServer.java b/src/main/java/common/tileentities/GTMTE_ItemServer.java deleted file mode 100644 index cfff360ce4..0000000000 --- a/src/main/java/common/tileentities/GTMTE_ItemServer.java +++ /dev/null @@ -1,393 +0,0 @@ -package common.tileentities; - -import java.util.ArrayList; -import java.util.HashSet; - -import org.lwjgl.input.Keyboard; - -import common.Blocks; -import common.blocks.Block_ItemServerDrive; -import common.blocks.Block_ItemServerIOPort; -import common.blocks.Block_ItemServerRackCasing; -import gregtech.api.enums.Textures.BlockIcons; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; -import gregtech.api.interfaces.ITexture; -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; -import gregtech.api.objects.GT_RenderedTexture; -import kekztech.MultiItemHandler; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.common.util.ForgeDirection; -import util.MultiBlockTooltipBuilder; -import util.Vector3i; -import util.Vector3ic; - -public class GTMTE_ItemServer extends GT_MetaTileEntity_MultiBlockBase { - - private static final int BASE_SEGMENT_ENERGY_COST = 1; - private static final int BASE_PER_ITEM_CAPACITY = 1024; - private static final int BASE_ITEM_TYPES_PER_SEGMENT = 4; - - private final Block_ItemServerDrive DRIVE = (Block_ItemServerDrive) Blocks.itemServerDrive; - private final Block_ItemServerRackCasing CASING = (Block_ItemServerRackCasing) Blocks.itemServerRackCasing; - private final Block_ItemServerIOPort IO_PORT = (Block_ItemServerIOPort) Blocks.itemServerIOPort; - private final String ALU_FRAME_BOX_NAME = "gt.blockmachines"; - private final int ALU_FRAME_BOX_META = 6; - private final int CASING_TEXTURE_ID = 176; - - private MultiItemHandler mih; - private HashSet ioPorts = new HashSet<>(); - private int sliceCount = 0; - - public GTMTE_ItemServer(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional); - } - - public GTMTE_ItemServer(String aName) { - super(aName); - } - - @Override - public IMetaTileEntity newMetaEntity(IGregTechTileEntity var1) { - return new GTMTE_ItemServer(super.mName); - } - - @Override - public String[] getDescription() { - final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); - b.addInfo("[W.I.P - Probably doesn't work]") - .addInfo("High-Tech item storage!") - .addInfo("Variable length: Slices 2-4 can be repeated as long as the total length does not exceed 16 blocks.") - .addInfo("Each segment offers storage for 128 item types") - .addInfo("Storage capacity per item depends on the controller configuration.") - .addInfo("Insert an Integrated Circuit into the controller with your desired configuration.") - .addInfo("The base configuration (0) is 1024 items per type. For each higher level, the capacity quadruples.") - .addInfo("Each slice also adds 1EU/t of power consumption and doubles with rising configuration values.") - .addInfo("Valid config values are from zero to eight.") - .addSeparator() - .beginStructureBlock(3, 5, 4) - .addController("Front Bottom Center") - .addEnergyHatch("Any casing") - .addOtherStructurePart("Front slice", "3x5x1 Item Server Rack Casing") - .addOtherStructurePart("2nd and 3rd slice, center", "1x4x1 Aluminium Frame Box") - .addOtherStructurePart("2nd and 3rd slice, top", "3x1x1 Item Server Rack Casing") - .addOtherStructurePart("2nd and 3rd slice, sides", "2x 1x4x1 Item Server Drive") - .addOtherStructurePart("Back slice", "3x5x1 Item Server Rack Casing") - .signAndFinalize("Kekzdealer"); - if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return b.getInformation(); - } else { - return b.getStructureInformation(); - } - } - - @Override - public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, - boolean aActive, boolean aRedstone) { - return aSide == aFacing - ? new ITexture[]{BlockIcons.casingTexturePages[1][48], - new GT_RenderedTexture(aActive - ? BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR_ACTIVE - : BlockIcons.OVERLAY_FRONT_LARGE_CHEMICAL_REACTOR)} - : new ITexture[]{BlockIcons.casingTexturePages[1][48]}; - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), - "MultiblockDisplay.png"); - } - - @Override - public boolean isCorrectMachinePart(ItemStack var1) { - return true; - } - - @Override - public boolean checkRecipe(ItemStack guiSlotItem) { - final int config = (guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) - ? Math.min(8, guiSlotItem.getItemDamage()) : 0; - - this.mEfficiency = 10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000; - this.mEfficiencyIncrease = 10000; - this.mEUt = (int) -(BASE_SEGMENT_ENERGY_COST * sliceCount * Math.pow(2, config)); - super.mMaxProgresstime = 20; - - mih.setPerTypeCapacity((int) (BASE_PER_ITEM_CAPACITY * Math.pow(4, config))); - - return true; - } - - @Override - public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { - super.onPostTick(aBaseMetaTileEntity, aTick); - - if(mih != null) { - mih.setLock(!super.getBaseMetaTileEntity().isActive()); - } - } - - public Vector3ic rotateOffsetVector(Vector3ic forgeDirection, int x, int y, int z) { - final Vector3i offset = new Vector3i(); - - // either direction on z-axis - if(forgeDirection.x() == 0 && forgeDirection.z() == -1) { - offset.x = x; - offset.y = y; - offset.z = z; - } - if(forgeDirection.x() == 0 && forgeDirection.z() == 1) { - offset.x = -x; - offset.y = y; - offset.z = -z; - } - // either direction on x-axis - if(forgeDirection.x() == -1 && forgeDirection.z() == 0) { - offset.x = z; - offset.y = y; - offset.z = -x; - } - if(forgeDirection.x() == 1 && forgeDirection.z() == 0) { - offset.x = -z; - offset.y = y; - offset.z = x; - } - - return offset; - } - - @Override - public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) { - // Figure out the vector for the direction the back face of the controller is facing - final Vector3ic forgeDirection = new Vector3i( - ForgeDirection.getOrientation(thisController.getBackFacing()).offsetX, - ForgeDirection.getOrientation(thisController.getBackFacing()).offsetY, - ForgeDirection.getOrientation(thisController.getBackFacing()).offsetZ - ); - boolean formationChecklist = true; - - // Front slice - for(int X = -1; X <= 1; X++) { - for(int Y = 0; Y <= 4; Y++) { - if(X == 0 && Y == 0) { - continue; // is controller - } - - // Get next TE - final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, 0); - IGregTechTileEntity currentTE = - thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); - - if(!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - - // Is casing or IO port? - if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { - // Is casing, but there's no casing requirements - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == IO_PORT) { - final TE_ItemServerIOPort port = - (TE_ItemServerIOPort) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), - thisController.getYCoord() + offset.y(), - thisController.getZCoord() + offset.z()); - ioPorts.add(port); - } else { - formationChecklist = false; - } - } - } - } - - // Check slices - int segmentsFound = 0; - int zOffset = -1; // -1 is the first slice after the front one. It goes in negative direction. - - while(segmentsFound < 5) { - if(checkSegment(thisController, forgeDirection, zOffset)) { - segmentsFound++; - zOffset -= 3; // Each segment is 3 blocks long, so progress Z by -3 - - System.out.println("Item Server segment approved: " + segmentsFound); - } else { - System.out.println("Item Server segment rejected: " + (segmentsFound + 1)); - break; - } - } - - if(segmentsFound < 1) { - System.out.println("At least one slice required for storage"); - formationChecklist = false; - } - - if(this.mEnergyHatches.size() < 1) { - System.out.println("At least one energy hatch is required!"); - formationChecklist = false; - } - - if(this.mMaintenanceHatches.size() < 1) { - System.out.println("You need a maintenance hatch to do maintenance."); - formationChecklist = false; - } - - if(formationChecklist) { - sliceCount = segmentsFound; - - if(mih == null) { - mih = new MultiItemHandler(); - mih.setItemTypeCapacity(segmentsFound * BASE_ITEM_TYPES_PER_SEGMENT); - } - System.out.println("Configuring " + ioPorts.size() + " ports"); - for(TE_ItemServerIOPort port : ioPorts) { - port.setMultiItemHandler(mih); - } - } - - return formationChecklist; - } - - public boolean checkSegment(IGregTechTileEntity thisController, Vector3ic forgeDirection, int zOffset) { - boolean formationChecklist = true; - // Slice by slice - for(int Z = 0; Z >= -2; Z--) { - // Is not back slice - if(Z != -2) { - // Left to right - for(int X = -1; X <= 1; X++) { - // Bottom to top - for(int Y = 0; Y <= 4; Y++) { - final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, zOffset + Z); - - // Server rack roof - if(Y == 4) { - final IGregTechTileEntity currentTE = - thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); - - if(!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - // Is casing or IO port? - if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { - // Is casing, but there's no casing requirements - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == IO_PORT) { - final TE_ItemServerIOPort port = - (TE_ItemServerIOPort) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), - thisController.getYCoord() + offset.y(), - thisController.getZCoord() + offset.z()); - ioPorts.add(port); - } else { - formationChecklist = false; - } - } - } - - // Middle wall is aluminium frame boxes - else if(Y <= 3 && X == 0) { - if(!(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(ALU_FRAME_BOX_NAME)) - || !(thisController.getMetaIDOffset(offset.x(), offset.y(), offset.z()) == ALU_FRAME_BOX_META)) { - formationChecklist = false; - } - } - - // Side walls are item server drives - else if(Y <= 3 && X != 0) { - if(!(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == DRIVE)) { - formationChecklist = false; - } - } - } - } - } else { - // Back slice - for(int X = -1; X <= 1; X++) { - for(int Y = 0; Y <= 4; Y++) { - - final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, zOffset + Z); - IGregTechTileEntity currentTE = - thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); - - if(!super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) - && !super.addEnergyInputToMachineList(currentTE, CASING_TEXTURE_ID)) { - // Is casing or IO port? - if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == CASING) { - // Is casing, but there's no casing requirements - } else if (thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == IO_PORT) { - final TE_ItemServerIOPort port = - (TE_ItemServerIOPort) thisController.getWorld().getTileEntity( - thisController.getXCoord() + offset.x(), - thisController.getYCoord() + offset.y(), - thisController.getZCoord() + offset.z()); - ioPorts.add(port); - } else { - formationChecklist = false; - } - } - } - } - } - } - - - return formationChecklist; - } - - @Override - public String[] getInfoData() { - final ArrayList ll = new ArrayList<>();//mfh.getInfoData(); - - ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET); - ll.add("Per-Item Capacity: " + mih.getPerTypeCapacity()); - ll.add("Item-Type Capacity: " + BASE_ITEM_TYPES_PER_SEGMENT * sliceCount); - ll.add("Running Cost: " - // mEUt does not naturally reflect efficiency status. Do that here. - + ((-super.mEUt) * 10000 / Math.max(1000, super.mEfficiency)) + "EU/t"); - ll.add("Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus()) - ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET - : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET)); - ll.add("---------------------------------------------"); - - final String[] a = new String[ll.size()]; - return ll.toArray(a); - } - - @Override - public void saveNBTData(NBTTagCompound nbt) { - nbt = (nbt == null) ? new NBTTagCompound() : nbt; - - super.saveNBTData(nbt); - } - - @Override - public void loadNBTData(NBTTagCompound nbt) { - nbt = (nbt == null) ? new NBTTagCompound() : nbt; - - super.loadNBTData(nbt); - } - - @Override - public boolean isGivingInformation() { - return true; - } - - @Override - public int getMaxEfficiency(ItemStack var1) { - return 10000; - } - - @Override - public int getPollutionPerTick(ItemStack var1) { - return 0; - } - - @Override - public int getDamageToComponent(ItemStack var1) { - return 0; - } - - @Override - public boolean explodesOnComponentBreak(ItemStack var1) { - return false; - } -} diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java new file mode 100644 index 0000000000..529a948dbe --- /dev/null +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -0,0 +1,196 @@ +package common.tileentities; + +import gregtech.api.GregTech_API; +import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Utility; +import kekztech.MultiFluidHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fluids.FluidStack; + +import java.util.HashMap; + +public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { + + private static final HashMap vals = new HashMap<>(); + static { + vals.put(3, 2000); + vals.put(5, 20000); + vals.put(7, 200000); + } + private static final int INV_SLOT_COUNT = 2; + + private MultiFluidHandler mfh; + private boolean outputting = false; + + public GTMTE_TFFTMultiHatch(int aID, String aName, String aNameRegional, int aTier) { + super(aID, aName, aNameRegional, aTier, INV_SLOT_COUNT, new String[] { + "All-in-one access for the T.F.F.T", + "Right-click with a screwdriver to toggle auto-output", + "Throughput: " + vals.get(aTier) + "L/s per fluid"} + ); + } + + public GTMTE_TFFTMultiHatch(String aName, int aTier, String aDescription, ITexture[][][] aTextures) { + super(aName, aTier, INV_SLOT_COUNT, aDescription, aTextures); + } + + public GTMTE_TFFTMultiHatch(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { + super(aName, aTier, INV_SLOT_COUNT, aDescription, aTextures); + } + + public void setMultiFluidHandler(MultiFluidHandler mfh) { + this.mfh = mfh; + } + + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + aNBT.setBoolean("outputting", outputting); + } + + @Override + public void loadNBTData(NBTTagCompound aNBT) { + super.loadNBTData(aNBT); + outputting = aNBT.getBoolean("outputting"); + } + + @Override + public ITexture[] getTexturesActive(ITexture iTexture) { + return new ITexture[0]; + } + + @Override + public ITexture[] getTexturesInactive(ITexture iTexture) { + return new ITexture[0]; + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity iGregTechTileEntity) { + return new GTMTE_TFFTMultiHatch(super.mName, super.mTier, super.mDescriptionArray, super.mTextures); + } + + @Override + public boolean isMachineBlockUpdateRecursive() { + return false; + } + + @Override + public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { + if (GT_Utility.isStackInList(aPlayer.getHeldItem(), GregTech_API.sScrewdriverList)) { + if (GT_ModHandler.damageOrDechargeItem(aPlayer.getHeldItem(), 1, 200, aPlayer)) { + outputting = !outputting; + GT_Utility.sendSoundToPlayers(aBaseMetaTileEntity.getWorld(), GregTech_API.sSoundList.get(100), + 1.0F, -1.0F, + aBaseMetaTileEntity.getXCoord(), + aBaseMetaTileEntity.getYCoord(), + aBaseMetaTileEntity.getZCoord() + ); + // Give chat feedback + GT_Utility.sendChatToPlayer(aPlayer, outputting ? "Auto-output enabled" : "Auto-output disabled"); + } + return true; + } + return false; + } + + @Override + public boolean doesFillContainers() { + return true; + } + + @Override + public boolean doesEmptyContainers() { + return true; + } + + @Override + public int getCapacity() { + return (mfh != null) ? mfh.getCapacity() : 0; + } + + public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + if (aBaseMetaTileEntity.isServerSide() && mfh != null) { + // Handle emptying containers + final FluidStack fluidFromCell = GT_Utility.getFluidForFilledItem(super.mInventory[super.getInputSlot()], true); + // Check if fluid is not null, could be inserted, and if there is space for the empty container + if (fluidFromCell != null && mfh.couldPush(fluidFromCell) + && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), GT_Utility.getContainerItem(super.mInventory[super.getInputSlot()], true), 1)) { + // Consume one filled container if it was emptied successfully + if(mfh.pushFluid(fluidFromCell, true) == fluidFromCell.amount) { + aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); + } + } + // Handle filling containers. This will use the selected T.F.F.T fluid + final ItemStack cellFromFluid = GT_Utility.fillFluidContainer( + mfh.getFluid(mfh.getSelectedFluid()), super.mInventory[super.getInputSlot()], false, true); + // Check if cell is not null and if there is space for the filled container + if (cellFromFluid != null && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), cellFromFluid, 1)) { + // Convert back to FluidStack to learn the container capacity... + final FluidStack fluidCapacityStack = GT_Utility.getFluidForFilledItem(cellFromFluid, true); + // Consume one empty container if it was filled successfully + if(mfh.pullFluid(fluidCapacityStack, true) == fluidCapacityStack.amount) { + aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); + } + } + } + } + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { + return (mfh != null) ? mfh.pushFluid(resource, doFill) : 0; + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { + return (mfh != null) ? new FluidStack(resource.getFluid(), mfh.pullFluid(resource, doDrain)) : null; + } + + /** + * Drains fluid out of 0th internal tank. + * If the TFFT Controller contains an Integrated Circuit, drain fluid + * from the slot equal to the circuit configuration. + * + * @param from + * Orientation the fluid is drained to. + * @param maxDrain + * Maximum amount of fluid to drain. + * @param doDrain + * If false, drain will only be simulated. + * @return FluidStack representing the Fluid and amount that was (or would have been, if + * simulated) drained. + */ + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { + if(mfh != null) { + final FluidStack drain = mfh.getFluid(0); + if(drain != null) { + // If there's no integrated circuit in the T.F.F.T. controller, output slot 0 + final byte selectedSlot = (mfh.getSelectedFluid() == -1) ? 0 : mfh.getSelectedFluid(); + + return new FluidStack( + drain.getFluid(), + mfh.pullFluid(new FluidStack(drain.getFluid(), maxDrain), selectedSlot, doDrain) + ); + } + } + return null; + } + + @Override + public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == super.getOutputSlot(); + } + + @Override + public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { + return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == super.getInputSlot(); + } + +} diff --git a/src/main/java/common/tileentities/TE_ItemServerIOPort.java b/src/main/java/common/tileentities/TE_ItemServerIOPort.java deleted file mode 100644 index 0e96ff75b9..0000000000 --- a/src/main/java/common/tileentities/TE_ItemServerIOPort.java +++ /dev/null @@ -1,145 +0,0 @@ -package common.tileentities; - -import kekztech.MultiItemHandler; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; - -public class TE_ItemServerIOPort extends TileEntity implements ISidedInventory { - - private MultiItemHandler mih; - - private int tickCounter = 0; - - public void setMultiItemHandler(MultiItemHandler mih) { - this.mih = mih; - } - - @Override - public void updateEntity() { - if(mih != null) { - - tickCounter++; - if(tickCounter >= 40) { - mih.debugPrint(); - tickCounter = 0; - } - } - } - - @Override - public int getSizeInventory() { - return (mih != null) ? mih.getItemTypeCapacity() : 0; - } - - @Override - public ItemStack getStackInSlot(int slot) { - return (mih != null) ? mih.getStackInSlot(slot) : null; - } - - @Override - public ItemStack decrStackSize(int slot, int amount) { - if(mih != null) { - if(mih.getStackInSlot(slot) != null) { - final ItemStack obtained = mih.getStackInSlot(slot).copy(); - obtained.stackSize = mih.reduceStackInSlot(slot, amount); - super.markDirty(); - return obtained; - } else { - return null; - } - } else { - return null; - } - } - - @Override - public ItemStack getStackInSlotOnClosing(int slot) { - return null; - } - - @Override - public void setInventorySlotContents(int slot, ItemStack itemStack) { - System.out.println("Set slot: " + slot); - if(mih != null) { - if(itemStack == null) { - return; - } else { - if(!mih.insertStackInSlot(slot, itemStack)) { - final int delta = itemStack.stackSize - mih.getStackInSlot(slot).stackSize; - if(delta < 0) { - System.out.println("Set slot reduce: " + itemStack.getDisplayName()); - mih.reduceStackInSlot(slot, delta); - } else { - System.out.println("Set slot increase: " + itemStack.getDisplayName()); - mih.increaseStackInSlot(slot, delta); - } - - } else { - System.out.println("Allocated new slot for: " + itemStack.getDisplayName()); - } - super.markDirty(); - } - } - } - - @Override - public String getInventoryName() { - return "Item Server IO Port"; - } - - @Override - public boolean hasCustomInventoryName() { - return true; - } - - @Override - public int getInventoryStackLimit() { - return (mih != null) ? mih.getPerTypeCapacity() : 0; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - return true; - } - - @Override - public void openInventory() { - - } - - @Override - public void closeInventory() { - - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack itemStack) { - return (mih != null) ? (mih.getStackInSlot(slot).isItemEqual(itemStack) || mih.getStackInSlot(slot) == null) : false; - } - - @Override - public int[] getAccessibleSlotsFromSide(int side) { - if(mih != null) { - final int[] as = new int[mih.getItemTypeCapacity()]; - for(int i = 0; i < mih.getItemTypeCapacity(); i++) { - as[i] = i; - } - return as; - } else { - return new int[1]; - } - } - - @Override - public boolean canInsertItem(int slot, ItemStack itemStack, int side) { - return isItemValidForSlot(slot, itemStack); - } - - @Override - public boolean canExtractItem(int slot, ItemStack itemStack, int side) { - return (mih != null) ? true : false; - } - -} diff --git a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java index 161cad3110..823d456b56 100644 --- a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java @@ -14,6 +14,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; +@Deprecated public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { public static final int BASE_OUTPUT_PER_SECOND = 2000; // L/s diff --git a/src/main/java/kekztech/Items.java b/src/main/java/kekztech/Items.java index 66a8f996e3..59873f88a0 100644 --- a/src/main/java/kekztech/Items.java +++ b/src/main/java/kekztech/Items.java @@ -40,7 +40,6 @@ public enum Items { YSZCeramicDust(9,1), GDCCeramicDust(10,1), YttriaDust(11,1), ZirconiaDust(12,1), CeriaDust(13,1), YSZCeramicPlate(14,1), GDCCeramicPlate(15,1), - ItemServerBlade(16,1), // Error Item Error(0,1), // Configurator diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index f1a527b2c0..1d8f4c2fea 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -70,14 +70,15 @@ public class MultiFluidHandler { public int getCapacity() { return capacityPerFluid; } - + + // TODO return deep copy instead public List getFluids(){ return (!locked) ? fluids : new ArrayList<>(); } public FluidStack getFluid(int slot) { return (!locked && fluids.size() > 0 && slot >= 0 && slot < MAX_DISTINCT_FLUIDS) - ? fluids.get(slot) : null; + ? fluids.get(slot).copy() : null; } public NBTTagCompound saveNBTData(NBTTagCompound nbt) { diff --git a/src/main/java/kekztech/MultiItemHandler.java b/src/main/java/kekztech/MultiItemHandler.java deleted file mode 100644 index 27d936efec..0000000000 --- a/src/main/java/kekztech/MultiItemHandler.java +++ /dev/null @@ -1,185 +0,0 @@ -package kekztech; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.item.ItemStack; - -public class MultiItemHandler { - - private int perTypeCapacity = 0; - - private boolean locked = true; - - private ItemStack[] items; - - public MultiItemHandler() { - - } - - public List debugPrint() { - if(items == null) { - return new ArrayList(); - } - final ArrayList slots = new ArrayList<>(); - - for(int i = 0; i < items.length; i++) { - slots.add("Slot " + i + " contains " + items[i].stackSize + " " + items[i].getDisplayName()); - } - - return slots; - } - - /** - * Adapts the internal storage to structure changes. - * In the event of structure down-sizing, all excess items - * will be dropped on the ground. - * - * @param itemTypeCapacity - */ - public void setItemTypeCapacity(int itemTypeCapacity) { - System.out.println("Configuring type capacity"); - if(items.length > itemTypeCapacity) { - // Generate new smaller backing array - final ItemStack[] newItems = new ItemStack[itemTypeCapacity]; - for(int i = 0; i < newItems.length; i++) { - newItems[i] = items[i]; - } - // Sort out item overflow - final ItemStack[] toDrop = new ItemStack[items.length - itemTypeCapacity]; - for(int i = 0; i < toDrop.length; i++) { - toDrop[i] = items[i + newItems.length - 1]; - } - // TODO drop overflow items to the ground - - // Swap array - items = newItems; - } else { - // Generate new larger backing array - final ItemStack[] newItems = new ItemStack[itemTypeCapacity]; - for(int i = 0; i < items.length; i++) { - newItems[i] = items[i]; - } - - // Swap array - items = newItems; - } - } - - public void setPerTypeCapacity(int perTypeCapacity) { - this.perTypeCapacity = perTypeCapacity; - } - - /** - * Lock internal storage in case Item Server is not running. - * - * @param state - * Lock state. - */ - public void setLock(boolean state) { - locked = state; - } - - public int getItemTypeCapacity() { - return items != null ? items.length : 0; - } - - public int getPerTypeCapacity() { - return perTypeCapacity; - } - - /** - * Returns the ItemStack from the specified slot. - * - * @param slot - * Storage slot number. Zero indexed. - * @return - * ItemStack from storage or null if - * storage is locked or invalid slot parameter. - */ - public ItemStack getStackInSlot(int slot) { - System.out.println("Stack in slot " + slot + " requested"); - if(locked || slot >= items.length) { - return null; - } else { - return items[slot]; - } - } - - /** - * Inserts a new ItemStack into storage, - * but only if the slot is still unassigned. - * - * @param slot - * Storage slot number. Zero indexed. - * @param itemStack - * ItemStack to insert. - * @return - * Operation success state. - */ - public boolean insertStackInSlot(int slot, ItemStack itemStack) { - System.out.println("Inserting " + itemStack.getDisplayName() + " into " + slot); - if(itemStack == null - || items[slot] != null - || locked - || slot >= items.length) { - return false; - } else { - items[slot] = itemStack; - return true; - } - } - - /** - * Tries to increase the item amount in a specified slot. - * - * @param slot - * Storage slot number. Zero indexed. - * @param amount - * Amount to increase by. - * @return - * Actual amount the item amount was increased by. - */ - public int increaseStackInSlot(int slot, int amount) { - System.out.println("Increasing item in slot " + slot + " by " + amount); - if(slot >= items.length - || locked - || amount <= 0) { - return 0; - } else { - final int space = perTypeCapacity - items[slot].stackSize; - final int fit = Math.min(space, amount); - items[slot].stackSize += fit; - return fit; - } - } - - /** - * Tries to reduce the item amount in a specified slot. - * - * @param slot - * Storage slot number. Zero indexed. - * @param amount - * Amount to decrease by. - * @return - * Actual amount the item amount was decreased by. - */ - public int reduceStackInSlot(int slot, int amount) { - System.out.println("Reducing item in slot " + slot + " by " + amount); - if(slot >= items.length - || locked - || amount <= 0) { - return 0; - } else { - final int available = items[slot].stackSize; - final int take = Math.min(available, amount); - items[slot].stackSize -= take; - if(take == available) { - items[slot] = null; - } - return take; - } - } - - -} diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index 16f7233e17..9d201e442a 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -117,24 +117,10 @@ tile.kekztech_tfftstoragefieldblock2_block.name=T.F.F.T Storage Field Block (Tie tile.kekztech_tfftstoragefieldblock3_block.name=T.F.F.T Storage Field Block (Tier III) tile.kekztech_tfftstoragefieldblock4_block.name=T.F.F.T Storage Field Block (Tier IV) tile.kekztech_tfftstoragefieldblock5_block.name=T.F.F.T Storage Field Block (Tier V) -tile.kekztech_tfftmultihatch_block.0.name=T.F.F.T Multi-Fluid I/O Hatch (Tier I) -tile.kekztech_tfftmultihatch_block.1.name=T.F.F.T Multi-Fluid I/O Hatch (Tier II) -tile.kekztech_tfftmultihatch_block.2.name=T.F.F.T Multi-Fluid I/O Hatch (Tier III) -tile.kekztech_tfftmultihatch_block.0.desc=Special hatch for the T.F.F.T -tile.kekztech_tfftmultihatch_block.1.desc=Allows for automated interaction with all stored fluids in a single place -tile.kekztech_tfftmultihatch_block.2.desc=Right-click with screwdriver to activate auto-output -tile.kekztech_tfftmultihatch_block.3.desc=Auto-output will try to output fluids into adjacent tanks at a per fluid rate of - -# -------- Item Server: Structure Blocks -tile.kekztech_itemserverdrive_block.name=Item Server Drive -tile.kekztech_itemserverdrive_block.0.desc=Item Server Storage Drive -tile.kekztech_itemserverrackcasing_block.name=Item Server Rack Casing -tile.kekztech_itemserverrackcasing_block.0.desc=Shiny new server rack -tile.kekztech_itemserverioport_block.name=Item Server I/O Port -tile.kekztech_itemserverioport_block.0.desc=I/O Port for interfacing with an Item Server - -# -------- Item Server: Crafting Components -item.kekztech_crafting_item.16.name=Item Server Blade +tile.kekztech_tfftmultihatch_block.0.name=[DEPRECATED] T.F.F.T Multi-Fluid I/O Hatch (Tier I) +tile.kekztech_tfftmultihatch_block.1.name=[DEPRECATED] T.F.F.T Multi-Fluid I/O Hatch (Tier II) +tile.kekztech_tfftmultihatch_block.2.name=[DEPRECATED] T.F.F.T Multi-Fluid I/O Hatch (Tier III) +tile.kekztech_tfftmultihatch_block.0.desc=Put in crafting field to change to update # -------- Item Proxy: Structure Blocks tile.kekztech_itemproxycable_block.name=Item Proxy Network Cable -- cgit From 0868ea42998ae6f8902b23f52110bcbc6f4bc3d5 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 11 Jun 2020 18:09:33 +0200 Subject: New multi hatch code cleanup; Added auto-output handler; Removed object exposing method from MultiFluidHandler --- .../common/tileentities/GTMTE_TFFTMultiHatch.java | 82 ++++++++++++++++------ .../common/tileentities/TE_TFFTMultiHatch.java | 21 +++--- src/main/java/kekztech/MultiFluidHandler.java | 5 -- 3 files changed, 71 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index 529a948dbe..f34905ba14 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -11,8 +11,10 @@ import kekztech.MultiFluidHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.IFluidHandler; import java.util.HashMap; @@ -116,32 +118,72 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { } public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { + super.onPreTick(aBaseMetaTileEntity, aTick); if (aBaseMetaTileEntity.isServerSide() && mfh != null) { - // Handle emptying containers - final FluidStack fluidFromCell = GT_Utility.getFluidForFilledItem(super.mInventory[super.getInputSlot()], true); - // Check if fluid is not null, could be inserted, and if there is space for the empty container - if (fluidFromCell != null && mfh.couldPush(fluidFromCell) - && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), GT_Utility.getContainerItem(super.mInventory[super.getInputSlot()], true), 1)) { - // Consume one filled container if it was emptied successfully - if(mfh.pushFluid(fluidFromCell, true) == fluidFromCell.amount) { - aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); - } + emptyContainers(aBaseMetaTileEntity); + fillContainers(aBaseMetaTileEntity); + if(outputting && (aTick % 20 == 0)) { + doAutoOutputPerSecond(aBaseMetaTileEntity); } - // Handle filling containers. This will use the selected T.F.F.T fluid - final ItemStack cellFromFluid = GT_Utility.fillFluidContainer( - mfh.getFluid(mfh.getSelectedFluid()), super.mInventory[super.getInputSlot()], false, true); - // Check if cell is not null and if there is space for the filled container - if (cellFromFluid != null && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), cellFromFluid, 1)) { - // Convert back to FluidStack to learn the container capacity... - final FluidStack fluidCapacityStack = GT_Utility.getFluidForFilledItem(cellFromFluid, true); - // Consume one empty container if it was filled successfully - if(mfh.pullFluid(fluidCapacityStack, true) == fluidCapacityStack.amount) { - aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); - } + } + } + + /** + * Empty containers (cells, buckets, etc) from the GUI into the T.F.F.T + * @param aBaseMetaTileEntity + * this MetaTileEntity + */ + private void emptyContainers(IGregTechTileEntity aBaseMetaTileEntity) { + final FluidStack fluidFromCell = GT_Utility.getFluidForFilledItem(super.mInventory[super.getInputSlot()], true); + // Check if fluid is not null, could be inserted, and if there is space for the empty container + if (fluidFromCell != null && mfh.couldPush(fluidFromCell) + && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), GT_Utility.getContainerItem(super.mInventory[super.getInputSlot()], true), 1)) { + // Consume one filled container if it was emptied successfully + if(mfh.pushFluid(fluidFromCell, true) == fluidFromCell.amount) { + aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); + } + } + } + + /** + * Fill containers (cells, buckets, etc) in the GUI. The fluid used to fill containers will be the one that is + * selected through an Integrated Circuit in the T.F.F.T's controller GUI. + * @param aBaseMetaTileEntity + * this MetaTileEntity + */ + private void fillContainers(IGregTechTileEntity aBaseMetaTileEntity) { + final ItemStack cellFromFluid = GT_Utility.fillFluidContainer( + mfh.getFluid(mfh.getSelectedFluid()), super.mInventory[super.getInputSlot()], false, true); + // Check if cell is not null and if there is space for the filled container + if (cellFromFluid != null && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), cellFromFluid, 1)) { + // Convert back to FluidStack to learn the container capacity... + final FluidStack fluidCapacityStack = GT_Utility.getFluidForFilledItem(cellFromFluid, true); + // Consume one empty container if it was filled successfully + if(mfh.pullFluid(fluidCapacityStack, true) == fluidCapacityStack.amount) { + aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); } } } + /** + * Handle the Multi Hatch's auto-output feature. Should be called once per second only. + * @param aBaseMetaTileEntity + * this MetaTileEntity + */ + private void doAutoOutputPerSecond(IGregTechTileEntity aBaseMetaTileEntity) { + final ForgeDirection side = ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()); + final TileEntity adjacentTE = aBaseMetaTileEntity.getTileEntityOffset(side.offsetX, side.offsetY, side.offsetZ); + if(adjacentTE instanceof IFluidHandler) { + final IFluidHandler adj = (IFluidHandler) adjacentTE; + final int outputPerSec = vals.get(super.mTier); + // Cycle through fluids + for(int i = 0; i < mfh.getInfoData().size(); i++) { + final FluidStack storedFluid = mfh.getFluid(i); + } + + } + } + @Override public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { return (mfh != null) ? mfh.pushFluid(resource, doFill) : 0; diff --git a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java index 823d456b56..29370dc4f2 100644 --- a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java @@ -70,31 +70,28 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { final IFluidHandler fh = (IFluidHandler) t; final int meta = t.getWorldObj().getBlockMetadata(t.xCoord, t.yCoord, t.zCoord); // Cycle through fluids - final Iterator volumes = mfh.getFluids().iterator(); - while(volumes.hasNext()) { - final FluidStack volume = volumes.next(); - + for (FluidStack volume : mfh.getFluids()) { // Remember for later final int oVolume = volume.amount; - + // Use API methods - if(fh.canFill(d.getOpposite(), volume.getFluid())) { - + if (fh.canFill(d.getOpposite(), volume.getFluid())) { + // Test how much can be output final FluidStack copy = volume.copy(); copy.amount = (int) Math.min(copy.amount, BASE_OUTPUT_PER_SECOND * Math.pow(10, meta)); - + // How much is drawn copy.amount = mfh.pullFluid(copy, false); - + // Test how much can be filled (and fill if possible) copy.amount = fh.fill(d.getOpposite(), copy, true); - + // Actually deplete storage mfh.pullFluid(copy, true); - + // Prevent ConcurrentModificationException - if(copy.amount >= oVolume) { + if (copy.amount >= oVolume) { break; } } diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index 1d8f4c2fea..b90d8a35bf 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -70,11 +70,6 @@ public class MultiFluidHandler { public int getCapacity() { return capacityPerFluid; } - - // TODO return deep copy instead - public List getFluids(){ - return (!locked) ? fluids : new ArrayList<>(); - } public FluidStack getFluid(int slot) { return (!locked && fluids.size() > 0 && slot >= 0 && slot < MAX_DISTINCT_FLUIDS) -- cgit From bed56a0bc6b45bc877ecd260177a664ab8a8e130 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 11 Jun 2020 18:27:12 +0200 Subject: Finished auto-output handler code; Removed/Deactivated deprecated code from old multi hatch TE --- .../tileentities/GTMTE_FluidMultiStorage.java | 2 +- .../common/tileentities/GTMTE_TFFTMultiHatch.java | 30 ++++-- .../common/tileentities/TE_TFFTMultiHatch.java | 114 +++------------------ src/main/java/kekztech/MultiFluidHandler.java | 20 +++- 4 files changed, 53 insertions(+), 113 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index e06d1cc4a6..bd992972a8 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -138,7 +138,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { // Push out fluids if (guiSlotItem != null && guiSlotItem.getUnlocalizedName().equals("gt.integrated_circuit")) { - final FluidStack storedFluid = mfh.getFluid(fluidSelector); + final FluidStack storedFluid = mfh.getFluidCopy(fluidSelector); // Sum available output capacity int possibleOutput = 0; for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index f34905ba14..f93bafbead 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -153,7 +153,7 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { */ private void fillContainers(IGregTechTileEntity aBaseMetaTileEntity) { final ItemStack cellFromFluid = GT_Utility.fillFluidContainer( - mfh.getFluid(mfh.getSelectedFluid()), super.mInventory[super.getInputSlot()], false, true); + mfh.getFluidCopy(mfh.getSelectedFluid()), super.mInventory[super.getInputSlot()], false, true); // Check if cell is not null and if there is space for the filled container if (cellFromFluid != null && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), cellFromFluid, 1)) { // Convert back to FluidStack to learn the container capacity... @@ -171,14 +171,28 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { * this MetaTileEntity */ private void doAutoOutputPerSecond(IGregTechTileEntity aBaseMetaTileEntity) { - final ForgeDirection side = ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()); - final TileEntity adjacentTE = aBaseMetaTileEntity.getTileEntityOffset(side.offsetX, side.offsetY, side.offsetZ); + final ForgeDirection outSide = ForgeDirection.getOrientation(aBaseMetaTileEntity.getFrontFacing()); + final TileEntity adjacentTE = aBaseMetaTileEntity.getTileEntityOffset(outSide.offsetX, outSide.offsetY, outSide.offsetZ); if(adjacentTE instanceof IFluidHandler) { - final IFluidHandler adj = (IFluidHandler) adjacentTE; - final int outputPerSec = vals.get(super.mTier); + final IFluidHandler adjFH = (IFluidHandler) adjacentTE; // Cycle through fluids - for(int i = 0; i < mfh.getInfoData().size(); i++) { - final FluidStack storedFluid = mfh.getFluid(i); + for(int i = 0; i < mfh.getDistinctFluids(); i++) { + final FluidStack fluidCopy = mfh.getFluidCopy(i); + // Make sure the adjacent IFluidHandler can accept this fluid + if(adjFH.canFill(outSide.getOpposite(), fluidCopy.getFluid())) { + + // Limit to output rate + fluidCopy.amount = Math.min(fluidCopy.amount, vals.get(super.mTier)); + + // Test how much can be drawn + fluidCopy.amount = mfh.pullFluid(fluidCopy, false); + + // Test how much can be filled (and fill if possible) + fluidCopy.amount = adjFH.fill(outSide.getOpposite(), fluidCopy, true); + + // Actually deplete storage + mfh.pullFluid(fluidCopy, true); + } } } @@ -211,7 +225,7 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { @Override public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { if(mfh != null) { - final FluidStack drain = mfh.getFluid(0); + final FluidStack drain = mfh.getFluidCopy(0); if(drain != null) { // If there's no integrated circuit in the T.F.F.T. controller, output slot 0 final byte selectedSlot = (mfh.getSelectedFluid() == -1) ? 0 : mfh.getSelectedFluid(); diff --git a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java index 29370dc4f2..de274bb15e 100644 --- a/src/main/java/common/tileentities/TE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/TE_TFFTMultiHatch.java @@ -1,11 +1,6 @@ package common.tileentities; -import java.util.Iterator; -import java.util.List; - -import common.Blocks; import kekztech.MultiFluidHandler; -import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; @@ -48,88 +43,19 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { @Override public void updateEntity() { - if(!autoOutput || mfh == null) { - return; - } - - tickCounter++; - if(tickCounter >= 20) { - - final ForgeDirection d = getOutwardsFacingDirection(); - if(d == ForgeDirection.UNKNOWN) { - return; - } - final TileEntity t = this.getWorldObj().getTileEntity( - this.xCoord + d.offsetX, - this.yCoord + d.offsetY, - this.zCoord + d.offsetZ - ); - - if(t instanceof IFluidHandler) { - - final IFluidHandler fh = (IFluidHandler) t; - final int meta = t.getWorldObj().getBlockMetadata(t.xCoord, t.yCoord, t.zCoord); - // Cycle through fluids - for (FluidStack volume : mfh.getFluids()) { - // Remember for later - final int oVolume = volume.amount; - - // Use API methods - if (fh.canFill(d.getOpposite(), volume.getFluid())) { - - // Test how much can be output - final FluidStack copy = volume.copy(); - copy.amount = (int) Math.min(copy.amount, BASE_OUTPUT_PER_SECOND * Math.pow(10, meta)); - - // How much is drawn - copy.amount = mfh.pullFluid(copy, false); - - // Test how much can be filled (and fill if possible) - copy.amount = fh.fill(d.getOpposite(), copy, true); - - // Actually deplete storage - mfh.pullFluid(copy, true); - - // Prevent ConcurrentModificationException - if (copy.amount >= oVolume) { - break; - } - } - } - } - - tickCounter = 0; - } - } - - private ForgeDirection getOutwardsFacingDirection() { - // TODO Revisit this once the hatch has a facing side - // Look up which side has the storage field block and choose the other side. - // This is important so the tank doesn't output into itself in case - // there is another hatch next to this one. - for(ForgeDirection direction : ForgeDirection.values()) { - - final Block b = this.getWorldObj().getBlock(this.xCoord + direction.offsetX, this.yCoord + direction.offsetY, this.zCoord + direction.offsetZ); - if(b != null && ( - b.equals(Blocks.tfftStorageField1) - || b.equals(Blocks.tfftStorageField2) - || b.equals(Blocks.tfftStorageField3) - || b.equals(Blocks.tfftStorageField4) - || b.equals(Blocks.tfftStorageField5))) { - return direction.getOpposite(); - } - } - return ForgeDirection.UNKNOWN; + // Removed deprecated code } @Override public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { - return (mfh != null) ? mfh.pushFluid(resource, doFill) : 0; + // Removed deprecated code + return 0; } @Override public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) { - return (mfh != null) ? new FluidStack(resource.getFluid(), mfh.pullFluid(resource, doDrain)) : null; + // Removed deprecated code + return null; } /** @@ -148,42 +74,26 @@ public class TE_TFFTMultiHatch extends TileEntity implements IFluidHandler { */ @Override public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) { - if(mfh != null) { - final FluidStack drain = mfh.getFluid(0); - if(drain != null) { - // If there's no integrated circuit in the T.F.F.T. controller, output slot 0 - final byte selectedSlot = (mfh.getSelectedFluid() == -1) ? 0 : mfh.getSelectedFluid(); - - return new FluidStack( - drain.getFluid(), - mfh.pullFluid(new FluidStack(drain.getFluid(), maxDrain), selectedSlot, doDrain) - ); - } - } + // Removed deprecated code return null; } @Override public boolean canFill(ForgeDirection from, Fluid fluid) { - return (mfh != null) && mfh.couldPush(new FluidStack(fluid, 1)); + // Removed deprecated code + return false; } @Override public boolean canDrain(ForgeDirection from, Fluid fluid) { - return (mfh != null) && mfh.contains(new FluidStack(fluid, 1)); + // Removed deprecated code + return false; } @Override public FluidTankInfo[] getTankInfo(ForgeDirection from) { - if(mfh == null) { - return null; - } - final List fluids = mfh.getFluids(); - final FluidTankInfo[] tankInfo = new FluidTankInfo[fluids.size()]; - for(int i = 0; i < tankInfo.length; i++) { - tankInfo[i] = new FluidTankInfo(fluids.get(i), mfh.getCapacity()); - } - return tankInfo; + // Removed deprecated code + return null; } @Override diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index b90d8a35bf..3e9bcfa0e5 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -70,11 +70,27 @@ public class MultiFluidHandler { public int getCapacity() { return capacityPerFluid; } - - public FluidStack getFluid(int slot) { + + /** + * Returns a deep copy of the the FluidStack in the requested slot + * @param slot + * requested slot + * @return + * deep copy of the requested FluidStack + */ + public FluidStack getFluidCopy(int slot) { return (!locked && fluids.size() > 0 && slot >= 0 && slot < MAX_DISTINCT_FLUIDS) ? fluids.get(slot).copy() : null; } + + /** + * Returns the amount of different fluids currently stored. + * @return + * amount of different fluids currently stored (0-25) + */ + public int getDistinctFluids() { + return fluids.size(); + } public NBTTagCompound saveNBTData(NBTTagCompound nbt) { nbt = (nbt == null) ? new NBTTagCompound() : nbt; -- cgit From cc664f07248872c2d44f7ef22ab3a9d520c19f8d Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 11 Jun 2020 19:13:57 +0200 Subject: Refactored MultiFluidHandler initialization to use a custom initializer method that doesn't require leaking the stored fluid objects --- .../tileentities/GTMTE_FluidMultiStorage.java | 33 +++---- src/main/java/kekztech/MultiFluidHandler.java | 110 ++++++++++++++------- 2 files changed, 90 insertions(+), 53 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index bd992972a8..f2e88ef711 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -157,24 +157,22 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { super.addOutput(tempStack); } else { - for (FluidStack storedFluid : mfh.getFluids()) { - // Sum available output capacity - int possibleOutput = 0; + for(int i = 0; i < mfh.getDistinctFluids(); i++) { + final FluidStack storedFluidCopy = mfh.getFluidCopy(i); + // Calculate how much capacity all available Output Hatches offer for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { - if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluid.getUnlocalizedName())) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluid.getUnlocalizedName())) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluidCopy.getUnlocalizedName())) { + storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluidCopy.getUnlocalizedName())) { + storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount(); } else if (outputHatch.getFluid() == null) { - possibleOutput += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount(); } } - // output as much as possible - final FluidStack tempStack = storedFluid.copy(); - tempStack.amount = possibleOutput; - // TODO possible concurrent modification exception as pullFluid calls remove() without an iterator - tempStack.amount = mfh.pullFluid(tempStack, true); - super.addOutput(tempStack); + // Test how much can actually be drained and drain that amount + storedFluidCopy.amount = mfh.pullFluid(storedFluidCopy, true); + // Add to output + super.addOutput(storedFluidCopy); } } @@ -408,10 +406,10 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { // Update MultiFluidHandler in case storage cells have been changed final int capacityPerFluid = (int) Math.round(fluidCapacityAcc / 25.0f); if (mfh == null) { - mfh = new MultiFluidHandler(capacityPerFluid); + mfh = MultiFluidHandler.newInstance(25, capacityPerFluid); } else { if (mfh.getCapacity() != capacityPerFluid) { - mfh = new MultiFluidHandler(capacityPerFluid, mfh.getFluids()); + mfh = MultiFluidHandler.newAdjustedInstance(mfh, capacityPerFluid); } } for (GTMTE_TFFTMultiHatch mh : sMultiHatches) { @@ -488,8 +486,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { runningCost = nbt.getInteger("runningCost"); doVoidExcess = nbt.getBoolean("doVoidExcess"); - mfh = new MultiFluidHandler(); - mfh.loadNBTData(nbt); + mfh = mfh.loadNBTData(nbt); for (GTMTE_TFFTMultiHatch mh : sMultiHatches) { mh.setMultiFluidHandler(mfh); } diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index 3e9bcfa0e5..ef65585a3b 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -1,34 +1,58 @@ package kekztech; -import java.util.ArrayList; -import java.util.List; - import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.fluids.FluidStack; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + public class MultiFluidHandler { - - public static final int MAX_DISTINCT_FLUIDS = 25; - - private final List fluids = new ArrayList<>(MAX_DISTINCT_FLUIDS); - private int capacityPerFluid; + + private final List fluids; + private final int maxDistinctFluids; + private final int capacityPerFluid; private boolean locked = true; private boolean doVoidExcess = false; private byte fluidSelector = -1; - public MultiFluidHandler() { - - } - - public MultiFluidHandler(int capacityPerFluid) { + private MultiFluidHandler(int maxDistinctFluids, int capacityPerFluid, List fluidsToAdd) { + this.maxDistinctFluids = maxDistinctFluids; + this.fluids = new ArrayList<>(maxDistinctFluids); + if(fluidsToAdd != null) { + this.fluids.addAll(fluidsToAdd); + } this.capacityPerFluid = capacityPerFluid; } - - public MultiFluidHandler(int capacityPerFluid, List fluids) { - this.capacityPerFluid = capacityPerFluid; - this.fluids.addAll(fluids); + + /** + * Initialize a new MultiFluidHandler object with the given parameters + * @param maxDistinctFluids + * How many different fluids can be stored + * @param capacityPerFluid + * How much capacity each fluid should have + * @param fluidsToAdd + * Fluids to add immediately + * @return + * A new instance + */ + public static MultiFluidHandler newInstance(int maxDistinctFluids, int capacityPerFluid, FluidStack...fluidsToAdd) { + return new MultiFluidHandler(maxDistinctFluids, capacityPerFluid, Arrays.asList(fluidsToAdd)); + } + + /** + * Deep copy a MultiFluidHandler instance with a new capacity + * @param toCopy + * The MultiFluidHandler that should be copied + * @param capacityPerFluid + * How much capacity each fluid should have + * @return + * A new instance + */ + public static MultiFluidHandler newAdjustedInstance(MultiFluidHandler toCopy, int capacityPerFluid) { + return new MultiFluidHandler(toCopy.maxDistinctFluids, capacityPerFluid, toCopy.fluids); } /** @@ -79,7 +103,7 @@ public class MultiFluidHandler { * deep copy of the requested FluidStack */ public FluidStack getFluidCopy(int slot) { - return (!locked && fluids.size() > 0 && slot >= 0 && slot < MAX_DISTINCT_FLUIDS) + return (!locked && fluids.size() > 0 && slot >= 0 && slot < maxDistinctFluids) ? fluids.get(slot).copy() : null; } @@ -91,7 +115,14 @@ public class MultiFluidHandler { public int getDistinctFluids() { return fluids.size(); } - + + /** + * Helper method to save a MultiFluidHandler to NBT data + * @param nbt + * The NBT Tag to write to + * @return + * Updated NBT Tag + */ public NBTTagCompound saveNBTData(NBTTagCompound nbt) { nbt = (nbt == null) ? new NBTTagCompound() : nbt; @@ -103,21 +134,30 @@ public class MultiFluidHandler { } return nbt; } - - public void loadNBTData(NBTTagCompound nbt) { + + /** + * Helper method to initialize a MultiFluidHandler from NBT data + * @param nbt + * The NBT Tag to read from + * @return + * A new Instance + */ + public MultiFluidHandler loadNBTData(NBTTagCompound nbt) { nbt = (nbt == null) ? new NBTTagCompound() : nbt; - capacityPerFluid = nbt.getInteger("capacityPerFluid"); - - fluids.clear(); + final int capacityPerFluid = nbt.getInteger("capacityPerFluid"); final NBTTagCompound fluidsTag = (NBTTagCompound) nbt.getTag("fluids"); - for(int i = 0; i < MultiFluidHandler.MAX_DISTINCT_FLUIDS; i++) { - final NBTTagCompound fnbt = (NBTTagCompound) fluidsTag.getTag("" + i); - if(fnbt == null) { + final ArrayList loadedFluids = new ArrayList<>(); + int distinctFluids = 0; + while(true) { + final NBTTagCompound fluidNBT = (NBTTagCompound) fluidsTag.getTag("" + distinctFluids); + if(fluidNBT == null) { break; } - fluids.add(FluidStack.loadFluidStackFromNBT(fnbt)); + loadedFluids.add(FluidStack.loadFluidStackFromNBT(fluidNBT)); + distinctFluids++; } + return new MultiFluidHandler(distinctFluids, capacityPerFluid, loadedFluids); } public ArrayList getInfoData() { @@ -145,10 +185,10 @@ public class MultiFluidHandler { if(locked) { return 0; } - if(fluids.size() == MAX_DISTINCT_FLUIDS && !contains(push)) { + if(fluids.size() == maxDistinctFluids && !contains(push)) { // Already contains 25 fluids and this isn't one of them return 0; - } else if (fluids.size() < MAX_DISTINCT_FLUIDS && !contains(push)) { + } else if (fluids.size() < maxDistinctFluids && !contains(push)) { // Add new fluid final int fit = Math.min(getCapacity(), push.amount); if(doPush) { @@ -183,7 +223,7 @@ public class MultiFluidHandler { if(locked) { return 0; } - if(slot < 0 || slot >= MAX_DISTINCT_FLUIDS) { + if(slot < 0 || slot >= maxDistinctFluids) { // Invalid slot return 0; } @@ -242,7 +282,7 @@ public class MultiFluidHandler { if(locked) { return 0; } - if(slot < 0 || slot >= MAX_DISTINCT_FLUIDS) { + if(slot < 0 || slot >= maxDistinctFluids) { return 0; } if(!fluids.get(slot).equals(pull)) { @@ -270,13 +310,13 @@ public class MultiFluidHandler { if(locked) { return false; } - if(fluids.size() == MAX_DISTINCT_FLUIDS && !contains(push)) { + if(fluids.size() == maxDistinctFluids && !contains(push)) { return false; - } else if (fluids.size() < MAX_DISTINCT_FLUIDS && !contains(push)) { + } else if (fluids.size() < maxDistinctFluids && !contains(push)) { return Math.min(getCapacity(), push.amount) > 0; } else { final int remcap = getCapacity() - fluids.get(fluids.indexOf(push)).amount; - return doVoidExcess ? true : (Math.min(remcap, push.amount) > 0); + return doVoidExcess || (Math.min(remcap, push.amount) > 0); } } } -- cgit From 258d5b9be22d3aad2c27a2b57d22b907b3284248 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 11 Jun 2020 20:29:50 +0200 Subject: Implemented new class for GT rendered textures! --- src/main/java/client/ClientProxy.java | 2 + src/main/java/client/GTTexture.java | 63 ++++++++++++++++++++++ .../common/tileentities/GTMTE_TFFTMultiHatch.java | 10 ++-- 3 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 src/main/java/client/GTTexture.java (limited to 'src') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index f608861c0d..b4eb51f369 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -18,6 +18,8 @@ public class ClientProxy extends CommonProxy { // Register TESR ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); + // Register GTTextures + GTTexture.init(); } @Override diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java new file mode 100644 index 0000000000..98795e6585 --- /dev/null +++ b/src/main/java/client/GTTexture.java @@ -0,0 +1,63 @@ +package client; + +import gregtech.api.GregTech_API; +import gregtech.api.interfaces.IIconContainer; +import kekztech.KekzCore; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; + +import java.util.HashMap; + +public class GTTexture implements IIconContainer { + + public static final String MULTI_HATCH_OFF = "multi_hatch_off"; + public static final String MULTI_HATCH_ON = "multi_hatch_on"; + + private static final HashMap icons = new HashMap<>(); + + private final IIcon icon; + private final IIcon overlayIcon; + + private GTTexture(String iconName) { + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); + overlayIcon = null; + } + + private GTTexture(String iconName, String overlayIconName) { + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); + overlayIcon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + overlayIconName); + } + + public static void registerTexture(String iconName) { + icons.put(iconName, new GTTexture(iconName)); + } + + public static void registerTexture(String iconName, String overlayIconName) { + icons.put(iconName, new GTTexture(iconName, overlayIconName)); + } + + public static void init() { + registerTexture(MULTI_HATCH_ON); + registerTexture(MULTI_HATCH_OFF); + } + + public static IIconContainer getIconContainer(String iconName) { + return icons.get(iconName); + } + + @Override + public IIcon getIcon() { + return icon; + } + + @Override + public IIcon getOverlayIcon() { + return overlayIcon; + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; + } +} diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index f93bafbead..024ffdc135 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -1,10 +1,12 @@ package common.tileentities; +import client.GTTexture; import gregtech.api.GregTech_API; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import kekztech.MultiFluidHandler; @@ -64,13 +66,13 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { } @Override - public ITexture[] getTexturesActive(ITexture iTexture) { - return new ITexture[0]; + public ITexture[] getTexturesActive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.getIconContainer(GTTexture.MULTI_HATCH_ON))}; } @Override - public ITexture[] getTexturesInactive(ITexture iTexture) { - return new ITexture[0]; + public ITexture[] getTexturesInactive(ITexture aBaseTexture) { + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.getIconContainer(GTTexture.MULTI_HATCH_OFF))}; } @Override -- cgit From e72d42e68941e53b5f5bb864263452858ca0a2cc Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 11 Jun 2020 20:53:43 +0200 Subject: added overlay textures for testing --- .../assets/kekztech/textures/blocks/multi_hatch_off.png | Bin 0 -> 816 bytes .../assets/kekztech/textures/blocks/multi_hatch_on.png | Bin 0 -> 814 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/kekztech/textures/blocks/multi_hatch_off.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/multi_hatch_on.png (limited to 'src') diff --git a/src/main/resources/assets/kekztech/textures/blocks/multi_hatch_off.png b/src/main/resources/assets/kekztech/textures/blocks/multi_hatch_off.png new file mode 100644 index 0000000000..ae3108edad Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/multi_hatch_off.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/multi_hatch_on.png b/src/main/resources/assets/kekztech/textures/blocks/multi_hatch_on.png new file mode 100644 index 0000000000..a1e931c3a2 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/multi_hatch_on.png differ -- cgit From 9692e77efa9d74014738753d1c6eb0f259733476 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 18 Jun 2020 16:59:39 +0200 Subject: changed multi hatch to use some default texture from GT so I can test the actual functionality --- src/main/java/client/ClientProxy.java | 2 - src/main/java/client/GTTexture.java | 49 +++++++++++++++------- .../common/tileentities/GTMTE_TFFTMultiHatch.java | 7 +++- 3 files changed, 38 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index b4eb51f369..f608861c0d 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -18,8 +18,6 @@ public class ClientProxy extends CommonProxy { // Register TESR ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); - // Register GTTextures - GTTexture.init(); } @Override diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java index 98795e6585..76539adaab 100644 --- a/src/main/java/client/GTTexture.java +++ b/src/main/java/client/GTTexture.java @@ -9,37 +9,44 @@ import net.minecraft.util.ResourceLocation; import java.util.HashMap; -public class GTTexture implements IIconContainer { +public class GTTexture implements IIconContainer, Runnable { + public static final String TFFT_CASING = "TFFTCasing"; public static final String MULTI_HATCH_OFF = "multi_hatch_off"; public static final String MULTI_HATCH_ON = "multi_hatch_on"; private static final HashMap icons = new HashMap<>(); + private static final String REL_PATH = "blocks/"; - private final IIcon icon; - private final IIcon overlayIcon; + static { + registerTexture(TFFT_CASING); + registerTexture(MULTI_HATCH_OFF); + registerTexture(MULTI_HATCH_ON); + } + + private IIcon icon; + private IIcon iconOverlay; + private final String iconName; + private final String iconOverlayName; private GTTexture(String iconName) { - icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); - overlayIcon = null; + this.iconName = iconName; + this.iconOverlayName = ""; + GregTech_API.sGTBlockIconload.add(this); } - private GTTexture(String iconName, String overlayIconName) { - icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); - overlayIcon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + overlayIconName); + private GTTexture(String iconName, String iconOverlayName) { + this.iconName = iconName; + this.iconOverlayName = iconOverlayName; + GregTech_API.sGTBlockIconload.add(this); } public static void registerTexture(String iconName) { icons.put(iconName, new GTTexture(iconName)); } - public static void registerTexture(String iconName, String overlayIconName) { - icons.put(iconName, new GTTexture(iconName, overlayIconName)); - } - - public static void init() { - registerTexture(MULTI_HATCH_ON); - registerTexture(MULTI_HATCH_OFF); + public static void registerTexture(String iconName, String iconOverlayName) { + icons.put(iconName, new GTTexture(iconName, iconOverlayName)); } public static IIconContainer getIconContainer(String iconName) { @@ -53,11 +60,21 @@ public class GTTexture implements IIconContainer { @Override public IIcon getOverlayIcon() { - return overlayIcon; + return iconOverlay; } @Override public ResourceLocation getTextureFile() { return TextureMap.locationBlocksTexture; } + + @Override + public void run() { + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + REL_PATH + iconName); + if(!iconOverlayName.equals("")) { + iconOverlay = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + REL_PATH + iconOverlayName); + } else { + KekzCore.LOGGER.info("No overlay texture specified for icon: " + iconName + "; This is fine."); + } + } } diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index 024ffdc135..0ad9e5c7a9 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -2,6 +2,7 @@ package common.tileentities; import client.GTTexture; import gregtech.api.GregTech_API; +import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -67,12 +68,14 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.getIconContainer(GTTexture.MULTI_HATCH_ON))}; + // TODO return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.getIconContainer(GTTexture.MULTI_HATCH_ON))}; + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.ARROW_UP)}; } @Override public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.getIconContainer(GTTexture.MULTI_HATCH_OFF))}; + // TODO return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.getIconContainer(GTTexture.MULTI_HATCH_OFF))}; + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.ARROW_DOWN)}; } @Override -- cgit From 40be972930f6de392e3e0616de3b15ca4ce851ae Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 18 Jun 2020 19:41:13 +0200 Subject: Some barebones code for reactor --- mods/EnderCore-1.7.10-0.2.0.39_beta.jar | Bin 0 -> 467824 bytes mods/EnderCore-1.7.10-0.2.0.39_beta.jars | Bin 467824 -> 0 bytes mods/EnderIO-1.7.10-2.3.0.432_beta.jar | Bin 0 -> 4800552 bytes mods/EnderIO-1.7.10-2.3.0.432_beta.jars | Bin 4800552 -> 0 bytes .../common/reactorItem/AbstractReactorItem.java | 29 +++++++++++++ src/main/java/common/reactorItem/ReactorItem.java | 48 +++++++++++++++++++++ src/main/java/reactor/Reactor.java | 9 ++++ .../itemBehaviour/IReactorItemBehaviour.java | 20 +++++++++ 8 files changed, 106 insertions(+) create mode 100644 mods/EnderCore-1.7.10-0.2.0.39_beta.jar delete mode 100644 mods/EnderCore-1.7.10-0.2.0.39_beta.jars create mode 100644 mods/EnderIO-1.7.10-2.3.0.432_beta.jar delete mode 100644 mods/EnderIO-1.7.10-2.3.0.432_beta.jars create mode 100644 src/main/java/common/reactorItem/AbstractReactorItem.java create mode 100644 src/main/java/common/reactorItem/ReactorItem.java create mode 100644 src/main/java/reactor/Reactor.java create mode 100644 src/main/java/reactor/itemBehaviour/IReactorItemBehaviour.java (limited to 'src') diff --git a/mods/EnderCore-1.7.10-0.2.0.39_beta.jar b/mods/EnderCore-1.7.10-0.2.0.39_beta.jar new file mode 100644 index 0000000000..1fdf703497 Binary files /dev/null and b/mods/EnderCore-1.7.10-0.2.0.39_beta.jar differ diff --git a/mods/EnderCore-1.7.10-0.2.0.39_beta.jars b/mods/EnderCore-1.7.10-0.2.0.39_beta.jars deleted file mode 100644 index 1fdf703497..0000000000 Binary files a/mods/EnderCore-1.7.10-0.2.0.39_beta.jars and /dev/null differ diff --git a/mods/EnderIO-1.7.10-2.3.0.432_beta.jar b/mods/EnderIO-1.7.10-2.3.0.432_beta.jar new file mode 100644 index 0000000000..80711b5846 Binary files /dev/null and b/mods/EnderIO-1.7.10-2.3.0.432_beta.jar differ diff --git a/mods/EnderIO-1.7.10-2.3.0.432_beta.jars b/mods/EnderIO-1.7.10-2.3.0.432_beta.jars deleted file mode 100644 index 80711b5846..0000000000 Binary files a/mods/EnderIO-1.7.10-2.3.0.432_beta.jars and /dev/null differ diff --git a/src/main/java/common/reactorItem/AbstractReactorItem.java b/src/main/java/common/reactorItem/AbstractReactorItem.java new file mode 100644 index 0000000000..e78889b57f --- /dev/null +++ b/src/main/java/common/reactorItem/AbstractReactorItem.java @@ -0,0 +1,29 @@ +package common.reactorItem; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public abstract class AbstractReactorItem extends Item { + + private final int[] behaviourID; + + protected AbstractReactorItem(int...behaviourID) { + this.behaviourID = behaviourID; + } + + @Override + public abstract double getDurabilityForDisplay(ItemStack stack); + + @Override + public abstract boolean showDurabilityBar(ItemStack stack); + + @Override + public final String getUnlocalizedName(ItemStack stack) { + return super.hasSubtypes ? (super.getUnlocalizedName() + "." + stack.getItemDamage()) + : super.getUnlocalizedName(); + } + + public final int getBehaviourID(int meta) { + return behaviourID[meta]; + } +} diff --git a/src/main/java/common/reactorItem/ReactorItem.java b/src/main/java/common/reactorItem/ReactorItem.java new file mode 100644 index 0000000000..e8dfbef21e --- /dev/null +++ b/src/main/java/common/reactorItem/ReactorItem.java @@ -0,0 +1,48 @@ +package common.reactorItem; + +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ReactorItem extends AbstractReactorItem { + + private static final ReactorItem INSTANCE = new ReactorItem(); + + private final IIcon[] icons = new IIcon[50]; + + private ReactorItem() { + super(); + } + + public static ReactorItem registerItem() { + INSTANCE.setHasSubtypes(true); + INSTANCE.setCreativeTab(CreativeTabs.tabMisc); + INSTANCE.setMaxStackSize(1); + final String unloc = "kekztech_reactor_item"; + INSTANCE.setUnlocalizedName(unloc); + GameRegistry.registerItem(INSTANCE, unloc); + return INSTANCE; + } + + @Override + public void registerIcons(IIconRegister reg) { + + } + + @Override + public IIcon getIconFromDamage(int meta) { + return icons[meta]; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return 0; + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return false; + } +} diff --git a/src/main/java/reactor/Reactor.java b/src/main/java/reactor/Reactor.java new file mode 100644 index 0000000000..f6f955b230 --- /dev/null +++ b/src/main/java/reactor/Reactor.java @@ -0,0 +1,9 @@ +package reactor; + +public class Reactor { + + private long energyPerSecond; + private long heat; + private long maxHeat; + +} diff --git a/src/main/java/reactor/itemBehaviour/IReactorItemBehaviour.java b/src/main/java/reactor/itemBehaviour/IReactorItemBehaviour.java new file mode 100644 index 0000000000..1990938270 --- /dev/null +++ b/src/main/java/reactor/itemBehaviour/IReactorItemBehaviour.java @@ -0,0 +1,20 @@ +package reactor.itemBehaviour; + +import java.util.HashMap; + +public abstract class IReactorItemBehaviour { + + protected final HashMap properties; + + protected IReactorItemBehaviour(String propertiesKey) { + // load + + properties = new HashMap<>(); + } + + public abstract void apply(); + + public abstract boolean hasDurabilityBar(); + + public abstract double getDurabilityForDisplay(); +} -- cgit From 56ccee58777de261857b16c958d07bc0fc7e0187 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 18 Jun 2020 20:35:16 +0200 Subject: Shortened screwdriver handling code related to TFFT; Fixed AOOB Exception when IC in TFFT GUI exceeds number of stored fluids --- .../common/tileentities/GTMTE_FluidMultiStorage.java | 10 +++------- .../common/tileentities/GTMTE_TFFTMultiHatch.java | 19 +++---------------- src/main/java/kekztech/MultiFluidHandler.java | 4 +++- 3 files changed, 9 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index f2e88ef711..0b8eec616b 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -9,6 +9,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.*; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_Utility; import kekztech.MultiFluidHandler; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; @@ -438,13 +439,8 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { @Override public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - if (doVoidExcess) { - doVoidExcess = false; - aPlayer.addChatComponentMessage(new ChatComponentText("Auto-voiding turned off")); - } else { - doVoidExcess = true; - aPlayer.addChatComponentMessage(new ChatComponentText("Auto-voiding turned on")); - } + doVoidExcess = !doVoidExcess; + GT_Utility.sendChatToPlayer(aPlayer, doVoidExcess ? "Auto-voiding enabled" : "Auto-voiding disabled"); } @Override diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index 0ad9e5c7a9..7a9d31582a 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -89,22 +89,9 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { } @Override - public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (GT_Utility.isStackInList(aPlayer.getHeldItem(), GregTech_API.sScrewdriverList)) { - if (GT_ModHandler.damageOrDechargeItem(aPlayer.getHeldItem(), 1, 200, aPlayer)) { - outputting = !outputting; - GT_Utility.sendSoundToPlayers(aBaseMetaTileEntity.getWorld(), GregTech_API.sSoundList.get(100), - 1.0F, -1.0F, - aBaseMetaTileEntity.getXCoord(), - aBaseMetaTileEntity.getYCoord(), - aBaseMetaTileEntity.getZCoord() - ); - // Give chat feedback - GT_Utility.sendChatToPlayer(aPlayer, outputting ? "Auto-output enabled" : "Auto-output disabled"); - } - return true; - } - return false; + public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { + outputting = !outputting; + GT_Utility.sendChatToPlayer(aPlayer, outputting ? "Auto-output enabled" : "Auto-output disabled"); } @Override diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index ef65585a3b..35c1316407 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -70,12 +70,14 @@ public class MultiFluidHandler { /** * Used to tell the MFH if a fluid is selected by * an Integrated Circuit in the controller. + * If the Integrate Circuit configuration exceeds + * the number of stored fluid, the configuration will be ignored. * * @param fluidSelector * Selected fluid or -1 if no fluid is selected */ public void setFluidSelector(byte fluidSelector) { - this.fluidSelector = fluidSelector; + this.fluidSelector = fluidSelector < fluids.size() ? fluidSelector : -1; } /** -- cgit From 3c596ad180fa6d371f95b2c093602868ebc1a2f4 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 21 Jun 2020 23:44:23 +0200 Subject: Added Large Hex Plate Block --- src/main/java/common/Blocks.java | 7 + src/main/java/common/Recipes.java | 195 +++++++++++---------- .../java/common/blocks/Block_LargeHexPlate.java | 51 ++++++ src/main/resources/assets/kekztech/lang/en_US.lang | 5 +- 4 files changed, 168 insertions(+), 90 deletions(-) create mode 100644 src/main/java/common/blocks/Block_LargeHexPlate.java (limited to 'src') diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index bc8b2ff573..8f70812a00 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -37,6 +37,8 @@ public class Blocks { public static Block spaceElevatorStructure; public static Block spaceElevatorCapacitor; public static Block spaceElevatorTether; + + public static Block largeHexPlate; public static void preInit() { KekzCore.LOGGER.info("Registering blocks..."); @@ -48,6 +50,7 @@ public class Blocks { registerBlocks_Jars(); registerBlocks_LSC(); registerBlocks_SpaceElevator(); + registerBlocks_Cosmetics(); KekzCore.LOGGER.info("Finished registering blocks"); } @@ -94,4 +97,8 @@ public class Blocks { spaceElevatorTether = Block_SpaceElevatorTether.registerBlock(); } + private static void registerBlocks_Cosmetics() { + largeHexPlate = Block_LargeHexPlate.registerBlock(); + } + } diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index b694805c96..45d92b723e 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -38,6 +38,7 @@ public class Recipes { registerRecipes_Jars(); registerRecipes_LSC(); registerRecipes_SpaceElevator(); + registerRecipes_Cosmetics(); KekzCore.LOGGER.info("Finished registering recipes"); } @@ -62,99 +63,99 @@ public class Recipes { GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderPearl, 3), GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel, 1), }; - GT_Values.RA.addAssemblerRecipe( - tfftcasing, - FluidRegistry.getFluidStack("molten.polytetrafluoroethylene", 144), - new ItemStack(Blocks.tfftCasing, 1), - 200, 256); - final ItemStack[] tfftstoragefield1 = { + GT_Values.RA.addAssemblerRecipe( + tfftcasing, + FluidRegistry.getFluidStack("molten.polytetrafluoroethylene", 144), + new ItemStack(Blocks.tfftCasing, 1), + 200, 256); + final ItemStack[] tfftstoragefield1 = { + GT_Utility.getIntegratedCircuit(6), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 1), + GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Steel, 1), + ItemList.Electric_Pump_LV.get(1L) + }; + GT_Values.RA.addAssemblerRecipe( + tfftstoragefield1, + FluidRegistry.getFluidStack("molten.glass", 144), + new ItemStack(Blocks.tfftStorageField1, 1), + 200, 256); + final ItemStack[] tfftstoragefield2 = { + GT_Utility.getIntegratedCircuit(6), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 4), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.StainlessSteel, 1), + ItemList.Electric_Pump_MV.get(1L) + }; + GT_Values.RA.addAssemblerRecipe( + tfftstoragefield2, + FluidRegistry.getFluidStack("molten.plastic", 576), + new ItemStack(Blocks.tfftStorageField2, 1), + 200, 480); + final ItemStack[] tfftstoragefield3 = { GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 1), - GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Steel, 1), - ItemList.Electric_Pump_LV.get(1L) + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 2), + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VibrantAlloy, 2), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Titanium, 1), + ItemList.Field_Generator_MV.get(1L), + ItemList.Electric_Pump_HV.get(2L) }; - GT_Values.RA.addAssemblerRecipe( - tfftstoragefield1, - FluidRegistry.getFluidStack("molten.glass", 144), - new ItemStack(Blocks.tfftStorageField1, 1), - 200, 256); - final ItemStack[] tfftstoragefield2 = { - GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 4), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.StainlessSteel, 1), - ItemList.Electric_Pump_MV.get(1L) - }; - GT_Values.RA.addAssemblerRecipe( - tfftstoragefield2, - FluidRegistry.getFluidStack("molten.plastic", 576), - new ItemStack(Blocks.tfftStorageField2, 1), - 200, 480); - final ItemStack[] tfftstoragefield3 = { - GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 2), - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VibrantAlloy, 2), - GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Titanium, 1), - ItemList.Field_Generator_MV.get(1L), - ItemList.Electric_Pump_HV.get(2L) - }; - GT_Values.RA.addAssemblerRecipe( - tfftstoragefield3, - FluidRegistry.getFluidStack("molten.epoxid", 576), - new ItemStack(Blocks.tfftStorageField3, 1), - 300, 1920); - final ItemStack[] tfftstoragefield4 = { - GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 4), - GT_OreDictUnificator.get(OrePrefixes.plateTriple, Materials.NiobiumTitanium, 1), - GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.TungstenSteel, 1), - ItemList.Field_Generator_HV.get(1L), - ItemList.Electric_Pump_EV.get(1L) - }; - GT_Values.RA.addAssemblerRecipe( - tfftstoragefield4, - FluidRegistry.getFluidStack("molten.epoxid", 1152), - new ItemStack(Blocks.tfftStorageField4, 1), - 400, 4098); - final ItemStack[] tfftstoragefield5 = { - GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 4), - GT_OreDictUnificator.get(OrePrefixes.plateTriple, Materials.HSSS, 1), - GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.Enderium, 1), - ItemList.Field_Generator_EV.get(1L), - ItemList.Electric_Pump_IV.get(1L) - }; - GT_Values.RA.addAssemblerRecipe( - tfftstoragefield5, - FluidRegistry.getFluidStack("molten.epoxid", 1152), - new ItemStack(Blocks.tfftStorageField5, 1), - 400, 6147); - // Multi Hatch - final Object[] multi_hatch_HV = { - "PRP", "UFU", "PRP", - 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 1), - 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1), - 'U', ItemList.Electric_Pump_HV.get(1L), - 'F', ItemList.Field_Generator_LV.get(1L) + GT_Values.RA.addAssemblerRecipe( + tfftstoragefield3, + FluidRegistry.getFluidStack("molten.epoxid", 576), + new ItemStack(Blocks.tfftStorageField3, 1), + 300, 1920); + final ItemStack[] tfftstoragefield4 = { + GT_Utility.getIntegratedCircuit(6), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 4), + GT_OreDictUnificator.get(OrePrefixes.plateTriple, Materials.NiobiumTitanium, 1), + GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.TungstenSteel, 1), + ItemList.Field_Generator_HV.get(1L), + ItemList.Electric_Pump_EV.get(1L) }; - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_HV); - final Object[] multi_hatch_IV = { - "PRP", "UFU", "PRP", - 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 1), - 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.TungstenSteel, 1), - 'U', ItemList.Electric_Pump_IV.get(1L), - 'F', ItemList.Field_Generator_HV.get(1L) - }; - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_IV); - final Object[] multi_hatch_ZPM = { - "PRP", "UFU", "PRP", - 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NaquadahAlloy, 1), - 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.NaquadahAlloy, 1), - 'U', ItemList.Electric_Pump_ZPM.get(1L), - 'F', ItemList.Field_Generator_IV.get(1L) + GT_Values.RA.addAssemblerRecipe( + tfftstoragefield4, + FluidRegistry.getFluidStack("molten.epoxid", 1152), + new ItemStack(Blocks.tfftStorageField4, 1), + 400, 4098); + final ItemStack[] tfftstoragefield5 = { + GT_Utility.getIntegratedCircuit(6), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Ultimate, 4), + GT_OreDictUnificator.get(OrePrefixes.plateTriple, Materials.HSSS, 1), + GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.Enderium, 1), + ItemList.Field_Generator_EV.get(1L), + ItemList.Electric_Pump_IV.get(1L) }; - GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_ZPM); + GT_Values.RA.addAssemblerRecipe( + tfftstoragefield5, + FluidRegistry.getFluidStack("molten.epoxid", 1152), + new ItemStack(Blocks.tfftStorageField5, 1), + 400, 6147); + // Multi Hatch + final Object[] multi_hatch_HV = { + "PRP", "UFU", "PRP", + 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.StainlessSteel, 1), + 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1), + 'U', ItemList.Electric_Pump_HV.get(1L), + 'F', ItemList.Field_Generator_LV.get(1L) + }; + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_HV); + final Object[] multi_hatch_IV = { + "PRP", "UFU", "PRP", + 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.TungstenSteel, 1), + 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.TungstenSteel, 1), + 'U', ItemList.Electric_Pump_IV.get(1L), + 'F', ItemList.Field_Generator_HV.get(1L) + }; + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_IV); + final Object[] multi_hatch_ZPM = { + "PRP", "UFU", "PRP", + 'P', GT_OreDictUnificator.get(OrePrefixes.pipeTiny, Materials.NaquadahAlloy, 1), + 'R', GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.NaquadahAlloy, 1), + 'U', ItemList.Electric_Pump_ZPM.get(1L), + 'F', ItemList.Field_Generator_IV.get(1L) + }; + GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_ZPM); } private static void registerRecipes_SOFC() { @@ -589,4 +590,20 @@ public class Recipes { }; GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.spaceElevatorStructure, 1, 1), seCoilHolder_recipe); } + + private static void registerRecipes_Cosmetics() { + + // Hex Tiles + final ItemStack[] hexTiles = { + GT_Utility.getIntegratedCircuit(6), + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Concrete, 4), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 4), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.DarkSteel, 8) + }; + GT_Values.RA.addAssemblerRecipe( + hexTiles, + FluidRegistry.getFluidStack("molten.plastic", 144), + new ItemStack(Blocks.largeHexPlate, 8), + 600, 120); + } } diff --git a/src/main/java/common/blocks/Block_LargeHexPlate.java b/src/main/java/common/blocks/Block_LargeHexPlate.java new file mode 100644 index 0000000000..391857310d --- /dev/null +++ b/src/main/java/common/blocks/Block_LargeHexPlate.java @@ -0,0 +1,51 @@ +package common.blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +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; + +public class Block_LargeHexPlate extends Block { + + private static final Block_LargeHexPlate INSTANCE = new Block_LargeHexPlate(); + private static final int BATCH_SIZE = 3; + + 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 meta) { + return parts[Math.abs(x % BATCH_SIZE)][Math.abs(z % BATCH_SIZE)]; + } + + @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/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index 9d201e442a..92021f3ec9 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -170,4 +170,7 @@ tile.kekztech_spaceelevator_block.1.name=Space Elevator Coil Holder tile.kekztech_spaceelevator_block.desc=Part of the Space Elevator Base Station tile.kekztech_spaceelevatorcapacitor_block.name=Space Elevator Capacitor tile.kekztech_spaceelevatorcapacitor_block.desc=The see-through is good for your FPS! -tile.kekztech_spaceelevatortether_block.name=Space Elevator Tether \ No newline at end of file +tile.kekztech_spaceelevatortether_block.name=Space Elevator Tether + +# -------- Cosmetic Blocks +tile.kekztech_largehexttile_block=Large Hex Tile \ No newline at end of file -- cgit From e496c31d9e20ae2c525dfe3383ec140be28460bc Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 21 Jun 2020 23:53:51 +0200 Subject: added conversion recipe to update old multi hatches --- src/main/java/common/Recipes.java | 8 ++++++-- src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java | 3 --- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 45d92b723e..726e5653ad 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -1,5 +1,7 @@ package common; +import common.items.ErrorItem; +import common.items.MetaItem_CraftingComponent; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.GT_Values; @@ -9,8 +11,6 @@ import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; -import common.items.ErrorItem; -import common.items.MetaItem_CraftingComponent; import kekztech.Items; import kekztech.KekzCore; import net.minecraft.item.ItemStack; @@ -156,6 +156,10 @@ public class Recipes { 'F', ItemList.Field_Generator_IV.get(1L) }; GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.tfftMultiHatch), multi_hatch_ZPM); + + // Conversion recipe from deprecated hatch to new one (old hatch is equal to new IV hatch) + GT_ModHandler.addShapelessCraftingRecipe(TileEntities.mhIV.getStackForm(1), + new ItemStack[]{new ItemStack(Blocks.tfftMultiHatch, 1)}); } private static void registerRecipes_SOFC() { diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index 7a9d31582a..5d0b8c20a0 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -1,14 +1,11 @@ package common.tileentities; -import client.GTTexture; -import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import kekztech.MultiFluidHandler; import net.minecraft.entity.player.EntityPlayer; -- cgit From 2ed82e6910fc6658ffc9363c22007633bbcafbc7 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 21 Jun 2020 23:54:56 +0200 Subject: hide space elevator for release --- src/main/java/common/Blocks.java | 2 +- src/main/java/common/Recipes.java | 2 +- src/main/java/common/TileEntities.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index 8f70812a00..efb5146137 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -49,7 +49,7 @@ public class Blocks { //registerBlocks_ItemProxy(); registerBlocks_Jars(); registerBlocks_LSC(); - registerBlocks_SpaceElevator(); + //registerBlocks_SpaceElevator(); registerBlocks_Cosmetics(); KekzCore.LOGGER.info("Finished registering blocks"); diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 726e5653ad..5255d4dbb2 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -37,7 +37,7 @@ public class Recipes { registerRecipes_Nuclear(); registerRecipes_Jars(); registerRecipes_LSC(); - registerRecipes_SpaceElevator(); + //registerRecipes_SpaceElevator(); registerRecipes_Cosmetics(); KekzCore.LOGGER.info("Finished registering recipes"); diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index 35ac65d2e6..2f9d2e20d6 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -24,7 +24,7 @@ public class TileEntities { GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); - GameRegistry.registerTileEntity(TE_SpaceElevatorCapacitor.class, "kekztech_secapacitor"); + //GameRegistry.registerTileEntity(TE_SpaceElevatorCapacitor.class, "kekztech_secapacitor"); } public static void init() { @@ -34,7 +34,7 @@ public class TileEntities { mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); - se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); + //se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); // Singleblocks mhHV = new GTMTE_TFFTMultiHatch(13108, "machine.multihatch", "T.F.F.T Multi I/O Hatch [HV]", 3); mhIV = new GTMTE_TFFTMultiHatch(13109, "machine.multihatch", "T.F.F.T Multi I/O Hatch [IV]", 5); -- cgit From 7ffad0de1760b338bfc96e797bce18b7110ace6f Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 21 Jun 2020 23:55:49 +0200 Subject: 0.5 version bump --- build.gradle | 2 +- src/main/java/kekztech/KekzCore.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/build.gradle b/build.gradle index 15da6c830d..e002b1ac54 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ apply plugin: 'forge' sourceCompatibility = 1.8 targetCompatibility = 1.8 -version = "0.4.6" +version = "0.5" group= "kekztech" // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = "kekztech" diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java index 312559d633..1aed8315ce 100644 --- a/src/main/java/kekztech/KekzCore.java +++ b/src/main/java/kekztech/KekzCore.java @@ -41,7 +41,7 @@ public class KekzCore { public static final String NAME = "KekzTech"; public static final String MODID = "kekztech"; - public static final String VERSION = "0.4.6"; + public static final String VERSION = "0.5"; public static final Logger LOGGER = LogManager.getLogger(NAME); -- cgit From 02bbba274bb7c625e0a9ab0f7fdab8ea0eafe707 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 22 Jun 2020 00:00:43 +0200 Subject: set hex tiling to 4 --- src/main/java/common/blocks/Block_LargeHexPlate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/common/blocks/Block_LargeHexPlate.java b/src/main/java/common/blocks/Block_LargeHexPlate.java index 391857310d..9c6dcf0fc0 100644 --- a/src/main/java/common/blocks/Block_LargeHexPlate.java +++ b/src/main/java/common/blocks/Block_LargeHexPlate.java @@ -11,7 +11,7 @@ import net.minecraft.world.IBlockAccess; public class Block_LargeHexPlate extends Block { private static final Block_LargeHexPlate INSTANCE = new Block_LargeHexPlate(); - private static final int BATCH_SIZE = 3; + private static final int BATCH_SIZE = 4; private final IIcon[][] parts = new IIcon[BATCH_SIZE][BATCH_SIZE]; -- cgit From 8d5175f8845ff593ff46d54e10de57559a43b37e Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 22 Jun 2020 00:11:55 +0200 Subject: enabled vertical hex tiling --- src/main/java/common/blocks/Block_LargeHexPlate.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/java/common/blocks/Block_LargeHexPlate.java b/src/main/java/common/blocks/Block_LargeHexPlate.java index 9c6dcf0fc0..c046c3a9ab 100644 --- a/src/main/java/common/blocks/Block_LargeHexPlate.java +++ b/src/main/java/common/blocks/Block_LargeHexPlate.java @@ -40,8 +40,14 @@ public class Block_LargeHexPlate extends Block { } @Override - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int meta) { - return parts[Math.abs(x % BATCH_SIZE)][Math.abs(z % BATCH_SIZE)]; + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + if(side == 0 || side == 1) { + return parts[Math.abs(x % BATCH_SIZE)][Math.abs(z % BATCH_SIZE)]; + } else if(side == 2 || side == 3) { + return parts[Math.abs(x % BATCH_SIZE)][Math.abs(y % BATCH_SIZE)]; + } else { + return parts[Math.abs(z % BATCH_SIZE)][Math.abs(y % BATCH_SIZE)]; + } } @Override -- cgit From 14a94d72d860e590bf9731a9a3d1ce89d7592f24 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 22 Jun 2020 16:58:17 +0200 Subject: added textures for hex tiles, fixed hex tile name, fixed hex tile recipe --- src/main/java/common/Recipes.java | 10 +++++----- src/main/java/common/blocks/Block_LargeHexPlate.java | 10 +++++++--- src/main/resources/assets/kekztech/lang/en_US.lang | 2 +- .../kekztech/textures/blocks/LargeHexTile_0_0.png | Bin 0 -> 212902 bytes .../kekztech/textures/blocks/LargeHexTile_0_1.png | Bin 0 -> 194679 bytes .../kekztech/textures/blocks/LargeHexTile_0_2.png | Bin 0 -> 188252 bytes .../kekztech/textures/blocks/LargeHexTile_0_3.png | Bin 0 -> 202085 bytes .../kekztech/textures/blocks/LargeHexTile_1_0.png | Bin 0 -> 203604 bytes .../kekztech/textures/blocks/LargeHexTile_1_1.png | Bin 0 -> 202723 bytes .../kekztech/textures/blocks/LargeHexTile_1_2.png | Bin 0 -> 184021 bytes .../kekztech/textures/blocks/LargeHexTile_1_3.png | Bin 0 -> 185686 bytes .../kekztech/textures/blocks/LargeHexTile_2_0.png | Bin 0 -> 183484 bytes .../kekztech/textures/blocks/LargeHexTile_2_1.png | Bin 0 -> 189460 bytes .../kekztech/textures/blocks/LargeHexTile_2_2.png | Bin 0 -> 205600 bytes .../kekztech/textures/blocks/LargeHexTile_2_3.png | Bin 0 -> 197674 bytes .../kekztech/textures/blocks/LargeHexTile_3_0.png | Bin 0 -> 193911 bytes .../kekztech/textures/blocks/LargeHexTile_3_1.png | Bin 0 -> 205189 bytes .../kekztech/textures/blocks/LargeHexTile_3_2.png | Bin 0 -> 198508 bytes .../kekztech/textures/blocks/LargeHexTile_3_3.png | Bin 0 -> 202600 bytes 19 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_0.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_3.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_0.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_3.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_0.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_3.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_0.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_1.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_2.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_3.png (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 5255d4dbb2..90aca7b09e 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -600,14 +600,14 @@ public class Recipes { // Hex Tiles final ItemStack[] hexTiles = { GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Concrete, 4), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 4), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.DarkSteel, 8) + GT_OreDictUnificator.get(OrePrefixes.stone, Materials.Concrete, 1), + GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Steel, 1), + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.DarkSteel, 2) }; GT_Values.RA.addAssemblerRecipe( hexTiles, - FluidRegistry.getFluidStack("molten.plastic", 144), - new ItemStack(Blocks.largeHexPlate, 8), + FluidRegistry.getFluidStack("molten.plastic", 36), + new ItemStack(Blocks.largeHexPlate, 2), 600, 120); } } diff --git a/src/main/java/common/blocks/Block_LargeHexPlate.java b/src/main/java/common/blocks/Block_LargeHexPlate.java index c046c3a9ab..8bdad56323 100644 --- a/src/main/java/common/blocks/Block_LargeHexPlate.java +++ b/src/main/java/common/blocks/Block_LargeHexPlate.java @@ -41,12 +41,16 @@ public class Block_LargeHexPlate extends Block { @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[Math.abs(x % BATCH_SIZE)][Math.abs(z % BATCH_SIZE)]; + return parts[xMod][zMod]; } else if(side == 2 || side == 3) { - return parts[Math.abs(x % BATCH_SIZE)][Math.abs(y % BATCH_SIZE)]; + return parts[xMod][yMod]; } else { - return parts[Math.abs(z % BATCH_SIZE)][Math.abs(y % BATCH_SIZE)]; + return parts[zMod][yMod]; } } diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index 92021f3ec9..f4a97bd101 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -173,4 +173,4 @@ tile.kekztech_spaceelevatorcapacitor_block.desc=The see-through is good for your tile.kekztech_spaceelevatortether_block.name=Space Elevator Tether # -------- Cosmetic Blocks -tile.kekztech_largehexttile_block=Large Hex Tile \ No newline at end of file +tile.kekztech_largehextile_block=Large Hex Tile \ No newline at end of file diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_0.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_0.png new file mode 100644 index 0000000000..066845e231 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_0.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_1.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_1.png new file mode 100644 index 0000000000..7da38a599a Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_1.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_2.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_2.png new file mode 100644 index 0000000000..b71361b6e6 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_2.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_3.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_3.png new file mode 100644 index 0000000000..6dde5d88ce Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_0_3.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_0.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_0.png new file mode 100644 index 0000000000..c59f06e48b Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_0.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_1.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_1.png new file mode 100644 index 0000000000..15ada67d51 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_1.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_2.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_2.png new file mode 100644 index 0000000000..fa7cb6610d Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_2.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_3.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_3.png new file mode 100644 index 0000000000..9802f4c45f Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_1_3.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_0.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_0.png new file mode 100644 index 0000000000..b96eae723e Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_0.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_1.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_1.png new file mode 100644 index 0000000000..30023e5987 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_1.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_2.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_2.png new file mode 100644 index 0000000000..496fb235cb Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_2.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_3.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_3.png new file mode 100644 index 0000000000..03544d84d1 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_2_3.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_0.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_0.png new file mode 100644 index 0000000000..cc9a5f89da Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_0.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_1.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_1.png new file mode 100644 index 0000000000..2586c16072 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_1.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_2.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_2.png new file mode 100644 index 0000000000..7bc5006d3d Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_2.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_3.png b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_3.png new file mode 100644 index 0000000000..2966ccb079 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LargeHexTile_3_3.png differ -- cgit From 8a94750eec21b70a04eca7589c2626341a5eb83f Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 22 Jun 2020 21:25:02 +0200 Subject: tried to fix GTTexture, removed more deprecated code --- GregTech.lang | 3 + src/main/java/client/GTTexture.java | 46 ++------------- src/main/java/common/TileEntities.java | 6 +- .../java/common/blocks/Block_TFFTMultiHatch.java | 69 +--------------------- .../common/tileentities/GTMTE_TFFTMultiHatch.java | 7 +-- 5 files changed, 16 insertions(+), 115 deletions(-) (limited to 'src') diff --git a/GregTech.lang b/GregTech.lang index 227be0de63..be8b9c6d6a 100644 --- a/GregTech.lang +++ b/GregTech.lang @@ -13178,6 +13178,9 @@ languagefile { S:gt.blockmachines.machine.avr.tier.12.name=UMV AVR Micro-controller S:gt.blockmachines.machine.dehydrator.tier.00.name=Basic Dehydrator I S:gt.blockmachines.machine.dehydrator.tier.01.name=Basic Dehydrator II + S:gt.blockmachines.machine.multihatch.0.name=T.F.F.T Multi I/O Hatch [HV] + S:gt.blockmachines.machine.multihatch.1.name=T.F.F.T Multi I/O Hatch [IV] + S:gt.blockmachines.machine.multihatch.2.name=T.F.F.T Multi I/O Hatch [ZPM] S:gt.blockmachines.machine.multihatch.name=T.F.F.T Multi I/O Hatch [HV] S:gt.blockmachines.machine.tt.buck.05.name=Insane Buck Converter S:gt.blockmachines.machine.tt.buck.06.name=Ludicrous Buck Converter diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java index 76539adaab..a449dc257b 100644 --- a/src/main/java/client/GTTexture.java +++ b/src/main/java/client/GTTexture.java @@ -2,6 +2,7 @@ package client; import gregtech.api.GregTech_API; import gregtech.api.interfaces.IIconContainer; +import gregtech.api.objects.GT_CopiedBlockTexture; import kekztech.KekzCore; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.util.IIcon; @@ -11,48 +12,18 @@ import java.util.HashMap; public class GTTexture implements IIconContainer, Runnable { - public static final String TFFT_CASING = "TFFTCasing"; - public static final String MULTI_HATCH_OFF = "multi_hatch_off"; - public static final String MULTI_HATCH_ON = "multi_hatch_on"; - - private static final HashMap icons = new HashMap<>(); - private static final String REL_PATH = "blocks/"; - - static { - registerTexture(TFFT_CASING); - registerTexture(MULTI_HATCH_OFF); - registerTexture(MULTI_HATCH_ON); - } + public static final GTTexture TFFT_CASING = new GTTexture("textures/blocks/TFFTCasing"); + public static final GTTexture MULTI_HATCH_OFF = new GTTexture("textures/blocks/multi_hatch_off"); + public static final GTTexture MULTI_HATCH_ON = new GTTexture("textures/blocks/multi_hatch_on"); private IIcon icon; - private IIcon iconOverlay; private final String iconName; - private final String iconOverlayName; private GTTexture(String iconName) { this.iconName = iconName; - this.iconOverlayName = ""; - GregTech_API.sGTBlockIconload.add(this); - } - - private GTTexture(String iconName, String iconOverlayName) { - this.iconName = iconName; - this.iconOverlayName = iconOverlayName; GregTech_API.sGTBlockIconload.add(this); } - public static void registerTexture(String iconName) { - icons.put(iconName, new GTTexture(iconName)); - } - - public static void registerTexture(String iconName, String iconOverlayName) { - icons.put(iconName, new GTTexture(iconName, iconOverlayName)); - } - - public static IIconContainer getIconContainer(String iconName) { - return icons.get(iconName); - } - @Override public IIcon getIcon() { return icon; @@ -60,7 +31,7 @@ public class GTTexture implements IIconContainer, Runnable { @Override public IIcon getOverlayIcon() { - return iconOverlay; + return null; } @Override @@ -70,11 +41,6 @@ public class GTTexture implements IIconContainer, Runnable { @Override public void run() { - icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + REL_PATH + iconName); - if(!iconOverlayName.equals("")) { - iconOverlay = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + REL_PATH + iconOverlayName); - } else { - KekzCore.LOGGER.info("No overlay texture specified for icon: " + iconName + "; This is fine."); - } + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); } } diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index 2f9d2e20d6..963dd81e9f 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -36,9 +36,9 @@ public class TileEntities { lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); //se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); // Singleblocks - mhHV = new GTMTE_TFFTMultiHatch(13108, "machine.multihatch", "T.F.F.T Multi I/O Hatch [HV]", 3); - mhIV = new GTMTE_TFFTMultiHatch(13109, "machine.multihatch", "T.F.F.T Multi I/O Hatch [IV]", 5); - mhZPM = new GTMTE_TFFTMultiHatch(13110, "machine.multihatch", "T.F.F.T Multi I/O Hatch [ZPM]", 7); + mhHV = new GTMTE_TFFTMultiHatch(13108, "machine.multihatch.0", "T.F.F.T Multi I/O Hatch [HV]", 3); + mhIV = new GTMTE_TFFTMultiHatch(13109, "machine.multihatch.1", "T.F.F.T Multi I/O Hatch [IV]", 5); + mhZPM = new GTMTE_TFFTMultiHatch(13110, "machine.multihatch.2", "T.F.F.T Multi I/O Hatch [ZPM]", 7); } } diff --git a/src/main/java/common/blocks/Block_TFFTMultiHatch.java b/src/main/java/common/blocks/Block_TFFTMultiHatch.java index 37f9e47bcc..564113efe5 100644 --- a/src/main/java/common/blocks/Block_TFFTMultiHatch.java +++ b/src/main/java/common/blocks/Block_TFFTMultiHatch.java @@ -26,8 +26,6 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { private static final Block_TFFTMultiHatch INSTANCE = new Block_TFFTMultiHatch(); private IIcon casing; - private final IIcon[] overlayOff = new IIcon[3]; - private final IIcon[] overlayOn = new IIcon[3]; private Block_TFFTMultiHatch() { super(Material.iron); @@ -47,48 +45,11 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { @Override public void registerBlockIcons(IIconRegister ir) { casing = ir.registerIcon("kekztech:TFFTCasing"); - for(int i = 0; i < overlayOff.length; i++) { - overlayOff[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + i + "_off"); - overlayOn[i] = ir.registerIcon("kekztech:TFFTMultiHatch" + i + "_on"); - } - } - - @Override - @SuppressWarnings({"unchecked" }) - public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { - // HV, IV, ZPM - par3List.add(new ItemStack(par1, 1, 0)); - par3List.add(new ItemStack(par1, 1, 1)); - par3List.add(new ItemStack(par1, 1, 2)); } @Override public IIcon getIcon(int side, int meta) { - if(side != 3) { - return casing; - } else { - return overlayOff[meta]; - } - } - - @Override - public IIcon getIcon(IBlockAccess blockAccess, int x, int y, int z, int side) { - final TileEntity te = blockAccess.getTileEntity(x, y, z); - if(te instanceof TE_TFFTMultiHatch) { - final TE_TFFTMultiHatch hatchTE = (TE_TFFTMultiHatch) te; - if(hatchTE.hasFacingOnSide((byte) side)) { - final int meta = blockAccess.getBlockMetadata(x, y, z); - if(hatchTE.isOutputting()) { - return overlayOn[meta]; - } else { - return overlayOff[meta]; - } - } else { - return casing; - } - } else { - return casing; - } + return casing; } @Override @@ -100,33 +61,5 @@ public class Block_TFFTMultiHatch extends BaseGTUpdateableBlock { public boolean hasTileEntity(int meta) { return true; } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float p_149727_7_, float p_149727_8_, float p_149727_9_) { - // Code block taken from GregTech's api.metatileentity.BaseMetaTileEntity.class - if (GT_Utility.isStackInList(player.getHeldItem(), GregTech_API.sScrewdriverList)) { - if (GT_ModHandler.damageOrDechargeItem(player.getHeldItem(), 1, 200, player)) { - final TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TE_TFFTMultiHatch) { - ((TE_TFFTMultiHatch) te).toggleAutoOutput(); - GT_Utility.sendSoundToPlayers(world, GregTech_API.sSoundList.get(100), 1.0F, -1.0F, x, y, z); - // Give chat feedback - GT_Utility.sendChatToPlayer(player, ((TE_TFFTMultiHatch) te).isOutputting() ? "Auto-output enabled" : "Auto-output disabled"); - - } - } - return true; - } else if (GT_Utility.isStackInList(player.getHeldItem(), GregTech_API.sWrenchList)) { - if (GT_ModHandler.damageOrDechargeItem(player.getHeldItem(), 1, 200, player)) { - final TileEntity te = world.getTileEntity(x, y, z); - if(te instanceof TE_TFFTMultiHatch) { - ((TE_TFFTMultiHatch) te).setFacingToSide((byte) side); - GT_Utility.sendSoundToPlayers(world, GregTech_API.sSoundList.get(100), 1.0F, -1.0F, x, y, z); - } - } - return true; - } - return false; - } } diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index 5d0b8c20a0..ba523ab090 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -1,5 +1,6 @@ package common.tileentities; +import client.GTTexture; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -65,14 +66,12 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { - // TODO return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.getIconContainer(GTTexture.MULTI_HATCH_ON))}; - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.ARROW_UP)}; + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.MULTI_HATCH_ON)}; } @Override public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - // TODO return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.getIconContainer(GTTexture.MULTI_HATCH_OFF))}; - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.ARROW_DOWN)}; + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.MULTI_HATCH_OFF)}; } @Override -- cgit From 2178a42eca603aba98ca4e181c2c46597e638597 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 23 Jun 2020 02:17:11 +0200 Subject: Started to imlements BeamTransmitter --- src/main/java/client/ClientProxy.java | 3 + src/main/java/client/GTTexture.java | 6 +- .../java/client/renderer/TESR_BeamTransmitter.java | 65 +++++++++++++++++++++ src/main/java/common/Blocks.java | 2 + src/main/java/common/TileEntities.java | 1 + .../java/common/blocks/Block_BeamTransmitter.java | 55 +++++++++++++++++ .../common/tileentities/GTMTE_TFFTMultiHatch.java | 68 +++++----------------- .../common/tileentities/TE_BeamTransmitter.java | 47 +++++++++++++++ src/main/resources/assets/kekztech/lang/en_US.lang | 5 +- 9 files changed, 195 insertions(+), 57 deletions(-) create mode 100644 src/main/java/client/renderer/TESR_BeamTransmitter.java create mode 100644 src/main/java/common/blocks/Block_BeamTransmitter.java create mode 100644 src/main/java/common/tileentities/TE_BeamTransmitter.java (limited to 'src') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index f608861c0d..5ed713f827 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -1,8 +1,10 @@ package client; +import client.renderer.TESR_BeamTransmitter; import client.renderer.TESR_SECapacitor; import client.renderer.TESR_SETether; import common.CommonProxy; +import common.tileentities.TE_BeamTransmitter; import common.tileentities.TE_SpaceElevatorCapacitor; import common.tileentities.TE_SpaceElevatorTether; import cpw.mods.fml.client.registry.ClientRegistry; @@ -18,6 +20,7 @@ public class ClientProxy extends CommonProxy { // Register TESR ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); + ClientRegistry.bindTileEntitySpecialRenderer(TE_BeamTransmitter.class, new TESR_BeamTransmitter()); } @Override diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java index a449dc257b..2ede4976fb 100644 --- a/src/main/java/client/GTTexture.java +++ b/src/main/java/client/GTTexture.java @@ -12,9 +12,9 @@ import java.util.HashMap; public class GTTexture implements IIconContainer, Runnable { - public static final GTTexture TFFT_CASING = new GTTexture("textures/blocks/TFFTCasing"); - public static final GTTexture MULTI_HATCH_OFF = new GTTexture("textures/blocks/multi_hatch_off"); - public static final GTTexture MULTI_HATCH_ON = new GTTexture("textures/blocks/multi_hatch_on"); + public static final GTTexture TFFT_CASING = new GTTexture("blocks/TFFTCasing"); + public static final GTTexture MULTI_HATCH_OFF = new GTTexture("blocks/multi_hatch_off"); + public static final GTTexture MULTI_HATCH_ON = new GTTexture("blocks/multi_hatch_on"); private IIcon icon; private final String iconName; diff --git a/src/main/java/client/renderer/TESR_BeamTransmitter.java b/src/main/java/client/renderer/TESR_BeamTransmitter.java new file mode 100644 index 0000000000..3c48dab264 --- /dev/null +++ b/src/main/java/client/renderer/TESR_BeamTransmitter.java @@ -0,0 +1,65 @@ +package client.renderer; + +import common.tileentities.TE_BeamTransmitter; +import kekztech.KekzCore; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +public class TESR_BeamTransmitter extends TileEntitySpecialRenderer { + + private static final ResourceLocation beamTexture = new ResourceLocation(KekzCore.MODID, "textures/effects/Tether_beam.png"); + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float partialTick) { + final TE_BeamTransmitter beamTransmitter = (TE_BeamTransmitter) te; + + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + // Get Tessellator instance + final Tessellator tessellator = Tessellator.instance; + // Bind beam texture and set texture params + super.bindTexture(beamTexture); + GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, 10497.0F); + GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, 10497.0F); + // Set render flags for inner beam + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthMask(true); + OpenGlHelper.glBlendFunc(770, 1, 1, 0); + // Prepare Tessellator + tessellator.startDrawingQuads(); + tessellator.setColorRGBA(255, 255, 255, 32); + // Variables stuff II + final float exactTime = (float)beamTransmitter.getWorldObj().getTotalWorldTime() + partialTick; + final float streamTextureOffset = -exactTime * 0.2F - (float) MathHelper.floor_float(-exactTime * 0.1F); + + final double halfBeamWidth = 0.1D; + final double height = beamTransmitter.getDistanceFromTarget(); + final double uv_x1 = 0.0D; + final double uv_x2 = 1.0D; + final double uv_y1 = -1.0D - streamTextureOffset; // This makes the beam stream upwards if you add a time sensitive number to it + final double uv_y2 = (double)beamTransmitter.getDistanceFromTarget() * (0.5D / (halfBeamWidth * 2)) + uv_y1; + // Construct mesh with texture + tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + 0.5, z + 0.5, uv_x2, uv_y2); + tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + height, z + 0.5, uv_x2, uv_y1); + tessellator.addVertexWithUV(x + 0.5 - halfBeamWidth, y + height, z + 0.5, uv_x1, uv_y1); + tessellator.addVertexWithUV(x + 0.5 - halfBeamWidth, y + 0.5, z + 0.5, uv_x1, uv_y2); + + tessellator.addVertexWithUV(x + 0.5, y + 0.5, z + 0.5 + halfBeamWidth, uv_x2, uv_y2); + tessellator.addVertexWithUV(x + 0.5, y + height, z + 0.5 + halfBeamWidth, uv_x2, uv_y1); + tessellator.addVertexWithUV(x + 0.5, y + height, z + 0.5 - halfBeamWidth, uv_x1, uv_y1); + tessellator.addVertexWithUV(x + 0.5, y + 0.5, z + 0.5 - halfBeamWidth, uv_x1, uv_y2); + // Draw! + tessellator.draw(); + + // Reset render flags + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDepthMask(true); + } +} diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index efb5146137..304af71460 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -33,6 +33,7 @@ public class Blocks { public static Block jarIchor; public static Block lscLapotronicEnergyUnit; + public static Block beamTransmitter; public static Block spaceElevatorStructure; public static Block spaceElevatorCapacitor; @@ -89,6 +90,7 @@ public class Blocks { private static void registerBlocks_LSC() { lscLapotronicEnergyUnit = Block_LapotronicEnergyUnit.registerBlock(); + beamTransmitter = Block_BeamTransmitter.registerBlock(); } private static void registerBlocks_SpaceElevator() { diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index 963dd81e9f..9bb839feda 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -25,6 +25,7 @@ public class TileEntities { GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); //GameRegistry.registerTileEntity(TE_SpaceElevatorCapacitor.class, "kekztech_secapacitor"); + GameRegistry.registerTileEntity(TE_BeamTransmitter.class, "kekztech_beamtransmitter"); } public static void init() { diff --git a/src/main/java/common/blocks/Block_BeamTransmitter.java b/src/main/java/common/blocks/Block_BeamTransmitter.java new file mode 100644 index 0000000000..af7a837fdd --- /dev/null +++ b/src/main/java/common/blocks/Block_BeamTransmitter.java @@ -0,0 +1,55 @@ +package common.blocks; + +import common.tileentities.TE_BeamTransmitter; +import common.tileentities.TE_SpaceElevatorTether; +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class Block_BeamTransmitter extends Block { + + private static final Block_BeamTransmitter INSTANCE = new Block_BeamTransmitter(); + + private Block_BeamTransmitter() { + super(Material.glass); + } + + public static Block registerBlock() { + final String blockName = "kekztech_beamtransmitter_block"; + INSTANCE.setBlockName(blockName); + INSTANCE.setCreativeTab(CreativeTabs.tabMisc); + INSTANCE.setHardness(5.0f); + INSTANCE.setResistance(5.0f); + INSTANCE.setBlockTextureName(KekzCore.MODID + ":" + "Tether_top"); + GameRegistry.registerBlock(INSTANCE, blockName); + + return INSTANCE; + } + + @Override + public TileEntity createTileEntity(World world, int meta) { + return new TE_BeamTransmitter(); + } + + @Override + public boolean hasTileEntity(int meta) { + return true; + } + + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + +} diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index ba523ab090..c8c987d7dc 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -66,12 +66,14 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.MULTI_HATCH_ON)}; + //return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.MULTI_HATCH_ON)}; + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_PIPE_STEEL)}; } @Override public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.MULTI_HATCH_OFF)}; + //return new ITexture[]{aBaseTexture, new GT_RenderedTexture(GTTexture.MULTI_HATCH_OFF)}; + return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_PIPE_POLYTETRAFLUOROETHYLENE)}; } @Override @@ -90,16 +92,6 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { GT_Utility.sendChatToPlayer(aPlayer, outputting ? "Auto-output enabled" : "Auto-output disabled"); } - @Override - public boolean doesFillContainers() { - return true; - } - - @Override - public boolean doesEmptyContainers() { - return true; - } - @Override public int getCapacity() { return (mfh != null) ? mfh.getCapacity() : 0; @@ -108,51 +100,12 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPreTick(aBaseMetaTileEntity, aTick); if (aBaseMetaTileEntity.isServerSide() && mfh != null) { - emptyContainers(aBaseMetaTileEntity); - fillContainers(aBaseMetaTileEntity); if(outputting && (aTick % 20 == 0)) { doAutoOutputPerSecond(aBaseMetaTileEntity); } } } - /** - * Empty containers (cells, buckets, etc) from the GUI into the T.F.F.T - * @param aBaseMetaTileEntity - * this MetaTileEntity - */ - private void emptyContainers(IGregTechTileEntity aBaseMetaTileEntity) { - final FluidStack fluidFromCell = GT_Utility.getFluidForFilledItem(super.mInventory[super.getInputSlot()], true); - // Check if fluid is not null, could be inserted, and if there is space for the empty container - if (fluidFromCell != null && mfh.couldPush(fluidFromCell) - && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), GT_Utility.getContainerItem(super.mInventory[super.getInputSlot()], true), 1)) { - // Consume one filled container if it was emptied successfully - if(mfh.pushFluid(fluidFromCell, true) == fluidFromCell.amount) { - aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); - } - } - } - - /** - * Fill containers (cells, buckets, etc) in the GUI. The fluid used to fill containers will be the one that is - * selected through an Integrated Circuit in the T.F.F.T's controller GUI. - * @param aBaseMetaTileEntity - * this MetaTileEntity - */ - private void fillContainers(IGregTechTileEntity aBaseMetaTileEntity) { - final ItemStack cellFromFluid = GT_Utility.fillFluidContainer( - mfh.getFluidCopy(mfh.getSelectedFluid()), super.mInventory[super.getInputSlot()], false, true); - // Check if cell is not null and if there is space for the filled container - if (cellFromFluid != null && aBaseMetaTileEntity.addStackToSlot(super.getOutputSlot(), cellFromFluid, 1)) { - // Convert back to FluidStack to learn the container capacity... - final FluidStack fluidCapacityStack = GT_Utility.getFluidForFilledItem(cellFromFluid, true); - // Consume one empty container if it was filled successfully - if(mfh.pullFluid(fluidCapacityStack, true) == fluidCapacityStack.amount) { - aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); - } - } - } - /** * Handle the Multi Hatch's auto-output feature. Should be called once per second only. * @param aBaseMetaTileEntity @@ -229,12 +182,21 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == super.getOutputSlot(); + return false; } @Override public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return aSide == aBaseMetaTileEntity.getFrontFacing() && aIndex == super.getInputSlot(); + return false; + } + + @Override + public boolean canTankBeFilled() { + return true; } + @Override + public boolean canTankBeEmptied() { + return true; + } } diff --git a/src/main/java/common/tileentities/TE_BeamTransmitter.java b/src/main/java/common/tileentities/TE_BeamTransmitter.java new file mode 100644 index 0000000000..74cb845fc4 --- /dev/null +++ b/src/main/java/common/tileentities/TE_BeamTransmitter.java @@ -0,0 +1,47 @@ +package common.tileentities; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import org.joml.Vector3i; +import org.joml.Vector3ic; + +public class TE_BeamTransmitter extends TileEntity { + + private final Vector3ic position; + + private Vector3ic target = new Vector3i(10, 20, 10); + private double distanceCache; + private boolean distanceCacheValid = false; + + public TE_BeamTransmitter() { + position = new Vector3i(super.xCoord, super.yCoord, super.zCoord); + } + + public Vector3ic getTargetPosition() { + return target; + } + + public double getDistanceFromTarget() { + if (!distanceCacheValid) { + distanceCache = position.distance(target); + distanceCacheValid = true; + } + return distanceCache; + } + + @SideOnly(Side.CLIENT) + @Override + public double getMaxRenderDistanceSquared() { + // 4k is standard, 65k is what the vanilla beacon uses + return 65536.0D; + } + + @Override + @SideOnly(Side.CLIENT) + public AxisAlignedBB getRenderBoundingBox() { + // Make it so the beam is still rendered even when the source block is out of sight + return INFINITE_EXTENT_AABB; + } +} diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index f4a97bd101..3c8ec42ce8 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -173,4 +173,7 @@ tile.kekztech_spaceelevatorcapacitor_block.desc=The see-through is good for your tile.kekztech_spaceelevatortether_block.name=Space Elevator Tether # -------- Cosmetic Blocks -tile.kekztech_largehextile_block=Large Hex Tile \ No newline at end of file +tile.kekztech_largehextile_block=Large Hex Tile + +# -------- Beam Transmitter +tile.kekztech_beamtransmitter_block=Beam Transmitter \ No newline at end of file -- cgit From eba5bb99231d3c194e8116f03beccff39b543f8d Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 23 Jun 2020 02:20:59 +0200 Subject: mini code clean --- src/main/java/client/renderer/TESR_BeamTransmitter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/java/client/renderer/TESR_BeamTransmitter.java b/src/main/java/client/renderer/TESR_BeamTransmitter.java index 3c48dab264..81ab52654b 100644 --- a/src/main/java/client/renderer/TESR_BeamTransmitter.java +++ b/src/main/java/client/renderer/TESR_BeamTransmitter.java @@ -42,8 +42,8 @@ public class TESR_BeamTransmitter extends TileEntitySpecialRenderer { final double height = beamTransmitter.getDistanceFromTarget(); final double uv_x1 = 0.0D; final double uv_x2 = 1.0D; - final double uv_y1 = -1.0D - streamTextureOffset; // This makes the beam stream upwards if you add a time sensitive number to it - final double uv_y2 = (double)beamTransmitter.getDistanceFromTarget() * (0.5D / (halfBeamWidth * 2)) + uv_y1; + final double uv_y1 = -1.0D - streamTextureOffset; // This makes the beam stream upwards if you subtract a time sensitive number from it + final double uv_y2 = height * (0.5D / (halfBeamWidth * 2)) + uv_y1; // Construct mesh with texture tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + 0.5, z + 0.5, uv_x2, uv_y2); tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + height, z + 0.5, uv_x2, uv_y1); -- cgit From de659dcb1064c463376cf61719bc97c4d737b1a5 Mon Sep 17 00:00:00 2001 From: MotDT <47714084+MotDT@users.noreply.github.com> Date: Thu, 1 Oct 2020 16:45:31 +0300 Subject: fix Capacitors Achivmients --- src/main/resources/assets/kekztech/lang/en_US.lang | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index 3c8ec42ce8..3f50a5ee0e 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -176,4 +176,14 @@ tile.kekztech_spaceelevatortether_block.name=Space Elevator Tether tile.kekztech_largehextile_block=Large Hex Tile # -------- Beam Transmitter -tile.kekztech_beamtransmitter_block=Beam Transmitter \ No newline at end of file +tile.kekztech_beamtransmitter_block=Beam Transmitter + +# -------- Achievements +achievement.tile.kekztech_lapotronicenergyunit_block.2.desc=Pickup this item to see the recipe in NEI +achievement.tile.kekztech_lapotronicenergyunit_block.2=Lapotronic Capacitor (LuV) +achievement.tile.kekztech_lapotronicenergyunit_block.3.desc=Pickup this item to see the recipe in NEI +achievement.tile.kekztech_lapotronicenergyunit_block.3=Lapotronic Capacitor (ZPM) +achievement.tile.kekztech_lapotronicenergyunit_block.4.desc=Pickup this item to see the recipe in NEI +achievement.tile.kekztech_lapotronicenergyunit_block.4=Lapotronic Capacitor (UV) +achievement.tile.kekztech_lapotronicenergyunit_block.5.desc=Pickup this item to see the recipe in NEI +achievement.tile.kekztech_lapotronicenergyunit_block.5=Ultimate Capacitor (UHV) -- cgit From 8d955e04b43678c16c374679ab3e8b65141cef47 Mon Sep 17 00:00:00 2001 From: korneel vandamme Date: Sat, 10 Oct 2020 02:12:10 +0200 Subject: fix voiding and made fluid pos static --- .../tileentities/GTMTE_FluidMultiStorage.java | 11 +- src/main/java/kekztech/MultiFluidHandler.java | 194 +++++++++++++++------ 2 files changed, 153 insertions(+), 52 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index 0b8eec616b..894ad12415 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -158,8 +158,15 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { super.addOutput(tempStack); } else { - for(int i = 0; i < mfh.getDistinctFluids(); i++) { + int tDistinct = mfh.getDistinctFluids(); + int tDistinctCount = 0; + int tMaxDistinct = mfh.getMaxDistinctFluids(); + for(int i = 0; i < tMaxDistinct && tDistinctCount< tDistinct;i++) { final FluidStack storedFluidCopy = mfh.getFluidCopy(i); + if (storedFluidCopy == null) + continue; + tDistinctCount++; + storedFluidCopy.amount = 0; // Calculate how much capacity all available Output Hatches offer for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluidCopy.getUnlocalizedName())) { @@ -482,7 +489,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { runningCost = nbt.getInteger("runningCost"); doVoidExcess = nbt.getBoolean("doVoidExcess"); - mfh = mfh.loadNBTData(nbt); + mfh = MultiFluidHandler.loadNBTData(nbt); for (GTMTE_TFFTMultiHatch mh : sMultiHatches) { mh.setMultiFluidHandler(mfh); } diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index 35c1316407..c82a35cd5b 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -10,7 +10,7 @@ import java.util.List; public class MultiFluidHandler { - private final List fluids; + private final FluidStack[] fluids; private final int maxDistinctFluids; private final int capacityPerFluid; @@ -18,11 +18,14 @@ public class MultiFluidHandler { private boolean doVoidExcess = false; private byte fluidSelector = -1; - private MultiFluidHandler(int maxDistinctFluids, int capacityPerFluid, List fluidsToAdd) { + public MultiFluidHandler(int maxDistinctFluids, int capacityPerFluid, FluidStack[] fluidsToAdd) { this.maxDistinctFluids = maxDistinctFluids; - this.fluids = new ArrayList<>(maxDistinctFluids); + this.fluids = new FluidStack[maxDistinctFluids]; if(fluidsToAdd != null) { - this.fluids.addAll(fluidsToAdd); + int tFluidLengt = (maxDistinctFluids =0; } + + public int countFluids() + { + int tCount = 0; + for (int i = 0; i < fluids.length; i++) { + if (fluids[i] != null) + tCount++; + } + return tCount; + } + public int getCapacity() { return capacityPerFluid; } + public int getMaxDistinctFluids() { + return maxDistinctFluids; + } /** * Returns a deep copy of the the FluidStack in the requested slot @@ -105,8 +135,18 @@ public class MultiFluidHandler { * deep copy of the requested FluidStack */ public FluidStack getFluidCopy(int slot) { - return (!locked && fluids.size() > 0 && slot >= 0 && slot < maxDistinctFluids) - ? fluids.get(slot).copy() : null; + if (slot >= fluids.length) + return null; + if (!locked + && fluids.length > 0 + && slot >= 0 + && slot < maxDistinctFluids) + { + FluidStack tFluid = fluids[slot]; + if (tFluid != null) + return tFluid.copy(); + } + return null; } /** @@ -115,7 +155,12 @@ public class MultiFluidHandler { * amount of different fluids currently stored (0-25) */ public int getDistinctFluids() { - return fluids.size(); + int distinctFluids = 0; + for (FluidStack f : fluids) { + if (f != null) + distinctFluids++; + } + return distinctFluids; } /** @@ -129,9 +174,15 @@ public class MultiFluidHandler { nbt = (nbt == null) ? new NBTTagCompound() : nbt; nbt.setInteger("capacityPerFluid", getCapacity()); + nbt.setInteger("maxDistinctFluids",this.maxDistinctFluids); int c = 0; for(FluidStack f : fluids) { - nbt.setTag("" + c, f.writeToNBT(new NBTTagCompound())); + if (f == null) + { + c++; + continue; + } + nbt.setTag( String.valueOf(c), f.writeToNBT(new NBTTagCompound())); c++; } return nbt; @@ -144,31 +195,44 @@ public class MultiFluidHandler { * @return * A new Instance */ - public MultiFluidHandler loadNBTData(NBTTagCompound nbt) { + static public MultiFluidHandler loadNBTData(NBTTagCompound nbt) { nbt = (nbt == null) ? new NBTTagCompound() : nbt; final int capacityPerFluid = nbt.getInteger("capacityPerFluid"); final NBTTagCompound fluidsTag = (NBTTagCompound) nbt.getTag("fluids"); - final ArrayList loadedFluids = new ArrayList<>(); - int distinctFluids = 0; - while(true) { - final NBTTagCompound fluidNBT = (NBTTagCompound) fluidsTag.getTag("" + distinctFluids); - if(fluidNBT == null) { - break; + int distinctFluids = nbt.getInteger("maxDistinctFluids"); + if (!nbt.hasKey("maxDistinctFluids")) + distinctFluids = 25;// adding it so it doesent break on upgrading + final FluidStack[] loadedFluids = new FluidStack[distinctFluids]; + + if (fluidsTag != null) + { + for (int i = 0; i < distinctFluids; i++) { + final NBTTagCompound fluidNBT = (NBTTagCompound) fluidsTag.getTag("" + i); + if(fluidNBT == null) { + loadedFluids[i] = null; + } else { + loadedFluids[i] = FluidStack.loadFluidStackFromNBT(fluidNBT); + } } - loadedFluids.add(FluidStack.loadFluidStackFromNBT(fluidNBT)); - distinctFluids++; } return new MultiFluidHandler(distinctFluids, capacityPerFluid, loadedFluids); } public ArrayList getInfoData() { - final ArrayList lines = new ArrayList<>(fluids.size()); + final ArrayList lines = new ArrayList<>(fluids.length); lines.add(EnumChatFormatting.YELLOW + "Stored Fluids:" + EnumChatFormatting.RESET); - for(int i = 0; i < fluids.size(); i++) { - lines.add(i + " - " + fluids.get(i).getLocalizedName() + ": " - + fluids.get(i).amount + "L (" - + (Math.round(100.0f * fluids.get(i).amount / getCapacity())) + "%)"); + for(int i = 0; i < fluids.length; i++) { + FluidStack tFluid = fluids[i]; + if (tFluid == null) { + lines.add(i + " - " + "null" + ": " + + "0" + "L (" + + "0" + "%)"); + } else { + lines.add(i + " - " + tFluid.getLocalizedName() + ": " + + tFluid.amount + "L (" + + (Math.round(100.0f * tFluid.amount / getCapacity())) + "%)"); + } } return lines; @@ -187,20 +251,29 @@ public class MultiFluidHandler { if(locked) { return 0; } - if(fluids.size() == maxDistinctFluids && !contains(push)) { + int empty = getNullSlot(); + int fluidCount = countFluids(); + if(fluidCount >= maxDistinctFluids && !contains(push)) { // Already contains 25 fluids and this isn't one of them return 0; - } else if (fluids.size() < maxDistinctFluids && !contains(push)) { + } else if (empty < maxDistinctFluids && !contains(push)) { // Add new fluid final int fit = Math.min(getCapacity(), push.amount); if(doPush) { - fluids.add(new FluidStack(push.getFluid(), fit)); + empty = getNullSlot(); + if (empty == -1) + return 0; + else + fluids[empty] = new FluidStack(push.getFluid(), fit); } // If doVoidExcess, pretend all of it fit return doVoidExcess ? push.amount : fit; } else { - // Add to existing fluid - final FluidStack existing = fluids.get(fluids.indexOf(push)); + // Add to existing fluids + int index = getFluidPosistion(push); + if (index < 0) + return 0; + final FluidStack existing = fluids[index]; final int fit = Math.min(getCapacity() - existing.amount, push.amount); if(doPush) { existing.amount += fit; @@ -209,6 +282,16 @@ public class MultiFluidHandler { return doVoidExcess ? push.amount : fit; } } + + + public int getNullSlot() + { + for (int i = 0; i < fluids.length; i++) { + if (fluids[i] == null) + return i; + } + return -1; + } /** * Fill fluid into the specified tank. @@ -225,19 +308,25 @@ public class MultiFluidHandler { if(locked) { return 0; } + FluidStack tFluid = fluids[slot]; if(slot < 0 || slot >= maxDistinctFluids) { // Invalid slot return 0; } - if((fluids.get(slot) != null) && !fluids.get(slot).equals(push)) { + if((tFluid != null) && !tFluid.equals(push)) { // Selected slot is taken by a non-matching fluid return 0; } else { + int fit = 0; // Add to existing fluid - final FluidStack existing = fluids.get(slot); - final int fit = Math.min(getCapacity() - existing.amount, push.amount); - if(doPush) { - existing.amount += fit; + if (tFluid == null) { + fit = Math.min(getCapacity(),push.amount); + fluids[slot] = new FluidStack(push.getFluid(), fit); + } else { + fit = Math.min(getCapacity() - tFluid.amount, push.amount); + if(doPush) { + tFluid.amount += fit; + } } // If doVoidExcess, pretend all of it fit return doVoidExcess ? push.amount : fit; @@ -254,16 +343,19 @@ public class MultiFluidHandler { * @return Amount of fluid that was (or would have been, if simulated) pulled. */ public int pullFluid(FluidStack pull, boolean doPull) { - if (locked || !contains(pull)) { + if (locked) { return 0; } else { - final FluidStack src = fluids.get(fluids.indexOf(pull)); + int tIndex = getFluidPosistion(pull); + if (tIndex < 0) + return 0; + FluidStack src = fluids[tIndex]; final int rec = Math.min(pull.amount, src.amount); if (doPull) { src.amount -= rec; } if (src.amount == 0) { - fluids.remove(src); + fluids[tIndex]= null; } return rec; } @@ -281,22 +373,22 @@ public class MultiFluidHandler { * @return Amount of fluid that was (or would have been, if simulated) pulled. */ public int pullFluid(FluidStack pull, int slot, boolean doPull) { - if(locked) { + if(locked || slot >= fluids.length) { return 0; } if(slot < 0 || slot >= maxDistinctFluids) { return 0; } - if(!fluids.get(slot).equals(pull)) { + FluidStack tFluid = fluids[slot]; + if(tFluid == null && tFluid.equals(pull)) { return 0; } else { - final FluidStack src = fluids.get(slot); - final int rec = Math.min(pull.amount, src.amount); + final int rec = Math.min(pull.amount, tFluid.amount); if(doPull) { - src.amount -= rec; + tFluid.amount -= rec; } - if(src.amount == 0) { - fluids.remove(src); + if(tFluid.amount == 0) { + fluids[slot] = null; } return rec; } @@ -312,12 +404,14 @@ public class MultiFluidHandler { if(locked) { return false; } - if(fluids.size() == maxDistinctFluids && !contains(push)) { + int tFluidIndex = getFluidPosistion(push); + int fluidCount = countFluids(); + if(fluidCount >= maxDistinctFluids && !contains(push)) { return false; - } else if (fluids.size() < maxDistinctFluids && !contains(push)) { + } else if (fluidCount < maxDistinctFluids && !contains(push)) { return Math.min(getCapacity(), push.amount) > 0; } else { - final int remcap = getCapacity() - fluids.get(fluids.indexOf(push)).amount; + final int remcap = getCapacity() - fluids[tFluidIndex].amount; return doVoidExcess || (Math.min(remcap, push.amount) > 0); } } -- cgit From 50d3ea937dce9394566e4d2c9cd9c5f8387923a9 Mon Sep 17 00:00:00 2001 From: botn365 <42187820+botn365@users.noreply.github.com> Date: Mon, 12 Oct 2020 15:45:41 +0200 Subject: removed unnecessary getNull --- src/main/java/kekztech/MultiFluidHandler.java | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index c82a35cd5b..2c1eb2af1c 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -260,7 +260,6 @@ public class MultiFluidHandler { // Add new fluid final int fit = Math.min(getCapacity(), push.amount); if(doPush) { - empty = getNullSlot(); if (empty == -1) return 0; else -- cgit From 0f96c7c2199c2616836c8785d57ae63bb740d1f4 Mon Sep 17 00:00:00 2001 From: Prometheus0000000 Date: Thu, 19 Nov 2020 00:00:47 -0500 Subject: Change multi tooltips to rely on GT for it instead --- .../tileentities/GTMTE_FluidMultiStorage.java | 46 +++--- .../GTMTE_LapotronicSuperCapacitor.java | 48 +++--- .../tileentities/GTMTE_ModularNuclearReactor.java | 4 +- .../common/tileentities/GTMTE_SOFuelCellMK1.java | 41 ++--- .../common/tileentities/GTMTE_SOFuelCellMK2.java | 42 ++--- .../common/tileentities/GTMTE_SpaceElevator.java | 4 +- src/main/java/util/MultiBlockTooltipBuilder.java | 179 --------------------- 7 files changed, 102 insertions(+), 262 deletions(-) delete mode 100644 src/main/java/util/MultiBlockTooltipBuilder.java (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index 894ad12415..496e7d01ff 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -9,6 +9,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.*; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Utility; import kekztech.MultiFluidHandler; import net.minecraft.block.Block; @@ -21,7 +22,6 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import org.lwjgl.input.Keyboard; -import util.MultiBlockTooltipBuilder; import util.Vector3i; import util.Vector3ic; @@ -61,28 +61,32 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { @Override public String[] getDescription() { - final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); - b.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() - .beginStructureBlock(5, 9, 5) - .addController("Top Center") - .addEnergyHatch("Any top or bottom casing") - .addOtherStructurePart("Inner 3x7x3 solid pillar", "Storage Field Blocks") - .addOtherStructurePart("Outer 5x7x5 glass shell", "IC2 Reinforced Glass") - .addMaintenanceHatch("Any top or bottom casing") - .addIOHatches("Instead of any casing or glass, have to touch storage field.") - .signAndFinalize("Kekzdealer"); + 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() + .beginStructureBlock(5, 9, 5) + .addController("Top Center") + .addOtherStructurePart("Storage Field Blocks", "Inner 3x7x3 solid pillar") + .addOtherStructurePart("IC2 Reinforced Glass", "Outer 5x7x5 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") + .toolTipFinisher("KekzTech"); if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return b.getInformation(); + return tt.getInformation(); } else { - return b.getStructureInformation(); + return tt.getStructureInformation(); } } diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index fc743a56d3..c28db33487 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -16,6 +16,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynam import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -23,7 +24,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.input.Keyboard; -import util.MultiBlockTooltipBuilder; import util.Vector3i; import util.Vector3ic; @@ -74,29 +74,33 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @Override public String[] getDescription() { - final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); - b.addInfo("Power storage structure!") - .addInfo("Looses energy equal to 1% of the total capacity every 24 hours.") - .addInfo("EXCEPTION: Ultimate Capacitors only count as Lapotronic Capacitors (UV) for the") - .addInfo("purpose of passive loss calculation. The full capacity is counted towards the actual power capacity.") - .addSeparator() - .addInfo("Glass shell has to be Tier - 2 of the highest capacitor tier") - .addInfo("UV-Tier glass required for TecTech Laser Hatches") - .addInfo("Modular height of 4 to 18 blocks.") - .addSeparator() - .beginStructureBlock(5, 4, 5) - .addController("Front Bottom Center") - .addDynamoHatch("Instead of any casing") - .addEnergyHatch("Instead of any casing") - .addOtherStructurePart("Lapotronic Capacitor Base", "5x2x5 base (at least 17x)") - .addOtherStructurePart("Lapotronic Capacitor, (Really) Ultimate Capacitor", "Center 3x(1-15)x3 above base (9-135 blocks)") - .addOtherStructurePart("Borosilicate Glass", "41-265x, Encase capacitor pillar") - .addMaintenanceHatch("Instead of any casing") - .signAndFinalize("Kekzdealer"); + final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); + tt.addMachineType("Battery Buffer") + .addInfo("Power storage structure!") + .addInfo("Loses energy equal to 1% of the total capacity every 24 hours.") + .addInfo("EXCEPTION: Ultimate Capacitors only count as Lapotronic Capacitors (UV) for the") + .addInfo("purpose of passive loss calculation. The full capacity is counted towards the actual power capacity.") + .addSeparator() + .addInfo("Glass shell has to be Tier - 2 of the highest capacitor tier") + .addInfo("UV-tier glass required for TecTech Laser Hatches") + .addInfo("Add more or better capacitors to increase capacity") + .addSeparator() + .beginStructureBlock(5, 4, 5) + .addStructureInfo("Modular height of 4-18 blocks.") + .addController("Front center bottom") + .addOtherStructurePart("Lapotronic Super Capacitor Casing", "5x2x5 base (at least 17x)") + .addOtherStructurePart("Lapotronic Capacitor (IV-UV), Ultimate Capacitor (UHV)", "Center 3x(1-15)x3 above base (9-135 blocks)") + .addOtherStructurePart("Borosilicate Glass (any)", "41-265x, Encase capacitor pillar") + .addEnergyHatch("Any casing") + .addDynamoHatch("Any casing") + .addOtherStructurePart("Laser Target/Source Hatches", "Any casing, must be using UV-tier glass") + .addStructureInfo("You can have several I/O Hstches") + .addMaintenanceHatch("Any casing") + .toolTipFinisher("KekzTech"); if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return b.getInformation(); + return tt.getInformation(); } else { - return b.getStructureInformation(); + return tt.getStructureInformation(); } } diff --git a/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java b/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java index 5e0b86ed69..531bd9dc89 100644 --- a/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java +++ b/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java @@ -47,6 +47,8 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas @Override public String[] getDescription() { + return new String[]{"Disabled"}; + /* final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); b.addInfo("Can be built, BUT DOES NOT WORK") .addInfo("Converts fissile material and outputs power or heat") @@ -75,7 +77,7 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas return b.getInformation(); } else { return b.getStructureInformation(); - } + }*/ } @Override diff --git a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java index 76536f0e50..afa434895a 100644 --- a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java +++ b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java @@ -17,6 +17,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; @@ -25,7 +26,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; -import util.MultiBlockTooltipBuilder; import util.Vector3i; import util.Vector3ic; @@ -56,26 +56,29 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { @Override public String[] getDescription() { - final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); - b.addInfo("Oxidizes gas fuels to generate electricity without polluting the environment") - .addInfo("Consumes 29,480EU worth of fuel with up to 97% 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) - .addController("Front Center") - .addDynamoHatch("Back Center") - .addOtherStructurePart("YSZ Ceramic Electrolyte Unit", "3x, Center 1x1x3") - .addOtherStructurePart("Reinforced Glass", "6x, touching the electrolyte units on the horizontal sides") - .addCasingInfo("Clean Stainless Steel Casing", 12) - .addMaintenanceHatch("Instead of any casing") - .addIOHatches("Instead of any casing") - .signAndFinalize("Kekzdealer"); + 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 29,480EU worth of fuel with up to 97% 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) + .addController("Front center") + .addCasingInfo("Clean Stainless Steel Casing", 12) + .addOtherStructurePart("YSZ Ceramic Electrolyte Unit", "3x, Center 1x1x3") + .addOtherStructurePart("Reinforced Glass", "6x, touching the electrolyte units on the horizontal sides") + .addDynamoHatch("Back center") + .addMaintenanceHatch("Any casing") + .addInputHatch("Fuel, any casing") + .addInputHatch("Oxygen, any casing") + .addOutputHatch("Steam, any casing") + .toolTipFinisher("KekzTech"); if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return b.getInformation(); + return tt.getInformation(); } else { - return b.getStructureInformation(); + return tt.getStructureInformation(); } } diff --git a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java index fb3fb7e9c7..ed61cb50a6 100644 --- a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java +++ b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java @@ -16,6 +16,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; @@ -25,7 +26,7 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; -import util.MultiBlockTooltipBuilder; + import util.Vector3i; import util.Vector3ic; @@ -56,26 +57,29 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { @Override public String[] getDescription() { - final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); - b.addInfo("Oxidizes gas fuels to generate electricity without polluting the environment") - .addInfo("Consumes 442,200EU worth of fuel with up to 97% 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) - .addController("Front Center") - .addDynamoHatch("Back Center") - .addOtherStructurePart("GDC Ceramic Electrolyte Unit", "3x, Center 1x1x3") - .addOtherStructurePart("Reinforced Glass", "6x, touching the electrolyte units on the horizontal sides") - .addCasingInfo("Robust Tungstensteel Machine Casing", 12) - .addMaintenanceHatch("Instead of any casing") - .addIOHatches("Instead of any casing") - .signAndFinalize("Kekzdealer"); + 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 442,200EU worth of fuel with up to 97% 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) + .addController("Front center") + .addCasingInfo("Robust Tungstensteel Machine Casing", 12) + .addOtherStructurePart("GDC Ceramic Electrolyte Unit", "3x, Center 1x1x3") + .addOtherStructurePart("Reinforced Glass", "6x, touching the electrolyte units on the horizontal sides") + .addDynamoHatch("Back center") + .addMaintenanceHatch("Any casing") + .addInputHatch("Fuel, any casing") + .addInputHatch("Oxygen, any casing") + .addOutputHatch("Superheated Steam, any casing") + .toolTipFinisher("KekzTech"); if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - return b.getInformation(); + return tt.getInformation(); } else { - return b.getStructureInformation(); + return tt.getStructureInformation(); } } diff --git a/src/main/java/common/tileentities/GTMTE_SpaceElevator.java b/src/main/java/common/tileentities/GTMTE_SpaceElevator.java index 24d941b39b..9c54bd6c8d 100644 --- a/src/main/java/common/tileentities/GTMTE_SpaceElevator.java +++ b/src/main/java/common/tileentities/GTMTE_SpaceElevator.java @@ -57,6 +57,8 @@ public class GTMTE_SpaceElevator extends GT_MetaTileEntity_MultiBlockBase { @Override public String[] getDescription() { + return new String[]{"Disabled"}; + /* final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); b.addInfo("Access for your Space Station!") .addInfo("Check out the wiki on my github if you are having trouble with the structure") @@ -77,7 +79,7 @@ public class GTMTE_SpaceElevator extends GT_MetaTileEntity_MultiBlockBase { return b.getInformation(); } else { return b.getStructureInformation(); - } + }*/ } @Override diff --git a/src/main/java/util/MultiBlockTooltipBuilder.java b/src/main/java/util/MultiBlockTooltipBuilder.java deleted file mode 100644 index c0573667ab..0000000000 --- a/src/main/java/util/MultiBlockTooltipBuilder.java +++ /dev/null @@ -1,179 +0,0 @@ -package util; - -import java.util.LinkedList; -import java.util.List; - -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; - -/** - * Have you ever felt like your tooltips just aren't enterprise enough? Use this! - * - * @author kekzdealer - * - */ -public class MultiBlockTooltipBuilder { - - private static final String TAB = " "; - private static final String COLON = ": "; - - private final List iLines; - private final List sLines; - - private String[] iArray; - private String[] sArray; - - // Localized keywords - private static final String KW_dimensions = StatCollector.translateToLocal("mbdesc.beginStructureBlock.Dimensions"); - private static final String KW_structure = StatCollector.translateToLocal("mbdesc.beginStructureBlock.Structure"); - private static final String KW_controller = StatCollector.translateToLocal("mbdesc.addController.Controller"); - private static final String KW_atleast = StatCollector.translateToLocal("mbdesc.addCasing.atleast"); - private static final String KW_energyhatch = StatCollector.translateToLocal("mbdesc.addEnergyHatch.EnergyHatch"); - private static final String KW_dynamohatch = StatCollector.translateToLocal("mbdesc.addDynamoHatch.DynamoHatch"); - private static final String KW_maintenancehatch = StatCollector.translateToLocal("mbdesc.addMaintenanceHatch.MaintenanceHatch"); - private static final String KW_iohatches = StatCollector.translateToLocal("mbdesc.addIOHatches.IOHatches"); - private static final String KW_inputbus = StatCollector.translateToLocal("mbdesc.addInputBus.InputBus"); - private static final String KW_inputhatch = StatCollector.translateToLocal("mbdesc.addInputHatch.InputHatch"); - private static final String KW_outputbus = StatCollector.translateToLocal("mbdesc.addOutputBus.OutputBus"); - private static final String KW_outputhatch = StatCollector.translateToLocal("mbdesc.addOutputHatch.OutputHatch"); - private static final String KW_hold = StatCollector.translateToLocal("mbdesc.signAndFinalize.Hold"); - private static final String KW_todisplay = StatCollector.translateToLocal("mbdesc.signAndFinalize.todisplay"); - private static final String KW_createdby = StatCollector.translateToLocal("mbdesc.signAndFinalize.createdby"); - - public MultiBlockTooltipBuilder() { - iLines = new LinkedList<>(); - sLines = new LinkedList<>(); - - - } - - /** - * Add a basic line of information about this structure - * - * @param info - * The line to be added. - * @return Instance this method was called on. - */ - public MultiBlockTooltipBuilder addInfo(String info) { - iLines.add(info); - return this; - } - - /** - * Add a separator line like this:
- * ------------------------------- - * - * @return Instance this method was called on. - */ - public MultiBlockTooltipBuilder addSeparator() { - iLines.add("-----------------------------------------"); - return this; - } - - /** - * Begin adding structural information by adding a line about the structure's dimensions - * and then inserting a "Structure:" line. - * - * @param w - * Structure width. - * @param h - * Structure height. - * @param l - * Structure depth/length. - * @return Instance this method was called on. - */ - public MultiBlockTooltipBuilder beginStructureBlock(int w, int h, int l) { - sLines.add(KW_dimensions + COLON + w + "x" + h + "x" + l + " (WxHxL)"); - sLines.add(KW_structure + COLON); - return this; - } - - public MultiBlockTooltipBuilder addController(String info) { - sLines.add(TAB + KW_controller + COLON + info); - return this; - } - - public MultiBlockTooltipBuilder addCasingInfo(String casingName, int minCount) { - sLines.add(TAB + minCount +"x " + casingName + " " + KW_atleast); - return this; - } - - public MultiBlockTooltipBuilder addEnergyHatch(String info) { - sLines.add(TAB + KW_energyhatch + COLON + info); - return this; - } - - public MultiBlockTooltipBuilder addDynamoHatch(String info) { - sLines.add(TAB + KW_dynamohatch + COLON + info); - return this; - } - - public MultiBlockTooltipBuilder addMaintenanceHatch(String info) { - sLines.add(TAB + KW_maintenancehatch + COLON + info); - return this; - } - - public MultiBlockTooltipBuilder addIOHatches(String info) { - sLines.add(TAB + KW_iohatches + COLON + info); - return this; - } - - public MultiBlockTooltipBuilder addInputBus(String info) { - sLines.add(TAB + KW_inputbus + COLON + info); - return this; - } - - public MultiBlockTooltipBuilder addInputHatch(String info) { - sLines.add(TAB + KW_inputhatch + COLON + info); - return this; - } - - public MultiBlockTooltipBuilder addOutputBus(String info) { - sLines.add(TAB + KW_outputbus + COLON + info); - return this; - } - - public MultiBlockTooltipBuilder addOutputHatch(String info) { - sLines.add(TAB + KW_outputhatch + COLON + info); - return this; - } - - /** - * Use this method to add a structural part that isn't covered by the builders capabilities. - * - * @param name - * Name of the hatch or other component. - * @param info - * Positional information. - * @return Instance this method was called on. - */ - public MultiBlockTooltipBuilder addOtherStructurePart(String name, String info) { - sLines.add(TAB + name + COLON + info); - return this; - } - - /** - * Call at the very end.
- * Adds a final line with the authors name and information on how to display the structure guidelines.
- * Ends the building process. - * - * @param author - * Name of the creator of this Machine - */ - public void signAndFinalize(String author) { - iLines.add(KW_hold + " " + EnumChatFormatting.BOLD + "[LSHIFT]" + EnumChatFormatting.RESET + EnumChatFormatting.GRAY + " " + KW_todisplay); - iLines.add(KW_createdby + " " + author); - iArray = new String[iLines.size()]; - sArray = new String[sLines.size()]; - iLines.toArray(iArray); - sLines.toArray(sArray); - } - - public String[] getInformation() { - return iArray; - } - - public String[] getStructureInformation() { - return sArray; - } -} -- cgit From 5f6f23ef58fc512800bae6f233cc56d8ccd5d569 Mon Sep 17 00:00:00 2001 From: Prometheus0000000 Date: Thu, 19 Nov 2020 00:04:06 -0500 Subject: Fix --- src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java | 1 - src/main/java/common/tileentities/GTMTE_SpaceElevator.java | 1 - 2 files changed, 2 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java b/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java index 531bd9dc89..e2dbfb68d7 100644 --- a/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java +++ b/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java @@ -16,7 +16,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; -import util.MultiBlockTooltipBuilder; public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBase { diff --git a/src/main/java/common/tileentities/GTMTE_SpaceElevator.java b/src/main/java/common/tileentities/GTMTE_SpaceElevator.java index 9c54bd6c8d..3469528f78 100644 --- a/src/main/java/common/tileentities/GTMTE_SpaceElevator.java +++ b/src/main/java/common/tileentities/GTMTE_SpaceElevator.java @@ -16,7 +16,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.input.Keyboard; -import util.MultiBlockTooltipBuilder; import util.Vector3i; import util.Vector3ic; -- cgit From 063fbf32820ad1571c3f7f88d7e563a3b0f2bba9 Mon Sep 17 00:00:00 2001 From: Prometheus0000000 Date: Thu, 19 Nov 2020 01:01:43 -0500 Subject: More text changes --- src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java | 5 ++++- .../java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index 496e7d01ff..c2315b00fa 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -74,7 +74,8 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { .addSeparator() .beginStructureBlock(5, 9, 5) .addController("Top Center") - .addOtherStructurePart("Storage Field Blocks", "Inner 3x7x3 solid pillar") + .addCasingInfo("T.F.F.T. Casing", 20) + .addOtherStructurePart("Storage Field Blocks (Tier I-V)", "Inner 3x7x3 solid pillar") .addOtherStructurePart("IC2 Reinforced Glass", "Outer 5x7x5 glass shell") .addMaintenanceHatch("Any top or bottom casing") .addEnergyHatch("Any top or bottom casing") @@ -82,6 +83,8 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { .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. If it's fixed.") + .addStructureInfo("Ask someone else why there's 4 versions, with 2 uncraftable ones") .toolTipFinisher("KekzTech"); if (!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { return tt.getInformation(); diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index c28db33487..11fcc27da7 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -76,10 +76,10 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock public String[] getDescription() { final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType("Battery Buffer") - .addInfo("Power storage structure!") + .addInfo("Power storage structure. Does not charge batteries or tools, however.") .addInfo("Loses energy equal to 1% of the total capacity every 24 hours.") - .addInfo("EXCEPTION: Ultimate Capacitors only count as Lapotronic Capacitors (UV) for the") - .addInfo("purpose of passive loss calculation. The full capacity is counted towards the actual power capacity.") + .addInfo("Exception: Ultimate Capacitors only count as Lapotronic Capacitors (UV) for the") + .addInfo("purposes of passive loss calculation. The full capacity is counted towards the actual power capacity.") .addSeparator() .addInfo("Glass shell has to be Tier - 2 of the highest capacitor tier") .addInfo("UV-tier glass required for TecTech Laser Hatches") @@ -94,7 +94,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock .addEnergyHatch("Any casing") .addDynamoHatch("Any casing") .addOtherStructurePart("Laser Target/Source Hatches", "Any casing, must be using UV-tier glass") - .addStructureInfo("You can have several I/O Hstches") + .addStructureInfo("You can have several I/O Hatches") .addMaintenanceHatch("Any casing") .toolTipFinisher("KekzTech"); if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { -- cgit From f1accbe5e740c60dc3a303e02ab497b3c9a5fadc Mon Sep 17 00:00:00 2001 From: Prometheus0000000 Date: Thu, 19 Nov 2020 23:21:19 -0500 Subject: Fixed build since I changed the name a little --- src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java | 2 +- src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 2 +- src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java | 2 +- src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index c2315b00fa..709d2c42bb 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -72,7 +72,7 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { .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() - .beginStructureBlock(5, 9, 5) + .beginStructureBlock(5, 9, 5, false) .addController("Top Center") .addCasingInfo("T.F.F.T. Casing", 20) .addOtherStructurePart("Storage Field Blocks (Tier I-V)", "Inner 3x7x3 solid pillar") diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 11fcc27da7..bea7ea2ec5 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -85,7 +85,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock .addInfo("UV-tier glass required for TecTech Laser Hatches") .addInfo("Add more or better capacitors to increase capacity") .addSeparator() - .beginStructureBlock(5, 4, 5) + .beginStructureBlock(5, 4, 5, false) .addStructureInfo("Modular height of 4-18 blocks.") .addController("Front center bottom") .addOtherStructurePart("Lapotronic Super Capacitor Casing", "5x2x5 base (at least 17x)") diff --git a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java index afa434895a..57beb6942f 100644 --- a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java +++ b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java @@ -64,7 +64,7 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { .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) + .beginStructureBlock(3, 3, 5, false) .addController("Front center") .addCasingInfo("Clean Stainless Steel Casing", 12) .addOtherStructurePart("YSZ Ceramic Electrolyte Unit", "3x, Center 1x1x3") diff --git a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java index ed61cb50a6..8bcb7619e5 100644 --- a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java +++ b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java @@ -65,7 +65,7 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { .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) + .beginStructureBlock(3, 3, 5, false) .addController("Front center") .addCasingInfo("Robust Tungstensteel Machine Casing", 12) .addOtherStructurePart("GDC Ceramic Electrolyte Unit", "3x, Center 1x1x3") -- cgit From bca89a3ed1c9bc4c46d318b316cd82c4837384a7 Mon Sep 17 00:00:00 2001 From: korneel vandamme Date: Tue, 15 Dec 2020 22:58:43 +0100 Subject: fix getTankInfo not geting the fluids --- src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java | 13 +++++++++++++ src/main/java/kekztech/MultiFluidHandler.java | 4 ++++ 2 files changed, 17 insertions(+) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index c8c987d7dc..408399b677 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -15,6 +15,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; import java.util.HashMap; @@ -180,6 +181,18 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { return null; } + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) { + FluidStack[] fluids = mfh.getAllFluids(); + int length = fluids.length; + int maxCapcity = mfh.getCapacity(); + FluidTankInfo[] tankInfo = new FluidTankInfo[length]; + for (int i = 0; i < length; i++) { + tankInfo[i] = new FluidTankInfo(fluids[i],maxCapcity); + } + return tankInfo; + } + @Override public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { return false; diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index 2c1eb2af1c..936ecf5042 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -92,6 +92,10 @@ public class MultiFluidHandler { return fluidSelector; } + public FluidStack[] getAllFluids() { + return fluids; + } + public int getFluidPosistion(FluidStack aFluid) { for (int i = 0; i < fluids.length; i++) -- cgit From 979129670881032a3047322b2b52a43845892431 Mon Sep 17 00:00:00 2001 From: korneel vandamme Date: Fri, 25 Dec 2020 01:31:31 +0100 Subject: fix nulpimter crash on null fluid --- src/main/java/kekztech/MultiFluidHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java index 936ecf5042..399f9faa8b 100644 --- a/src/main/java/kekztech/MultiFluidHandler.java +++ b/src/main/java/kekztech/MultiFluidHandler.java @@ -383,7 +383,7 @@ public class MultiFluidHandler { return 0; } FluidStack tFluid = fluids[slot]; - if(tFluid == null && tFluid.equals(pull)) { + if(tFluid == null || !tFluid.equals(pull)) { return 0; } else { final int rec = Math.min(pull.amount, tFluid.amount); -- cgit From e64cb8530769622e517fc6c13d91bc36fb6cb903 Mon Sep 17 00:00:00 2001 From: botn365 <42187820+botn365@users.noreply.github.com> Date: Sat, 26 Dec 2020 04:56:16 +0100 Subject: fix-getTankInfo-null fix null pointer crash on starting up server when using fluid ae to read fluids --- src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java index 408399b677..fc2579604a 100644 --- a/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java +++ b/src/main/java/common/tileentities/GTMTE_TFFTMultiHatch.java @@ -183,6 +183,8 @@ public class GTMTE_TFFTMultiHatch extends GT_MetaTileEntity_Hatch { @Override public FluidTankInfo[] getTankInfo(ForgeDirection from) { + if (mfh == null) + return null; FluidStack[] fluids = mfh.getAllFluids(); int length = fluids.length; int maxCapcity = mfh.getCapacity(); -- cgit From 091280d3b112515348044e07d9a972a9545d909f Mon Sep 17 00:00:00 2001 From: korneel vandamme Date: Wed, 10 Feb 2021 19:45:31 +0100 Subject: fix tfft voiding fluids if a restrictive hatch was empty --- .../common/tileentities/GTMTE_FluidMultiStorage.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java index 709d2c42bb..a12f4130cb 100644 --- a/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/common/tileentities/GTMTE_FluidMultiStorage.java @@ -178,22 +178,26 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { for (GT_MetaTileEntity_Hatch_Output outputHatch : super.mOutputHatches) { if (outputHatch.isFluidLocked() && outputHatch.getLockedFluidName().equals(storedFluidCopy.getUnlocalizedName())) { storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } else if (outputHatch.getFluid() != null && outputHatch.getFluid().getUnlocalizedName().equals(storedFluidCopy.getUnlocalizedName())) { + addFluidToHatch(storedFluidCopy,outputHatch); + } else if (outputHatch.getFluid() != null && outputHatch.getFluid().isFluidEqual(storedFluidCopy)) { storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount(); - } else if (outputHatch.getFluid() == null) { + addFluidToHatch(storedFluidCopy,outputHatch); + } else if (!outputHatch.isFluidLocked() && outputHatch.getFluid() == null) { storedFluidCopy.amount += outputHatch.getCapacity() - outputHatch.getFluidAmount(); + addFluidToHatch(storedFluidCopy,outputHatch); } } - // Test how much can actually be drained and drain that amount - storedFluidCopy.amount = mfh.pullFluid(storedFluidCopy, true); - // Add to output - super.addOutput(storedFluidCopy); } } return true; } + public void addFluidToHatch(FluidStack aFluid, GT_MetaTileEntity_Hatch_Output aHatch) { + aFluid.amount = mfh.pullFluid(aFluid, true); + aHatch.fill(aFluid,true); + } + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); -- cgit From bba9904e009816bb39205828d268532763ae32d8 Mon Sep 17 00:00:00 2001 From: botn365 <42187820+botn365@users.noreply.github.com> Date: Wed, 24 Feb 2021 20:41:15 +0100 Subject: fix lapo assline recipes fix the lapotronic orb block recipes in the assline that make the normal battery instead of the block form --- src/main/java/common/Recipes.java | 64 +++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 90aca7b09e..792b3e4e1f 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -439,19 +439,19 @@ public class Recipes { GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), 288000, new Object[] { - ItemList.Circuit_Board_Elite.get(1), - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.NaquadahAlloy, 64), - new Object[]{OrePrefixes.circuit.get(Materials.Master), 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), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4), - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24) + 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.Master), 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), }, new FluidStack[] { Materials.SolderingAlloy.getMolten(720) @@ -462,19 +462,19 @@ public class Recipes { GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), 288000, new Object[] { - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16L), - new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, - new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, - new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, - new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 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), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4), - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24) + 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.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, + new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 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), }, new FluidStack[] { Materials.SolderingAlloy.getMolten(2880), @@ -486,6 +486,8 @@ public class Recipes { GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3), 288000, new Object[] { + 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.Superconductor), 1}, new Object[]{OrePrefixes.circuit.get(Materials.Superconductor), 1}, @@ -496,9 +498,7 @@ public class Recipes { 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), - GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Neutronium, 4), - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Neutronium, 24) + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.NaquadahAlloy, 32) }, new FluidStack[] { Materials.SolderingAlloy.getMolten(2880), @@ -510,6 +510,8 @@ public class Recipes { GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4), 288000, 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.Bio), 1}, @@ -521,9 +523,7 @@ public class Recipes { 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.frameGt, Materials.CosmicNeutronium, 4), - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.CosmicNeutronium, 24) + ItemList.Circuit_Parts_DiodeASMD.get(64) }, new FluidStack[] { Materials.SolderingAlloy.getMolten(3760), -- cgit From d92c6f01600d15ea7844ce6a26bca967695d2fff Mon Sep 17 00:00:00 2001 From: botn365 <42187820+botn365@users.noreply.github.com> Date: Wed, 24 Feb 2021 20:44:01 +0100 Subject: fix forgoten commas --- src/main/java/common/Recipes.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 792b3e4e1f..9c100bb8e5 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -440,7 +440,7 @@ public class Recipes { new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), 288000, new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Osmiridium, 4), - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Osmiridium, 24) + 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.Master), 4}, @@ -451,7 +451,7 @@ public class Recipes { 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), + GT_OreDictUnificator.get(OrePrefixes.wireFine, Materials.Platinum, 64) }, new FluidStack[] { Materials.SolderingAlloy.getMolten(720) @@ -463,7 +463,7 @@ public class Recipes { new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), 288000, new Object[] { GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.NaquadahAlloy, 4), - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24) + GT_OreDictUnificator.get(OrePrefixes.screw, Materials.NaquadahAlloy, 24), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Europium, 16L), new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, new Object[]{OrePrefixes.circuit.get(Materials.Ultimate), 1}, @@ -474,7 +474,7 @@ public class Recipes { 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), + GT_OreDictUnificator.get(OrePrefixes.cableGt01, Materials.Naquadah, 32) }, new FluidStack[] { Materials.SolderingAlloy.getMolten(2880), -- cgit From 3fa74247ea38efc082584e5bfe398d03386b5e90 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Tue, 13 Apr 2021 10:05:22 -0400 Subject: Clean up some things Fix localization of hex tile Hide unused blocks and items Switch capacitor block icons so they match the lapo used to make them --- src/main/java/common/Blocks.java | 12 ++++++------ src/main/java/common/Recipes.java | 10 +++++----- src/main/java/common/TileEntities.java | 12 ++++++------ .../java/common/items/MetaItem_CraftingComponent.java | 8 ++++---- .../java/common/items/MetaItem_ReactorComponent.java | 2 +- src/main/java/kekztech/Items.java | 2 ++ src/main/resources/assets/kekztech/lang/en_US.lang | 2 +- .../textures/blocks/LapotronicEnergyUnit2_side.png | Bin 279 -> 280 bytes .../textures/blocks/LapotronicEnergyUnit2_top.png | Bin 295 -> 296 bytes .../textures/blocks/LapotronicEnergyUnit3_side.png | Bin 279 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit3_top.png | Bin 296 -> 295 bytes .../textures/blocks/LapotronicEnergyUnit4_side.png | Bin 280 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit4_top.png | Bin 296 -> 296 bytes 13 files changed, 25 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/main/java/common/Blocks.java b/src/main/java/common/Blocks.java index 304af71460..8c145bd634 100644 --- a/src/main/java/common/Blocks.java +++ b/src/main/java/common/Blocks.java @@ -46,7 +46,7 @@ public class Blocks { registerBlocks_SOFC(); registerBlocks_TFFT(); - registerBlocks_Nuclear(); + //registerBlocks_Nuclear(); //registerBlocks_ItemProxy(); registerBlocks_Jars(); registerBlocks_LSC(); @@ -71,7 +71,7 @@ public class Blocks { tfftMultiHatch = Block_TFFTMultiHatch.registerBlock(); } - private static void registerBlocks_Nuclear() { + /*private static void registerBlocks_Nuclear() { reactorChamberOFF = Block_ReactorChamber_OFF.registerBlock(); reactorChamberON = Block_ReactorChamber_ON.registerBlock(); reactorControlRod = Block_ControlRod.registerBlock(); @@ -81,7 +81,7 @@ public class Blocks { itemProxyCable = Block_ItemProxyCable.registerBlock(); itemProxySource = Block_ItemProxySource.registerBlock(); itemProxyEndpoint = Block_ItemProxyEndpoint.registerBlock(); - } + }*/ private static void registerBlocks_Jars() { jarThaumiumReinforced = Block_ThaumiumReinforcedJar.registerBlock(); @@ -90,14 +90,14 @@ public class Blocks { private static void registerBlocks_LSC() { lscLapotronicEnergyUnit = Block_LapotronicEnergyUnit.registerBlock(); - beamTransmitter = Block_BeamTransmitter.registerBlock(); + //beamTransmitter = Block_BeamTransmitter.registerBlock(); } - private static void registerBlocks_SpaceElevator() { + /*private static void registerBlocks_SpaceElevator() { spaceElevatorStructure = Block_SpaceElevator.registerBlock(); spaceElevatorCapacitor = Block_SpaceElevatorCapacitor.registerBlock(); spaceElevatorTether = Block_SpaceElevatorTether.registerBlock(); - } + }*/ private static void registerBlocks_Cosmetics() { largeHexPlate = Block_LargeHexPlate.registerBlock(); diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 9c100bb8e5..87b495cf1a 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -34,7 +34,7 @@ public class Recipes { registerRecipes_TFFT(); registerRecipes_SOFC(); - registerRecipes_Nuclear(); + //registerRecipes_Nuclear(); registerRecipes_Jars(); registerRecipes_LSC(); //registerRecipes_SpaceElevator(); @@ -255,7 +255,7 @@ public class Recipes { 400, 1920); } - private static void registerRecipes_Nuclear() { + /*private static void registerRecipes_Nuclear() { final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance(); @@ -331,7 +331,7 @@ public class Recipes { craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 4), craftingItem.getStackFromDamage(Items.DiamondHeatPipe.getMetaID()), null, 1200, 7680); - } + }*/ private static void registerRecipes_Jars() { @@ -569,7 +569,7 @@ public class Recipes { ); } - private static void registerRecipes_SpaceElevator() { + /*private static void registerRecipes_SpaceElevator() { // Controller final Object[] se_recipe = { "BCB", "CPC", "BCB", @@ -593,7 +593,7 @@ public class Recipes { 'C', OrePrefixes.cableGt01.get(Materials.Aluminium) }; GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.spaceElevatorStructure, 1, 1), seCoilHolder_recipe); - } + }*/ private static void registerRecipes_Cosmetics() { diff --git a/src/main/java/common/TileEntities.java b/src/main/java/common/TileEntities.java index 9bb839feda..740b985b00 100644 --- a/src/main/java/common/TileEntities.java +++ b/src/main/java/common/TileEntities.java @@ -8,7 +8,7 @@ public class TileEntities { // Multiblock controllers public static GTMTE_SOFuelCellMK1 sofc1; public static GTMTE_SOFuelCellMK2 sofc2; - public static GTMTE_ModularNuclearReactor mdr; + //public static GTMTE_ModularNuclearReactor mdr; public static GTMTE_FluidMultiStorage fms; public static GTMTE_LapotronicSuperCapacitor lsc; public static GTMTE_SpaceElevator se; @@ -19,20 +19,20 @@ public class TileEntities { public static void preInit() { GameRegistry.registerTileEntity(TE_TFFTMultiHatch.class, "kekztech_tfftmultihatch_tile"); - GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile"); - GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile"); - GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); + //GameRegistry.registerTileEntity(TE_ItemProxyCable.class, "kekztech_itemproxycable_tile"); + //GameRegistry.registerTileEntity(TE_ItemProxySource.class, "kekztech_itemproxysource_tile"); + //GameRegistry.registerTileEntity(TE_ItemProxyEndpoint.class, "kekztech_itemproxyendpoint_tile"); GameRegistry.registerTileEntity(TE_ThaumiumReinforcedJar.class, "kekztech_thaumiumreinforcedjar"); GameRegistry.registerTileEntity(TE_IchorJar.class, "kekztech_ichorjar"); //GameRegistry.registerTileEntity(TE_SpaceElevatorCapacitor.class, "kekztech_secapacitor"); - GameRegistry.registerTileEntity(TE_BeamTransmitter.class, "kekztech_beamtransmitter"); + //GameRegistry.registerTileEntity(TE_BeamTransmitter.class, "kekztech_beamtransmitter"); } public static void init() { // Multiblock controllers sofc1 = new GTMTE_SOFuelCellMK1(13101, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); sofc2 = new GTMTE_SOFuelCellMK2(13102, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); - mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); + //mdr = new GTMTE_ModularNuclearReactor(13103, "multimachine.nuclearreactor", "Nuclear Reactor"); fms = new GTMTE_FluidMultiStorage(13104, "multimachine.tf_fluidtank", "T.F.F.T"); lsc = new GTMTE_LapotronicSuperCapacitor(13106, "multimachine.supercapacitor", "Lapotronic Supercapacitor"); //se = new GTMTE_SpaceElevator(13107, "multimachine.spaceelevator", "Space Elevator"); diff --git a/src/main/java/common/items/MetaItem_CraftingComponent.java b/src/main/java/common/items/MetaItem_CraftingComponent.java index 2b1c989831..ca1c3dee7b 100644 --- a/src/main/java/common/items/MetaItem_CraftingComponent.java +++ b/src/main/java/common/items/MetaItem_CraftingComponent.java @@ -33,9 +33,9 @@ public class MetaItem_CraftingComponent extends Item { @Override public void registerIcons(IIconRegister reg) { - int counter = 0; + int counter = 9; // Raw heat pipes - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CopperHeatPipe"); + /*icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CopperHeatPipe"); icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "SilverHeatPipe"); icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideHeatPipe"); icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "DiamondHeatPipe"); @@ -45,7 +45,7 @@ public class MetaItem_CraftingComponent extends Item { icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "AmineCarbamateDust"); // Crystal icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideCrystal"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondCrystal"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondCrystal");*/ // Ceramics icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YSZCeramicDust"); icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "GDCCeramicDust"); @@ -64,7 +64,7 @@ public class MetaItem_CraftingComponent extends Item { @SuppressWarnings({"unchecked"}) @Override public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < icons.length; i++) { + for(int i = 9; i < icons.length; i++) { list.add(new ItemStack(item, 1, i)); } } diff --git a/src/main/java/common/items/MetaItem_ReactorComponent.java b/src/main/java/common/items/MetaItem_ReactorComponent.java index 705c6e8693..9d364e7585 100644 --- a/src/main/java/common/items/MetaItem_ReactorComponent.java +++ b/src/main/java/common/items/MetaItem_ReactorComponent.java @@ -37,7 +37,7 @@ public class MetaItem_ReactorComponent extends Item { super.setUnlocalizedName(unlocalizedName); super.setCreativeTab(CreativeTabs.tabMisc); super.setMaxStackSize(1); - GameRegistry.registerItem(getInstance(), unlocalizedName); + //GameRegistry.registerItem(getInstance(), unlocalizedName); } @Override diff --git a/src/main/java/kekztech/Items.java b/src/main/java/kekztech/Items.java index 59873f88a0..50e56ced00 100644 --- a/src/main/java/kekztech/Items.java +++ b/src/main/java/kekztech/Items.java @@ -9,6 +9,7 @@ import util.Util; import java.util.Arrays; public enum Items { + /* // Heat Vents T1HeatVent(0,0), T2HeatVent(1,0), T3HeatVent(2,0), T4HeatVent(3,0), T1ComponentHeatVent(4,0), T2ComponentHeatVent(5,0), T3ComponentHeatVent(6,0), T4ComponentHeatVent(7,0), @@ -36,6 +37,7 @@ public enum Items { CopperHeatPipe(0,1), SilverHeatPipe(1,1), BoronArsenideHeatPipe(2,1), DiamondHeatPipe(3,1), BoronArsenideDust(4,1), IsotopicallyPureDiamondDust(5,1), AmineCarbamiteDust(6,1), BoronArsenideCrystal(7,1), IsotopicallyPureDiamondCrystal(8,1), + */ // Ceramics YSZCeramicDust(9,1), GDCCeramicDust(10,1), YttriaDust(11,1), ZirconiaDust(12,1), CeriaDust(13,1), diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index 3f50a5ee0e..174c4863b1 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -173,7 +173,7 @@ tile.kekztech_spaceelevatorcapacitor_block.desc=The see-through is good for your tile.kekztech_spaceelevatortether_block.name=Space Elevator Tether # -------- Cosmetic Blocks -tile.kekztech_largehextile_block=Large Hex Tile +tile.kekztech_largehextile_block.name=Large Hex Tile # -------- Beam Transmitter tile.kekztech_beamtransmitter_block=Beam Transmitter diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_side.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_side.png index a8894d382e..d462a774a1 100644 Binary files a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_side.png and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_side.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_top.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_top.png index 96d56ac6a6..2f1f4299eb 100644 Binary files a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_top.png and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit2_top.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_side.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_side.png index 3827b174c0..a8894d382e 100644 Binary files a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_side.png and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_side.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_top.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_top.png index 68e03929d8..96d56ac6a6 100644 Binary files a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_top.png and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit3_top.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_side.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_side.png index d462a774a1..3827b174c0 100644 Binary files a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_side.png and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_side.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_top.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_top.png index 2f1f4299eb..68e03929d8 100644 Binary files a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_top.png and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit4_top.png differ -- cgit From 992205b07db139d19f521dc3d80b158d244ffcfb Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Thu, 15 Apr 2021 14:31:35 -0400 Subject: Add EV and empty capacitors No recipes, reused textures for now --- .../common/blocks/Block_LapotronicEnergyUnit.java | 7 ++- .../common/itemBlocks/IB_LapotronicEnergyUnit.java | 2 + .../GTMTE_LapotronicSuperCapacitor.java | 72 +++++++++++++++++++--- src/main/resources/assets/kekztech/lang/en_US.lang | 2 + 4 files changed, 73 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java index b49d287669..ad64612247 100644 --- a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java +++ b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java @@ -68,7 +68,10 @@ public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { // Multi casing par3List.add(new ItemStack(par1, 1, 0)); - // Lapo units IV - UV + // 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)); @@ -86,6 +89,8 @@ public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { 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) ? iconBaseTop : iconBaseSide;//temp + case 7: return (side < 2) ? iconLapoIVTop : iconLapoIVSide;//temp default: return iconUltimateTop; } } diff --git a/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java b/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java index 7891be8ea1..b6a8fc2468 100644 --- a/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java +++ b/src/main/java/common/itemBlocks/IB_LapotronicEnergyUnit.java @@ -39,6 +39,8 @@ public class IB_LapotronicEnergyUnit extends ItemBlock { case 3: lines.add("Capacity: 10,000,000,000 EU"); break; case 4: lines.add("Capacity: 100,000,000,000 EU"); break; case 5: lines.add("Capacity: 9,223,372,036,854,775,807 EU"); break; + case 6: lines.add("Capacity: None"); break; + case 7: lines.add("Capacity: 10,000,000 EU"); break; } } } diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index bea7ea2ec5..48c82812b9 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -51,7 +51,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock private final Set mEnergyTunnelsTT = new HashSet<>(); private final Set mDynamoTunnelsTT = new HashSet<>(); // Count the amount of capacitors of each tier in each slot (translate with meta - 1) - private final int[] capacitors = new int[5]; + private final int[] capacitors = new int[7]; private BigInteger capacity = BigInteger.ZERO; private BigInteger stored = BigInteger.ZERO; private BigInteger passiveDischargeAmount = BigInteger.ZERO; @@ -233,14 +233,28 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int meta = thisController.getMetaIDOffset(offset.x(), offset.y(), offset.z()); if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == LSC_PART && (meta > 0)) { // Add capacity - if(meta <= 4){ + /*if(meta <= 4){ final long c = (long) (100000000L * Math.pow(10, meta - 1)); tempCapacity = tempCapacity.add(BigInteger.valueOf(c)); capacity = capacity.add(BigInteger.valueOf(c)); } else if(meta <= 5){ tempCapacity = tempCapacity.add(BigInteger.valueOf((long) (100000000L * Math.pow(10, 3)))); capacity = capacity.add(MAX_LONG); + }*/ + + + + switch(meta - 1) { + case 1: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000L)); capacity = capacity.add(BigInteger.valueOf(100000000L)); break; + case 2: tempCapacity = tempCapacity.add(BigInteger.valueOf(1000000000L)); capacity = capacity.add(BigInteger.valueOf(1000000000L)); break; + case 3: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000000L)); capacity = capacity.add(BigInteger.valueOf(10000000000L)); break; + case 4: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000000L)); capacity = capacity.add(BigInteger.valueOf(100000000000L)); break; + case 5: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000000L)); capacity = capacity.add(MAX_LONG); break; + case 6: tempCapacity = tempCapacity.add(BigInteger.valueOf(0L)); capacity = capacity.add(BigInteger.valueOf(0L)); break; + case 7: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000L)); capacity = capacity.add(BigInteger.valueOf(10000000L)); break; + default: break; } + capacitors[meta - 1]++; } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameBorosilicate)){ firstGlassHeight = Y; @@ -295,10 +309,40 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int colourCorrectedMeta = firstGlassMeta > 5 ? 0 : firstGlassMeta; for(int highestCapacitor = capacitors.length - 1; highestCapacitor >= 0; highestCapacitor--){ if(capacitors[highestCapacitor] > 0){ - if(colourCorrectedMeta < highestCapacitor){ + /*if(colourCorrectedMeta < highestCapacitor){ formationChecklist = false; } - break; + break;*/ + + //if glass < cap + switch (highestCapacitor) { + case 0: + break; + case 1: + if(colourCorrectedMeta < highestCapacitor){ + formationChecklist = false; + } + break; + case 2: + if(colourCorrectedMeta < highestCapacitor){ + formationChecklist = false; + } + break; + case 3: + if(colourCorrectedMeta < highestCapacitor){ + formationChecklist = false; + } + break; + case 4: + if(colourCorrectedMeta < highestCapacitor){ + formationChecklist = false; + } + break; + case 5: + break; + case 6: + break; + } } } @@ -315,14 +359,24 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock // Calculate total capacity capacity = BigInteger.ZERO; for(int i = 0; i < capacitors.length; i++){ - if(i <= 3){ + /*if(i <= 3){ final long c = (long) (100000000L * Math.pow(10, i)); - capacity = capacity.add( - BigInteger.valueOf(c).multiply(BigInteger.valueOf(capacitors[i]))); + capacity = capacity.add(BigInteger.valueOf(c).multiply(BigInteger.valueOf(capacitors[i]))); } else { - capacity = capacity.add( - MAX_LONG.multiply(BigInteger.valueOf(capacitors[i]))); + capacity = capacity.add(MAX_LONG.multiply(BigInteger.valueOf(capacitors[i]))); + }*/ + + switch(i) { + case 0: capacity = capacity.add(BigInteger.valueOf(100000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 1: capacity = capacity.add(BigInteger.valueOf(1000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 2: capacity = capacity.add(BigInteger.valueOf(10000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 3: capacity = capacity.add(BigInteger.valueOf(100000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 4: capacity = capacity.add(MAX_LONG.multiply(BigInteger.valueOf(capacitors[i]))); break; + case 5: capacity = capacity.add(BigInteger.valueOf(0L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 6: capacity = capacity.add(BigInteger.valueOf(10000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + default: break; } + } // Calculate how much energy to void each tick passiveDischargeAmount = new BigDecimal(tempCapacity).multiply(PASSIVE_DISCHARGE_FACTOR_PER_TICK).toBigInteger(); diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index 174c4863b1..13fc831a0c 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -140,6 +140,8 @@ tile.kekztech_lapotronicenergyunit_block.2.name=Lapotronic Capacitor (LuV) tile.kekztech_lapotronicenergyunit_block.3.name=Lapotronic Capacitor (ZPM) tile.kekztech_lapotronicenergyunit_block.4.name=Lapotronic Capacitor (UV) tile.kekztech_lapotronicenergyunit_block.5.name=Ultimate Capacitor (UHV) +tile.kekztech_lapotronicenergyunit_block.6.name=Empty Capacitor (-) +tile.kekztech_lapotronicenergyunit_block.7.name=Lapotron Capacitor (EV) tile.kekztech_lapotronicenergyunit_block.desc=Part of the Lapotronic Super Capacitor # -------- Thaumium Reinforced Jar: Block -- cgit From 30d8b876408505e1f1596dbf2900e1ccf0dece37 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Fri, 16 Apr 2021 06:24:03 -0400 Subject: Add icons and recipes, and clean up spaces --- src/main/java/common/Recipes.java | 35 +++++++++++++++++++-- .../common/blocks/Block_LapotronicEnergyUnit.java | 13 ++++++-- .../GTMTE_LapotronicSuperCapacitor.java | 34 +++----------------- .../textures/blocks/LapotronicEnergyUnit6_side.png | Bin 0 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit6_top.png | Bin 0 -> 259 bytes .../textures/blocks/LapotronicEnergyUnit7_side.png | Bin 0 -> 279 bytes .../textures/blocks/LapotronicEnergyUnit7_top.png | Bin 0 -> 276 bytes 7 files changed, 48 insertions(+), 34 deletions(-) create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_top.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_side.png create mode 100644 src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_top.png (limited to 'src') diff --git a/src/main/java/common/Recipes.java b/src/main/java/common/Recipes.java index 87b495cf1a..d93b40b47f 100644 --- a/src/main/java/common/Recipes.java +++ b/src/main/java/common/Recipes.java @@ -427,6 +427,28 @@ public class Recipes { '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); + + //EV cap alt recipe + GT_Values.RA.addAssemblerRecipe(new ItemStack[] {(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6)), GT_ModHandler.getIC2Item("lapotronCrystal", 1L, GT_Values.W), GT_Utility.getIntegratedCircuit(7)}, null, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7), 200, 480); + + // IV Capacitor final Object[] lcIV_recipe = { "SLS", "LOL", "SLS", 'S', OrePrefixes.screw.get(Materials.Lapis), @@ -435,6 +457,9 @@ public class Recipes { }; GT_ModHandler.addCraftingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), lcIV_recipe); + //IV cap alt recipe + GT_Values.RA.addAssemblerRecipe(new ItemStack[] {(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6)), ItemList.Energy_LapotronicOrb.get(1L), GT_Utility.getIntegratedCircuit(1)}, null, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), 200, 1920); + // LuV Capacitor GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), 288000, @@ -458,6 +483,7 @@ public class Recipes { }, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), 2000, 100000 ); + // ZPM Capacitor GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), 288000, @@ -482,6 +508,7 @@ public class Recipes { }, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3), 2000, 100000 ); + // UV Capacitor GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 3), 288000, @@ -506,6 +533,7 @@ public class Recipes { }, new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4), 2000, 200000 ); + // Ultimate Capacitor GT_Values.RA.addAssemblylineRecipe( new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 4), 288000, @@ -534,9 +562,13 @@ public class Recipes { ); // Capacitor recycling + GT_Values.RA.addUnboxingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 7), + GT_ModHandler.getIC2Item("lapotronCrystal", 1L, 26), + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6), + 1200, 32); GT_Values.RA.addUnboxingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 1), ItemList.Energy_LapotronicOrb.get(1L), - GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Lapis, 4), + new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 6), 1200, 32); GT_Values.RA.addUnboxingRecipe(new ItemStack(Blocks.lscLapotronicEnergyUnit, 1, 2), ItemList.Energy_LapotronicOrb2.get(1L), @@ -596,7 +628,6 @@ public class Recipes { }*/ private static void registerRecipes_Cosmetics() { - // Hex Tiles final ItemStack[] hexTiles = { GT_Utility.getIntegratedCircuit(6), diff --git a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java index ad64612247..75de60a308 100644 --- a/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java +++ b/src/main/java/common/blocks/Block_LapotronicEnergyUnit.java @@ -19,6 +19,10 @@ public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { 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; @@ -50,6 +54,11 @@ public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { 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"); @@ -89,8 +98,8 @@ public class Block_LapotronicEnergyUnit extends BaseGTUpdateableBlock { 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) ? iconBaseTop : iconBaseSide;//temp - case 7: return (side < 2) ? iconLapoIVTop : iconLapoIVSide;//temp + case 6: return (side < 2) ? iconLapoEmptyTop : iconLapoEmptySide; + case 7: return (side < 2) ? iconLapoEVTop : iconLapoEVSide; default: return iconUltimateTop; } } diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 48c82812b9..aa9cdf42a1 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -233,17 +233,6 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int meta = thisController.getMetaIDOffset(offset.x(), offset.y(), offset.z()); if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == LSC_PART && (meta > 0)) { // Add capacity - /*if(meta <= 4){ - final long c = (long) (100000000L * Math.pow(10, meta - 1)); - tempCapacity = tempCapacity.add(BigInteger.valueOf(c)); - capacity = capacity.add(BigInteger.valueOf(c)); - } else if(meta <= 5){ - tempCapacity = tempCapacity.add(BigInteger.valueOf((long) (100000000L * Math.pow(10, 3)))); - capacity = capacity.add(MAX_LONG); - }*/ - - - switch(meta - 1) { case 1: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000L)); capacity = capacity.add(BigInteger.valueOf(100000000L)); break; case 2: tempCapacity = tempCapacity.add(BigInteger.valueOf(1000000000L)); capacity = capacity.add(BigInteger.valueOf(1000000000L)); break; @@ -253,8 +242,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock case 6: tempCapacity = tempCapacity.add(BigInteger.valueOf(0L)); capacity = capacity.add(BigInteger.valueOf(0L)); break; case 7: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000L)); capacity = capacity.add(BigInteger.valueOf(10000000L)); break; default: break; - } - + } capacitors[meta - 1]++; } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameBorosilicate)){ firstGlassHeight = Y; @@ -309,15 +297,9 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int colourCorrectedMeta = firstGlassMeta > 5 ? 0 : firstGlassMeta; for(int highestCapacitor = capacitors.length - 1; highestCapacitor >= 0; highestCapacitor--){ if(capacitors[highestCapacitor] > 0){ - /*if(colourCorrectedMeta < highestCapacitor){ - formationChecklist = false; - } - break;*/ - - //if glass < cap switch (highestCapacitor) { - case 0: - break; + case 0://For the empty/EV/IV caps, any BS glass works + break; case 1: if(colourCorrectedMeta < highestCapacitor){ formationChecklist = false; @@ -358,14 +340,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock // Calculate total capacity capacity = BigInteger.ZERO; - for(int i = 0; i < capacitors.length; i++){ - /*if(i <= 3){ - final long c = (long) (100000000L * Math.pow(10, i)); - capacity = capacity.add(BigInteger.valueOf(c).multiply(BigInteger.valueOf(capacitors[i]))); - } else { - capacity = capacity.add(MAX_LONG.multiply(BigInteger.valueOf(capacitors[i]))); - }*/ - + for(int i = 0; i < capacitors.length; i++){ switch(i) { case 0: capacity = capacity.add(BigInteger.valueOf(100000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; case 1: capacity = capacity.add(BigInteger.valueOf(1000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; @@ -376,7 +351,6 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock case 6: capacity = capacity.add(BigInteger.valueOf(10000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; default: break; } - } // Calculate how much energy to void each tick passiveDischargeAmount = new BigDecimal(tempCapacity).multiply(PASSIVE_DISCHARGE_FACTOR_PER_TICK).toBigInteger(); diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_side.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_side.png new file mode 100644 index 0000000000..852873db1d Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_side.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_top.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_top.png new file mode 100644 index 0000000000..c5034dfd93 Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit6_top.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_side.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_side.png new file mode 100644 index 0000000000..852873db1d Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_side.png differ diff --git a/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_top.png b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_top.png new file mode 100644 index 0000000000..06a1bd064f Binary files /dev/null and b/src/main/resources/assets/kekztech/textures/blocks/LapotronicEnergyUnit7_top.png differ -- cgit From c26fbffe39353d943ad6ab8cfca46e15dbba4e71 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Sat, 17 Apr 2021 11:33:53 -0400 Subject: Fix --- .../java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index aa9cdf42a1..a8d1f345d5 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -233,7 +233,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int meta = thisController.getMetaIDOffset(offset.x(), offset.y(), offset.z()); if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == LSC_PART && (meta > 0)) { // Add capacity - switch(meta - 1) { + switch(meta) { case 1: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000L)); capacity = capacity.add(BigInteger.valueOf(100000000L)); break; case 2: tempCapacity = tempCapacity.add(BigInteger.valueOf(1000000000L)); capacity = capacity.add(BigInteger.valueOf(1000000000L)); break; case 3: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000000L)); capacity = capacity.add(BigInteger.valueOf(10000000000L)); break; @@ -335,7 +335,6 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock } mEnergyTunnelsTT.clear(); mDynamoTunnelsTT.clear(); - } // Calculate total capacity @@ -347,7 +346,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock case 2: capacity = capacity.add(BigInteger.valueOf(10000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; case 3: capacity = capacity.add(BigInteger.valueOf(100000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; case 4: capacity = capacity.add(MAX_LONG.multiply(BigInteger.valueOf(capacitors[i]))); break; - case 5: capacity = capacity.add(BigInteger.valueOf(0L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 5: break; case 6: capacity = capacity.add(BigInteger.valueOf(10000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; default: break; } -- cgit From fab7d28390f522deb3142789c72cf6c5ad99c0aa Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Sat, 17 Apr 2021 12:17:34 -0400 Subject: Remove the other one that doesn't do anything --- src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index a8d1f345d5..1c97db12fa 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -239,7 +239,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock case 3: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000000L)); capacity = capacity.add(BigInteger.valueOf(10000000000L)); break; case 4: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000000L)); capacity = capacity.add(BigInteger.valueOf(100000000000L)); break; case 5: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000000L)); capacity = capacity.add(MAX_LONG); break; - case 6: tempCapacity = tempCapacity.add(BigInteger.valueOf(0L)); capacity = capacity.add(BigInteger.valueOf(0L)); break; + case 6: break; case 7: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000L)); capacity = capacity.add(BigInteger.valueOf(10000000L)); break; default: break; } -- cgit From 75bba0667b13089cda6e791ddcb507eb311cc755 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Sat, 17 Apr 2021 13:03:01 -0400 Subject: change switch to function --- .../GTMTE_LapotronicSuperCapacitor.java | 43 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 1c97db12fa..c7e77d9cd8 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -233,6 +233,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int meta = thisController.getMetaIDOffset(offset.x(), offset.y(), offset.z()); if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == LSC_PART && (meta > 0)) { // Add capacity + + switch(meta) { case 1: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000L)); capacity = capacity.add(BigInteger.valueOf(100000000L)); break; case 2: tempCapacity = tempCapacity.add(BigInteger.valueOf(1000000000L)); capacity = capacity.add(BigInteger.valueOf(1000000000L)); break; @@ -297,7 +299,9 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int colourCorrectedMeta = firstGlassMeta > 5 ? 0 : firstGlassMeta; for(int highestCapacitor = capacitors.length - 1; highestCapacitor >= 0; highestCapacitor--){ if(capacitors[highestCapacitor] > 0){ - switch (highestCapacitor) { + formationChecklist = checkGlassTier(colourCorrectedMeta, highestCapacitor); + + /*switch (highestCapacitor) { case 0://For the empty/EV/IV caps, any BS glass works break; case 1: @@ -324,7 +328,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock break; case 6: break; - } + }*/ + } } @@ -357,6 +362,40 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock return formationChecklist; } + public boolean checkGlassTier(int colourCorrectedMeta, int highestCapacitor) { + switch (highestCapacitor) { + case 0://For the empty/EV/IV caps, any BS glass works + break; + case 1: + if(colourCorrectedMeta < highestCapacitor){ + return false; + } + break; + case 2: + if(colourCorrectedMeta < highestCapacitor){ + return false; + } + break; + case 3: + if(colourCorrectedMeta < highestCapacitor){ + return false; + } + break; + case 4: + if(colourCorrectedMeta < highestCapacitor){ + return false; + } + break; + case 5: + break; + case 6: + break; + default: + break; + } + return true; + } + @Override public boolean addEnergyInputToMachineList(IGregTechTileEntity te, int aBaseCasingIndex) { if (te == null) { -- cgit From 4d672ab9d8efde048adbea2532e26d539ac64e87 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Sun, 18 Apr 2021 13:55:43 -0400 Subject: Revert previous and move the other 2 switches to functions They actually work right, will redo the other one when I figure out how to get it to do the structure check properly --- .../GTMTE_LapotronicSuperCapacitor.java | 72 ++++++++++++---------- 1 file changed, 40 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index c7e77d9cd8..ba3f0992de 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -233,18 +233,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int meta = thisController.getMetaIDOffset(offset.x(), offset.y(), offset.z()); if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()) == LSC_PART && (meta > 0)) { // Add capacity - - - switch(meta) { - case 1: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000L)); capacity = capacity.add(BigInteger.valueOf(100000000L)); break; - case 2: tempCapacity = tempCapacity.add(BigInteger.valueOf(1000000000L)); capacity = capacity.add(BigInteger.valueOf(1000000000L)); break; - case 3: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000000L)); capacity = capacity.add(BigInteger.valueOf(10000000000L)); break; - case 4: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000000L)); capacity = capacity.add(BigInteger.valueOf(100000000000L)); break; - case 5: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000000L)); capacity = capacity.add(MAX_LONG); break; - case 6: break; - case 7: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000L)); capacity = capacity.add(BigInteger.valueOf(10000000L)); break; - default: break; - } + tempCapacity = calculateTempCapacity(tempCapacity, meta); capacitors[meta - 1]++; } else if(thisController.getBlockOffset(offset.x(), offset.y(), offset.z()).getUnlocalizedName().equals(glassNameBorosilicate)){ firstGlassHeight = Y; @@ -299,9 +288,9 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final int colourCorrectedMeta = firstGlassMeta > 5 ? 0 : firstGlassMeta; for(int highestCapacitor = capacitors.length - 1; highestCapacitor >= 0; highestCapacitor--){ if(capacitors[highestCapacitor] > 0){ - formationChecklist = checkGlassTier(colourCorrectedMeta, highestCapacitor); - /*switch (highestCapacitor) { + + switch (highestCapacitor) { case 0://For the empty/EV/IV caps, any BS glass works break; case 1: @@ -328,7 +317,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock break; case 6: break; - }*/ + } } } @@ -343,28 +332,31 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock } // Calculate total capacity - capacity = BigInteger.ZERO; - for(int i = 0; i < capacitors.length; i++){ - switch(i) { - case 0: capacity = capacity.add(BigInteger.valueOf(100000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; - case 1: capacity = capacity.add(BigInteger.valueOf(1000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; - case 2: capacity = capacity.add(BigInteger.valueOf(10000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; - case 3: capacity = capacity.add(BigInteger.valueOf(100000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; - case 4: capacity = capacity.add(MAX_LONG.multiply(BigInteger.valueOf(capacitors[i]))); break; - case 5: break; - case 6: capacity = capacity.add(BigInteger.valueOf(10000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; - default: break; - } - } + calculateCapacity(); + // Calculate how much energy to void each tick passiveDischargeAmount = new BigDecimal(tempCapacity).multiply(PASSIVE_DISCHARGE_FACTOR_PER_TICK).toBigInteger(); passiveDischargeAmount = recalculateLossWithMaintenance(super.getRepairStatus()); return formationChecklist; } - public boolean checkGlassTier(int colourCorrectedMeta, int highestCapacitor) { + public BigInteger calculateTempCapacity(BigInteger tempCapacity, int meta) { + switch(meta) { + case 1: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000L)); capacity = capacity.add(BigInteger.valueOf(100000000L)); break; + case 2: tempCapacity = tempCapacity.add(BigInteger.valueOf(1000000000L)); capacity = capacity.add(BigInteger.valueOf(1000000000L)); break; + case 3: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000000L)); capacity = capacity.add(BigInteger.valueOf(10000000000L)); break; + case 4: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000000L)); capacity = capacity.add(BigInteger.valueOf(100000000000L)); break; + case 5: tempCapacity = tempCapacity.add(BigInteger.valueOf(100000000000L)); capacity = capacity.add(MAX_LONG); break; + case 6: break; + case 7: tempCapacity = tempCapacity.add(BigInteger.valueOf(10000000L)); capacity = capacity.add(BigInteger.valueOf(10000000L)); break; + default: break; + } + return tempCapacity; + } + + /*public boolean checkGlassTier(int colourCorrectedMeta, int highestCapacitor) { switch (highestCapacitor) { - case 0://For the empty/EV/IV caps, any BS glass works + case 0://For the empty/EV/IV caps, any BS glass works. The case is meta - 1 break; case 1: if(colourCorrectedMeta < highestCapacitor){ @@ -391,9 +383,25 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock case 6: break; default: - break; + return false; + } + return true;//if it was already true, stay true + }*/ + + public void calculateCapacity() { + capacity = BigInteger.ZERO; + for(int i = 0; i < capacitors.length; i++){ + switch(i) { + case 0: capacity = capacity.add(BigInteger.valueOf(100000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 1: capacity = capacity.add(BigInteger.valueOf(1000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 2: capacity = capacity.add(BigInteger.valueOf(10000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 3: capacity = capacity.add(BigInteger.valueOf(100000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + case 4: capacity = capacity.add(MAX_LONG.multiply(BigInteger.valueOf(capacitors[i]))); break; + case 5: break; + case 6: capacity = capacity.add(BigInteger.valueOf(10000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; + default: break; + } } - return true; } @Override -- cgit From 38db4d659e3a9dd5ce2709265f5994863c6de916 Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 18 Apr 2021 11:00:00 -0700 Subject: LSC now works with EU Detector Cover --- .../common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index bea7ea2ec5..07d99fbdb9 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -558,5 +558,16 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @Override public boolean explodesOnComponentBreak(ItemStack stack) { return false; } - + + @Override + public long maxEUStore() + { + return capacity.longValue(); + } + + @Override + public long getEUVar() + { + return stored.longValue(); + } } -- cgit From f652923c5136e04110a433f9382e3eef8ef2a743 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Mon, 19 Apr 2021 10:00:46 -0400 Subject: Get 3rd switch to work in a function --- .../GTMTE_LapotronicSuperCapacitor.java | 66 ++++++---------------- 1 file changed, 18 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index ba3f0992de..a53e56b8a9 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -200,8 +200,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock } final Vector3ic offset = rotateOffsetVector(forgeDirection, X, Y, Z); - final IGregTechTileEntity currentTE = - thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); + final IGregTechTileEntity currentTE = thisController.getIGregTechTileEntityOffset(offset.x(), offset.y(), offset.z()); // Tries to add TE as either of those kinds of hatches. // The number is the texture index number for the texture that needs to be painted over the hatch texture @@ -278,7 +277,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock } } - if(minCasingAmount > 0){ + if(minCasingAmount > 0) { formationChecklist = false; } @@ -287,38 +286,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock // Borosilicate glass after 5 are just recolours of 0 final int colourCorrectedMeta = firstGlassMeta > 5 ? 0 : firstGlassMeta; for(int highestCapacitor = capacitors.length - 1; highestCapacitor >= 0; highestCapacitor--){ - if(capacitors[highestCapacitor] > 0){ - - - switch (highestCapacitor) { - case 0://For the empty/EV/IV caps, any BS glass works - break; - case 1: - if(colourCorrectedMeta < highestCapacitor){ - formationChecklist = false; - } - break; - case 2: - if(colourCorrectedMeta < highestCapacitor){ - formationChecklist = false; - } - break; - case 3: - if(colourCorrectedMeta < highestCapacitor){ - formationChecklist = false; - } - break; - case 4: - if(colourCorrectedMeta < highestCapacitor){ - formationChecklist = false; - } - break; - case 5: - break; - case 6: - break; - } - + if(capacitors[highestCapacitor] > 0 && formationChecklist == true) { + formationChecklist = checkGlassTier(colourCorrectedMeta, highestCapacitor); } } @@ -354,28 +323,29 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock return tempCapacity; } - /*public boolean checkGlassTier(int colourCorrectedMeta, int highestCapacitor) { + public boolean checkGlassTier(int colourCorrectedMeta, int highestCapacitor) { + Boolean check = true; switch (highestCapacitor) { case 0://For the empty/EV/IV caps, any BS glass works. The case is meta - 1 break; case 1: - if(colourCorrectedMeta < highestCapacitor){ - return false; + if(colourCorrectedMeta < highestCapacitor) { + check = false; } break; case 2: - if(colourCorrectedMeta < highestCapacitor){ - return false; + if(colourCorrectedMeta < highestCapacitor) { + check = false; } break; case 3: - if(colourCorrectedMeta < highestCapacitor){ - return false; + if(colourCorrectedMeta < highestCapacitor) { + check = false; } break; case 4: - if(colourCorrectedMeta < highestCapacitor){ - return false; + if(colourCorrectedMeta < highestCapacitor) { + check = false; } break; case 5: @@ -383,14 +353,14 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock case 6: break; default: - return false; + check = false; } - return true;//if it was already true, stay true - }*/ + return check;//if it was already true, stay true + } public void calculateCapacity() { capacity = BigInteger.ZERO; - for(int i = 0; i < capacitors.length; i++){ + for(int i = 0; i < capacitors.length; i++) { switch(i) { case 0: capacity = capacity.add(BigInteger.valueOf(100000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; case 1: capacity = capacity.add(BigInteger.valueOf(1000000000L).multiply(BigInteger.valueOf(capacitors[i]))); break; -- cgit From 019d2c5c8cb9669dd19a66e54d637de83255e795 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Mon, 19 Apr 2021 11:40:01 -0400 Subject: Add check for more than 50% non-empty caps --- .../java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index a53e56b8a9..581b3de7ad 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -300,6 +300,11 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock mDynamoTunnelsTT.clear(); } + //Check if enough (more than 50%) non-empty caps + int emptyCheck = capacitors[5]/(capacitors[0] + capacitors[1] + capacitors[2] + capacitors[3] + capacitors[4] + capacitors[6]); + if (emptyCheck > 0.5) + formationChecklist = false; + // Calculate total capacity calculateCapacity(); @@ -355,7 +360,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock default: check = false; } - return check;//if it was already true, stay true + return check; //Return false if it fails the check, otherwise true } public void calculateCapacity() { -- cgit From 4a675efcd20ac1c1d858f7019b3e7b34a15d6e18 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Mon, 19 Apr 2021 11:46:07 -0400 Subject: Update TT text to reflect changes --- src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 581b3de7ad..6e5e4fbca6 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -89,7 +89,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock .addStructureInfo("Modular height of 4-18 blocks.") .addController("Front center bottom") .addOtherStructurePart("Lapotronic Super Capacitor Casing", "5x2x5 base (at least 17x)") - .addOtherStructurePart("Lapotronic Capacitor (IV-UV), Ultimate Capacitor (UHV)", "Center 3x(1-15)x3 above base (9-135 blocks)") + .addOtherStructurePart("Lapotronic Capacitor (EV-UV), Ultimate Capacitor (UHV)", "Center 3x(1-15)x3 above base (9-135 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-265x, Encase capacitor pillar") .addEnergyHatch("Any casing") .addDynamoHatch("Any casing") -- cgit From 3db66d3a7850b955868fff2ad5e628afa7c81534 Mon Sep 17 00:00:00 2001 From: Prometheus0000 Date: Thu, 29 Apr 2021 11:18:54 -0400 Subject: Change int to double to properly use fractions --- src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 6e5e4fbca6..2476b2cf87 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -302,7 +302,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock } //Check if enough (more than 50%) non-empty caps - int emptyCheck = capacitors[5]/(capacitors[0] + capacitors[1] + capacitors[2] + capacitors[3] + capacitors[4] + capacitors[6]); + double emptyCheck = ((double) capacitors[5]) / (double) (capacitors[0] + capacitors[1] + capacitors[2] + capacitors[3] + capacitors[4] + capacitors[6]); if (emptyCheck > 0.5) formationChecklist = false; -- cgit From 5deae9337f6aa8298ae587120698b2270704f24e Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 10 May 2021 16:09:29 -0700 Subject: Energy detector covers now show average EU/t in/out --- .../GTMTE_LapotronicSuperCapacitor.java | 125 ++++++++++++++++++--- 1 file changed, 107 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 0b95e5ffb2..8780692488 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -11,7 +11,6 @@ import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_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_MultiBlockBase; @@ -55,10 +54,15 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock private BigInteger capacity = BigInteger.ZERO; private BigInteger stored = BigInteger.ZERO; private BigInteger passiveDischargeAmount = BigInteger.ZERO; - private BigInteger intputLastTick = BigInteger.ZERO; + private BigInteger inputLastTick = BigInteger.ZERO; private BigInteger outputLastTick = BigInteger.ZERO; private int repairStatusCache = 0; + private long mMaxEUInput = 0; + private long mMaxEUOut = 0; + private long mMaxAmperesIn = 0; + private long mMaxAmperesOut = 0; + public GTMTE_LapotronicSuperCapacitor(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); } @@ -189,6 +193,11 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock mDynamoHatchesTT.clear(); mEnergyTunnelsTT.clear(); mDynamoTunnelsTT.clear(); + + mMaxEUInput = 0; + mMaxEUOut = 0; + mMaxAmperesIn = 0; + mMaxAmperesOut = 0; // Temp var for loss calculation BigInteger tempCapacity = BigInteger.ZERO; @@ -312,7 +321,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock // Calculate how much energy to void each tick passiveDischargeAmount = new BigDecimal(tempCapacity).multiply(PASSIVE_DISCHARGE_FACTOR_PER_TICK).toBigInteger(); passiveDischargeAmount = recalculateLossWithMaintenance(super.getRepairStatus()); - return formationChecklist; + return formationChecklist || true; } public BigInteger calculateTempCapacity(BigInteger tempCapacity, int meta) { @@ -388,15 +397,30 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final IMetaTileEntity mte = te.getMetaTileEntity(); if (mte instanceof GT_MetaTileEntity_Hatch_Energy) { // Add GT hatches - ((GT_MetaTileEntity_Hatch) mte).updateTexture(aBaseCasingIndex); - return super.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) mte); + final GT_MetaTileEntity_Hatch_Energy tHatch = ((GT_MetaTileEntity_Hatch_Energy) mte); + + tHatch.updateTexture(aBaseCasingIndex); + mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); + mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); + + return super.mEnergyHatches.add(tHatch); } else if(mte instanceof GT_MetaTileEntity_Hatch_EnergyTunnel) { // Add TT Laser hatches + final GT_MetaTileEntity_Hatch_EnergyTunnel tHatch = ((GT_MetaTileEntity_Hatch_EnergyTunnel) mte); + + mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); + mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); + return mEnergyTunnelsTT.add((GT_MetaTileEntity_Hatch_EnergyTunnel) mte); } else if(mte instanceof GT_MetaTileEntity_Hatch_EnergyMulti) { // Add TT hatches - ((GT_MetaTileEntity_Hatch) mte).updateTexture(aBaseCasingIndex); - return mEnergyHatchesTT.add((GT_MetaTileEntity_Hatch_EnergyMulti) mte); + final GT_MetaTileEntity_Hatch_EnergyMulti tHatch = (GT_MetaTileEntity_Hatch_EnergyMulti) mte; + + tHatch.updateTexture(aBaseCasingIndex); + mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); + mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); + + return mEnergyHatchesTT.add(tHatch); } else { return false; } @@ -411,15 +435,30 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final IMetaTileEntity mte = te.getMetaTileEntity(); if (mte instanceof GT_MetaTileEntity_Hatch_Dynamo) { // Add GT hatches - ((GT_MetaTileEntity_Hatch) mte).updateTexture(aBaseCasingIndex); - return super.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) mte); + final GT_MetaTileEntity_Hatch_Dynamo tDynamo = (GT_MetaTileEntity_Hatch_Dynamo) mte; + + tDynamo.updateTexture(aBaseCasingIndex); + mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); + mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); + + return super.mDynamoHatches.add(tDynamo); } else if(mte instanceof GT_MetaTileEntity_Hatch_DynamoTunnel) { // Add TT Laser hatches - return mDynamoTunnelsTT.add((GT_MetaTileEntity_Hatch_DynamoTunnel) mte); + final GT_MetaTileEntity_Hatch_DynamoTunnel tDynamo = (GT_MetaTileEntity_Hatch_DynamoTunnel) mte; + + mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); + mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); + + return mDynamoTunnelsTT.add(tDynamo); } else if(mte instanceof GT_MetaTileEntity_Hatch_DynamoMulti) { // Add TT hatches - ((GT_MetaTileEntity_Hatch) mte).updateTexture(aBaseCasingIndex); - return mDynamoHatchesTT.add((GT_MetaTileEntity_Hatch_DynamoMulti) mte); + final GT_MetaTileEntity_Hatch_DynamoMulti tDynamo = (GT_MetaTileEntity_Hatch_DynamoMulti) mte; + + tDynamo.updateTexture(aBaseCasingIndex); + mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); + mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); + + return mDynamoHatchesTT.add(tDynamo); } else { return false; } @@ -429,9 +468,11 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @Override public boolean onRunningTick(ItemStack stack){ // Reset I/O cache - intputLastTick = BigInteger.ZERO; + inputLastTick = BigInteger.ZERO; outputLastTick = BigInteger.ZERO; + //System.out.println(getBaseMetaTileEntity().) + // Draw energy from GT hatches for(GT_MetaTileEntity_Hatch_Energy eHatch : super.mEnergyHatches) { if(eHatch == null || eHatch.getBaseMetaTileEntity().isInvalidTileEntity()) { @@ -441,7 +482,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eHatch.getEUVar() >= power) { eHatch.setEUVar(eHatch.getEUVar() - power); stored = stored.add(BigInteger.valueOf(power)); - intputLastTick = intputLastTick.add(BigInteger.valueOf(power)); + inputLastTick = inputLastTick.add(BigInteger.valueOf(power)); } } // Output energy to GT hatches @@ -465,7 +506,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eHatch.getEUVar() >= power) { eHatch.setEUVar(eHatch.getEUVar() - power); stored = stored.add(BigInteger.valueOf(power)); - intputLastTick = intputLastTick.add(BigInteger.valueOf(power)); + inputLastTick = inputLastTick.add(BigInteger.valueOf(power)); } } // Output energy to TT hatches @@ -490,7 +531,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock if(eHatch.getEUVar() >= power) { eHatch.setEUVar(eHatch.getEUVar() - power); stored = stored.add(BigInteger.valueOf(power)); - intputLastTick = intputLastTick.add(BigInteger.valueOf(power)); + inputLastTick = inputLastTick.add(BigInteger.valueOf(power)); } } // Output energy to TT Laser hatches @@ -514,6 +555,11 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock stored = stored.subtract(passiveDischargeAmount); stored = (stored.compareTo(BigInteger.ZERO) <= 0) ? BigInteger.ZERO : stored; + IGregTechTileEntity tBMTE = this.getBaseMetaTileEntity(); + + tBMTE.injectEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), inputLastTick.longValue() / mMaxAmperesIn, mMaxAmperesIn); + tBMTE.drainEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), outputLastTick.longValue() / mMaxAmperesOut, mMaxAmperesOut); + return true; } @@ -554,13 +600,15 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @Override public String[] getInfoData() { + IGregTechTileEntity tBMTE = getBaseMetaTileEntity(); + final ArrayList ll = new ArrayList<>(); ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET); ll.add("Used Capacity: " + NumberFormat.getNumberInstance().format(stored) + "EU"); ll.add("Total Capacity: " + NumberFormat.getNumberInstance().format(capacity) + "EU"); ll.add("Passive Loss: " + NumberFormat.getNumberInstance().format(passiveDischargeAmount) + "EU/t"); - ll.add("EU IN: " + NumberFormat.getNumberInstance().format(intputLastTick) + "EU/t"); - ll.add("EU OUT: " + NumberFormat.getNumberInstance().format(outputLastTick) + "EU/t"); + ll.add("EU IN: " + NumberFormat.getNumberInstance().format(tBMTE.getAverageElectricInput()) + "EU/t"); + ll.add("EU OUT: " + NumberFormat.getNumberInstance().format(tBMTE.getAverageElectricOutput()) + "EU/t"); ll.add("Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus()) ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET)); @@ -609,15 +657,56 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @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() + { + return mMaxEUInput; + } + + @Override + public long maxAmperesIn() + { + return mMaxAmperesIn; + } + + @Override + public long maxEUOutput() + { + return mMaxEUOut; + } + + @Override + public long maxAmperesOut() + { + return mMaxAmperesOut; + } + + @Override + public boolean isEnetInput() + { + return true; + } + + @Override + public boolean isEnetOutput() + { + return true; + } } -- cgit From a1a1f04fb64612a1ce1aea7c337bcf67bd9d1361 Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 10 May 2021 16:18:58 -0700 Subject: forgot to remove the "|| true" on the multiblock check --- src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 8780692488..a347465a12 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -321,7 +321,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock // Calculate how much energy to void each tick passiveDischargeAmount = new BigDecimal(tempCapacity).multiply(PASSIVE_DISCHARGE_FACTOR_PER_TICK).toBigInteger(); passiveDischargeAmount = recalculateLossWithMaintenance(super.getRepairStatus()); - return formationChecklist || true; + return formationChecklist; } public BigInteger calculateTempCapacity(BigInteger tempCapacity, int meta) { -- cgit From c1ba9d8d0ffbb27f66a6a4eaf36f240baf801eeb Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 11 May 2021 09:41:02 -0700 Subject: undid change to getInfoData() --- .../GTMTE_LapotronicSuperCapacitor.java | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index a347465a12..ef602d33fb 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -400,6 +400,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final GT_MetaTileEntity_Hatch_Energy tHatch = ((GT_MetaTileEntity_Hatch_Energy) mte); tHatch.updateTexture(aBaseCasingIndex); +// mMaxEUInput += tHatch.maxEUInput(); +// mMaxAmperesIn += tHatch.maxAmperesIn(); mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); @@ -408,6 +410,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock // Add TT Laser hatches final GT_MetaTileEntity_Hatch_EnergyTunnel tHatch = ((GT_MetaTileEntity_Hatch_EnergyTunnel) mte); +// mMaxEUInput += tHatch.maxEUInput(); +// mMaxAmperesIn += tHatch.maxAmperesIn(); mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); @@ -417,6 +421,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final GT_MetaTileEntity_Hatch_EnergyMulti tHatch = (GT_MetaTileEntity_Hatch_EnergyMulti) mte; tHatch.updateTexture(aBaseCasingIndex); +// mMaxEUInput += tHatch.maxEUInput(); +// mMaxAmperesIn += tHatch.maxAmperesIn(); mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); @@ -438,6 +444,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final GT_MetaTileEntity_Hatch_Dynamo tDynamo = (GT_MetaTileEntity_Hatch_Dynamo) mte; tDynamo.updateTexture(aBaseCasingIndex); +// mMaxEUOut += tDynamo.maxEUOutput(); +// mMaxAmperesOut += tDynamo.maxAmperesOut(); mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); @@ -446,6 +454,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock // Add TT Laser hatches final GT_MetaTileEntity_Hatch_DynamoTunnel tDynamo = (GT_MetaTileEntity_Hatch_DynamoTunnel) mte; +// mMaxEUOut += tDynamo.maxEUOutput(); +// mMaxAmperesOut += tDynamo.maxAmperesOut(); mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); @@ -455,6 +465,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock final GT_MetaTileEntity_Hatch_DynamoMulti tDynamo = (GT_MetaTileEntity_Hatch_DynamoMulti) mte; tDynamo.updateTexture(aBaseCasingIndex); +// mMaxEUOut += tDynamo.maxEUOutput(); +// mMaxAmperesOut += tDynamo.maxAmperesOut(); mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); @@ -557,8 +569,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock IGregTechTileEntity tBMTE = this.getBaseMetaTileEntity(); - tBMTE.injectEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), inputLastTick.longValue() / mMaxAmperesIn, mMaxAmperesIn); - tBMTE.drainEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), outputLastTick.longValue() / mMaxAmperesOut, mMaxAmperesOut); + tBMTE.injectEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), inputLastTick.longValue(), mMaxAmperesIn); + tBMTE.drainEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), outputLastTick.longValue(), mMaxAmperesOut); return true; } @@ -600,15 +612,13 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @Override public String[] getInfoData() { - IGregTechTileEntity tBMTE = getBaseMetaTileEntity(); - final ArrayList ll = new ArrayList<>(); ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET); ll.add("Used Capacity: " + NumberFormat.getNumberInstance().format(stored) + "EU"); ll.add("Total Capacity: " + NumberFormat.getNumberInstance().format(capacity) + "EU"); ll.add("Passive Loss: " + NumberFormat.getNumberInstance().format(passiveDischargeAmount) + "EU/t"); - ll.add("EU IN: " + NumberFormat.getNumberInstance().format(tBMTE.getAverageElectricInput()) + "EU/t"); - ll.add("EU OUT: " + NumberFormat.getNumberInstance().format(tBMTE.getAverageElectricOutput()) + "EU/t"); + ll.add("EU IN: " + NumberFormat.getNumberInstance().format(inputLastTick) + "EU/t"); + ll.add("EU OUT: " + NumberFormat.getNumberInstance().format(outputLastTick) + "EU/t"); ll.add("Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus()) ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET)); -- cgit From bc9e80c28fc5ed99830c0b3bf21d48be00c60fb8 Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 11 May 2021 17:09:46 -0700 Subject: Fixed issues with injectEnergyUnits and drainEnergyUnits --- .../GTMTE_LapotronicSuperCapacitor.java | 59 +++++++--------------- 1 file changed, 18 insertions(+), 41 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index ef602d33fb..7564c41330 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -11,6 +11,7 @@ import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.MetaTileEntity; 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_MultiBlockBase; @@ -58,10 +59,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock private BigInteger outputLastTick = BigInteger.ZERO; private int repairStatusCache = 0; - private long mMaxEUInput = 0; + private long mMaxEUIn = 0; private long mMaxEUOut = 0; - private long mMaxAmperesIn = 0; - private long mMaxAmperesOut = 0; public GTMTE_LapotronicSuperCapacitor(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); @@ -194,10 +193,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock mEnergyTunnelsTT.clear(); mDynamoTunnelsTT.clear(); - mMaxEUInput = 0; + mMaxEUIn = 0; mMaxEUOut = 0; - mMaxAmperesIn = 0; - mMaxAmperesOut = 0; // Temp var for loss calculation BigInteger tempCapacity = BigInteger.ZERO; @@ -395,36 +392,26 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock return false; } else { final IMetaTileEntity mte = te.getMetaTileEntity(); + + if (mte instanceof MetaTileEntity) { + mMaxEUIn += ((MetaTileEntity) mte).maxEUInput() * ((MetaTileEntity) mte).maxAmperesIn(); + } + if (mte instanceof GT_MetaTileEntity_Hatch_Energy) { // Add GT hatches final GT_MetaTileEntity_Hatch_Energy tHatch = ((GT_MetaTileEntity_Hatch_Energy) mte); - tHatch.updateTexture(aBaseCasingIndex); -// mMaxEUInput += tHatch.maxEUInput(); -// mMaxAmperesIn += tHatch.maxAmperesIn(); - mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); - mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); return super.mEnergyHatches.add(tHatch); } else if(mte instanceof GT_MetaTileEntity_Hatch_EnergyTunnel) { // Add TT Laser hatches final GT_MetaTileEntity_Hatch_EnergyTunnel tHatch = ((GT_MetaTileEntity_Hatch_EnergyTunnel) mte); -// mMaxEUInput += tHatch.maxEUInput(); -// mMaxAmperesIn += tHatch.maxAmperesIn(); - mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); - mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); - return mEnergyTunnelsTT.add((GT_MetaTileEntity_Hatch_EnergyTunnel) mte); } else if(mte instanceof GT_MetaTileEntity_Hatch_EnergyMulti) { // Add TT hatches final GT_MetaTileEntity_Hatch_EnergyMulti tHatch = (GT_MetaTileEntity_Hatch_EnergyMulti) mte; - tHatch.updateTexture(aBaseCasingIndex); -// mMaxEUInput += tHatch.maxEUInput(); -// mMaxAmperesIn += tHatch.maxAmperesIn(); - mMaxEUInput = Math.max(mMaxEUInput, tHatch.maxEUInput()); - mMaxAmperesIn = Math.max(mMaxAmperesIn, tHatch.maxAmperesIn()); return mEnergyHatchesTT.add(tHatch); } else { @@ -439,36 +426,26 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock return false; } else { final IMetaTileEntity mte = te.getMetaTileEntity(); + + if (mte instanceof MetaTileEntity) { + mMaxEUOut += ((MetaTileEntity) mte).maxEUOutput() * ((MetaTileEntity) mte).maxAmperesOut(); + } + if (mte instanceof GT_MetaTileEntity_Hatch_Dynamo) { // Add GT hatches final GT_MetaTileEntity_Hatch_Dynamo tDynamo = (GT_MetaTileEntity_Hatch_Dynamo) mte; - tDynamo.updateTexture(aBaseCasingIndex); -// mMaxEUOut += tDynamo.maxEUOutput(); -// mMaxAmperesOut += tDynamo.maxAmperesOut(); - mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); - mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); return super.mDynamoHatches.add(tDynamo); } else if(mte instanceof GT_MetaTileEntity_Hatch_DynamoTunnel) { // Add TT Laser hatches final GT_MetaTileEntity_Hatch_DynamoTunnel tDynamo = (GT_MetaTileEntity_Hatch_DynamoTunnel) mte; -// mMaxEUOut += tDynamo.maxEUOutput(); -// mMaxAmperesOut += tDynamo.maxAmperesOut(); - mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); - mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); - return mDynamoTunnelsTT.add(tDynamo); } else if(mte instanceof GT_MetaTileEntity_Hatch_DynamoMulti) { // Add TT hatches final GT_MetaTileEntity_Hatch_DynamoMulti tDynamo = (GT_MetaTileEntity_Hatch_DynamoMulti) mte; - tDynamo.updateTexture(aBaseCasingIndex); -// mMaxEUOut += tDynamo.maxEUOutput(); -// mMaxAmperesOut += tDynamo.maxAmperesOut(); - mMaxEUOut = Math.max(mMaxEUOut, tDynamo.maxEUOutput()); - mMaxAmperesOut = Math.max(mMaxAmperesOut, tDynamo.maxAmperesOut()); return mDynamoHatchesTT.add(tDynamo); } else { @@ -569,8 +546,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock IGregTechTileEntity tBMTE = this.getBaseMetaTileEntity(); - tBMTE.injectEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), inputLastTick.longValue(), mMaxAmperesIn); - tBMTE.drainEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), outputLastTick.longValue(), mMaxAmperesOut); + tBMTE.injectEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), inputLastTick.longValue(), 1L); + tBMTE.drainEnergyUnits((byte)ForgeDirection.UNKNOWN.ordinal(), outputLastTick.longValue(), 1L); return true; } @@ -687,13 +664,13 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @Override public long maxEUInput() { - return mMaxEUInput; + return mMaxEUIn; } @Override public long maxAmperesIn() { - return mMaxAmperesIn; + return 1L; } @Override @@ -705,7 +682,7 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @Override public long maxAmperesOut() { - return mMaxAmperesOut; + return 1L; } @Override -- cgit From 0be154affc19fe05f35868d20e608607ce770658 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 12 May 2021 17:03:21 -0700 Subject: Average EU/t in/out added to getInfoData() --- src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 7564c41330..b3d2c9fea3 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -589,6 +589,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock @Override public String[] getInfoData() { + final IGregTechTileEntity tGTTE = getBaseMetaTileEntity(); + final ArrayList ll = new ArrayList<>(); ll.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET); ll.add("Used Capacity: " + NumberFormat.getNumberInstance().format(stored) + "EU"); @@ -596,6 +598,8 @@ public class GTMTE_LapotronicSuperCapacitor extends GT_MetaTileEntity_MultiBlock ll.add("Passive Loss: " + NumberFormat.getNumberInstance().format(passiveDischargeAmount) + "EU/t"); ll.add("EU IN: " + NumberFormat.getNumberInstance().format(inputLastTick) + "EU/t"); ll.add("EU OUT: " + NumberFormat.getNumberInstance().format(outputLastTick) + "EU/t"); + ll.add("Avg EU IN: " + NumberFormat.getNumberInstance().format(tGTTE.getAverageElectricInput())); + ll.add("Avg EU OUT: " + NumberFormat.getNumberInstance().format(tGTTE.getAverageElectricOutput())); ll.add("Maintenance Status: " + ((super.getRepairStatus() == super.getIdealStatus()) ? EnumChatFormatting.GREEN + "Working perfectly" + EnumChatFormatting.RESET : EnumChatFormatting.RED + "Has Problems" + EnumChatFormatting.RESET)); -- cgit From b5138167786059aeac3c6af875bbc9beaaca8eab Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Sat, 22 May 2021 21:34:43 +0200 Subject: fix(texture): remove use of deprecated CASING_BLOCKS --- src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java | 4 ++-- src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java | 4 ++-- src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java b/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java index e2dbfb68d7..ec720b9354 100644 --- a/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java +++ b/src/main/java/common/tileentities/GTMTE_ModularNuclearReactor.java @@ -83,11 +83,11 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) { return aSide == aFacing - ? new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID], + ? new ITexture[]{Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID), new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER)} - : new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]}; + : new ITexture[]{Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID)}; } // TODO: Opening UI crashes server. Controller isn't craftable right now. diff --git a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java index 57beb6942f..0bc05927aa 100644 --- a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java +++ b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK1.java @@ -86,11 +86,11 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) { return aSide == aFacing - ? new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID], + ? new ITexture[]{Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID), new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER)} - : new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]}; + : new ITexture[]{Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID)}; } public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { diff --git a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java index 8bcb7619e5..a015887350 100644 --- a/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java +++ b/src/main/java/common/tileentities/GTMTE_SOFuelCellMK2.java @@ -87,11 +87,11 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) { return aSide == aFacing - ? new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID], + ? new ITexture[]{Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID), new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER)} - : new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]}; + : new ITexture[]{Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID)}; } public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { -- cgit