diff options
Diffstat (limited to 'src/main/java')
41 files changed, 247 insertions, 1067 deletions
diff --git a/src/main/java/bartworks/API/WerkstoffAPI.java b/src/main/java/bartworks/API/WerkstoffAPI.java index d23ef1b75c..0a89e67550 100644 --- a/src/main/java/bartworks/API/WerkstoffAPI.java +++ b/src/main/java/bartworks/API/WerkstoffAPI.java @@ -14,22 +14,13 @@ package bartworks.API; import bartworks.system.material.Werkstoff; +import bartworks.system.material.WerkstoffLoader; public final class WerkstoffAPI { - @SuppressWarnings("rawtypes") - static Class w; - - static { - try { - w = Class.forName("bartworks.system.material.WerkstoffLoader"); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } - } - public static Werkstoff getWerkstoff(String aName) throws NoSuchFieldException, IllegalAccessException { - return (Werkstoff) w.getField(aName) + return (Werkstoff) WerkstoffLoader.class.getField(aName) .get(null); } + } diff --git a/src/main/java/bartworks/system/material/WerkstoffLoader.java b/src/main/java/bartworks/system/material/WerkstoffLoader.java index d5c9337a7c..858fda7a58 100644 --- a/src/main/java/bartworks/system/material/WerkstoffLoader.java +++ b/src/main/java/bartworks/system/material/WerkstoffLoader.java @@ -152,25 +152,12 @@ public class WerkstoffLoader { public static final SubTag ANAEROBE_SMELTING = SubTag.getNewSubTag("AnaerobeSmelting"); public static final SubTag NOBLE_GAS_SMELTING = SubTag.getNewSubTag("NobleGasSmelting"); public static final SubTag NO_BLAST = SubTag.getNewSubTag("NoBlast"); - public static ItemList rotorMold; - public static ItemList rotorShape; - public static ItemList smallGearShape; - public static ItemList ringMold; - public static ItemList boltMold; public static void setUp() { OrePrefixes.cellMolten.mMaterialGenerationBits = 0b1000000; OrePrefixes.capsuleMolten.mMaterialGenerationBits = 0b1000000; - try { - WerkstoffLoader.rotorMold = Enum.valueOf(ItemList.class, "Shape_Mold_Rotor"); - WerkstoffLoader.rotorShape = Enum.valueOf(ItemList.class, "Shape_Extruder_Rotor"); - WerkstoffLoader.smallGearShape = Enum.valueOf(ItemList.class, "Shape_Extruder_Small_Gear"); - WerkstoffLoader.ringMold = Enum.valueOf(ItemList.class, "Shape_Mold_Ring"); - WerkstoffLoader.boltMold = Enum.valueOf(ItemList.class, "Shape_Mold_Bolt"); - } catch (NullPointerException | IllegalArgumentException ignored) {} - // add tiberium EnumUtils.createNewElement("Tr", 123L, 203L, 0L, -1L, null, "Tiberium", false); diff --git a/src/main/java/bartworks/system/material/gtenhancement/PlatinumSludgeOverHaul.java b/src/main/java/bartworks/system/material/gtenhancement/PlatinumSludgeOverHaul.java index a20996d463..5b5037ba08 100644 --- a/src/main/java/bartworks/system/material/gtenhancement/PlatinumSludgeOverHaul.java +++ b/src/main/java/bartworks/system/material/gtenhancement/PlatinumSludgeOverHaul.java @@ -117,6 +117,8 @@ import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.common.blocks.BlockOresAbstract; +import gtPlusPlus.core.block.base.BlockBaseModular; +import gtPlusPlus.core.item.base.BaseItemComponent; public class PlatinumSludgeOverHaul { @@ -1053,25 +1055,14 @@ public class PlatinumSludgeOverHaul { } } - try { - if (Class.forName("gtPlusPlus.core.item.base.BaseItemComponent") - .isAssignableFrom( - stack.getItem() - .getClass()) - && !stack.getUnlocalizedName() - .contains("dust") - && !stack.getUnlocalizedName() - .contains("Dust")) { - return true; - } - if (Class.forName("gtPlusPlus.core.block.base.BlockBaseModular") - .isAssignableFrom( - Block.getBlockFromItem(stack.getItem()) - .getClass())) { - return true; - } - } catch (ClassNotFoundException e) { - e.printStackTrace(); + if (stack.getItem() instanceof BaseItemComponent && !stack.getUnlocalizedName() + .contains("dust") + && !stack.getUnlocalizedName() + .contains("Dust")) { + return true; + } + if (Block.getBlockFromItem(stack.getItem()) instanceof BlockBaseModular) { + return true; } if (stack.getItem() == HELICOPTER.getDust(1) .getItem()) { diff --git a/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/CraftingMaterialLoader.java b/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/CraftingMaterialLoader.java index 022cf4c3e6..5512274260 100644 --- a/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/CraftingMaterialLoader.java +++ b/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/CraftingMaterialLoader.java @@ -38,7 +38,6 @@ import static gregtech.api.util.GTRecipeBuilder.SECONDS; import static gregtech.api.util.GTRecipeBuilder.TICKS; import bartworks.system.material.Werkstoff; -import bartworks.system.material.WerkstoffLoader; import bartworks.system.material.werkstoff_loaders.IWerkstoffRunnable; import gregtech.api.enums.GTValues; import gregtech.api.enums.ItemList; @@ -185,18 +184,14 @@ public class CraftingMaterialLoader implements IWerkstoffRunnable { .addTo(wiremillRecipes); // smallGear - if (WerkstoffLoader.smallGearShape != null) { - - GTValues.RA.stdBuilder() - .itemInputs(werkstoff.get(ingot), WerkstoffLoader.smallGearShape.get(0L)) - .itemOutputs(werkstoff.get(gearGtSmall)) - .duration( - (int) werkstoff.getStats() - .getMass()) - .eut(8 * tVoltageMultiplier) - .addTo(extruderRecipes); - - } + GTValues.RA.stdBuilder() + .itemInputs(werkstoff.get(ingot), ItemList.Shape_Extruder_Small_Gear.get(0L)) + .itemOutputs(werkstoff.get(gearGtSmall)) + .duration( + (int) werkstoff.getStats() + .getMass()) + .eut(8 * tVoltageMultiplier) + .addTo(extruderRecipes); GTModHandler.addCraftingRecipe( werkstoff.get(gearGtSmall), @@ -234,16 +229,12 @@ public class CraftingMaterialLoader implements IWerkstoffRunnable { .eut(24) .addTo(assemblerRecipes); - if (WerkstoffLoader.rotorShape != null) { - - GTValues.RA.stdBuilder() - .itemInputs(werkstoff.get(ingot, 5), WerkstoffLoader.rotorShape.get(0L)) - .itemOutputs(werkstoff.get(rotor)) - .duration(10 * SECONDS) - .eut(60) - .addTo(extruderRecipes); - - } + GTValues.RA.stdBuilder() + .itemInputs(werkstoff.get(ingot, 5), ItemList.Shape_Extruder_Rotor.get(0L)) + .itemOutputs(werkstoff.get(rotor)) + .duration(10 * SECONDS) + .eut(60) + .addTo(extruderRecipes); // molten -> metal if (werkstoff.hasItemType(cellMolten)) { diff --git a/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/MoltenCellLoader.java b/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/MoltenCellLoader.java index 8d639574cb..710f122592 100644 --- a/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/MoltenCellLoader.java +++ b/src/main/java/bartworks/system/material/werkstoff_loaders/recipe/MoltenCellLoader.java @@ -300,12 +300,6 @@ public class MoltenCellLoader implements IWerkstoffRunnable { .getMass() > 128 ? 64 : 30) .addTo(fluidSolidifierRecipes); - // No Spring Molds - - if (WerkstoffLoader.rotorMold == null) { - return; - } - GTValues.RA.stdBuilder() .itemInputs(ItemList.Shape_Mold_Rotor.get(0)) .itemOutputs(werkstoff.get(rotor)) diff --git a/src/main/java/bartworks/util/CachedReflectionUtils.java b/src/main/java/bartworks/util/CachedReflectionUtils.java deleted file mode 100644 index a02b644b4a..0000000000 --- a/src/main/java/bartworks/util/CachedReflectionUtils.java +++ /dev/null @@ -1,31 +0,0 @@ -package bartworks.util; - -import java.lang.reflect.Field; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.apache.commons.lang3.reflect.FieldUtils; - -public class CachedReflectionUtils { - - private static final ClassValue<Map<String, Field>> fields = new ConcurrentMapClassValue(); - private static final ClassValue<Map<String, Field>> declaredFields = new ConcurrentMapClassValue(); - - public static Field getField(final Class<?> cls, final String fieldName) { - return fields.get(cls) - .computeIfAbsent(fieldName, f -> FieldUtils.getField(cls, f, true)); - } - - public static Field getDeclaredField(final Class<?> cls, final String fieldName) { - return declaredFields.get(cls) - .computeIfAbsent(fieldName, f -> FieldUtils.getDeclaredField(cls, f, true)); - } - - private static class ConcurrentMapClassValue extends ClassValue<Map<String, Field>> { - - @Override - protected Map<String, Field> computeValue(Class<?> type) { - return new ConcurrentHashMap<>(); - } - } -} diff --git a/src/main/java/bwcrossmod/GTpp/loader/RadioHatchCompat.java b/src/main/java/bwcrossmod/GTpp/loader/RadioHatchCompat.java index b410ec7e3e..9af6b96ba6 100644 --- a/src/main/java/bwcrossmod/GTpp/loader/RadioHatchCompat.java +++ b/src/main/java/bwcrossmod/GTpp/loader/RadioHatchCompat.java @@ -13,106 +13,34 @@ package bwcrossmod.GTpp.loader; -import static gregtech.api.enums.Mods.GTPlusPlus; - -import java.lang.reflect.Constructor; import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; import java.util.Map; -import java.util.Queue; -import java.util.Set; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.util.RegistryNamespaced; import net.minecraftforge.oredict.OreDictionary; -import bartworks.API.IRadMaterial; import bartworks.util.log.DebugLog; import bwcrossmod.BartWorksCrossmod; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.registry.GameData; import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.Mods; +import gtPlusPlus.core.item.base.BaseItemComponent; +import gtPlusPlus.core.item.base.rods.BaseItemRod; +import gtPlusPlus.core.item.base.rods.BaseItemRodLong; +import gtPlusPlus.core.material.Material; public class RadioHatchCompat { - private static Class<?> intf; - private static Class<?> materialClass; - private static Class<?> enu; - private static Class<?> materialStackClass; - - private static Field isRadioactive; - private static Field f; - private static Field componentType; - private static Field radlevel; - private static Field protons; - - private static Field vMaterialInput; - private static Field stackMaterial; - private static Field RGBA; - private static Field localizedName; - private static Field unlocalizedName; - - private static Object rod; - private static Object longRod; - public static HashSet<String> TranslateSet = new HashSet<>(); - static { - try { - RadioHatchCompat.intf = Class.forName("gtPlusPlus.core.item.base.BaseItemComponent"); - RadioHatchCompat.enu = Class.forName("gtPlusPlus.core.item.base.BaseItemComponent$ComponentTypes"); - RadioHatchCompat.materialClass = Class.forName("gtPlusPlus.core.material.Material"); - RadioHatchCompat.materialStackClass = Class.forName("gtPlusPlus.core.material.MaterialStack"); - - RadioHatchCompat.f = RadioHatchCompat.intf.getField("componentMaterial"); - RadioHatchCompat.isRadioactive = RadioHatchCompat.materialClass.getField("isRadioactive"); - RadioHatchCompat.componentType = RadioHatchCompat.intf.getDeclaredField("componentType"); - RadioHatchCompat.radlevel = RadioHatchCompat.materialClass.getField("vRadiationLevel"); - - RadioHatchCompat.vMaterialInput = RadioHatchCompat.materialClass.getDeclaredField("vMaterialInput"); - RadioHatchCompat.stackMaterial = RadioHatchCompat.materialStackClass.getDeclaredField("stackMaterial"); - RadioHatchCompat.protons = RadioHatchCompat.materialClass.getDeclaredField("vProtons"); - RadioHatchCompat.RGBA = RadioHatchCompat.materialClass.getDeclaredField("RGBA"); - RadioHatchCompat.localizedName = RadioHatchCompat.materialClass.getDeclaredField("localizedName"); - RadioHatchCompat.unlocalizedName = RadioHatchCompat.materialClass.getDeclaredField("unlocalizedName"); - - RadioHatchCompat.vMaterialInput.setAccessible(true); - RadioHatchCompat.stackMaterial.setAccessible(true); - RadioHatchCompat.protons.setAccessible(true); - RadioHatchCompat.RGBA.setAccessible(true); - RadioHatchCompat.localizedName.setAccessible(true); - RadioHatchCompat.unlocalizedName.setAccessible(true); - - Object[] arr = RadioHatchCompat.enu.getEnumConstants(); - for (Object o : arr) { - if (RadioHatchCompat.rod != null && RadioHatchCompat.longRod != null) break; - if ("ROD".equalsIgnoreCase(o.toString())) RadioHatchCompat.rod = o; - else if ("RODLONG".equalsIgnoreCase(o.toString())) RadioHatchCompat.longRod = o; - } - - } catch (NoSuchFieldException | ClassNotFoundException e) { - e.printStackTrace(); - } - } - @SuppressWarnings("unchecked") public static void run() { DebugLog.log("Starting Generation of missing GT++ rods/longrods"); try { - Class<? extends Item> rodclass = (Class<? extends Item>) Class - .forName("gtPlusPlus.core.item.base.rods.BaseItemRod"); - Class<? extends Item> longrodclass = (Class<? extends Item>) Class - .forName("gtPlusPlus.core.item.base.rods.BaseItemRodLong"); - Constructor<? extends Item> c1 = rodclass.getConstructor(RadioHatchCompat.materialClass); - Constructor<? extends Item> c2 = longrodclass.getConstructor(RadioHatchCompat.materialClass); Field cOwners = GameData.class.getDeclaredField("customOwners"); cOwners.setAccessible(true); Field map = RegistryNamespaced.class.getDeclaredField("field_148758_b"); @@ -127,158 +55,42 @@ public class RadioHatchCompat { for (ModContainer container : Loader.instance() .getModList()) { if (gtpp != null && bartworks != null) break; - if (BartWorksCrossmod.MOD_ID.equalsIgnoreCase(container.getModId())) bartworks = container; - else if (container.getModId() - .equalsIgnoreCase(GTPlusPlus.ID)) gtpp = container; + if (BartWorksCrossmod.MOD_ID.equalsIgnoreCase(container.getModId())) { + bartworks = container; + } else if (Mods.GTPlusPlus.ID.equalsIgnoreCase(container.getModId())) { + gtpp = container; + } } - for (Object mats : (Set<?>) RadioHatchCompat.materialClass.getField("mMaterialMap") - .get(null)) { - if (RadioHatchCompat.isRadioactive.getBoolean(mats)) { - - if (OreDictionary.getOres("stick" + RadioHatchCompat.unlocalizedName.get(mats)) - .isEmpty()) { - Item it = c1.newInstance(mats); - UniqueIdentifierMap.replace(it, "miscutils:" + it.getUnlocalizedName()); - GameRegistry.UniqueIdentifier ui = GameRegistry.findUniqueIdentifierFor(it); - ownerItems.replace(ui, bartworks, gtpp); - - String tanslate = it.getUnlocalizedName() + ".name=" - + RadioHatchCompat.localizedName.get(mats) - + " Rod"; - RadioHatchCompat.TranslateSet.add(tanslate); - - DebugLog.log(tanslate); - DebugLog.log("Generate: " + RadioHatchCompat.rod + RadioHatchCompat.unlocalizedName.get(mats)); - } - if (OreDictionary.getOres("stickLong" + RadioHatchCompat.unlocalizedName.get(mats)) - .isEmpty()) { - Item it2 = c2.newInstance(mats); - UniqueIdentifierMap.replace(it2, "miscutils:" + it2.getUnlocalizedName()); - GameRegistry.UniqueIdentifier ui2 = GameRegistry.findUniqueIdentifierFor(it2); - ownerItems.replace(ui2, bartworks, gtpp); + for (Material mats : Material.mMaterialMap) { + if (!mats.isRadioactive) continue; + + if (OreDictionary.getOres("stick" + mats.getUnlocalizedName()) + .isEmpty()) { + Item itemRod = new BaseItemRod(mats); + UniqueIdentifierMap.replace(itemRod, "miscutils:" + itemRod.getUnlocalizedName()); + GameRegistry.UniqueIdentifier ui = GameRegistry.findUniqueIdentifierFor(itemRod); + ownerItems.replace(ui, bartworks, gtpp); + String tanslate = itemRod.getUnlocalizedName() + ".name=" + mats.getLocalizedName() + " Rod"; + RadioHatchCompat.TranslateSet.add(tanslate); + DebugLog.log(tanslate); + DebugLog.log("Generate: " + BaseItemComponent.ComponentTypes.ROD + mats.getUnlocalizedName()); + } - DebugLog - .log("Generate: " + RadioHatchCompat.longRod + RadioHatchCompat.unlocalizedName.get(mats)); - } + if (OreDictionary.getOres("stickLong" + mats.getUnlocalizedName()) + .isEmpty()) { + Item itemRodLong = new BaseItemRodLong(mats); + UniqueIdentifierMap.replace(itemRodLong, "miscutils:" + itemRodLong.getUnlocalizedName()); + GameRegistry.UniqueIdentifier ui2 = GameRegistry.findUniqueIdentifierFor(itemRodLong); + ownerItems.replace(ui2, bartworks, gtpp); + DebugLog.log("Generate: " + BaseItemComponent.ComponentTypes.RODLONG + mats.getUnlocalizedName()); } - } - } catch (NoSuchFieldException | IllegalAccessException | NoSuchMethodException | InvocationTargetException - | InstantiationException | ClassNotFoundException e) { - e.printStackTrace(); - } - } - public static IRadMaterial GTppRadChecker(ItemStack lStack) { - try { - if (RadioHatchCompat.intf.isAssignableFrom( - lStack.getItem() - .getClass())) { - if (!RadioHatchCompat.isRadioactive.getBoolean(RadioHatchCompat.f.get(lStack.getItem()))) return null; - int amount = RadioHatchCompat.componentType.get(lStack.getItem()) - .equals(RadioHatchCompat.rod) ? 1 - : RadioHatchCompat.componentType.get(lStack.getItem()) - .equals(RadioHatchCompat.longRod) ? 2 : 0; - if (amount == 0) return null; - return new RadioHatchCompat.GTPPRadAdapter(amount, RadioHatchCompat.f.get(lStack.getItem())); } - } catch (IllegalAccessException e) { + + } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } - return null; } - static class GTPPRadAdapter implements IRadMaterial { - - static final HashMap<Object, Integer> BUFFER = new HashMap<>(); - - GTPPRadAdapter(Object m) { - this.m = m; - } - - GTPPRadAdapter(int amount, Object m) { - this.amount = (byte) amount; - this.m = m; - } - - byte amount; - final Object m; - - private static ArrayList<?> getMaterialInput(Object GTPPMaterial) throws IllegalAccessException { - Object ret = RadioHatchCompat.vMaterialInput.get(GTPPMaterial); - return ret instanceof ArrayList ? (ArrayList<?>) ret : new ArrayList<>(); - } - - private static boolean isElement(Object GTPPMaterial) throws IllegalAccessException { - return RadioHatchCompat.GTPPRadAdapter.getMaterialInput(GTPPMaterial) - .isEmpty(); - } - - private static List<?> getElemets(Object GTPPMaterial) throws IllegalAccessException { - ArrayList<Object> elements = new ArrayList<>(); - Queue<Object> toCheck = new LinkedList<>(); - ArrayList<?> materialInputs = RadioHatchCompat.GTPPRadAdapter.getMaterialInput(GTPPMaterial); - if (materialInputs.isEmpty()) return Collections.singletonList(GTPPMaterial); - for (Object materialStack : materialInputs) { - if (!RadioHatchCompat.GTPPRadAdapter.isElement(RadioHatchCompat.stackMaterial.get(materialStack))) - toCheck.add(RadioHatchCompat.stackMaterial.get(materialStack)); - else elements.add(RadioHatchCompat.stackMaterial.get(materialStack)); - } - while (!toCheck.isEmpty()) { - elements.addAll(GTPPRadAdapter.getElemets(toCheck.poll())); - } - return elements; - } - - private static Integer calulateRad(Object m) { - int ret = 0; - try { - List<?> pureElements = RadioHatchCompat.GTPPRadAdapter.getElemets(m); - for (Object materialObj : pureElements) if (RadioHatchCompat.isRadioactive.getBoolean(materialObj)) - ret += RadioHatchCompat.radlevel.getByte(m) - + RadioHatchCompat.GTPPRadAdapter.clampToZero(RadioHatchCompat.protons.getLong(materialObj)); - else ret += RadioHatchCompat.radlevel.getByte(m); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return ret; - } - - @Override - public int getRadiationLevel(ItemStack aStack) { - return RadioHatchCompat.GTPPRadAdapter.BUFFER - .computeIfAbsent(this.m, radlvl -> RadioHatchCompat.GTPPRadAdapter.calulateRad(this.m)); - } - - private static long clampToZero(long number) { - return number > 0 ? number : 0; - } - - @Override - public byte getAmountOfMaterial(ItemStack aStack) { - return this.amount; - } - - @Override - public short[] getColorForGUI(ItemStack aStack) { - short[] rgba = { 0, 0, 0, 0 }; - try { - rgba = (short[]) RadioHatchCompat.RGBA.get(this.m); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return rgba; - } - - @Override - public String getNameForGUI(ItemStack aStack) { - String ret = ""; - try { - ret = (String) RadioHatchCompat.localizedName.get(this.m); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return ret; - } - } } diff --git a/src/main/java/gregtech/api/GregTechAPI.java b/src/main/java/gregtech/api/GregTechAPI.java index 6cabb8e04c..e10c773579 100644 --- a/src/main/java/gregtech/api/GregTechAPI.java +++ b/src/main/java/gregtech/api/GregTechAPI.java @@ -26,7 +26,6 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -47,10 +46,6 @@ import gregtech.api.interfaces.internal.IGTRecipeAdder; import gregtech.api.interfaces.internal.IThaumcraftCompat; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IMachineBlockUpdateable; -import gregtech.api.items.GTGenericItem; -import gregtech.api.items.ItemCoolantCell; -import gregtech.api.items.ItemCoolantCellIC; -import gregtech.api.items.ItemTool; import gregtech.api.metatileentity.BaseMetaTileEntity; import gregtech.api.objects.GTCoverDefault; < |
