From 56d7f408a6fa7fe10bd243d6cb7bf175d00d3174 Mon Sep 17 00:00:00 2001 From: DianeXD <64360468+DianeXD@users.noreply.github.com> Date: Wed, 27 Jul 2022 18:21:47 +0800 Subject: Some LES bug fixes (#57) * Add mod check to prevent unexpected crash * Fix wrong NBTbase type * Fix some missing Essentia * Change incorrect text * careless * Use the correct random function --- .../blocks/tileEntity/EssentiaOutputHatch.java | 2 +- .../blocks/tileEntity/LargeEssentiaSmeltery.java | 5 +- .../java/goodgenerator/crossmod/LoadedList.java | 2 + .../crossmod/thaumcraft/Research.java | 90 +++++++++++----------- .../resources/assets/goodgenerator/lang/en_US.lang | 2 +- 5 files changed, 53 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/main/java/goodgenerator/blocks/tileEntity/EssentiaOutputHatch.java b/src/main/java/goodgenerator/blocks/tileEntity/EssentiaOutputHatch.java index b3f3f51aff..ba87a66af0 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/EssentiaOutputHatch.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/EssentiaOutputHatch.java @@ -30,7 +30,7 @@ public class EssentiaOutputHatch extends TileThaumcraft implements IAspectContai public void readFromNBT(NBTTagCompound nbttagcompound) { super.readFromNBT(nbttagcompound); this.mAspects.aspects.clear(); - NBTTagList tlist = nbttagcompound.getTagList("Aspects", 69); + NBTTagList tlist = nbttagcompound.getTagList("Aspects", 10); for (int j = 0; j < tlist.tagCount(); ++j) { NBTTagCompound rs = tlist.getCompoundTagAt(j); if (rs.hasKey("key")) mAspects.add(Aspect.getAspect(rs.getString("key")), rs.getInteger("amount")); diff --git a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java index ddf48a63ed..cfb2d0afc6 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/LargeEssentiaSmeltery.java @@ -327,6 +327,7 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa private AspectList getEssentia(ItemStack itemStack, int amount) { AspectList aspectList = new AspectList(); AspectList aspects = ThaumcraftCraftingManager.getObjectTags(itemStack); + aspects = ThaumcraftCraftingManager.getBonusTags(itemStack, aspects); if (aspects != null && aspects.size() != 0 && aspects.getAspects()[0] != null) { for (int i = 0; i < amount; i++) aspectList.add(aspects); } else aspectList.add(Aspect.ENTROPY, amount); @@ -385,7 +386,7 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa this.nodeIncrease = aNBT.getInteger("nodeIncrease"); this.mOutputAspects.aspects.clear(); - NBTTagList tlist = aNBT.getTagList("Aspects", 69); + NBTTagList tlist = aNBT.getTagList("Aspects", 10); for (int j = 0; j < tlist.tagCount(); ++j) { NBTTagCompound rs = tlist.getCompoundTagAt(j); if (rs.hasKey("key")) @@ -444,7 +445,7 @@ public class LargeEssentiaSmeltery extends GT_MetaTileEntity_TooltipMultiBlockBa if (xstr.nextInt(100) < Math.max(100 - this.nodePurificationEfficiency, 0)) { final World WORLD = this.getBaseMetaTileEntity().getWorld(); GT_MetaTileEntity_Hatch_Muffler mufflerHatch = - this.mMufflerHatches.get(xstr.next(this.mMufflerHatches.size())); + this.mMufflerHatches.get(xstr.nextInt(this.mMufflerHatches.size())); int x = mufflerHatch.getBaseMetaTileEntity().getXCoord(); int y = mufflerHatch.getBaseMetaTileEntity().getYCoord(); int z = mufflerHatch.getBaseMetaTileEntity().getZCoord(); diff --git a/src/main/java/goodgenerator/crossmod/LoadedList.java b/src/main/java/goodgenerator/crossmod/LoadedList.java index 0079e60dcd..13e0ca38f5 100644 --- a/src/main/java/goodgenerator/crossmod/LoadedList.java +++ b/src/main/java/goodgenerator/crossmod/LoadedList.java @@ -12,6 +12,7 @@ public class LoadedList { public static boolean THAUMIC_TINKERER; public static boolean AUTOMAGY; public static boolean WITCHING_GADGETS; + public static boolean THAUMIC_ENERGISTICS; public static void init() { GTPP = Loader.isModLoaded("miscutils"); @@ -22,5 +23,6 @@ public class LoadedList { THAUMIC_TINKERER = Loader.isModLoaded("ThaumicTinkerer"); AUTOMAGY = Loader.isModLoaded("Automagy"); WITCHING_GADGETS = Loader.isModLoaded("WitchingGadgets"); + THAUMIC_ENERGISTICS = Loader.isModLoaded("thaumicenergistics"); } } diff --git a/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java b/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java index 3055db0e74..4a6de90abe 100644 --- a/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java +++ b/src/main/java/goodgenerator/crossmod/thaumcraft/Research.java @@ -728,49 +728,51 @@ public class Research { thauminiteBlock) }); - ItemStack essentiaPump = LoadedList.WITCHING_GADGETS - ? GT_ModHandler.getModItem("WitchingGadgets", "WG_MetalDevice", 1, 0) - : new ItemStack(ConfigBlocks.blockTube, 1, 4); - ItemStack inter = LoadedList.THAUMIC_TINKERER - ? GT_ModHandler.getModItem("ThaumicTinkerer", "interface", 1, 0) - : new ItemStack(ConfigItems.itemResource, 1, 15); - GregTech_API.sThaumcraftCompat.addResearch( - "ESSENTIA_OUTPUT_HATCH_ME", - "Essentia Output Hatch (ME)", - "It must exist.", - new String[] {"INFUSION"}, - "ARTIFICE", - ItemRefer.Essentia_Output_Hatch_ME.get(1), - 3, - 0, - -15, - 3, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 10), - new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 10), - new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 10), - new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 10), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10)), - null, - new Object[] { - "research.ESSENTIA_OUTPUT_HATCH_ME.page.0", - GregTech_API.sThaumcraftCompat.addInfusionRecipe( - "ESSENTIA_OUTPUT_HATCH_ME", - ItemRefer.Essentia_Output_Hatch.get(1), - new ItemStack[] { - GT_ModHandler.getModItem( - "thaumicenergistics", "thaumicenergistics.block.essentia.provider", 1), - new ItemStack(ConfigBlocks.blockEssentiaReservoir, 1, 0), - essentiaPump, - inter, - }, - ItemRefer.Essentia_Output_Hatch_ME.get(1), - 8, - Arrays.asList( - new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 256), - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256), - new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 256), - new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 256))) - }); + if (LoadedList.THAUMIC_ENERGISTICS) { + ItemStack essentiaPump = LoadedList.WITCHING_GADGETS + ? GT_ModHandler.getModItem("WitchingGadgets", "WG_MetalDevice", 1, 0) + : new ItemStack(ConfigBlocks.blockTube, 1, 4); + ItemStack inter = LoadedList.THAUMIC_TINKERER + ? GT_ModHandler.getModItem("ThaumicTinkerer", "interface", 1, 0) + : new ItemStack(ConfigItems.itemResource, 1, 15); + GregTech_API.sThaumcraftCompat.addResearch( + "ESSENTIA_OUTPUT_HATCH_ME", + "Essentia Output Hatch (ME)", + "It must exist.", + new String[] {"INFUSION"}, + "ARTIFICE", + ItemRefer.Essentia_Output_Hatch_ME.get(1), + 3, + 0, + -15, + 3, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 10), + new TC_Aspects.TC_AspectStack(TC_Aspects.VINCULUM, 10), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 10), + new TC_Aspects.TC_AspectStack(TC_Aspects.VACUOS, 10), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERMUTATIO, 10)), + null, + new Object[] { + "research.ESSENTIA_OUTPUT_HATCH_ME.page.0", + GregTech_API.sThaumcraftCompat.addInfusionRecipe( + "ESSENTIA_OUTPUT_HATCH_ME", + ItemRefer.Essentia_Output_Hatch.get(1), + new ItemStack[] { + GT_ModHandler.getModItem( + "thaumicenergistics", "thaumicenergistics.block.essentia.provider", 1), + new ItemStack(ConfigBlocks.blockEssentiaReservoir, 1, 0), + essentiaPump, + inter, + }, + ItemRefer.Essentia_Output_Hatch_ME.get(1), + 8, + Arrays.asList( + new TC_Aspects.TC_AspectStack(TC_Aspects.POTENTIA, 256), + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 256), + new TC_Aspects.TC_AspectStack(TC_Aspects.ALIENIS, 256), + new TC_Aspects.TC_AspectStack(TC_Aspects.STRONTIO, 256))) + }); + } } } diff --git a/src/main/resources/assets/goodgenerator/lang/en_US.lang b/src/main/resources/assets/goodgenerator/lang/en_US.lang index 62c4704a4d..e5d0b72ca6 100644 --- a/src/main/resources/assets/goodgenerator/lang/en_US.lang +++ b/src/main/resources/assets/goodgenerator/lang/en_US.lang @@ -489,7 +489,7 @@ research.ESSENTIA_UPGRADE_RADIATION.page.1=Acceptable Aspects:

Radio: 238 research.ESSENTIA_UPGRADE_RADIATION.page.2=Optional Liquid:

Molten Caesium: Efficiency:x2.0

Molten Uranium-235: Efficiency:x3.0

Molten Naquadah: Efficiency:x4.0

Molten Atomic Separation Catalyst: Efficiency:x16.0 research.ESSENTIA_UPGRADE_ELECTRIC.page.0=The ELECTRUM Essentia itself represents electricity!

The higher the voltage of the generator dynamo hatch, the more ELECTRUM will be affected by potential difference and increase the amount of energy. research.ESSENTIA_UPGRADE_ELECTRIC.page.1=Acceptable Aspects: Electrum

The formula to calculate its power:
8x(3.0^Dynamo Hatch Tier)EU -research.ESSENTIA_SMELTERY.page.0=The Advanced Alchemical Furnace is no longer enough to support your Essentia production...

The LES(Large Elemental Smelter) is an advanced version of the Advanced Alchemical Furnace, which consumes electricity and cent-vis to smelt Essentia. +research.ESSENTIA_SMELTERY.page.0=The Advanced Alchemical Furnace is no longer enough to support your Essentia production...

The LES(Large Essentia Smeltery) is an advanced version of the Advanced Alchemical Furnace, which consumes electricity and cent-vis to smelt Essentia. research.ESSENTIA_SMELTERY.page.1=Ignis and Aqua are the basic conditions for the operation of LES. The minimum demand is about the highest Energy Hatch tier^2*1.15cv/work, and the machine can run only after it is satisfied.

Ordo affects the pollution and the generation of Flux Gas (randomly exhaust Flux Gas at the facing of the muffler when smelting Essentia).

Perditio can speed up machine work, up to 200% (100cv/5t). research.ESSENTIA_SMELTERY.page.2=The Essentia Diffusion Cell tier and structure size only affect the machine parallel, and the max parallel is 64x.

Items without Essentia will be smelted to 1 point of perditio. research.ESSENTIA_OUTPUT_HATCH_ME.page.0=Someday you will use it...

Be sure to connect to the network. It has no cache! -- cgit