From 8151e37d1a8be2a2cffe966359c5bbe40667400a Mon Sep 17 00:00:00 2001 From: Volence <32358820+Volence@users.noreply.github.com> Date: Fri, 6 Sep 2024 23:18:39 -0400 Subject: [PATCH 1/3] Fix overlapped IDs for sounds and add two new sounds (#3093) Co-authored-by: boubou19 --- .../gregtech/api/enums/SoundResource.java | 13 ++++++++----- .../machines/multi/MTEMultiAutoclave.java | 10 ++++++++++ .../machines/multi/MTEMultiLathe.java | 10 ++++++++++ .../resources/assets/gregtech/sounds.json | 18 ++++++++++++++++++ .../gregtech/sounds/MultiAutoclaveLoop.ogg | Bin 0 -> 71606 bytes .../assets/gregtech/sounds/MultiLatheLoop.ogg | Bin 0 -> 195967 bytes 6 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/gregtech/sounds/MultiAutoclaveLoop.ogg create mode 100644 src/main/resources/assets/gregtech/sounds/MultiLatheLoop.ogg diff --git a/src/main/java/gregtech/api/enums/SoundResource.java b/src/main/java/gregtech/api/enums/SoundResource.java index e2a6b2630a0..edd8e5c6a34 100644 --- a/src/main/java/gregtech/api/enums/SoundResource.java +++ b/src/main/java/gregtech/api/enums/SoundResource.java @@ -65,11 +65,14 @@ public enum SoundResource { GT_MACHINES_WATER_PUMP_LOOP(234, GregTech.ID, "machines.WaterPumpLoop"), GT_MACHINES_STEAM_CENTRIFUGE_LOOP(235, GregTech.ID, "machines.SteamCentrifugeLoop"), - GT_MACHINES_PURIFICATIONPLANT_LOOP(233, GregTech.ID, "machines.PurificationPlantLoop"), - GT_MACHINES_PURIFICATION_PH_LOOP(234, GregTech.ID, "machines.PurificationPhLoop"), - GT_MACHINES_COAGULATION_LOOP(235, GregTech.ID, "machines.PurificationCoagulationLoop"), - GT_MACHINES_OZONATION_LOOP(236, GregTech.ID, "machines.PurificationOzonationLoop"), - GT_MACHINES_PURIFICATION_PLASMA_LOOP(237, "machines.PurificationPlasmaLoop"), + GT_MACHINES_PURIFICATIONPLANT_LOOP(236, GregTech.ID, "machines.PurificationPlantLoop"), + GT_MACHINES_PURIFICATION_PH_LOOP(237, GregTech.ID, "machines.PurificationPhLoop"), + GT_MACHINES_COAGULATION_LOOP(238, GregTech.ID, "machines.PurificationCoagulationLoop"), + GT_MACHINES_OZONATION_LOOP(239, GregTech.ID, "machines.PurificationOzonationLoop"), + GT_MACHINES_PURIFICATION_PLASMA_LOOP(240, "machines.PurificationPlasmaLoop"), + + GT_MACHINES_MULTI_LATHE_LOOP(241, GregTech.ID, "machines.MultiLatheLoop"), + GT_MACHINES_MULTI_AUTOCLAVE_LOOP(242, GregTech.ID, "machines.MultiAutoclaveLoop"), GUI_BUTTON_DOWN(-1, GregTech.ID, "gui.buttonDown"), GUI_BUTTON_UP(-1, GregTech.ID, "gui.buttonUp"), diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiAutoclave.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiAutoclave.java index 65d4bc93d37..9dcb7d0ca77 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiAutoclave.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiAutoclave.java @@ -32,6 +32,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -44,9 +45,12 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTechAPI; import gregtech.api.enums.HeatingCoilLevel; import gregtech.api.enums.Materials; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -289,6 +293,12 @@ public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBu return build; } + @SideOnly(Side.CLIENT) + @Override + protected ResourceLocation getActivitySoundLoop() { + return SoundResource.GT_MACHINES_MULTI_AUTOCLAVE_LOOP.resourceLocation; + } + @Override public boolean isCorrectMachinePart(ItemStack aStack) { return true; diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiLathe.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiLathe.java index 3b01d0ec1e1..5beda2d038a 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiLathe.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiLathe.java @@ -25,6 +25,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -37,7 +38,10 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTechAPI; +import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -265,6 +269,12 @@ public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBu return build; } + @SideOnly(Side.CLIENT) + @Override + protected ResourceLocation getActivitySoundLoop() { + return SoundResource.GT_MACHINES_MULTI_LATHE_LOOP.resourceLocation; + } + private int mCasingAmount; private void onCasingAdded() { diff --git a/src/main/resources/assets/gregtech/sounds.json b/src/main/resources/assets/gregtech/sounds.json index 2d33d116da2..c8ea3bc8eea 100644 --- a/src/main/resources/assets/gregtech/sounds.json +++ b/src/main/resources/assets/gregtech/sounds.json @@ -123,5 +123,23 @@ "stream": false } ] + }, + "machines.MultiLatheLoop": { + "category": "block", + "sounds": [ + { + "name": "MultiLatheLoop", + "stream": false + } + ] + }, + "machines.MultiAutoclaveLoop": { + "category": "block", + "sounds": [ + { + "name": "MultiAutoclaveLoop", + "stream": false + } + ] } } diff --git a/src/main/resources/assets/gregtech/sounds/MultiAutoclaveLoop.ogg b/src/main/resources/assets/gregtech/sounds/MultiAutoclaveLoop.ogg new file mode 100644 index 0000000000000000000000000000000000000000..035b7c94f818d7b52a86f794cf0e0e7bd29bfff7 GIT binary patch literal 71606 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 z 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�Es)z=kiIMR5f% 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�TIth8 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 literal 0 HcmV?d00001 From ba7a419aacf0b0eb33afbde5663640a0908b77ce Mon Sep 17 00:00:00 2001 From: TheEpicGamer274 <102255081+TheEpicGamer274@users.noreply.github.com> Date: Fri, 6 Sep 2024 23:27:33 -0400 Subject: [PATCH 2/3] Fluid solidifer multiblock balance and cleanup (#3094) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: boubou19 --- .../machines/multi/MTEMultiSolidifier.java | 324 +++--------------- 1 file changed, 42 insertions(+), 282 deletions(-) diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java index 471815f1f97..d77c6a9e53e 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEMultiSolidifier.java @@ -1,10 +1,6 @@ package gregtech.common.tileentities.machines.multi; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlocksTiered; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.withChannel; +import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; import static gregtech.api.enums.GTValues.AuthorFourIsTheNumber; import static gregtech.api.enums.GTValues.AuthorOmdaCZ; import static gregtech.api.enums.GTValues.authorBaps; @@ -17,48 +13,34 @@ import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_CANNER_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_CANNER_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_FRONT_MULTI_CANNER_GLOW; -import static gregtech.api.util.GTUtility.filterValidMTEs; +import static gregtech.api.util.GTStructureUtility.buildHatchAdder; import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import net.minecraft.block.Block; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; -import org.apache.commons.lang3.tuple.Pair; import org.jetbrains.annotations.NotNull; -import com.google.common.collect.ImmutableList; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import bartworks.API.BorosilicateGlass; import gregtech.api.GregTechAPI; import gregtech.api.enums.Textures; +import gregtech.api.enums.VoltageIndex; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; -import gregtech.api.metatileentity.GregTechTileClientEvents; -import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.MTEExtendedPowerMultiBlockBase; -import gregtech.api.metatileentity.implementations.MTEHatch; -import gregtech.api.metatileentity.implementations.MTEHatchEnergy; import gregtech.api.metatileentity.implementations.MTEHatchInput; import gregtech.api.metatileentity.implementations.MTEHatchInputBus; -import gregtech.api.metatileentity.implementations.MTEHatchMaintenance; -import gregtech.api.metatileentity.implementations.MTEHatchMuffler; -import gregtech.api.metatileentity.implementations.MTEHatchOutput; -import gregtech.api.metatileentity.implementations.MTEHatchOutputBus; -import gregtech.api.multitileentity.multiblock.casing.Glasses; import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.recipe.check.CheckRecipeResult; @@ -66,18 +48,14 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; -import gregtech.api.util.HatchElementBuilder; import gregtech.api.util.MultiblockTooltipBuilder; -import gregtech.common.blocks.BlockCasings1; import gregtech.common.blocks.BlockCasings10; import gregtech.common.tileentities.machines.IDualInputHatch; import gregtech.common.tileentities.machines.IDualInputInventory; import gregtech.common.tileentities.machines.MTEHatchCraftingInputME; -import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchSolidifier; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; -import tectech.thing.metaTileEntity.hatch.MTEHatchEnergyMulti; public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase implements ISurvivalConstructable { @@ -86,46 +64,7 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase> tieredFluidSolidifierCasings = new HashMap<>() { - - { - // Solidifier Casing - put(13, Pair.of(GregTechAPI.sBlockCasings10, 0)); - // Laurenium Casing - put(2, Pair.of(ModBlocks.blockCustomMachineCasings, 1)); - // Dimensionally Transcendent Casing - put(12, Pair.of(GregTechAPI.sBlockCasings1, 2)); - - } - }; - - private final Map> tieredPipeCasings = new HashMap<>() { - - { - // Solidifier Radiator - put(14, Pair.of(GregTechAPI.sBlockCasings10, 0)); - // Cinobite Pipe Casing - put(13, Pair.of(ModBlocks.blockCustomPipeGearCasings, 1)); - // Abyssal Pipe Casing - put(15, Pair.of(ModBlocks.blockCustomPipeGearCasings, 2)); - - } - }; - - private final List casingIndices = new ArrayList<>( - Arrays.asList(SOLIDIFIER_CASING_INDEX, 84, DTPF_CASING_INDEX)); + private byte glassTier = 0; private final String STRUCTURE_PIECE_MAIN = "main"; private final IStructureDefinition STRUCTURE_DEFINITION = StructureDefinition @@ -153,53 +92,21 @@ public class MTEMultiSolidifier extends MTEExtendedPowerMultiBlockBase te.glassTier = t, te -> te.glassTier)) .addElement( 'B', - HatchElementBuilder.builder() - .atLeast(InputBus, OutputBus, Maintenance, Energy, InputHatch) - .adder(MTEMultiSolidifier::addToSolidifierList) - .casingIndex(SOLIDIFIER_CASING_INDEX) + buildHatchAdder(MTEMultiSolidifier.class).atLeast(InputBus, InputHatch, OutputBus, Maintenance, Energy) + .casingIndex(((BlockCasings10) GregTechAPI.sBlockCasings10).getTextureIndex(13)) .dot(1) .buildAndChain( - withChannel( - "casing", - onElementPass( - x -> x.casingAmount++, - ofBlocksTiered( - this::casingTierExtractor, - ImmutableList.of( - Pair.of(GregTechAPI.sBlockCasings10, 13), - Pair.of(ModBlocks.blockCustomMachineCasings, 2), - Pair.of(GregTechAPI.sBlockCasings1, 12)), - -1, - MTEMultiSolidifier::setCasingTier, - MTEMultiSolidifier::getCasingTier))))) - .addElement( - 'C', - onElementPass( - x -> x.pipeCasingAmount++, - ofBlocksTiered( - this::pipeTierExtractor, - ImmutableList.of( - Pair.of(GregTechAPI.sBlockCasings10, 14), - Pair.of(ModBlocks.blockCustomPipeGearCasings, 13), - Pair.of(ModBlocks.blockCustomPipeGearCasings, 15)), - -1, - MTEMultiSolidifier::setPipeCasingTier, - MTEMultiSolidifier::getPipeCasingTier))) + onElementPass(MTEMultiSolidifier::onCasingAdded, ofBlock(GregTechAPI.sBlockCasings10, 13)))) + + .addElement('C', ofBlock(GregTechAPI.sBlockCasings10, 14)) .addElement('F', ofBlock(GregTechAPI.sBlockCasings1, 11)) - /* - * TinkerConstruct.isModLoaded()// maybe temporary if someone makes textures for new special decorative block - * ? ofChain(ofBlock(Block.getBlockFromName("TConstruct:SearedBlock"), 0)) - * : ofChain(ofBlock(Blocks.cauldron, 0))) - */ .addElement('D', ofBlock(GregTechAPI.sBlockCasings4, 1)) - /* - * BuildCraftFactory.isModLoaded()// maybe temporary if someone makes textures for new special decorative block - * ? ofChain(ofBlock(Block.getBlockFromName("BuildCraft|Factory:blockHopper"), 10)) - * : ofChain(ofBlock(Blocks.hopper, 0))) - */ .build(); public MTEMultiSolidifier(final int aID, final String aName, final String aNameRegional) { @@ -224,10 +131,11 @@ public boolean isCorrectMachinePart(ItemStack aStack) { public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirection side, ForgeDirection aFacing, int colorIndex, boolean aActive, boolean redstoneLevel) { ITexture[] rTexture; - int casingIndex = casingTier > -1 ? casingIndices.get(casingTier) : SOLIDIFIER_CASING_INDEX; if (side == aFacing) { if (aActive) { - rTexture = new ITexture[] { Textures.BlockIcons.getCasingTextureForId(casingIndex), + rTexture = new ITexture[] { + Textures.BlockIcons + .getCasingTextureForId(GTUtility.getCasingTextureIndex(GregTechAPI.sBlockCasings10, 13)), TextureFactory.builder() .addIcon(OVERLAY_FRONT_MULTI_CANNER_ACTIVE) .extFacing() @@ -238,7 +146,9 @@ public ITexture[] getTexture(IGregTechTileEntity baseMetaTileEntity, ForgeDirect .glow() .build() }; } else { - rTexture = new ITexture[] { Textures.BlockIcons.getCasingTextureForId(casingIndex), + rTexture = new ITexture[] { + Textures.BlockIcons + .getCasingTextureForId(GTUtility.getCasingTextureIndex(GregTechAPI.sBlockCasings10, 13)), TextureFactory.builder() .addIcon(OVERLAY_FRONT_MULTI_CANNER) .extFacing() @@ -262,8 +172,9 @@ protected MultiblockTooltipBuilder createTooltip() { tt.addMachineType("Fluid Solidifier") .addInfo("Controller Block for the Fluid Shaper") .addInfo("Speeds up to a maximum of 300% faster than singleblock machines while running") - .addInfo("Has 4 parallels by default") - .addInfo("Gains an additional 10 parallels per width expansion") + .addInfo("Starts with 4 Parallels") + .addInfo("Gain 1.5 Parallels per Width Expansion and Multiplied by Voltage Tier") + .addInfo("Energy Hatch Based on Glass Tier, UMV Glass Unlocks all") .addInfo(EnumChatFormatting.BLUE + "Pretty Ⱄⱁⰾⰻⰴ, isn't it") .addInfo( AuthorOmdaCZ + " with help of " @@ -275,20 +186,15 @@ protected MultiblockTooltipBuilder createTooltip() { .addSeparator() .beginVariableStructureBlock(17, 33, 5, 5, 5, 5, true) .addController("Front Center bottom") - .addCasingInfoMin("Tier 1: Solidifier Casing", 146, true) - .addCasingInfoMin("Tier 2: Laurenium Casing", 146, true) - .addCasingInfoMin("Tier 3: DTPF Casing", 146, true) - .addCasingInfoMin("Tier 1: Radiator Casing", 18, true) - .addCasingInfoMin("Tier 2: Cinobite Pipe Casing", 18, true) - .addCasingInfoMin("Tier 3: Abyssal Alloy Pipe Casing", 18, true) + .addCasingInfoMin("Solidifier Casing", 146, true) + .addCasingInfoMin("Radiator Casing", 18, true) .addCasingInfoMin("Heat Proof Casing", 4, false) .addCasingInfoMin("Solid Steel Casing", 4, false) - .addInfo("Tier limits maximal width 2; 4; 6") - .addInputBus("Any Tiered Casing", 1) - .addOutputBus("Any Tiered Casing", 1) - .addInputHatch("Any Tiered Casing", 1) - .addEnergyHatch("Any Tiered Casing", 1) - .addMaintenanceHatch("Any Tiered Casing", 1) + .addInputBus("Any Casing", 1) + .addOutputBus("Any Casing", 1) + .addInputHatch("Any Casing", 1) + .addEnergyHatch("Any Casing", 1) + .addMaintenanceHatch("Any Casing", 1) .toolTipFinisher("GregTech"); return tt; } @@ -296,7 +202,7 @@ protected MultiblockTooltipBuilder createTooltip() { @Override public void construct(ItemStack stackSize, boolean hintsOnly) { buildPiece(STRUCTURE_PIECE_MAIN, stackSize, hintsOnly, 3, 4, 0); - // max Width, minimal mid pieces to build on each side + // max Width, minimal mid-pieces to build on each side int tTotalWidth = Math.min(6, stackSize.stackSize + 3); for (int i = 1; i < tTotalWidth - 1; i++) { // horizontal offset 3 from controller and number of pieces times width of each piece @@ -309,7 +215,6 @@ public void construct(ItemStack stackSize, boolean hintsOnly) { buildPiece(MS_END, stackSize, hintsOnly, (-tTotalWidth - 2) * 2 + 4, 4, 0); } - protected final List> mOutputHatchesByLayer = new ArrayList<>(); protected int mWidth; protected int nWidth; @@ -320,7 +225,7 @@ public int survivalConstruct(ItemStack stackSize, int elementBudget, ISurvivalBu nWidth = 0; int built = survivialBuildPiece(STRUCTURE_PIECE_MAIN, stackSize, 3, 4, 0, elementBudget, env, false, true); if (built >= 0) return built; - int tTotalWidth = Math.min(3 + machineTier, stackSize.stackSize + 3); + int tTotalWidth = Math.min(stackSize.stackSize + 1, 6); for (int i = 1; i < tTotalWidth - 1; i++) { mWidth = i; nWidth = i; @@ -351,44 +256,23 @@ else return survivialBuildPiece( true); } - private int mCasingAmount; - - int mTier; - { - if (casingTier > pipeCasingTier) { - mTier = pipeCasingTier; - } else if (casingTier <= pipeCasingTier) { - mTier = casingTier; - } - - } - - private void onCasingAdded() { - mCasingAmount++; - } - @Override public IStructureDefinition getStructureDefinition() { return STRUCTURE_DEFINITION; } - protected boolean mTopLayerFound; protected int mCasing; + private int mCasingAmount; - protected void onCasingFound() { - mCasing++; - } - - protected void onTopLayerFound(boolean aIsCasing) { - mTopLayerFound = true; - if (aIsCasing) onCasingFound(); + private void onCasingAdded() { + mCasingAmount++; } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { mWidth = 0; - casingTier = -1; - pipeCasingTier = -1; + mCasingAmount = 0; + if (checkPiece(STRUCTURE_PIECE_MAIN, 3, 4, 0)) { while (mWidth < (6)) { if (checkPiece(MS_RIGHT_MID, (-2 * (mWidth + 1)) - 2, 4, 0) @@ -400,20 +284,11 @@ && checkPiece(MS_LEFT_MID, (2 * (mWidth + 1)) + 3, 4, 0)) { if (!checkPiece(MS_END, (-2 * mWidth) - 4, 4, 0) || !checkPiece(MS_END, (mWidth * 2) + 4, 4, 0)) { return false; } - if (casingAmount < (100 + mWidth * 23)) { - casingAmount = 0; - return false; - } else casingAmount = 0; - machineTier = Math.min(pipeCasingTier, casingTier); - if (mWidth > (2 * (machineTier + 1))) { - return false; - } - if (casingTier > -1) { - updateHatchTextures(casingIndices.get(casingTier)); - getBaseMetaTileEntity().sendBlockEvent(GregTechTileClientEvents.CHANGE_CUSTOM_DATA, getUpdateData()); - } - return true; + if (glassTier >= VoltageIndex.UMV) return true; + for (int i = 0; i < this.mEnergyHatches.size(); ++i) + if (this.mEnergyHatches.get(i).mTier > glassTier) return false; + return mCasingAmount >= (100 + mWidth * 23); } @Override @@ -442,121 +317,7 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { } public int getMaxParallelRecipes() { - return 4 + (mWidth * 10); - } - - private void setCasingTier(int tier) { - casingTier = tier; - } - - private int getCasingTier() { - return casingTier; - } - - private void setPipeCasingTier(int tier) { - pipeCasingTier = tier; - } - - private int getPipeCasingTier() { - return pipeCasingTier; - } - - @Override - public byte getUpdateData() { - return (byte) casingTier; - } - - @Override - public void receiveClientEvent(byte aEventID, byte aValue) { - super.receiveClientEvent(aEventID, aValue); - if (aEventID == GregTechTileClientEvents.CHANGE_CUSTOM_DATA) { - casingTier = aValue; - } - } - - private int casingTierExtractor(Block block, int meta) { - if (!tieredFluidSolidifierCasings.containsKey(meta) || !(tieredFluidSolidifierCasings.get(meta) - .getLeft() == block)) { - return -1; - } - return tieredFluidSolidifierCasings.get(meta) - .getRight(); - } - - private int pipeTierExtractor(Block block, int meta) { - if (!tieredPipeCasings.containsKey(meta) || !(tieredPipeCasings.get(meta) - .getLeft() == block)) { - return -1; - } - return tieredPipeCasings.get(meta) - .getRight(); - } - - private boolean addToSolidifierList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { - if (aTileEntity == null) { - return false; - } - IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); - if (aMetaTileEntity instanceof MTEHatchInput hatch) { - return mInputHatches.add(hatch); - } - if (aMetaTileEntity instanceof IDualInputHatch hatch) { - return mDualInputHatches.add(hatch); - } - if (aMetaTileEntity instanceof MTEHatchInputBus hatch) { - return mInputBusses.add(hatch); - } - if (aMetaTileEntity instanceof MTEHatchOutput hatch) { - return mOutputHatches.add(hatch); - } - if (aMetaTileEntity instanceof MTEHatchOutputBus hatch) { - return mOutputBusses.add(hatch); - } - if (aMetaTileEntity instanceof MTEHatchEnergy hatch) { - return mEnergyHatches.add(hatch); - } - if (aMetaTileEntity instanceof MTEHatchMaintenance hatch) { - return mMaintenanceHatches.add(hatch); - } - if (aMetaTileEntity instanceof MTEHatchMuffler hatch) { - return mMufflerHatches.add(hatch); - } - if (aMetaTileEntity instanceof MTEHatchEnergyMulti hatch) { - return mExoticEnergyHatches.add(hatch); - } - return false; - } - - private void updateHatchTextures(int texture) { - for (IDualInputHatch hatch : mDualInputHatches) { - if (((MetaTileEntity) hatch).isValid()) { - hatch.updateTexture(texture); - } - } - for (MTEHatch hatch : filterValidMTEs(mInputHatches)) { - hatch.updateTexture(texture); - } - for (MTEHatch hatch : filterValidMTEs(mInputBusses)) { - hatch.updateTexture(texture); - } - for (MTEHatch hatch : filterValidMTEs(mOutputHatches)) { - hatch.updateTexture(texture); - } - for (MTEHatch hatch : filterValidMTEs(mOutputBusses)) { - hatch.updateTexture(texture); - } - for (MTEHatch hatch : filterValidMTEs(mEnergyHatches)) { - hatch.updateTexture(texture); - } - for (MTEHatch hatch : filterValidMTEs(mMaintenanceHatches)) { - hatch.updateTexture(texture); - } - for (MTEHatch hatch : filterValidMTEs(mMufflerHatches)) { - hatch.updateTexture(texture); - } - for (MTEHatch hatch : filterValidMTEs(mExoticEnergyHatches)) { - hatch.updateTexture(texture); - } + return 4 + (mWidth * 3 / 2) * GTUtility.getTier(this.getMaxInputVoltage()); } @Override @@ -573,7 +334,6 @@ public int getRecipeCatalystPriority() { public void getWailaBody(ItemStack itemStack, List currentTip, IWailaDataAccessor accessor, IWailaConfigHandler config) { super.getWailaBody(itemStack, currentTip, accessor, config); - final NBTTagCompound tag = accessor.getNBTData(); } @Override From 82604eadb847335e4b4ddf2e90a28b325786837b Mon Sep 17 00:00:00 2001 From: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Date: Sat, 7 Sep 2024 05:40:03 +0200 Subject: [PATCH 3/3] Remove a bunch more reflection (#3074) Co-authored-by: boubou19 --- dependencies.gradle | 1 + .../galacticgreg/MTEVoidMinerBase.java | 4 +- .../blocks/tileEntity/MTEYottaFluidTank.java | 2 +- src/main/java/gregtech/GTMod.java | 2 +- .../implementations/MTEWirelessEnergy.java | 2 +- .../purification/MTEPurificationPlant.java | 2 +- .../gregtech/loaders/preload/GTPreLoad.java | 2 +- .../gtPlusPlus/api/objects/data/AutoMap.java | 30 +- .../core/block/base/BlockBaseOre.java | 27 +- .../core/gui/widget/GuiValueField.java | 8 +- .../core/handler/PacketHandler.java | 17 +- .../core/item/chemistry/AgriculturalChem.java | 45 +-- .../item/chemistry/MilledOreProcessing.java | 11 +- .../core/item/tool/misc/ItemGregtechPump.java | 2 +- .../java/gtPlusPlus/core/lib/GTPPCore.java | 34 +- .../core/material/MaterialStack.java | 7 +- .../machines/TileEntityPestKiller.java | 9 +- .../core/util/minecraft/ItemUtils.java | 7 +- .../core/util/minecraft/MiningUtils.java | 76 ++-- .../core/util/reflect/ReflectionUtils.java | 22 +- .../agrichem/item/algae/ItemAgrichemBase.java | 22 -- .../fixes/vanilla/VanillaBedHeightFix.java | 1 + .../xmod/bop/BiomesOPlentyHandler.java | 169 +-------- .../bees/registry/GTPP_BeeDefinition.java | 59 +-- .../forestry/bees/registry/GTPP_Bees.java | 17 +- .../implementations/MTEHatchNaquadah.java | 40 +- .../base/GTPPMultiBlockBase.java | 43 +-- .../loaders/RecipeGenFluidCanning.java | 9 +- .../gregtech/loaders/RecipeGenRecycling.java | 13 +- .../xmod/tinkers/HandlerTinkers.java | 5 +- .../tinkers/material/BaseTinkersMaterial.java | 19 +- .../tinkers/util/TinkersDryingRecipe.java | 91 ++--- .../xmod/tinkers/util/TinkersUtils.java | 356 +++--------------- .../gtnhlanth/common/tileentity/MTELINAC.java | 2 +- 34 files changed, 231 insertions(+), 925 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 686bc508d10..ee1ded31a41 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -99,6 +99,7 @@ dependencies { compileOnly("com.github.GTNewHorizons:BloodMagic:1.6.5:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:CraftTweaker:3.4.0:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:BetterLoadingScreen:1.7.0-GTNH:dev") { transitive = false } + compileOnly rfg.deobf("curse.maven:biomes-o-plenty-220318:2499612") compileOnly('com.github.GTNewHorizons:SC2:2.2.0:dev') {transitive=false} compileOnly('com.github.GTNewHorizons:Binnie:2.4.1:dev') {transitive = false} diff --git a/src/main/java/bwcrossmod/galacticgreg/MTEVoidMinerBase.java b/src/main/java/bwcrossmod/galacticgreg/MTEVoidMinerBase.java index 1eb6d8e312a..3744d26aa46 100644 --- a/src/main/java/bwcrossmod/galacticgreg/MTEVoidMinerBase.java +++ b/src/main/java/bwcrossmod/galacticgreg/MTEVoidMinerBase.java @@ -290,10 +290,10 @@ private void handleOutputs() { final List inputOres = this.getStoredInputs() .stream() .filter(GTUtility::isOre) - .collect(Collectors.toList());; + .collect(Collectors.toList()); final ItemStack output = this.nextOre(); output.stackSize = multiplier; - if (inputOres.size() == 0 || this.mBlacklist && inputOres.stream() + if (inputOres.isEmpty() || this.mBlacklist && inputOres.stream() .noneMatch(is -> GTUtility.areStacksEqual(is, output)) || !this.mBlacklist && inputOres.stream() .anyMatch(is -> GTUtility.areStacksEqual(is, output))) diff --git a/src/main/java/goodgenerator/blocks/tileEntity/MTEYottaFluidTank.java b/src/main/java/goodgenerator/blocks/tileEntity/MTEYottaFluidTank.java index 1d8620ad4d1..ccac1e3fb6b 100644 --- a/src/main/java/goodgenerator/blocks/tileEntity/MTEYottaFluidTank.java +++ b/src/main/java/goodgenerator/blocks/tileEntity/MTEYottaFluidTank.java @@ -472,7 +472,7 @@ public boolean onRunningTick(ItemStack aStack) { if (tFluid == null) continue; if (isFluidLocked) { if (mLockedFluid != null) { - if (!tFluid.isFluidEqual(mLockedFluid)) continue;; + if (!tFluid.isFluidEqual(mLockedFluid)) continue; } else { mLockedFluid = tFluid.copy(); mLockedFluid.amount = 1; diff --git a/src/main/java/gregtech/GTMod.java b/src/main/java/gregtech/GTMod.java index 87b5b154d9f..4b3bae4056b 100644 --- a/src/main/java/gregtech/GTMod.java +++ b/src/main/java/gregtech/GTMod.java @@ -238,7 +238,7 @@ public class GTMod implements IGTMod { clientSide = "gregtech.common.GTClient", serverSide = "gregtech.common.GTServer") public static GTProxy gregtechproxy; - public static final boolean DEBUG = Boolean.getBoolean("gt.debug");; + public static final boolean DEBUG = Boolean.getBoolean("gt.debug"); public static int MAX_IC2 = 2147483647; public static GTAchievements achievements; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEWirelessEnergy.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEWirelessEnergy.java index e195b4ab087..517fa18636e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/MTEWirelessEnergy.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEWirelessEnergy.java @@ -134,7 +134,7 @@ public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) { // UUID of the owner. owner_uuid = aBaseMetaTileEntity.getOwnerUuid(); - SpaceProjectManager.checkOrCreateTeam(owner_uuid);; + SpaceProjectManager.checkOrCreateTeam(owner_uuid); tryFetchingEnergy(); } diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationPlant.java b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationPlant.java index 6933a18dc29..9c0b5301644 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationPlant.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/purification/MTEPurificationPlant.java @@ -680,7 +680,7 @@ private Widget makeUnitStatusWidget(LinkedPurificationUnit unit) { .widget( unit.metaTileEntity() .makeSyncerWidgets()) - .widget(new FakeSyncWidget.BooleanSyncer(unit::isActive, unit::setActive));; + .widget(new FakeSyncWidget.BooleanSyncer(unit::isActive, unit::setActive)); return row; } diff --git a/src/main/java/gregtech/loaders/preload/GTPreLoad.java b/src/main/java/gregtech/loaders/preload/GTPreLoad.java index efeba9fe894..34fcfe86d35 100644 --- a/src/main/java/gregtech/loaders/preload/GTPreLoad.java +++ b/src/main/java/gregtech/loaders/preload/GTPreLoad.java @@ -533,7 +533,7 @@ public static void loadConfig() { // ore_drop_behavior try { GTLog.out.println("Trying to set it to: " + ConfigOreDropBehavior.setting); - GTMod.gregtechproxy.oreDropSystem = GTProxy.OreDropSystem.valueOf(ConfigOreDropBehavior.setting);; + GTMod.gregtechproxy.oreDropSystem = GTProxy.OreDropSystem.valueOf(ConfigOreDropBehavior.setting); } catch (IllegalArgumentException e) { GTLog.err.println(e); GTMod.gregtechproxy.oreDropSystem = GTProxy.OreDropSystem.FortuneItem; diff --git a/src/main/java/gtPlusPlus/api/objects/data/AutoMap.java b/src/main/java/gtPlusPlus/api/objects/data/AutoMap.java index a3551326c21..4de2e9ab786 100644 --- a/src/main/java/gtPlusPlus/api/objects/data/AutoMap.java +++ b/src/main/java/gtPlusPlus/api/objects/data/AutoMap.java @@ -41,13 +41,13 @@ public AutoMap(Map defaultMapType) { /** * Generates an AutoMap from the List. - * + * * @param aList - Data to be inserted into the AutoMap. */ public AutoMap(List aList) { mInternalMap = new LinkedHashMap<>(); mInternalNameMap = new LinkedHashMap<>(); - if (aList != null && aList.size() > 0) { + if (aList != null && !aList.isEmpty()) { for (V obj : aList) { add(obj); } @@ -56,13 +56,13 @@ public AutoMap(List aList) { /** * Generates an AutoMap from a Set. - * + * * @param aList - Data to be inserted into the AutoMap. */ public AutoMap(Set aList) { mInternalMap = new LinkedHashMap<>(); mInternalNameMap = new LinkedHashMap<>(); - if (aList != null && aList.size() > 0) { + if (aList != null && !aList.isEmpty()) { for (V obj : aList) { add(obj); } @@ -71,13 +71,13 @@ public AutoMap(Set aList) { /** * Generates an AutoMap from a Collection. - * + * * @param aList - Data to be inserted into the AutoMap. */ public AutoMap(Collection aList) { mInternalMap = new LinkedHashMap<>(); mInternalNameMap = new LinkedHashMap<>(); - if (aList != null && aList.size() > 0) { + if (aList != null && !aList.isEmpty()) { for (V obj : aList) { add(obj); } @@ -86,13 +86,13 @@ public AutoMap(Collection aList) { /** * Generates an AutoMap from a Array. - * + * * @param aArray - Data to be inserted into the AutoMap. */ public AutoMap(V[] aArray) { mInternalMap = new LinkedHashMap<>(); mInternalNameMap = new LinkedHashMap<>(); - if (aArray != null && aArray.length > 0) { + if (aArray != null) { for (V obj : aArray) { add(obj); } @@ -107,12 +107,8 @@ public Iterator iterator() { public synchronized boolean setValue(V object) { int mOriginalID = this.mInternalID; put(object); - if (this.mInternalMap.get(mOriginalID) - .equals(object) || mOriginalID > this.mInternalID) { - return true; - } else { - return false; - } + return this.mInternalMap.get(mOriginalID) + .equals(object) || mOriginalID > this.mInternalID; } public synchronized V put(V object) { @@ -168,7 +164,6 @@ public synchronized void clear() { this.mInternalID = 0; this.mInternalMap.clear(); this.mInternalNameMap.clear(); - return; } @Override @@ -322,7 +317,6 @@ public int indexOf(Object o) { for (V of : mInternalMap.values()) { if (of != o) { aCount++; - continue; } else { return aCount; } @@ -353,9 +347,7 @@ public List subList(int fromIndex, int toIndex) { AutoMap aNewSubList = new AutoMap<>(); for (int slot = fromIndex; slot <= toIndex; slot++) { V obj = mInternalMap.get(slot); - if (obj == null) { - continue; - } else { + if (obj != null) { aNewSubList.put(obj); } } diff --git a/src/main/java/gtPlusPlus/core/block/base/BlockBaseOre.java b/src/main/java/gtPlusPlus/core/block/base/BlockBaseOre.java index b0ee1c0c777..7ba3e7e4746 100644 --- a/src/main/java/gtPlusPlus/core/block/base/BlockBaseOre.java +++ b/src/main/java/gtPlusPlus/core/block/base/BlockBaseOre.java @@ -1,6 +1,5 @@ package gtPlusPlus.core.block.base; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Random; @@ -21,7 +20,6 @@ import gregtech.GTMod; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; -import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.ITexture; import gregtech.api.util.GTOreDictUnificator; import gtPlusPlus.api.interfaces.ITexturedBlock; @@ -30,7 +28,6 @@ import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.gregtech.api.objects.GTPPCopiedBlockTexture; import gtPlusPlus.xmod.gregtech.api.objects.GTPPRenderedTexture; @@ -100,13 +97,6 @@ public IIcon getIcon(int ordinalSide, int aMeta) { return Blocks.stone.getIcon(0, 0); } - /** - * GT Texture Handler - */ - - // .08 compat - public static IIconContainer[] hiddenTextureArray; - @Override public ITexture[] getTexture(ForgeDirection side) { return getTexture(null, side); @@ -120,21 +110,8 @@ public ITexture[] getTexture(Block block, ForgeDirection side) { this.blockMaterial.getRGBA()); return new ITexture[] { new GTPPCopiedBlockTexture(Blocks.stone, 0, 0), aIconSet }; } - - if (hiddenTextureArray == null) { - try { - Field o = ReflectionUtils.getField(Textures.BlockIcons.class, "STONES"); - if (o != null) { - hiddenTextureArray = (IIconContainer[]) o.get(Textures.BlockIcons.class); - } - if (hiddenTextureArray == null) { - hiddenTextureArray = new IIconContainer[6]; - } - } catch (IllegalArgumentException | IllegalAccessException e) { - hiddenTextureArray = new IIconContainer[6]; - } - } - return new ITexture[] { new GTPPRenderedTexture(hiddenTextureArray[0], new short[] { 240, 240, 240, 0 }) }; + return new ITexture[] { + new GTPPRenderedTexture(Textures.BlockIcons.STONES[0], new short[] { 240, 240, 240, 0 }) }; } @Override diff --git a/src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java b/src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java index 26e7d907d3c..8f549364c12 100644 --- a/src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java +++ b/src/main/java/gtPlusPlus/core/gui/widget/GuiValueField.java @@ -31,13 +31,7 @@ public boolean isFocused() { } public boolean isBackgroundDrawingEnabled() { - Field enableBackgroundDrawing = ReflectionUtils.getField( - GuiTextField.class, - !PreloaderCore.DEV_ENVIRONMENT ? "field_146215_m" : "enableBackgroundDrawing"); - if (enableBackgroundDrawing != null) { - return ReflectionUtils.getFieldValue(enableBackgroundDrawing, this); - } - return true; + return this.getEnableBackgroundDrawing(); } public int getLineScrollOffset() { diff --git a/src/main/java/gtPlusPlus/core/handler/PacketHandler.java b/src/main/java/gtPlusPlus/core/handler/PacketHandler.java index 735d381706a..9c5d6b25d2c 100644 --- a/src/main/java/gtPlusPlus/core/handler/PacketHandler.java +++ b/src/main/java/gtPlusPlus/core/handler/PacketHandler.java @@ -22,7 +22,7 @@ public class PacketHandler { private static final SimpleNetworkWrapper INSTANCE = NetworkRegistry.INSTANCE.newSimpleChannel(GTPlusPlus.ID); - public static final void init() { + public static void init() { registerMessage(PacketVolumetricFlaskGui.class, PacketVolumetricFlaskGui.class); registerMessage(PacketVolumetricFlaskGui2.class, PacketVolumetricFlaskGui2.class); } @@ -50,30 +50,29 @@ private static void registerMessage(Class handlerClass, Class messageClass, Side /** * Send this message to the specified player. See {@link SimpleNetworkWrapper#sendTo(IMessage, EntityPlayerMP)} */ - public static final void sendTo(IMessage message, EntityPlayerMP player) { + public static void sendTo(IMessage message, EntityPlayerMP player) { INSTANCE.sendTo(message, player); } /** * Send this message to everyone within a certain range of a point. See - * {@link SimpleNetworkWrapper#sendToDimension(IMessage, NetworkRegistry.TargetPoint)} + * {@link SimpleNetworkWrapper#sendToAllAround(IMessage, NetworkRegistry.TargetPoint)} */ - public static final void sendToAllAround(IMessage message, NetworkRegistry.TargetPoint point) { + public static void sendToAllAround(IMessage message, NetworkRegistry.TargetPoint point) { INSTANCE.sendToAllAround(message, point); } /** * Sends a message to everyone within a certain range of the coordinates in the same dimension. */ - public static final void sendToAllAround(IMessage message, int dimension, double x, double y, double z, - double range) { + public static void sendToAllAround(IMessage message, int dimension, double x, double y, double z, double range) { sendToAllAround(message, new NetworkRegistry.TargetPoint(dimension, x, y, z, range)); } /** * Sends a message to everyone within a certain range of the player provided. */ - public static final void sendToAllAround(IMessage message, EntityPlayer player, double range) { + public static void sendToAllAround(IMessage message, EntityPlayer player, double range) { sendToAllAround(message, player.worldObj.provider.dimensionId, player.posX, player.posY, player.posZ, range); } @@ -81,14 +80,14 @@ public static final void sendToAllAround(IMessage message, EntityPlayer player, * Send this message to everyone within the supplied dimension. See * {@link SimpleNetworkWrapper#sendToDimension(IMessage, int)} */ - public static final void sendToDimension(IMessage message, int dimensionId) { + public static void sendToDimension(IMessage message, int dimensionId) { INSTANCE.sendToDimension(message, dimensionId); } /** * Send this message to the server. See {@link SimpleNetworkWrapper#sendToServer(IMessage)} */ - public static final void sendToServer(IMessage message) { + public static void sendToServer(IMessage message) { INSTANCE.sendToServer(message); } } diff --git a/src/main/java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java b/src/main/java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java index 4bbf29c88f6..4c7dc05804a 100644 --- a/src/main/java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java +++ b/src/main/java/gtPlusPlus/core/item/chemistry/AgriculturalChem.java @@ -1,7 +1,6 @@ package gtPlusPlus.core.item.chemistry; import static gregtech.api.enums.Mods.BiomesOPlenty; -import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.TinkerConstruct; import static gregtech.api.recipe.RecipeMaps.centrifugeRecipes; import static gregtech.api.recipe.RecipeMaps.compressorRecipes; @@ -12,7 +11,6 @@ import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; import static gtPlusPlus.api.recipe.GTPPRecipeMaps.semiFluidFuels; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; @@ -23,8 +21,12 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; +import forestry.core.items.ItemForestryBonemeal; +import forestry.core.items.ItemRegistryCore; +import forestry.plugins.PluginCore; import gregtech.api.enums.GTValues; import gregtech.api.enums.Materials; +import gregtech.api.enums.Mods; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.TierEU; import gregtech.api.util.GTOreDictUnificator; @@ -37,7 +39,6 @@ import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.plugin.agrichem.BioRecipes; import gtPlusPlus.plugin.agrichem.item.algae.ItemAgrichemBase; import gtPlusPlus.plugin.agrichem.item.algae.ItemAlgaeBase; @@ -543,33 +544,19 @@ private static void addMiscRecipes() { ItemStack aManureByprod = ItemUtils.getSimpleStack(dustManureByproducts, 1); // Dehydrate Organise Fert to Normal Fert. + if (Mods.Forestry.isModLoaded()) { + ItemRegistryCore aItemRegInstance = PluginCore.items; + if (aItemRegInstance != null) { + ItemForestryBonemeal fertilizerCompound = aItemRegInstance.fertilizerCompound; + aFertForestry = ItemUtils.getSimpleStack(fertilizerCompound); - /* - * Forestry Support - */ - if (Forestry.isModLoaded()) { - Field aItemField = ReflectionUtils - .getField(ReflectionUtils.getClass("forestry.plugins.PluginCore"), "items"); - try { - Object aItemRegInstance = aItemField != null ? aItemField.get(aItemField) : null; - if (aItemRegInstance != null) { - Field aFertField = ReflectionUtils.getField(aItemRegInstance.getClass(), "fertilizerCompound"); - Object aItemInstance = aFertField.get(aItemRegInstance); - if (aItemInstance instanceof Item aForestryFert) { - aFertForestry = ItemUtils.getSimpleStack((Item) aItemInstance); - - GTValues.RA.stdBuilder() - .itemInputs( - GTUtility.getIntegratedCircuit(11), - ItemUtils.getSimpleStack(aDustOrganicFert, 4)) - .itemOutputs(ItemUtils.getSimpleStack(aForestryFert, 3), aManureByprod, aManureByprod) - .outputChances(100_00, 20_00, 20_00) - .eut(240) - .duration(20 * SECONDS) - .addTo(chemicalDehydratorRecipes); - } - } - } catch (IllegalArgumentException | IllegalAccessException e) { + GTValues.RA.stdBuilder() + .itemInputs(GTUtility.getIntegratedCircuit(11), ItemUtils.getSimpleStack(aDustOrganicFert, 4)) + .itemOutputs(ItemUtils.getSimpleStack(fertilizerCompound, 3), aManureByprod, aManureByprod) + .outputChances(100_00, 20_00, 20_00) + .eut(240) + .duration(20 * SECONDS) + .addTo(chemicalDehydratorRecipes); } } diff --git a/src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java b/src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java index 078dcdee883..4909d269cc5 100644 --- a/src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java +++ b/src/main/java/gtPlusPlus/core/item/chemistry/MilledOreProcessing.java @@ -14,6 +14,8 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; +import biomesoplenty.api.content.BOPCBlocks; +import biomesoplenty.api.content.BOPCItems; import gregtech.api.enums.GTValues; import gregtech.api.enums.Materials; import gregtech.api.enums.TierEU; @@ -33,7 +35,6 @@ import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; import gtPlusPlus.core.util.minecraft.NBTUtils; -import gtPlusPlus.xmod.bop.BiomesOPlentyHandler; import gtPlusPlus.xmod.bop.blocks.BOPBlockRegistrator; import gtPlusPlus.xmod.gregtech.common.helpers.FlotationRecipeHandler; @@ -654,10 +655,10 @@ private void addPineOilExtraction() { aPinecones.add(ItemUtils.getSimpleStack(AgriculturalChem.mPinecone, 1)); if (BiomesOPlenty.isModLoaded()) { - aLogs.add(BiomesOPlentyHandler.getStack(BiomesOPlentyHandler.logs4, 0, 1)); - aLeaves.add(BiomesOPlentyHandler.getStack(BiomesOPlentyHandler.colorizedLeaves2, 1, 1)); - aSaplings.add(BiomesOPlentyHandler.getStack(BiomesOPlentyHandler.colorizedSaplings, 5, 1)); - aPinecones.add(ItemUtils.simpleMetaStack(BiomesOPlentyHandler.mPineCone, 13, 1)); + aLogs.add(ItemUtils.simpleMetaStack(BOPCBlocks.logs4, 0, 1)); + aLeaves.add(ItemUtils.simpleMetaStack(BOPCBlocks.colorizedLeaves2, 1, 1)); + aSaplings.add(ItemUtils.simpleMetaStack(BOPCBlocks.colorizedSaplings, 5, 1)); + aPinecones.add(ItemUtils.simpleMetaStack(BOPCItems.misc, 13, 1)); } if (Forestry.isModLoaded()) { ItemStack aForestryLog = ItemUtils.getItemStackFromFQRN("Forestry:logs", 1); diff --git a/src/main/java/gtPlusPlus/core/item/tool/misc/ItemGregtechPump.java b/src/main/java/gtPlusPlus/core/item/tool/misc/ItemGregtechPump.java index 082f74ad2b9..1c896e84972 100644 --- a/src/main/java/gtPlusPlus/core/item/tool/misc/ItemGregtechPump.java +++ b/src/main/java/gtPlusPlus/core/item/tool/misc/ItemGregtechPump.java @@ -1238,7 +1238,7 @@ public FluidStack getStoredFluidOfGTMachine(IGregTechTileEntity aTileEntity) { if (aTileEntity == null) { return null; } - final IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity();; + final IMetaTileEntity aMetaTileEntity = aTileEntity.getMetaTileEntity(); if (aMetaTileEntity == null || aMetaTileEntity instanceof MTEHatchMultiInput) { // blacklist multiinput hatch as it's too complex return null; diff --git a/src/main/java/gtPlusPlus/core/lib/GTPPCore.java b/src/main/java/gtPlusPlus/core/lib/GTPPCore.java index c78d734cb65..af6bedfa61f 100644 --- a/src/main/java/gtPlusPlus/core/lib/GTPPCore.java +++ b/src/main/java/gtPlusPlus/core/lib/GTPPCore.java @@ -6,23 +6,17 @@ import java.util.Map; import java.util.Random; import java.util.UUID; -import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Supplier; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; -import net.minecraft.world.World; - -import com.mojang.authlib.GameProfile; import cpw.mods.fml.common.FMLCommonHandler; import gregtech.GT_Version; import gregtech.api.objects.XSTR; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.preloader.PreloaderCore; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import gtPlusPlus.xmod.gregtech.common.tileentities.automation.MTETesseractGenerator; @@ -30,8 +24,6 @@ public class GTPPCore { - public static Map PlayerCache; - // Math Related public static final float PI = (float) Math.PI; public static volatile Random RANDOM = new XSTR(); @@ -48,11 +40,6 @@ public class GTPPCore { public static int turbineCutoffBase = 75000; - // GT++ Fake Player Profile - public static final GameProfile gameProfile = new GameProfile( - UUID.nameUUIDFromBytes("gtplusplus.core".getBytes()), - "[GT++]"); - public static final WeakHashMap fakePlayerCache = new WeakHashMap<>(); // Tooltips; public static final Supplier GT_Tooltip = () -> StatCollector.translateToLocal("GTPP.core.GT_Tooltip"); public static final Supplier GT_Tooltip_Builder = () -> StatCollector @@ -202,34 +189,19 @@ public static class Everglades { public static final String VERSION = GT_Version.VERSION; } - public static final void crash() { + public static void crash() { crash("Generic Crash"); } - public static final void crash(String aReason) { + public static void crash(String aReason) { try { Logger.INFO("=========================================================="); Logger.INFO("[GT++ CRASH]"); Logger.INFO("=========================================================="); Logger.INFO("Oooops..."); - Logger.INFO("This should only happy in a development environment or when something really bad happens."); + Logger.INFO("This should only happen in a development environment or when something really bad happens."); Logger.INFO("Reason: " + aReason); Logger.INFO("=========================================================="); - Logger.INFO("Called from: " + ReflectionUtils.getMethodName(1)); - Logger.INFO(ReflectionUtils.getMethodName(2)); - Logger.INFO(ReflectionUtils.getMethodName(3)); - Logger.INFO(ReflectionUtils.getMethodName(4)); - Logger.INFO(ReflectionUtils.getMethodName(5)); - Logger.INFO(ReflectionUtils.getMethodName(6)); - Logger.INFO(ReflectionUtils.getMethodName(7)); - Logger.INFO(ReflectionUtils.getMethodName(8)); - Logger.INFO(ReflectionUtils.getMethodName(9)); - Logger.INFO(ReflectionUtils.getMethodName(10)); - Logger.INFO(ReflectionUtils.getMethodName(11)); - Logger.INFO(ReflectionUtils.getMethodName(12)); - Logger.INFO(ReflectionUtils.getMethodName(13)); - Logger.INFO(ReflectionUtils.getMethodName(14)); - Logger.INFO(ReflectionUtils.getMethodName(15)); } catch (Throwable t) { t.printStackTrace(); } diff --git a/src/main/java/gtPlusPlus/core/material/MaterialStack.java b/src/main/java/gtPlusPlus/core/material/MaterialStack.java index d4d11781c5b..aeb23a94557 100644 --- a/src/main/java/gtPlusPlus/core/material/MaterialStack.java +++ b/src/main/java/gtPlusPlus/core/material/MaterialStack.java @@ -8,7 +8,6 @@ import gregtech.api.enums.OrePrefixes; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.bartworks.BWUtils; public class MaterialStack { @@ -69,11 +68,7 @@ public ItemStack getUnificatedDustStack(final int amount) { public Material getStackMaterial() { if (this.stackMaterial == null) { - Logger.MATERIALS("Tried getStackMaterial, got an invalid material."); - Logger.MATERIALS(ReflectionUtils.getMethodName(0)); - Logger.MATERIALS(ReflectionUtils.getMethodName(1)); - Logger.MATERIALS(ReflectionUtils.getMethodName(2)); - Logger.MATERIALS(ReflectionUtils.getMethodName(3)); + Logger.modLogger.error("Tried getStackMaterial, got an invalid material.", new Exception()); return null; } return this.stackMaterial; diff --git a/src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityPestKiller.java b/src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityPestKiller.java index 66378f0f7a9..c91476f556f 100644 --- a/src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityPestKiller.java +++ b/src/main/java/gtPlusPlus/core/tileentities/machines/TileEntityPestKiller.java @@ -1,7 +1,5 @@ package gtPlusPlus.core.tileentities.machines; -import static gregtech.api.enums.Mods.Forestry; - import java.util.ArrayList; import java.util.List; @@ -27,6 +25,8 @@ import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.oredict.OreDictionary; +import forestry.lepidopterology.entities.EntityButterfly; +import gregtech.api.enums.Mods; import gregtech.api.util.GTUtility; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.minecraft.BTF_FluidTank; @@ -36,7 +36,6 @@ import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.EntityUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; public class TileEntityPestKiller extends TileEntity implements ISidedInventory, IFluidHandler { @@ -56,8 +55,8 @@ public class TileEntityPestKiller extends TileEntity implements ISidedInventory, static { mEntityMap.put(EntityBat.class); - if (Forestry.isModLoaded()) { - mEntityMap.put(ReflectionUtils.getClass("forestry.lepidopterology.entities.EntityButterfly")); + if (Mods.Forestry.isModLoaded()) { + mEntityMap.put(EntityButterfly.class); } } diff --git a/src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java index 1e211290cdc..26d7783b781 100644 --- a/src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java +++ b/src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java @@ -46,7 +46,6 @@ import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.preloader.PreloaderCore; import gtPlusPlus.xmod.gregtech.api.items.GTMetaTool; import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools; @@ -309,11 +308,7 @@ public static ItemStack getItemStackOfAmountFromOreDict(String oredictName, fina public static ItemStack getItemStackOfAmountFromOreDictNoBroken(String oredictName, final int amount) { if (PreloaderCore.DEBUG_MODE) { - Logger.WARNING("Looking up: " + oredictName + " - from method: " + ReflectionUtils.getMethodName(1)); - Logger.WARNING("Looking up: " + oredictName + " - from method: " + ReflectionUtils.getMethodName(2)); - Logger.WARNING("Looking up: " + oredictName + " - from method: " + ReflectionUtils.getMethodName(3)); - Logger.WARNING("Looking up: " + oredictName + " - from method: " + ReflectionUtils.getMethodName(4)); - Logger.WARNING("Looking up: " + oredictName + " - from method: " + ReflectionUtils.getMethodName(5)); + Logger.modLogger.warn("Looking up: " + oredictName + " - from : ", new Exception()); } try { diff --git a/src/main/java/gtPlusPlus/core/util/minecraft/MiningUtils.java b/src/main/java/gtPlusPlus/core/util/minecraft/MiningUtils.java index 16e5652e828..8845409da9b 100644 --- a/src/main/java/gtPlusPlus/core/util/minecraft/MiningUtils.java +++ b/src/main/java/gtPlusPlus/core/util/minecraft/MiningUtils.java @@ -2,10 +2,14 @@ import java.util.HashMap; +import gregtech.api.enums.Mods; import gregtech.common.WorldgenGTOreLayer; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.core.util.reflect.ReflectionUtils; +import micdoodle8.mods.galacticraft.core.util.ConfigManagerCore; +import micdoodle8.mods.galacticraft.planets.asteroids.ConfigManagerAsteroids; +import micdoodle8.mods.galacticraft.planets.mars.ConfigManagerMars; public class MiningUtils { @@ -48,42 +52,17 @@ public static void iterateAllOreTypes() { public static boolean findAndMapOreTypesFromGT() { // Gets Moon ID - boolean aEndAsteroids; - try { - if (ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.util.ConfigManagerCore") != null - && mMoonID == -99) { - mMoonID = ReflectionUtils - .getField( - ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.util.ConfigManagerCore"), - "idDimensionMoon") - .getInt(null); + if (Mods.GalacticraftCore.isModLoaded()) { + if (mMoonID == -99) { + mMoonID = ConfigManagerCore.idDimensionMoon; } - } catch (IllegalArgumentException | IllegalAccessException ignored) {} - - // Gets Mars ID - try { - if (ReflectionUtils.getClass("micdoodle8.mods.galacticraft.planets.mars.ConfigManagerMars") != null - && mMarsID == -99) { - mMarsID = ReflectionUtils - .getField( - ReflectionUtils.getClass("micdoodle8.mods.galacticraft.planets.mars.ConfigManagerMars"), - "dimensionIDMars") - .getInt(null); + if (mMarsID == -99) { + mMarsID = ConfigManagerMars.dimensionIDMars; } - } catch (IllegalArgumentException | IllegalAccessException ignored) {} - - // Get Comets ID - try { - if (ReflectionUtils.getClass("micdoodle8.mods.galacticraft.planets.asteroids.ConfigManagerAsteroids") - != null && mCometsID == -99) { - mCometsID = ReflectionUtils - .getField( - ReflectionUtils - .getClass("micdoodle8.mods.galacticraft.planets.asteroids.ConfigManagerAsteroids"), - "dimensionIDAsteroids") - .getInt(null); + if (mCometsID == -99) { + mCometsID = ConfigManagerAsteroids.dimensionIDAsteroids; } - } catch (IllegalArgumentException | IllegalAccessException ignored) {} + } // Clear Cache Ores_Overworld.clear(); @@ -91,32 +70,23 @@ public static boolean findAndMapOreTypesFromGT() { Ores_End.clear(); Ores_Misc.clear(); - for (WorldgenGTOreLayer x : WorldgenGTOreLayer.sList) { - if (x.mEnabled) { - - try { - aEndAsteroids = ReflectionUtils.getField(WorldgenGTOreLayer.class, "mEndAsteroid") - .getBoolean(x); - } catch (IllegalArgumentException | IllegalAccessException e) { - aEndAsteroids = false; + for (WorldgenGTOreLayer gtOreLayer : WorldgenGTOreLayer.sList) { + if (gtOreLayer.mEnabled) { + if (gtOreLayer.mOverworld) { + Ores_Overworld.put(gtOreLayer); } - - if (x.mOverworld) { - Ores_Overworld.put(x); - } - if (x.mNether) { - Ores_Nether.put(x); + if (gtOreLayer.mNether) { + Ores_Nether.put(gtOreLayer); } - if (x.mEnd || aEndAsteroids) { - Ores_End.put(x); + if (gtOreLayer.mEnd || gtOreLayer.mEndAsteroid) { + Ores_End.put(gtOreLayer); } - if (x.mOverworld || x.mNether || (x.mEnd || aEndAsteroids)) { + if (gtOreLayer.mOverworld || gtOreLayer.mNether || (gtOreLayer.mEnd || gtOreLayer.mEndAsteroid)) { continue; } - - Ores_Misc.put(x); + Ores_Misc.put(gtOreLayer); } else { - Ores_Comets.put(x); + Ores_Comets.put(gtOreLayer); } } diff --git a/src/main/java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/main/java/gtPlusPlus/core/util/reflect/ReflectionUtils.java index 078cef6ea8c..576c236de63 100644 --- a/src/main/java/gtPlusPlus/core/util/reflect/ReflectionUtils.java +++ b/src/main/java/gtPlusPlus/core/util/reflect/ReflectionUtils.java @@ -126,7 +126,7 @@ private static void cacheConstructor(Class aClass, Constructor aConstructo /** * Returns a cached {@link Constructor} object. - * + * * @param aClass - Class containing the Constructor. * @param aTypes - Varags Class Types for objects constructor. * @return - Valid, non-final, {@link Method} object, or {@link null}. @@ -155,7 +155,7 @@ public static Constructor getConstructor(Class aClass, Class... aTypes) /** * Returns a cached {@link Class} object. - * + * * @param aClassCanonicalName - The canonical name of the underlying class. * @return - Valid, {@link Class} object, or {@link null}. */ @@ -176,7 +176,7 @@ public static Class getClass(String aClassCanonicalName) { /** * Returns a cached {@link Method} object. Wraps {@link #getMethod(Class, String, Class...)}. - * + * * @param aObject - Object containing the Method. * @param aMethodName - Method's name in {@link String} form. * @param aTypes - Class Array of Types for {@link Method}'s constructor. @@ -188,7 +188,7 @@ public static Method getMethod(Object aObject, String aMethodName, Class[] aType /** * Returns a cached {@link Method} object. - * + * * @param aClass - Class containing the Method. * @param aMethodName - Method's name in {@link String} form. * @param aTypes - Varags Class Types for {@link Method}'s constructor. @@ -217,7 +217,7 @@ public static Method getMethod(Class aClass, String aMethodName, Class... /** * Returns a cached {@link Field} object. - * + * * @param aClass - Class containing the Method. * @param aFieldName - Field name in {@link String} form. * @return - Valid, non-final, {@link Field} object, or {@link null}. @@ -246,7 +246,7 @@ public static Field getField(final Class aClass, final String aFieldName) { /** * Returns a cached {@link Field} object. - * + * * @param aInstance - {@link Object} to get the field instance from. * @param aFieldName - Field name in {@link String} form. * @return - Valid, non-final, {@link Field} object, or {@link null}. @@ -286,7 +286,7 @@ public static void makeMethodAccessible(final Method field) { /** * Get the method name for a depth in call stack.
* Utility function - * + * * @param depth depth in the call stack (0 means current method, 1 means call method, ...) * @return Method name */ @@ -323,14 +323,6 @@ public static boolean dynamicallyLoadClassesInPackage(String aPackageName) { return loaded > 0; } - public static void loadClass(String aClassName) { - try { - Class.forName(aClassName, true, ReflectionUtils.class.getClassLoader()); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } - } - public static boolean setField(final Object object, final String fieldName, final Object fieldValue) { Class clazz; if (object instanceof Class) { diff --git a/src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java b/src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java index 8a6d189898f..b7784580fd3 100644 --- a/src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java +++ b/src/main/java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java @@ -2,12 +2,9 @@ import static gregtech.api.enums.Mods.GTPlusPlus; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -23,7 +20,6 @@ import gtPlusPlus.core.item.chemistry.general.ItemGenericChemBase; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.OreDictUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; public class ItemAgrichemBase extends Item { @@ -150,24 +146,6 @@ public void registerIcons(final IIconRegister u) { } } - private boolean isTextureValid(String aPath) { - if (aPath == null) { - return false; - } else if (aPath.indexOf(92) == -1) { - Constructor aTextureAtlasSprite = ReflectionUtils.getConstructor(TextureAtlasSprite.class, String.class); - if (aTextureAtlasSprite != null) { - try { - TextureAtlasSprite aTestAtlas = (TextureAtlasSprite) aTextureAtlasSprite.newInstance(aPath); - if (aTestAtlas != null) { - return true; - } - } catch (InstantiationException | IllegalAccessException | IllegalArgumentException - | InvocationTargetException e) {} - } - } - return false; - } - @Override public IIcon getIconFromDamageForRenderPass(final int damage, final int pass) { return this.base[damage]; diff --git a/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java b/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java index bf69ead5e29..31c0a2e41c2 100644 --- a/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java +++ b/src/main/java/gtPlusPlus/plugin/fixes/vanilla/VanillaBedHeightFix.java @@ -15,6 +15,7 @@ import gtPlusPlus.plugin.fixes.interfaces.IBugFix; import gtPlusPlus.preloader.PreloaderCore; +// TODO move this as a mixin in hodgepodge public class VanillaBedHeightFix implements IBugFix { private final Method mSleepInBedAt; diff --git a/src/main/java/gtPlusPlus/xmod/bop/BiomesOPlentyHandler.java b/src/main/java/gtPlusPlus/xmod/bop/BiomesOPlentyHandler.java index b1e97782afc..272b2dacf56 100644 --- a/src/main/java/gtPlusPlus/xmod/bop/BiomesOPlentyHandler.java +++ b/src/main/java/gtPlusPlus/xmod/bop/BiomesOPlentyHandler.java @@ -1,178 +1,27 @@ package gtPlusPlus.xmod.bop; -import static gregtech.api.enums.Mods.BiomesOPlenty; - -import java.lang.reflect.Field; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import biomesoplenty.api.content.BOPCItems; +import gregtech.api.enums.Mods; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.bop.blocks.BOPBlockRegistrator; public class BiomesOPlentyHandler { - public static Item mPineCone; - - public static Block logs1; - public static Block logs2; - public static Block logs3; - public static Block logs4; - - public static Block leaves1; - public static Block leaves2; - public static Block leaves3; - public static Block leaves4; - - public static Block colorizedLeaves1; - public static Block colorizedLeaves2; - - public static Block saplings; - public static Block colorizedSaplings; - public static void preInit() { BOPBlockRegistrator.run(); - if (BiomesOPlenty.isModLoaded()) { - setFields(); - registerPineconeToOreDict(); + if (Mods.BiomesOPlenty.isModLoaded()) { + if (BOPCItems.misc != null) { + ItemStack aPinecone = ItemUtils.simpleMetaStack(BOPCItems.misc, 13, 1); + if (aPinecone != null) { + ItemUtils.addItemToOreDictionary(aPinecone, "pinecone"); + } + } } } public static void postInit() { BOPBlockRegistrator.recipes(); } - - private static void registerPineconeToOreDict() { - if (mPineCone != null) { - ItemStack aPinecone = ItemUtils.simpleMetaStack(mPineCone, 13, 1); - if (aPinecone != null) { - ItemUtils.addItemToOreDictionary(aPinecone, "pinecone"); - } - } - } - - public static ItemStack getStack(Block aBlock, int aMeta, int aSize) { - return ItemUtils.simpleMetaStack(aBlock, aMeta, aSize); - } - - // BOPCBlocks.logs4 - 0 - // BOPCBlocks.colorizedLeaves2 - 1 - - private static void setFields() { - Field aBopMiscItem = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCItems"), "misc"); - - Field aBopBlock1 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs1"); - Field aBopBlock2 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs2"); - Field aBopBlock3 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs3"); - Field aBopBlock4 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "logs4"); - - Field aBopLeaves1 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves1"); - Field aBopLeaves2 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves2"); - Field aBopLeaves3 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves3"); - Field aBopLeaves4 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "leaves4"); - - Field aBopColouredLeaves1 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedLeaves1"); - Field aBopColouredLeaves2 = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedLeaves2"); - - Field aBopSapling = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "saplings"); - Field aBopColouredSapling = ReflectionUtils - .getField(ReflectionUtils.getClass("biomesoplenty.api.content.BOPCBlocks"), "colorizedSaplings"); - - if (aBopMiscItem != null) { - Item aMiscItem = ReflectionUtils.getFieldValue(aBopMiscItem); - if (aMiscItem != null) { - mPineCone = aMiscItem; - } - } - - if (aBopBlock1 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopBlock1); - if (aBlock != null) { - logs1 = aBlock; - } - } - if (aBopBlock2 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopBlock2); - if (aBlock != null) { - logs2 = aBlock; - } - } - if (aBopBlock3 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopBlock3); - if (aBlock != null) { - logs3 = aBlock; - } - } - if (aBopBlock4 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopBlock4); - if (aBlock != null) { - logs4 = aBlock; - } - } - - if (aBopLeaves1 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves1); - if (aBlock != null) { - leaves1 = aBlock; - } - } - if (aBopLeaves2 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves2); - if (aBlock != null) { - leaves2 = aBlock; - } - } - if (aBopLeaves3 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves3); - if (aBlock != null) { - leaves3 = aBlock; - } - } - if (aBopLeaves4 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopLeaves4); - if (aBlock != null) { - leaves4 = aBlock; - } - } - - if (aBopColouredLeaves1 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopColouredLeaves1); - if (aBlock != null) { - colorizedLeaves1 = aBlock; - } - } - if (aBopColouredLeaves2 != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopColouredLeaves2); - if (aBlock != null) { - colorizedLeaves2 = aBlock; - } - } - - if (aBopSapling != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopSapling); - if (aBlock != null) { - saplings = aBlock; - } - } - if (aBopColouredSapling != null) { - Block aBlock = ReflectionUtils.getFieldValue(aBopColouredSapling); - if (aBlock != null) { - colorizedSaplings = aBlock; - } - } - } } diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java index 11397e3ef39..95813e45bdb 100644 --- a/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_BeeDefinition.java @@ -8,7 +8,6 @@ import static forestry.api.core.EnumHumidity.ARID; import static gregtech.api.enums.Mods.Forestry; -import java.lang.reflect.Field; import java.util.Arrays; import java.util.Locale; import java.util.function.Consumer; @@ -47,7 +46,6 @@ import gtPlusPlus.core.material.MaterialsElements.STANDALONE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.MaterialUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.forestry.bees.handler.GTPPCombType; public enum GTPP_BeeDefinition implements IBeeDefinition { @@ -65,7 +63,11 @@ public enum GTPP_BeeDefinition implements IBeeDefinition { AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_3); AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_3); }, dis -> { - IBeeMutationCustom tMutation = dis.registerMutation("DRAGONESSENCE", "NEUTRONIUM", 2); + IBeeMutationCustom tMutation = dis.registerMutation( + GTBeeDefinition.DRAGONESSENCE.getSpecies(), + GTBeeDefinition.NEUTRONIUM.getSpecies(), + 2, + 1f); tMutation.restrictHumidity(ARID); tMutation.requireResource(STANDALONE.DRAGON_METAL.getBlock(), 1); tMutation.addMutationCondition(new GTBees.DimensionMutationCondition(1, "End")); // End Dim @@ -84,7 +86,8 @@ public enum GTPP_BeeDefinition implements IBeeDefinition { AlleleHelper.instance.set(template, TEMPERATURE_TOLERANCE, Tolerance.BOTH_1); AlleleHelper.instance.set(template, HUMIDITY_TOLERANCE, Tolerance.BOTH_1); }, dis -> { - IBeeMutationCustom tMutation = dis.registerMutation("STEEL", "GOLD", 10); + IBeeMutationCustom tMutation = dis + .registerMutation(GTBeeDefinition.STEEL.getSpecies(), GTBeeDefinition.GOLD.getSpecies(), 10, 1f); tMutation.restrictHumidity(ARID); tMutation.restrictBiomeType(BiomeDictionary.Type.HOT); }),; @@ -185,15 +188,15 @@ private static IAlleleBeeSpecies getSpecies(byte modid, String name) { return ret; } - private final void setSpeciesProperties(GTPPAlleleBeeSpecies species2) { + private void setSpeciesProperties(GTPPAlleleBeeSpecies species2) { this.mSpeciesProperties.accept(species2); } - private final void setAlleles(IAllele[] template) { + private void setAlleles(IAllele[] template) { this.mAlleles.accept(template); } - private final void registerMutations() { + private void registerMutations() { this.mMutations.accept(this); } @@ -209,59 +212,47 @@ private void init() { BeeManager.beeRoot.registerTemplate(template); } - private final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, - int chance) { + private IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, int chance) { return registerMutation(parent1, parent2, chance, 1f); } - private final IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, IAlleleBeeSpecies parent2, - int chance) { + private IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, IAlleleBeeSpecies parent2, int chance) { return registerMutation(parent1, parent2, chance, 1f); } - private final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, GTPP_BeeDefinition parent2, - int chance) { + private IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, GTPP_BeeDefinition parent2, int chance) { return registerMutation(parent1, parent2, chance, 1f); } - private final IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, GTPP_BeeDefinition parent2, - int chance) { + private IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, GTPP_BeeDefinition parent2, int chance) { return registerMutation(parent1, parent2, chance, 1f); } - private final IBeeMutationCustom registerMutation(String parent1, String parent2, int chance) { - return registerMutation(getGregtechBeeType(parent1), getGregtechBeeType(parent2), chance, 1f); - } - /** * Diese neue Funtion erlaubt Mutationsraten unter 1%. Setze dazu die Mutationsrate als Bruch mit chance / * chancedivider This new function allows Mutation percentages under 1%. Set them as a fraction with chance / * chancedivider */ - private final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, int chance, + private IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, IAlleleBeeSpecies parent2, int chance, float chancedivider) { return new GTPPBeeMutation(parent1, parent2, this.getTemplate(), chance, chancedivider); } - private final IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, IAlleleBeeSpecies parent2, int chance, + private IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, IAlleleBeeSpecies parent2, int chance, float chancedivider) { return registerMutation(parent1.species, parent2, chance, chancedivider); } - private final IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, GTPP_BeeDefinition parent2, int chance, + private IBeeMutationCustom registerMutation(IAlleleBeeSpecies parent1, GTPP_BeeDefinition parent2, int chance, float chancedivider) { return registerMutation(parent1, parent2.species, chance, chancedivider); } - private final IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, GTPP_BeeDefinition parent2, - int chance, float chancedivider) { + private IBeeMutationCustom registerMutation(GTPP_BeeDefinition parent1, GTPP_BeeDefinition parent2, int chance, + float chancedivider) { return registerMutation(parent1.species, parent2, chance, chancedivider); } - private final IBeeMutationCustom registerMutation(String parent1, String parent2, int chance, float chancedivider) { - return registerMutation(getGregtechBeeType(parent1), getGregtechBeeType(parent2), chance, chancedivider); - } - @Override public final IAllele[] getTemplate() { return Arrays.copyOf(template, template.length); @@ -285,16 +276,4 @@ public final ItemStack getMemberStack(EnumBeeType beeType) { public final IBeeDefinition getRainResist() { return new BeeVariation.RainResist(this); } - - public static IAlleleBeeSpecies getGregtechBeeType(String name) { - try { - // This is still cursed, but the species field is private and I don't want to go modify that right now - GTBeeDefinition aBeeObject = GTBeeDefinition.valueOf(name); - Field gtBeesField = ReflectionUtils.getField(GTBeeDefinition.class, "species"); - return ReflectionUtils.getFieldValue(gtBeesField, aBeeObject); - } catch (Throwable t) { - t.printStackTrace(); - return null; - } - } } diff --git a/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java index bfdddcca8b0..7ba5bc326a4 100644 --- a/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java +++ b/src/main/java/gtPlusPlus/xmod/forestry/bees/registry/GTPP_Bees.java @@ -7,7 +7,6 @@ import gregtech.GTMod; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.material.Material; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.forestry.bees.handler.GTPPCombType; import gtPlusPlus.xmod.forestry.bees.handler.GTPPDropType; import gtPlusPlus.xmod.forestry.bees.handler.GTPPPollenType; @@ -45,7 +44,12 @@ public GTPP_Bees() { combs = new GTPPComb(); Logger.BEES("Loading types."); - initTypes(); + // call values() to force initialization of enum entries + GTPP_BeeDefinition.values(); + GTPPCombType.values(); + GTPPDropType.values(); + GTPPPollenType.values(); + GTPPPropolisType.values(); Logger.BEES("Adding recipes."); GTPPDrop.initDropsRecipes(); @@ -58,13 +62,4 @@ public GTPP_Bees() { Logger.BEES("Done!"); } } - - private static void initTypes() { - // This is stupid - ReflectionUtils.loadClass(GTPP_BeeDefinition.class.getName()); - ReflectionUtils.loadClass(GTPPCombType.class.getName()); - ReflectionUtils.loadClass(GTPPDropType.class.getName()); - ReflectionUtils.loadClass(GTPPPollenType.class.getName()); - ReflectionUtils.loadClass(GTPPPropolisType.class.getName()); - } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchNaquadah.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchNaquadah.java index 43e43a1d4e7..90db739be72 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchNaquadah.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchNaquadah.java @@ -120,30 +120,26 @@ public String[] getDescription() { private static String[] aDescCache = new String[3]; - private String formatFluidString(FluidStack f) { - FluidStack mLockedStack = f; - Integer mLockedTemp = 0;; - String mTempMod = "" + EnumChatFormatting.RESET; - mLockedTemp = mLockedStack.getFluid() + private String formatFluidString(FluidStack fluidStack) { + String mTempMod = EnumChatFormatting.RESET.toString(); + int mLockedTemp = fluidStack.getFluid() .getTemperature(); - if (mLockedTemp != null) { - if (mLockedTemp <= -3000) { - mTempMod = "" + EnumChatFormatting.DARK_PURPLE; - } else if (mLockedTemp >= -2999 && mLockedTemp <= -500) { - mTempMod = "" + EnumChatFormatting.DARK_BLUE; - } else if (mLockedTemp >= -499 && mLockedTemp <= -50) { - mTempMod = "" + EnumChatFormatting.BLUE; - } else if (mLockedTemp >= 30 && mLockedTemp <= 300) { - mTempMod = "" + EnumChatFormatting.AQUA; - } else if (mLockedTemp >= 301 && mLockedTemp <= 800) { - mTempMod = "" + EnumChatFormatting.YELLOW; - } else if (mLockedTemp >= 801 && mLockedTemp <= 1500) { - mTempMod = "" + EnumChatFormatting.GOLD; - } else if (mLockedTemp >= 1501) { - mTempMod = "" + EnumChatFormatting.RED; - } + if (mLockedTemp <= -3000) { + mTempMod = "" + EnumChatFormatting.DARK_PURPLE; + } else if (mLockedTemp <= -500) { + mTempMod = "" + EnumChatFormatting.DARK_BLUE; + } else if (mLockedTemp <= -50) { + mTempMod = "" + EnumChatFormatting.BLUE; + } else if (mLockedTemp >= 30 && mLockedTemp <= 300) { + mTempMod = "" + EnumChatFormatting.AQUA; + } else if (mLockedTemp >= 301 && mLockedTemp <= 800) { + mTempMod = "" + EnumChatFormatting.YELLOW; + } else if (mLockedTemp >= 801 && mLockedTemp <= 1500) { + mTempMod = "" + EnumChatFormatting.GOLD; + } else if (mLockedTemp >= 1501) { + mTempMod = "" + EnumChatFormatting.RED; } - return mTempMod + mLockedStack.getLocalizedName(); + return mTempMod + fluidStack.getLocalizedName(); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java index 738afb0d90a..b1af2451aa8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java @@ -2,7 +2,6 @@ import static gregtech.api.util.GTUtility.filterValidMTEs; -import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; @@ -208,7 +207,7 @@ public String[] getInfoData() { + ": " + EnumChatFormatting.YELLOW + GTValues.VN[GTUtility.getTier(getMaxInputVoltage())] - + EnumChatFormatting.RESET));; + + EnumChatFormatting.RESET)); } if (!this.mAllDynamoHatches.isEmpty()) { long storedEnergy = getStoredEnergyInAllDynamoHatches(); @@ -843,43 +842,11 @@ public boolean updateTexture(final IGregTechTileEntity aTileEntity, int aCasingI * Enable Texture Casing Support if found in GT 5.09 */ public boolean updateTexture(final IMetaTileEntity aTileEntity, int aCasingID) { - try { // gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch.updateTexture(int) - - final IMetaTileEntity aMetaTileEntity = aTileEntity; - if (aMetaTileEntity == null) { - return false; - } - Method mProper = ReflectionUtils.getMethod(MTEHatch.class, "updateTexture", int.class); - if (mProper != null) { - if (MTEHatch.class.isInstance(aMetaTileEntity)) { - mProper.setAccessible(true); - mProper.invoke(aMetaTileEntity, aCasingID); - // log("Good Method Call for updateTexture."); - return true; - } - } else { - log("Bad Method Call for updateTexture."); - if (MTEHatch.class.isInstance(aMetaTileEntity)) { - if (aCasingID <= Byte.MAX_VALUE) { - ((MTEHatch) aTileEntity).updateTexture(aCasingID); - log( - "Good Method Call for updateTexture. Used fallback method of setting mMachineBlock as casing id was <= 128."); - return true; - } else { - log("updateTexture returning false. 1.2"); - } - } else { - log("updateTexture returning false. 1.3"); - } - } - log("updateTexture returning false. 1"); - return false; - } catch (SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - log("updateTexture returning false."); - log("updateTexture returning false. 2"); - e.printStackTrace(); - return false; + if (aTileEntity instanceof MTEHatch mteHatch) { + mteHatch.updateTexture(aCasingID); + return true; } + return false; } /** diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenFluidCanning.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenFluidCanning.java index c9f627c0d51..a334fd7de4b 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenFluidCanning.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenFluidCanning.java @@ -13,7 +13,6 @@ import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; public class RecipeGenFluidCanning implements Runnable { @@ -206,13 +205,7 @@ private void addFluidCannerRecipe(GTRecipe aRecipe) { } private void dumpStack() { - int parents = 2; - for (int i = 0; i < 6; i++) { - Logger.INFO( - (disableOptional ? "EXTRACTING" : "CANNING") + " DEBUG | " - + (i == 0 ? "Called from: " : "Parent: ") - + ReflectionUtils.getMethodName(i + parents)); - } + Logger.modLogger.info((disableOptional ? "EXTRACTING" : "CANNING") + " DEBUG ", new Exception()); } private int getMapSize(RecipeMap aMap) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenRecycling.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenRecycling.java index 8fe051dd71a..305422ccea7 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenRecycling.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/RecipeGenRecycling.java @@ -28,7 +28,6 @@ import gtPlusPlus.core.material.state.MaterialState; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; public class RecipeGenRecycling implements Runnable { @@ -252,11 +251,7 @@ public static ItemStack get(final OrePrefixes aPrefix, final Material aMaterial, public static ItemStack get(final Object aName, final ItemStack aReplacement, final long aAmount, final boolean aMentionPossibleTypos, final boolean aNoInvalidAmounts) { if (aNoInvalidAmounts && (aAmount < 1L)) { - Logger.WARNING("Returning Null. Method: " + ReflectionUtils.getMethodName(0)); - Logger.WARNING("Called from method: " + ReflectionUtils.getMethodName(1)); - Logger.WARNING("Called from method: " + ReflectionUtils.getMethodName(2)); - Logger.WARNING("Called from method: " + ReflectionUtils.getMethodName(3)); - Logger.WARNING("Called from method: " + ReflectionUtils.getMethodName(4)); + Logger.modLogger.warn("Returning Null. Method: ", new Exception()); return null; } if (!mNameMap.containsKey(aName.toString()) && aMentionPossibleTypos) { @@ -269,11 +264,7 @@ public static ItemStack get(final Object aName, final ItemStack aReplacement, fi public static ItemStack getFirstOre(final Object aName, final long aAmount) { if (GTUtility.isStringInvalid(aName)) { - Logger.WARNING("Returning Null. Method: " + ReflectionUtils.getMethodName(0)); - Logger.WARNING("Called from method: " + ReflectionUtils.getMethodName(1)); - Logger.WARNING("Called from method: " + ReflectionUtils.getMethodName(2)); - Logger.WARNING("Called from method: " + ReflectionUtils.getMethodName(3)); - Logger.WARNING("Called from method: " + ReflectionUtils.getMethodName(4)); + Logger.modLogger.warn("Returning Null. Method: ", new Exception()); return null; } final ItemStack tStack = mNameMap.get(aName.toString()); diff --git a/src/main/java/gtPlusPlus/xmod/tinkers/HandlerTinkers.java b/src/main/java/gtPlusPlus/xmod/tinkers/HandlerTinkers.java index 5dbde334932..faa94542b98 100644 --- a/src/main/java/gtPlusPlus/xmod/tinkers/HandlerTinkers.java +++ b/src/main/java/gtPlusPlus/xmod/tinkers/HandlerTinkers.java @@ -1,10 +1,9 @@ package gtPlusPlus.xmod.tinkers; -import static gregtech.api.enums.Mods.TinkerConstruct; - import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; +import gregtech.api.enums.Mods; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.xmod.tinkers.material.BaseTinkersMaterial; import gtPlusPlus.xmod.tinkers.util.TinkersDryingRecipe; @@ -15,7 +14,7 @@ public class HandlerTinkers { public static AutoMap mTinkerMaterials = new AutoMap<>(); public static void postInit() { - if (TinkerConstruct.isModLoaded()) { + if (Mods.TinkerConstruct.isModLoaded()) { Fluid pyrotheumFluid = FluidRegistry.getFluid("pyrotheum"); if (pyrotheumFluid != null) { diff --git a/src/main/java/gtPlusPlus/xmod/tinkers/material/BaseTinkersMaterial.java b/src/main/java/gtPlusPlus/xmod/tinkers/material/BaseTinkersMaterial.java index 5a4984a898a..68685b7b8b2 100644 --- a/src/main/java/gtPlusPlus/xmod/tinkers/material/BaseTinkersMaterial.java +++ b/src/main/java/gtPlusPlus/xmod/tinkers/material/BaseTinkersMaterial.java @@ -165,20 +165,12 @@ public void generate() { private boolean generateRecipes(Material aMaterial, int aID) { - Block aMatBlock; - Integer aMelt; - Fluid aFluid; - - try { - aMatBlock = aMaterial.getBlock(); - aMelt = aMaterial.getMeltingPointC(); - aFluid = aMaterial.getFluidStack(0) - .getFluid(); - } catch (Throwable t) { - return false; - } + Block aMatBlock = aMaterial.getBlock(); + int aMelt = aMaterial.getMeltingPointC(); + Fluid aFluid = aMaterial.getFluidStack(0) + .getFluid(); - if (aMatBlock == null || aMelt == null || aFluid == null) { + if (aMatBlock == null || aFluid == null) { return false; } @@ -192,7 +184,6 @@ private boolean generateRecipes(Material aMaterial, int aID) { TinkersUtils .addCastingTableRecipe(aMaterial.getIngot(1), aMaterial.getFluidStack(144), ingotcast, false, 50); } - TinkersUtils.generateCastingRecipes(aMaterial, aID); return true; diff --git a/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java b/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java index 4adac363e88..4136b543099 100644 --- a/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java +++ b/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersDryingRecipe.java @@ -1,9 +1,7 @@ package gtPlusPlus.xmod.tinkers.util; -import static gregtech.api.enums.Mods.TinkerConstruct; import static gtPlusPlus.api.recipe.GTPPRecipeMaps.chemicalDehydratorRecipes; -import java.lang.reflect.Field; import java.util.List; import net.minecraft.item.ItemStack; @@ -14,7 +12,7 @@ import gregtech.api.util.GTUtility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.core.util.reflect.ReflectionUtils; +import tconstruct.library.crafting.DryingRackRecipes; public class TinkersDryingRecipe { @@ -24,20 +22,25 @@ public class TinkersDryingRecipe { public final ItemStack input; public final ItemStack result; + public TinkersDryingRecipe(final ItemStack input, final int time, final ItemStack result) { + this.time = time; + this.input = input; + this.result = result; + Logger.INFO( + "Generating Drying Recipe. Input: " + input.getDisplayName() + ", Output: " + result.getDisplayName()); + } + public static void generateAllDryingRecipes() { - List aRecipes = TinkersUtils.getDryingRecipes(); - if (aRecipes != null && aRecipes.size() > 0) { - for (Object o : aRecipes) { + List aRecipes = TinkersDryingRecipe.getDryingRecipes(); + if (!aRecipes.isEmpty()) { + for (DryingRackRecipes.DryingRecipe recipe : aRecipes) { Logger.INFO( - "Trying to generate recipe using object of type " + o.getClass() + "Trying to generate recipe using object of type " + recipe.getClass() .getSimpleName()); - generateFromTinkersRecipeObject(o); + generateFromTinkersRecipe(recipe); } } else { - Logger.INFO( - "Error generating Drying recipes, map was either null or empty. Null? " + (aRecipes != null) - + ", Size: " - + aRecipes.size()); + Logger.INFO("Error generating Drying recipes, map was empty. Size: " + aRecipes.size()); } if (!recipes.isEmpty()) { Logger.INFO("Adding " + recipes.size() + " drying rack recipes to the dehydrator."); @@ -52,61 +55,19 @@ public static void generateAllDryingRecipes() { } } - public static TinkersDryingRecipe generateFromTinkersRecipeObject(Object o) { - Field aTime; - Field aInput; - Field aOutput; - Class aTinkerClass = ReflectionUtils.getClass("tconstruct.library.crafting.DryingRackRecipes.DryingRecipe"); // o.getClass(); - if (aTinkerClass == null || TinkerConstruct.isModLoaded()) { - Logger.INFO( - "Error generating Drying Recipe, could not find class. Exists? " - + ReflectionUtils.doesClassExist("tconstruct.library.crafting.DryingRackRecipes.DryingRecipe")); - Class clazz = ReflectionUtils.getClass("tconstruct.library.crafting.DryingRackRecipes"); - Class[] y = clazz.getDeclaredClasses(); - if (y == null || y.length <= 0) { - Logger.INFO("No hidden inner classes."); - return null; - } else { - boolean found = false; - for (Class h : y) { - Logger.INFO("Found hidden inner class: " + h.getCanonicalName()); - if (h.getSimpleName() - .toLowerCase() - .equals("dryingrecipe")) { - Logger.INFO("Found correct recipe. Caching at correct location."); - ReflectionUtils.mCachedClasses - .put("tconstruct.library.crafting.DryingRackRecipes.DryingRecipe", h); - aTinkerClass = h; - found = true; - break; - } - } - if (!found) { - return null; - } - } - } - aTime = ReflectionUtils.getField(aTinkerClass, "time"); - aInput = ReflectionUtils.getField(aTinkerClass, "input"); - aOutput = ReflectionUtils.getField(aTinkerClass, "result"); - try { - int time_internal = aTime.getInt(o); - ItemStack input_internal = (ItemStack) aInput.get(o); - ItemStack result_internal = (ItemStack) aOutput.get(o); - return new TinkersDryingRecipe(input_internal, time_internal, result_internal); - } catch (Throwable b) { - b.printStackTrace(); - } - return null; + private static void generateFromTinkersRecipe(DryingRackRecipes.DryingRecipe recipe) { + recipes.add(new TinkersDryingRecipe(recipe.input, recipe.time, recipe.result)); } - public TinkersDryingRecipe(final ItemStack input, final int time, final ItemStack result) { - this.time = time; - this.input = input; - this.result = result; - Logger.INFO( - "Generating Drying Recipe. Input: " + input.getDisplayName() + ", Output: " + result.getDisplayName()); - recipes.add(this); + private static List getDryingRecipes() { + AutoMap aData = new AutoMap<>(); + int aCount = 0; + for (DryingRackRecipes.DryingRecipe recipe : DryingRackRecipes.recipes) { + aData.put(recipe); + aCount++; + } + Logger.INFO("Found " + aCount + " Tinkers drying rack recipes."); + return aData; } public boolean matches(ItemStack input) { diff --git a/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersUtils.java b/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersUtils.java index 8b173d5b624..09633f58106 100644 --- a/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersUtils.java +++ b/src/main/java/gtPlusPlus/xmod/tinkers/util/TinkersUtils.java @@ -1,339 +1,89 @@ package gtPlusPlus.xmod.tinkers.util; -import static gregtech.api.enums.Mods.TinkerConstruct; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.LinkedList; import java.util.List; import net.minecraft.block.Block; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; -import gregtech.api.enums.Materials; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.core.material.Material; -import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; +import tconstruct.library.TConstructRegistry; +import tconstruct.library.crafting.CastingRecipe; +import tconstruct.library.crafting.FluidType; +import tconstruct.library.crafting.LiquidCasting; +import tconstruct.library.crafting.Smeltery; +import tconstruct.library.tools.DynamicToolPart; +import tconstruct.library.util.IPattern; +import tconstruct.smeltery.TinkerSmeltery; public class TinkersUtils { - private static final Class mClass_Smeltery; - private static final Class mClass_TConstructRegistry; - private static final Class mClass_ToolMaterial; - private static final Class mClass_IPattern; - private static final Class mClass_DynamicToolPart; - private static final Class mClass_FluidType; - private static final Class mClass_CastingRecipe; - private static final Class mClass_TinkerSmeltery; - - private static final Field mField_MoltenIronFluid; - - private static final Method mMethod_getFluidType; - private static final Method mMethod_getCastingRecipes; - - private static Object mSmelteryInstance; - private static Object mTinkersRegistryInstance; - - private static final HashMap mMethodCache = new LinkedHashMap<>(); - - static { - mClass_Smeltery = ReflectionUtils.getClass("tconstruct.library.crafting.Smeltery"); - mClass_TConstructRegistry = ReflectionUtils.getClass("tconstruct.library.TConstructRegistry"); - - mClass_ToolMaterial = ReflectionUtils.getClass("tconstruct.library.tools.ToolMaterial"); - mClass_IPattern = ReflectionUtils.getClass("tconstruct.library.util.IPattern"); - mClass_DynamicToolPart = ReflectionUtils.getClass("tconstruct.library.tools.DynamicToolPart"); - mClass_FluidType = ReflectionUtils.getClass("tconstruct.library.crafting.FluidType"); - mClass_CastingRecipe = ReflectionUtils.getClass("tconstruct.library.crafting.CastingRecipe"); - mClass_TinkerSmeltery = ReflectionUtils.getClass("tconstruct.smeltery.TinkerSmeltery"); - - mField_MoltenIronFluid = ReflectionUtils.getField(mClass_TinkerSmeltery, "moltenIronFluid"); - - mMethod_getFluidType = ReflectionUtils.getMethod(mClass_FluidType, "getFluidType", String.class); - mMethod_getCastingRecipes = ReflectionUtils - .getMethod(getCastingInstance(0), "getCastingRecipes", new Class[] {}); - } - - private static void setTiConDataInstance() { - if (!TinkerConstruct.isModLoaded()) { - return; - } - - if (mSmelteryInstance == null) { - if (mClass_Smeltery != null) { - try { - mSmelteryInstance = ReflectionUtils.getField(mClass_Smeltery, "instance") - .get(null); - } catch (IllegalArgumentException | IllegalAccessException ignored) {} - } - } - if (mTinkersRegistryInstance == null) { - if (mClass_TConstructRegistry != null) { - try { - mTinkersRegistryInstance = ReflectionUtils.getField(mClass_TConstructRegistry, "instance") - .get(null); - } catch (IllegalArgumentException | IllegalAccessException ignored) {} - } - } - } - /** * Add a new fluid as a valid Smeltery fuel. - * + * * @param fluid The fluid. * @param power The temperature of the fluid. This also influences the melting speed. Lava is 1000. * @param duration How long one "portion" of liquid fuels the smeltery. Lava is 10. */ public static void addSmelteryFuel(Fluid fluid, int power, int duration) { - setTiConDataInstance(); - ReflectionUtils.invokeVoid( - mSmelteryInstance, - "addSmelteryFuel", - new Class[] { Fluid.class, int.class, int.class }, - new Object[] { fluid, power, duration }); + Smeltery.addSmelteryFuel(fluid, power, duration); } public static boolean registerFluidType(String name, Block block, int meta, int baseTemperature, Fluid fluid, boolean isToolpart) { - if (mMethodCache.get("registerFluidType") == null) { - Method m = ReflectionUtils.getMethod( - ReflectionUtils.getClass("tconstruct.library.crafting.FluidType"), - "registerFluidType", - String.class, - Block.class, - int.class, - int.class, - Fluid.class, - boolean.class); - mMethodCache.put("registerFluidType", m); - } - try { - mMethodCache.get("registerFluidType") - .invoke(null, name, block, meta, baseTemperature, fluid, isToolpart); - return true; - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - return false; - } + FluidType.registerFluidType(name, block, meta, baseTemperature, fluid, isToolpart); + return true; } public static void addMelting(ItemStack input, Block block, int metadata, int temperature, FluidStack liquid) { - if (mMethodCache.get("addMelting") == null) { - Method m = ReflectionUtils.getMethod( - mClass_Smeltery, - "addMelting", - ItemStack.class, - Block.class, - int.class, - int.class, - FluidStack.class); - mMethodCache.put("addMelting", m); - } - try { - mMethodCache.get("addMelting") - .invoke(null, input, block, metadata, temperature, liquid); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ignored) {} + Smeltery.addMelting(input, block, metadata, temperature, liquid); } - public static void addMelting(Object type, ItemStack input, int temperatureDifference, int fluidAmount) { - if (mMethodCache.get("addMelting") == null) { - Method m = ReflectionUtils - .getMethod(mClass_Smeltery, "addMelting", mClass_FluidType, ItemStack.class, int.class, int.class); - mMethodCache.put("addMelting", m); - } - try { - mMethodCache.get("addMelting") - .invoke(null, type, input, temperatureDifference, fluidAmount); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ignored) {} + public static void addMelting(FluidType type, ItemStack input, int temperatureDifference, int fluidAmount) { + Smeltery.addMelting(type, input, temperatureDifference, fluidAmount); } public static void addBasinRecipe(ItemStack output, FluidStack metal, ItemStack cast, boolean consume, int delay) { - if (mMethodCache.get("addBasinRecipe") == null) { - Method m = ReflectionUtils.getMethod( - ReflectionUtils.getClass("tconstruct.library.crafting.LiquidCasting"), - "addCastingRecipe", - ItemStack.class, - FluidStack.class, - ItemStack.class, - boolean.class, - int.class); - mMethodCache.put("addBasinRecipe", m); - } - try { - mMethodCache.get("addBasinRecipe") - .invoke(getCastingInstance(0), output, metal, cast, consume, delay); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ignored) {} + LiquidCasting tableCasting = TConstructRegistry.getTableCasting(); + tableCasting.addCastingRecipe(output, metal, cast, consume, delay); } public static void addCastingTableRecipe(ItemStack output, FluidStack metal, ItemStack cast, boolean consume, int delay) { - if (mMethodCache.get("addCastingTableRecipe") == null) { - Method m = ReflectionUtils.getMethod( - ReflectionUtils.getClass("tconstruct.library.crafting.LiquidCasting"), - "addCastingRecipe", - ItemStack.class, - FluidStack.class, - ItemStack.class, - boolean.class, - int.class); - mMethodCache.put("addCastingTableRecipe", m); - } - try { - mMethodCache.get("addCastingTableRecipe") - .invoke(getCastingInstance(1), output, metal, cast, consume, delay); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ignored) {} + LiquidCasting basinCasting = TConstructRegistry.getBasinCasting(); + basinCasting.addCastingRecipe(output, metal, cast, consume, delay); } - /** - * 0 For Table, 1 For Basin. - * - * @param aType - Casting Type - * @return - The casting instance. - */ - public static Object getCastingInstance(int aType) { - - setTiConDataInstance(); - - Method m = null; - if (aType == 0) { - m = ReflectionUtils.getMethod(mTinkersRegistryInstance, "getTableCasting", new Class[] {}); - } else if (aType == 1) { - m = ReflectionUtils.getMethod(mTinkersRegistryInstance, "getBasinCasting", new Class[] {}); - } // return null; - - if (m != null) { - try { - return m.invoke(mTinkersRegistryInstance, new Object[] {}); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - } - return null; - } - - private static Item mTinkerMetalPattern; - - public static ItemStack getPattern(int aType) { - if (mTinkerMetalPattern == null) { - Field m = ReflectionUtils.getField(mClass_TinkerSmeltery, "metalPattern"); - if (m != null) { - try { - mTinkerMetalPattern = (Item) m.get(null); - } catch (IllegalArgumentException | IllegalAccessException ignored) {} - } - } - if (mTinkerMetalPattern != null) { - return new ItemStack(mTinkerMetalPattern, aType, 0); - } - return ItemUtils.getErrorStack(1, "Bad Tinkers Pattern"); - } - - private static AutoMap mDryingRackRecipes; - - public static List getDryingRecipes() { - if (mDryingRackRecipes != null) { - return mDryingRackRecipes; - } - AutoMap aData = new AutoMap<>(); - int aCount = 0; - try { - ArrayList recipes = (ArrayList) ReflectionUtils - .getField(ReflectionUtils.getClass("tconstruct.library.crafting.DryingRackRecipes"), "recipes") - .get(null); - if (recipes != null) { - for (Object o : recipes) { - aData.put(o); - aCount++; - } - Logger.INFO("Found " + aCount + " Tinkers drying rack recipes."); - } else { - Logger.INFO("Failed to find any Tinkers drying rack recipes."); - } - } catch (IllegalArgumentException | IllegalAccessException e) { - Logger.INFO("Failed to find any Tinkers drying rack recipes."); - } - mDryingRackRecipes = aData; - return aData; - } - - public static List getTableCastingRecipes() { - Object aCastingTableHandlerInstance = getCastingInstance(0); - List aTemp; - try { - aTemp = (List) mMethod_getCastingRecipes.invoke(aCastingTableHandlerInstance, new Object[] {}); - return aTemp; - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - return new ArrayList<>(); + public static List getTableCastingRecipes() { + LiquidCasting tableCasting = TConstructRegistry.getTableCasting(); + return tableCasting.getCastingRecipes(); } public static void generateCastingRecipes(Material aMaterial, int aID) { - - List newRecipies = new LinkedList<>(); - - Iterator iterator1 = getTableCastingRecipes().iterator(); - Fluid aMoltenIron = null; - if (aMoltenIron == null) { - try { - aMoltenIron = (Fluid) mField_MoltenIronFluid.get(null); - } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); - aMoltenIron = Materials.Iron.getMolten(0) - .getFluid(); - } - } - while (iterator1.hasNext()) { - CastingRecipeHandler recipe = new CastingRecipeHandler(iterator1.next()); - if (recipe == null || !recipe.valid) { - continue; - } - try { - if (recipe.castingMetal.getFluid() == aMoltenIron && recipe.cast != null - && mClass_IPattern.isInstance(recipe.cast.getItem()) - && mClass_DynamicToolPart.isInstance( - recipe.getResult() - .getItem())) { - newRecipies.add(recipe); - } - } catch (IllegalArgumentException e) { - e.printStackTrace(); - return; - } - } - - Object ft; - try { - ft = mMethod_getFluidType.invoke(null, aMaterial.getLocalizedName()); - for (CastingRecipeHandler newRecipy : newRecipies) { - CastingRecipeHandler recipe = new CastingRecipeHandler(newRecipy); - if (!recipe.valid) { - continue; - } - // CastingRecipe recipe = (CastingRecipe) i$.next(); - ItemStack output = recipe.getResult() + Fluid aMoltenIron = TinkerSmeltery.moltenIronFluid; + FluidType fluidType = FluidType.getFluidType(aMaterial.getLocalizedName()); + for (CastingRecipe recipe : getTableCastingRecipes()) { + CastingRecipeHandler newRecipe = new CastingRecipeHandler(recipe); + if (newRecipe.castingMetal.getFluid() == aMoltenIron && newRecipe.cast != null + && newRecipe.cast.getItem() instanceof IPattern + && newRecipe.getResult() + .getItem() instanceof DynamicToolPart) { + ItemStack output = newRecipe.getResult() .copy(); output.setItemDamage(aID); - FluidStack liquid2 = new FluidStack( + FluidStack liquid = new FluidStack( aMaterial.getFluidStack(0) .getFluid(), - recipe.castingMetal.amount); - addCastingTableRecipe(output, liquid2, recipe.cast, recipe.consumeCast, recipe.coolTime); - addMelting(ft, output, 0, liquid2.amount / 2); + newRecipe.castingMetal.amount); + addCastingTableRecipe(output, liquid, newRecipe.cast, newRecipe.consumeCast, newRecipe.coolTime); + addMelting(fluidType, output, 0, liquid.amount / 2); } - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); } + } + public static ItemStack getPattern(int aType) { + return new ItemStack(TinkerSmeltery.metalPattern, aType, 0); } private static class CastingRecipeHandler { @@ -344,30 +94,12 @@ private static class CastingRecipeHandler { public boolean consumeCast; public int coolTime; - public boolean valid; - - public CastingRecipeHandler(Object aCastingRecipe) { - if (mClass_CastingRecipe.isInstance(aCastingRecipe)) { - try { - Field aF_output = ReflectionUtils.getField(mClass_CastingRecipe, "output"); - Field aF_castingMetal = ReflectionUtils.getField(mClass_CastingRecipe, "castingMetal"); - Field aF_cast = ReflectionUtils.getField(mClass_CastingRecipe, "cast"); - Field aF_consumeCast = ReflectionUtils.getField(mClass_CastingRecipe, "consumeCast"); - Field aF_coolTime = ReflectionUtils.getField(mClass_CastingRecipe, "coolTime"); - - output = (ItemStack) aF_output.get(aCastingRecipe); - castingMetal = (FluidStack) aF_castingMetal.get(aCastingRecipe); - cast = (ItemStack) aF_cast.get(aCastingRecipe); - consumeCast = (boolean) aF_consumeCast.get(aCastingRecipe); - coolTime = (int) aF_coolTime.get(aCastingRecipe); - valid = true; - } catch (Throwable t) { - t.printStackTrace(); - valid = false; - } - } else { - valid = false; - } + public CastingRecipeHandler(CastingRecipe castingRecipe) { + this.output = castingRecipe.output; + this.castingMetal = castingRecipe.castingMetal; + this.cast = castingRecipe.cast; + this.consumeCast = castingRecipe.consumeCast; + this.coolTime = castingRecipe.coolTime; } public ItemStack getResult() { diff --git a/src/main/java/gtnhlanth/common/tileentity/MTELINAC.java b/src/main/java/gtnhlanth/common/tileentity/MTELINAC.java index 78ea9c78468..94571d10e0e 100644 --- a/src/main/java/gtnhlanth/common/tileentity/MTELINAC.java +++ b/src/main/java/gtnhlanth/common/tileentity/MTELINAC.java @@ -213,7 +213,7 @@ protected MultiblockTooltipBuilder createTooltip() { .addOtherStructurePart("Beamline Input Hatch", addDotText(3)) .addOtherStructurePart("Beamline Output Hatch", addDotText(4)) - .toolTipFinisher("GTNH: Lanthanides");; + .toolTipFinisher("GTNH: Lanthanides"); return tt; }