diff options
Diffstat (limited to 'src/main/java/bwcrossmod/tgregworks')
| -rw-r--r-- | src/main/java/bwcrossmod/tgregworks/MaterialsInjector.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/main/java/bwcrossmod/tgregworks/MaterialsInjector.java b/src/main/java/bwcrossmod/tgregworks/MaterialsInjector.java new file mode 100644 index 0000000000..a8e65e51f2 --- /dev/null +++ b/src/main/java/bwcrossmod/tgregworks/MaterialsInjector.java @@ -0,0 +1,81 @@ +package bwcrossmod.tgregworks; + +import static gregtech.api.enums.Mods.TinkersGregworks; + +import net.minecraftforge.common.config.Property; + +import bartworks.MainMod; +import bartworks.system.material.Werkstoff; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import gregtech.GT_Version; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import vexatos.tgregworks.TGregworks; +import vexatos.tgregworks.item.ItemTGregPart; +import vexatos.tgregworks.reference.Config; + +@Mod( + modid = MaterialsInjector.MOD_ID, + name = MaterialsInjector.NAME, + version = MaterialsInjector.VERSION, + dependencies = """ + required-after:IC2;\ + required-after:gregtech;\ + required-after:bartworks;\ + before:TGregworks;\ + before:miscutils;""") +public class MaterialsInjector { + + public static final String NAME = "BartWorks Mod Additions - TGregworks Container"; + public static final String VERSION = GT_Version.VERSION; + public static final String MOD_ID = "bartworkscrossmodtgregworkscontainer"; + + @Mod.EventHandler + public void init(FMLInitializationEvent init) { + if (TinkersGregworks.isModLoaded()) { + MaterialsInjector.run(); + } + } + + public static void run() { + MainMod.LOGGER.info("Registering TGregworks - BartWorks tool parts."); + Werkstoff.werkstoffHashSet.stream() + .filter(x -> x.hasItemType(OrePrefixes.gem) || x.hasItemType(OrePrefixes.plate)) + .map(Werkstoff::getBridgeMaterial) + .filter(x -> x.mMetaItemSubID == -1) + .filter(x -> x.mDurability != 0) + .forEach(m -> { + setConfigProps(m); + registerParts(m); + }); + + TGregworks.registry.configProps.clear(); + TGregworks.registry.configIDs.clear(); + + ItemTGregPart.toolMaterialNames = TGregworks.registry.toolMaterialNames; + } + + private static void registerParts(Materials m) { + TGregworks.registry.toolMaterialNames.add(m.mDefaultLocalName); + int matID = TGregworks.registry.getMaterialID(m); + + TGregworks.registry.addToolMaterial(matID, m); + TGregworks.registry.addBowMaterial(matID, m); + TGregworks.registry.addArrowMaterial(matID, m); + + TGregworks.registry.matIDs.put(m, matID); + TGregworks.registry.materialIDMap.put(matID, m); + } + + private static void setConfigProps(Materials m) { + if (TGregworks.config.get(Config.Category.Enable, m.mName, true) + .getBoolean(true)) { + TGregworks.registry.toolMaterials.add(m); + Property configProp = TGregworks.config + .get(Config.onMaterial(Config.MaterialID), m.mName, 0, null, 0, 100000); + TGregworks.registry.configProps.put(m, configProp); + TGregworks.registry.configIDs.add(configProp.getInt()); + } + } +} |
