aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/core/lib
diff options
context:
space:
mode:
authoriouter <62897714+iouter@users.noreply.github.com>2022-01-07 12:36:06 +0800
committerGitHub <noreply@github.com>2022-01-07 12:36:06 +0800
commit0834d4b8b45a881f36ed5b295ac0fb38df49fa9a (patch)
tree6fb4a45cf17dd22748148417bc7bb0efb850cea3 /src/main/java/gtPlusPlus/core/lib
parentea1439a4195c8f77c45625ea2593a232bf19984e (diff)
parent9b2e050151ad93170e84321d067d1e9d4ded4ba5 (diff)
downloadGT5-Unofficial-0834d4b8b45a881f36ed5b295ac0fb38df49fa9a.tar.gz
GT5-Unofficial-0834d4b8b45a881f36ed5b295ac0fb38df49fa9a.tar.bz2
GT5-Unofficial-0834d4b8b45a881f36ed5b295ac0fb38df49fa9a.zip
Merge branch 'GTNewHorizons:master' into master
Diffstat (limited to 'src/main/java/gtPlusPlus/core/lib')
-rw-r--r--src/main/java/gtPlusPlus/core/lib/CORE.java365
-rw-r--r--src/main/java/gtPlusPlus/core/lib/LoadedMods.java354
-rw-r--r--src/main/java/gtPlusPlus/core/lib/VanillaColours.java28
3 files changed, 747 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/core/lib/CORE.java b/src/main/java/gtPlusPlus/core/lib/CORE.java
new file mode 100644
index 0000000000..7508b9fc8f
--- /dev/null
+++ b/src/main/java/gtPlusPlus/core/lib/CORE.java
@@ -0,0 +1,365 @@
+package gtPlusPlus.core.lib;
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+
+import com.mojang.authlib.GameProfile;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import gregtech.api.GregTech_API;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.Pair;
+import gtPlusPlus.api.objects.random.XSTR;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.preloader.CORE_Preloader;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;
+import gtPlusPlus.xmod.gregtech.api.interfaces.internal.IGregtech_RecipeAdder;
+import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
+import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractGenerator;
+import gtPlusPlus.xmod.gregtech.common.tileentities.automation.GT_MetaTileEntity_TesseractTerminal;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
+import net.minecraft.world.WorldServer;
+import net.minecraftforge.common.config.Configuration;
+import net.minecraftforge.common.util.FakePlayerFactory;
+
+public class CORE {
+
+ //import cpw.mods.fml.common.Optional;
+
+ //Analytics handler
+ //public static SegmentAnalytics mHelper;
+
+ public static Map PlayerCache;
+
+ //Math Related
+ public static final float PI = (float) Math.PI;
+ public static volatile Random RANDOM = new XSTR();
+
+ //Env. Variables
+ public static Configuration Config;
+
+ public static boolean DEVENV = false;
+ public static boolean NBT_PERSISTENCY_PATCH_APPLIED = false;
+ //Only can be set in Dev, no config or setting elsewhere.
+ public static final boolean LOAD_ALL_CONTENT = false;;
+
+ //Mod Variables
+
+ public static final String name = "GT++";
+ public static final String MODID = "miscutils";
+ public static final String VERSION = "GRADLETOKEN_VERSION";
+
+ //Tweakables
+ public static int EVERGLADES_ID = 227;
+ public static int EVERGLADESBIOME_ID = 238;
+ public static int AUSTRALIA_ID = 228;
+ public static int AUSTRALIA_BIOME_DESERT_1_ID = 239;
+ public static int AUSTRALIA_BIOME_DESERT_2_ID = 240;
+ public static int AUSTRALIA_BIOME_DESERT_3_ID = 241;
+ public static int AUSTRALIA_BIOME_PLAINS_ID = 242;
+ public static int AUSTRALIA_BIOME_OUTBACK_ID = 243;
+ public static int AUSTRALIA_BIOME_OCEAN_ID = 244;
+ public static int AUSTRALIA_BIOME_FOREST_ID = 245;
+
+ //GT Vars;
+ public static final int GREG_FIRST_ID = 760;
+ public static final boolean MAIN_GREGTECH_5U_EXPERIMENTAL_FORK = Meta_GT_Proxy.areWeUsingGregtech5uExperimental();
+ public static final int GREGTECH_API_VERSION = GregTech_API.VERSION;
+ 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<World, EntityPlayerMP> fakePlayerCache = new WeakHashMap<World, EntityPlayerMP>();
+ //Tooltips;
+ public static final String GT_Tooltip = "Added by: " + EnumChatFormatting.DARK_GREEN+"Alkalus "+EnumChatFormatting.GRAY+"- "+EnumChatFormatting.RED+"[GT++]";
+ public static final String GT_Tooltip_Builder = "" + EnumChatFormatting.DARK_GREEN+"Alkalus "+EnumChatFormatting.GRAY+"- "+EnumChatFormatting.RED+"[GT++]";
+ public static final String GT_Tooltip_Radioactive = EnumChatFormatting.GRAY+"Warning: "+EnumChatFormatting.GREEN+"Radioactive! "+EnumChatFormatting.GOLD+" Avoid direct handling without hazmat protection.";
+ public static final String noItem = "";
+
+ //Because I want to be lazy Gregtech New Horizons Var.
+ public static boolean GTNH = false;
+ //Because I want to be lazy. Beyond Reality Classic Var.
+ public static boolean BRC = false;
+
+ public static final String SEPERATOR = "/";
+
+
+ /**
+ * Lists/Maps
+ */
+
+ //Burnables List
+ public static List<Pair<Integer, ItemStack>> burnables = new ArrayList<Pair<Integer, ItemStack>>();
+
+
+ //TesseractMapss
+ public static final Map<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>> sTesseractGeneratorOwnershipMap = new HashMap<UUID, Map<Integer, GT_MetaTileEntity_TesseractGenerator>>();
+ public static final Map<UUID, Map<Integer, GT_MetaTileEntity_TesseractTerminal>> sTesseractTerminalOwnershipMap = new HashMap<UUID, Map<Integer, GT_MetaTileEntity_TesseractTerminal>>();
+
+ //BookMap
+ public static final Map<String, ItemStack> sBookList = new ConcurrentHashMap<String, ItemStack>();
+
+
+
+
+ /**
+ * Some Gregtech Material and Recipe Variables
+ */
+
+ @Deprecated
+ public static IGregtech_RecipeAdder sRecipeAdder;
+ public static IGregtech_RecipeAdder RA;
+
+ public static final GT_Materials[] sMU_GeneratedMaterials = new GT_Materials[1000];
+
+ /**
+ * File Paths and Resource Paths
+ */
+
+ public static final String
+ TEX_DIR = "textures/",
+ TEX_DIR_GUI = TEX_DIR + "gui/",
+ TEX_DIR_ITEM = TEX_DIR + "items/",
+ TEX_DIR_BLOCK = TEX_DIR + "blocks/",
+ TEX_DIR_ENTITY = TEX_DIR + "entity/",
+ TEX_DIR_ASPECTS = TEX_DIR + "aspects/",
+ TEX_DIR_FLUIDS = TEX_DIR_BLOCK + "fluids/",
+ RES_PATH = MODID + ":" + TEX_DIR,
+ RES_PATH_GUI = MODID + ":" + TEX_DIR_GUI,
+ RES_PATH_ITEM = MODID + ":" + TEX_DIR_ITEM,
+ RES_PATH_BLOCK = MODID + ":" + TEX_DIR_BLOCK,
+ RES_PATH_ENTITY = MODID + ":" + TEX_DIR_ENTITY,
+ RES_PATH_ASPECTS = MODID + ":" + TEX_DIR_ASPECTS,
+ RES_PATH_FLUIDS = MODID + ":" + TEX_DIR_FLUIDS;
+
+
+
+
+ /** Used to create a {@link EntityPlayer} instance from {@link FakePlayerFactory}.
+ * If this instance already exists in the cache, we will return that instead.
+ * These instances are held via weak reference, if the world object is unloaded, they too will be removed.
+ * This is the suggested way to handle them, as suggested by Forge.
+ *
+ * @param world - The {@link World} object for which you want to check for in the cache.
+ * This object is used as a weak reference in a {@link WeakHashMap}.
+ * @return - An {@link EntityPlayerMP} instance, returned either from cache or created and cached prior to return.
+ */
+ public static EntityPlayerMP getFakePlayer(World world) {
+ if (fakePlayerCache.get(world) == null) {
+ fakePlayerCache.put(world, FakePlayerFactory.get((WorldServer) world, CORE.gameProfile));
+ }
+ return fakePlayerCache.get(world);
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /*
+ * Config Switch Class
+ */
+
+ public static class ConfigSwitches {
+ //Debug
+ public static boolean disableEnderIOIntegration = false;
+ public static boolean disableEnderIOIngotTooltips = false;
+ public static boolean MACHINE_INFO = true;
+ public static boolean showHiddenNEIItems = false;
+ public static boolean dumpItemAndBlockData = false;
+
+ //Tools
+ public static boolean enableSkookumChoochers = true;
+ public static boolean enableMultiSizeTools = true;
+
+ //Block Drops
+ public static int chanceToDropDrainedShard = 196;
+ public static int chanceToDropFluoriteOre = 32;
+
+ //Machine Related
+ public static boolean enableAlternativeBatteryAlloy = false;
+ public static boolean enableThaumcraftShardUnification = false;
+ public static boolean disableIC2Recipes = false;
+ public static boolean enableAlternativeDivisionSigilRecipe = false;
+ public static int boilerSteamPerSecond = 750;
+ public static final boolean requireControlCores = false;
+
+ //Feature Related
+ public static boolean enableCustomCapes = false;
+ public static boolean enableCustomCircuits = true;
+ public static boolean enableOldGTcircuits = false;
+ public static boolean disableZombieReinforcement = false;
+ public static int enableWatchdogBGM = CORE_Preloader.enableWatchdogBGM;
+
+ //GT Fixes
+ public static boolean enableNitroFix = false;
+ public static boolean enableSulfuricAcidFix = false;
+ public static boolean enableAnimatedTurbines = true;
+ public static boolean enableHarderRecipesForHighTierCasings = true;
+
+ //Single Block Machines
+ public static boolean enableMachine_SolarGenerators = false;
+ public static boolean enableMachine_Safes = true;
+ public static boolean enableMachine_Dehydrators = true;
+ public static boolean enableMachine_SteamConverter = true;
+ public static boolean enableMachine_FluidTanks = true;
+ public static boolean enableMachine_RocketEngines = true;
+ public static boolean enableMachine_GeothermalEngines = true;
+ public static boolean enableMachine_WorldAccelerators = true;
+ public static boolean enableMachine_Tesseracts = true;
+ public static boolean enableMachine_SimpleWasher = true;
+ public static boolean enableMachine_Pollution = true;
+ public static boolean enableMachine_ComponentAssemblers = false;
+ public static boolean enableCustom_Pipes = true;
+ public static boolean enableCustom_Cables = true;
+ public static boolean enableMachine_RF_Convetor = false;
+
+ //Multiblocks
+ public static boolean enableMultiblock_AlloyBlastSmelter = true;
+ public static boolean enableMultiblock_IndustrialCentrifuge = true;
+ public static boolean enableMultiblock_IndustrialCokeOven = true;
+ public static boolean enableMultiblock_IndustrialElectrolyzer = true;
+ public static boolean enableMultiblock_IndustrialMacerationStack = true;
+ public static boolean enableMultiblock_IndustrialPlatePress = true;
+ public static boolean enableMultiblock_IndustrialWireMill = true;
+ public static boolean enableMultiblock_IronBlastFurnace = true;
+ public static boolean enableMultiblock_MatterFabricator = true;
+ public static boolean enableMultiblock_MultiTank = true;
+ public static boolean enableMultiblock_PowerSubstation = true;
+ public static boolean enableMultiblock_LiquidFluorideThoriumReactor = true;
+ public static boolean enableMultiblock_NuclearFuelRefinery = true;
+ public static boolean enableMultiblock_TreeFarmer = true;
+ public static boolean enableMultiblock_IndustrialSifter = true;
+ public static boolean enableMultiblock_IndustrialThermalCentrifuge = true;
+ public static boolean enableMultiblock_IndustrialWashPlant = true;
+ public static boolean enableMultiblock_LargeAutoCrafter = true;
+ public static boolean enableMultiblock_ThermalBoiler = true;
+ public static boolean enableMultiblock_IndustrialCuttingMachine = true;
+ public static boolean enableMultiblock_IndustrialFishingPort = true;
+ public static boolean enableMultiblock_IndustrialExtrudingMachine = true;
+ public static boolean enableMultiblock_IndustrialMultiMachine = true;
+ public static boolean enableMultiblock_Cyclotron = true;
+
+ //Visuals
+ public static boolean enableTreeFarmerParticles = true;
+ public static boolean useGregtechTextures = true;
+
+ //Pollution
+ public static int pollutionPerSecondMultiPackager = 40;
+ public static int pollutionPerSecondMultiIndustrialAlloySmelter = 300;
+ public static int pollutionPerSecondMultiIndustrialArcFurnace = 2400;
+ public static int pollutionPerSecondMultiIndustrialCentrifuge = 300;
+ public static int pollutionPerSecondMultiIndustrialCokeOven = 80;
+ public static int pollutionPerSecondMultiIndustrialCuttingMachine = 160;
+ public static int pollutionPerSecondMultiIndustrialDehydrator = 500;
+ public static int pollutionPerSecondMultiIndustrialElectrolyzer = 300;
+ public static int pollutionPerSecondMultiIndustrialExtruder = 1000;
+ public static int pollutionPerSecondMultiIndustrialMacerator = 400;
+ public static int pollutionPerSecondMultiIndustrialMixer = 800;
+ public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal = 400;
+ public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid = 400;
+ public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc = 600;
+ public static int pollutionPerSecondMultiIndustrialPlatePress_ModeForming = 240;
+ public static int pollutionPerSecondMultiIndustrialPlatePress_ModeBending = 480;
+ public static int pollutionPerSecondMultiIndustrialSifter = 40;
+ public static int pollutionPerSecondMultiIndustrialThermalCentrifuge = 1000;
+ public static int pollutionPerSecondMultiIndustrialVacuumFreezer = 500;
+ public static int pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath = 400;
+ public static int pollutionPerSecondMultiIndustrialWashPlant_ModeWasher = 100;
+ public static int pollutionPerSecondMultiIndustrialWireMill = 100;
+ public static int pollutionPerSecondMultiIsaMill = 1280;
+ public static int pollutionPerSecondMultiAdvDistillationTower_ModeDistillery = 240;
+ public static int pollutionPerSecondMultiAdvDistillationTower_ModeDT = 480;
+ public static int pollutionPerSecondMultiAdvEBF = 500;
+ public static int pollutionPerSecondMultiAdvImplosion = 5000;
+ public static int pollutionPerSecondMultiABS = 200;
+ public static int pollutionPerSecondMultiCyclotron = 200;
+ public static int pollutionPerSecondMultiIndustrialFishingPond = 20;
+ public static int pollutionPerSecondMultiLargeRocketEngine;
+ public static int pollutionPerSecondMultiLargeSemiFluidGenerator = 1280;
+ public static int pollutionPerSecondMultiMassFabricator = 40;
+ public static int pollutionPerSecondMultiRefinery = 4000;
+ public static int pollutionPerSecondMultiGeneratorArray;
+ public static int pollutionPerSecondMultiTreeFarm = 100;
+ public static int pollutionPerSecondMultiFrothFlotationCell = 0;
+ public static int pollutionPerSecondMultiAutoCrafter = 500;
+ public static int pollutionPerSecondMultiThermalBoiler = 700;
+ public static int pollutionPerSecondMultiAlgaePond = 0;
+ public static int pollutionPerSecondMultiIndustrialRockBreaker = 100;
+ public static int pollutionPerSecondMultiIndustrialChisel = 50;
+ //pollution single blocks
+ public static int basePollutionPerSecondSemiFluidGenerator = 40;
+ public static double[] pollutionReleasedByTierSemiFluidGenerator = new double[]{0,2.0,4.0,8.0};
+ public static int basePollutionPerSecondBoiler = 35;
+ public static double[] pollutionReleasedByTierBoiler = new double[]{0,1.0,1.43, 1.86};
+ public static int baseMinPollutionPerSecondRocketFuelGenerator = 250;
+ public static int baseMaxPollutionPerSecondRocketFuelGenerator = 2000;
+ public static double[] pollutionReleasedByTierRocketFuelGenerator = new double[]{0,0,0,0,1,2,3};
+ public static int basePollutionPerSecondGeothermalGenerator = 100;
+ public static double[] pollutionReleasedByTierGeothermalGenerator = new double[]{0,0,0,0,1,1,1};
+
+ }
+
+ public static class Everglades{
+ public static final String MODID = "ToxicEverglades";
+ public static final String NAME = "GT++ Toxic Everglades";
+ public static final String VERSION = "0.1";
+ }
+
+ public static class Australia{
+ public static final String MODID = "Australia";
+ public static final String NAME = "GT++ Australia";
+ public static final String VERSION = "0.1";
+ }
+
+
+ public static final void crash() {
+ crash("Generic Crash");
+ }
+
+ public static final void crash(String aReason) {
+ 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("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));
+ FMLCommonHandler.instance().exitJava(0, true);
+ }
+
+ public static final void gc() {
+ System.gc();
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gtPlusPlus/core/lib/LoadedMods.java b/src/main/java/gtPlusPlus/core/lib/LoadedMods.java
new file mode 100644
index 0000000000..4f7a10be78
--- /dev/null
+++ b/src/main/java/gtPlusPlus/core/lib/LoadedMods.java
@@ -0,0 +1,354 @@
+package gtPlusPlus.core.lib;
+
+import static gtPlusPlus.core.lib.CORE.*;
+
+import java.util.HashMap;
+
+import cpw.mods.fml.common.Loader;
+
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.lib.CORE.ConfigSwitches;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechTextures;
+import gtPlusPlus.xmod.gregtech.recipes.GregtechRecipeAdder;
+
+public class LoadedMods {
+
+ //Initialize Variables
+ public static boolean Gregtech = false;
+ public static boolean PlayerAPI = false;
+ public static boolean BuildCraft = false;
+ public static boolean EnderIO = false;
+ public static boolean Big_Reactors = false;
+ public static boolean IndustrialCraft2 = false;
+ public static boolean IndustrialCraft2Classic = false;
+ public static boolean Simply_Jetpacks = false;
+ public static boolean RFTools = false;
+ public static boolean Thaumcraft = false;
+ public static boolean Baubles = false;
+ public static boolean Extra_Utils = false;
+ public static boolean PneumaticCraft = false;
+ public static boolean MorePlanets = false;
+ public static boolean ForbiddenMagic = false;
+ public static boolean CompactWindmills = false;
+ public static boolean Railcraft = false;
+ public static boolean ImmersiveEngineering = false;
+ public static boolean Growthcraft = false;
+ public static boolean CoFHCore = false;
+ public static boolean Forestry = false;
+ public static boolean MagicBees = false;
+ public static boolean ExtraBees = false;
+ public static boolean Psychedelicraft = false;
+ public static boolean MiscUtils = true; //Dummy For MetaData Lookups in MT Wrapper
+ public static boolean ThermalFoundation = false;
+ public static boolean IHL = false;
+ public static boolean OpenComputers = false; //OpenComputers
+ public static boolean OpenBlocks = false;
+ public static boolean Computronics = false; //computronics
+ public static boolean DreamCraft = false; //GT: New Horizons
+ public static boolean BeyondRealityCore = false; //Beyond Reality - Probably Classic
+ public static boolean BiomesOPlenty = false;
+ public static boolean PamsHarvestcraft = false;
+ public static boolean GalacticraftCore = false;
+ public static boolean Mekanism = false;
+ public static boolean RedTech = false; //RedMage's Mod
+ public static boolean TecTech = false; //Technus' Mod
+ public static boolean KekzTech = false; //KekzDealers' Mod
+ public static boolean TiCon = false;
+ public static boolean StevesCarts = false;
+ public static boolean Witchery = false;
+ public static boolean Waila = false;
+ public static boolean CropsPlusPlus = false; //Barts Crop Mod
+ public static boolean Reliquary = false;
+ public static boolean SpiceOfLife = false;
+ public static boolean RemoteIO = false;
+
+
+
+ private static int totalMods;
+ @SuppressWarnings("deprecation")
+ public static void checkLoaded(){
+ Logger.INFO("Looking for optional mod prereqs.");
+ if (isModLoaded("gregtech") ){
+ Gregtech = true;
+ Logger.INFO("Components enabled for: Gregtech");
+ if (Gregtech){
+ try {
+ CORE.sRecipeAdder = CORE.RA = new GregtechRecipeAdder();
+ Logger.INFO("Created Gregtech recipe handler.");
+ GregtechTextures.BlockIcons.VOID.name();
+ GregtechTextures.ItemIcons.VOID.name();
+ Logger.INFO("Created Gregtech texture handler.");
+ } catch (final NullPointerException e){
+ Logger.INFO("Could NOT create a Gregtech recipe handler.");
+ }
+ }
+
+ totalMods++;
+ }
+ if (isModLoaded("dreamcraft")){
+ DreamCraft = true;
+ GTNH = true;
+ Logger.INFO("Components enabled for: DreamCraft");
+ Logger.INFO("Components enabled for: GT: New Horizons");
+ totalMods++;
+ }
+ if (isModLoaded("beyondrealitycore")){
+ BeyondRealityCore = true;
+ BRC = true;
+ Logger.INFO("Components enabled for: Beyond Reality");
+ totalMods++;
+ }
+ if (isModLoaded("PlayerAPI")){
+ PlayerAPI = true;
+ Logger.INFO("Components enabled for: PlayerAPI");
+ totalMods++;
+ }
+ if (isModLoaded("berriespp")) {
+ CropsPlusPlus = true;
+ Logger.INFO("Components enabled for: Crops++");
+ totalMods++;
+ }
+ if (isModLoaded("xreliquary")) {
+ Reliquary = true;
+ Logger.INFO("Components enabled for: Reliquary");
+ totalMods++;
+ }
+ if (isModLoaded("TConstruct")){
+ TiCon = true;
+ Logger.INFO("Components enabled for: Tinkers Construct");
+ totalMods++;
+ }
+ if (isModLoaded("BuildCraft")){
+ BuildCraft = true;
+ Logger.INFO("Components enabled for: BuildCraft");
+ totalMods++;
+ }
+ if ((isModLoaded("EnderIO")) && !ConfigSwitches.disableEnderIOIntegration){
+ EnderIO = true;
+ Logger.INFO("Components enabled for: EnderIO");
+ totalMods++;
+ }
+ if (isModLoaded("BigReactors")){
+ Big_Reactors = true;
+ Logger.INFO("Components enabled for: Big Reactors");
+ totalMods++;
+ }
+ if (isModLoaded("IC2")){
+ IndustrialCraft2 = true;
+ Logger.INFO("Components enabled for: IndustrialCraft2");
+ totalMods++;
+ }
+ if (isModLoaded("IC2-Classic-Spmod")){
+ IndustrialCraft2Classic = true;
+ Logger.INFO("Components enabled for: IndustrialCraft2-Classic");
+ totalMods++;
+ }
+ if (isModLoaded("simplyjetpacks")){
+ Simply_Jetpacks = true;
+ Logger.INFO("Components enabled for: Simply Jetpacks");
+ totalMods++;
+ }
+ if (isModLoaded("rftools")){
+ RFTools = true;
+ Logger.INFO("Components enabled for: RFTools");
+ totalMods++;
+ }
+ if (isModLoaded("StevesCarts")){
+ StevesCarts = true;
+ Logger.INFO("Components enabled for: StevesCarts");
+ totalMods++;
+ }
+ if (isModLoaded("OpenBlocks")){
+ OpenBlocks = true;
+ Logger.INFO("Components enabled for: OpenBlocks");
+ totalMods++;
+ }
+ if (isModLoaded("Thaumcraft")){
+ Thaumcraft = true;
+ Logger.INFO("Components enabled for: Thaumcraft");
+ totalMods++;
+ }
+ if (isModLoaded("BiomesOPlenty")){
+ BiomesOPlenty = true;
+ Logger.INFO("Components enabled for: BiomesOPlenty");
+ totalMods++;
+ }
+ if (isModLoaded("ExtraUtilities")){
+ Extra_Utils = true;
+ Logger.INFO("Components enabled for: Extra_Utils");
+ totalMods++;
+ }
+ if (isModLoaded("harvestcraft")){
+ PamsHarvestcraft = true;
+ Logger.INFO("Components enabled for: PamsHarvestcraft");
+ totalMods++;
+ }
+ if (isModLoaded("PneumaticCraft")){
+ PneumaticCraft = true;
+ Logger.INFO("Components enabled for: PneumaticCraft");
+ totalMods++;
+ }
+ if (isModLoaded("MorePlanet")){
+ MorePlanets = true;
+ Logger.INFO("Components enabled for: MorePlanets");
+ totalMods++;
+ }
+ if (isModLoaded("ForbiddenMagic")){
+ ForbiddenMagic = true;
+ Logger.INFO("Components enabled for: ForbiddenMagic");
+ totalMods++;
+ }
+ if (isModLoaded("CompactWindmills")){
+ CompactWindmills = true;
+ Logger.INFO("Components enabled for: CompactWindmills");
+ totalMods++;
+ }
+ if (isModLoaded("Railcraft")){
+ Railcraft = true;
+ Logger.INFO("Components enabled for: Railcraft");
+ totalMods++;
+ }
+ if (isModLoaded("Waila")){
+ Waila = true;
+ Logger.INFO("Components enabled for: WAILA");
+ totalMods++;
+ }
+ if (isModLoaded("SpiceOfLife")){
+ SpiceOfLife = true;
+ Logger.INFO("Components enabled for: Spice Of Life");
+ totalMods++;
+ }
+ if (isModLoaded("Mekanism")){
+ Mekanism = true;
+ Logger.INFO("Components enabled for: Mekanism - This feature is not configurable and balances Mekanism to suit GT.");
+ totalMods++;
+ }
+ if (isModLoaded("Growthcraft")){
+ Logger.INFO("Growthcraft Version: "+getModVersion("Growthcraft"));
+ if (getModVersion("Growthcraft").equals("1.7.10-2.3.1")){
+ //Load Growthcraft Compat
+ Growthcraft = true;
+ Logger.INFO("Components enabled for: Growthcraft");
+ totalMods++;
+ }
+ else {
+ Growthcraft = false;
+ Logger.INFO("Growthcraft found, but the version was too new. I will update GC support eventually.");
+ }
+ }
+ if (isModLoaded("CoFHCore")){
+ CoFHCore = true;
+ Logger.INFO("Components enabled for: CoFHCore");
+ totalMods++;
+ }
+ if (isModLoaded("Forestry")){
+ Forestry = true;
+ Logger.INFO("Components enabled for: Forestry");
+ totalMods++;
+ }
+ if (isModLoaded("MagicBees")){
+ MagicBees = true;
+ Logger.INFO("Components enabled for: MagicBees");
+ totalMods++;
+ }
+ if (isModLoaded("psychedelicraft")){
+ Psychedelicraft = true;
+ Logger.INFO("Components enabled for: Psychedelicraft");
+ totalMods++;
+ }
+ if (isModLoaded("ImmersiveEngineering")){
+ ImmersiveEngineering = true;
+ Logger.INFO("Components enabled for: ImmersiveEngineering");
+ totalMods++;
+ }
+ if (isModLoaded("ExtraBees")){
+ ExtraBees = true;
+ Logger.INFO("Components enabled for: ExtraBees");
+ totalMods++;
+ }
+ if (isModLoaded("ThermalFoundation") == false){
+ ThermalFoundation = false;
+ Logger.INFO("Components enabled for: ThermalFoundation - This feature will disable itself if you add TF.");
+ totalMods++;
+ }
+ else if (isModLoaded("ThermalFoundation")){
+ ThermalFoundation = true;
+ Logger.INFO("Components disabled for: ThermalFoundation - This feature will enable itself if you remove TF.");
+ //totalMods++;
+ }
+ if (isModLoaded("ihl")){
+ IHL = true;
+ Logger.INFO("Components enabled for: IHL");
+ totalMods++;
+ }
+ if (isModLoaded("Baubles")){
+ Baubles = true;
+ Logger.INFO("Components enabled for: Baubles");
+ totalMods++;
+ }
+ if (isModLoaded("GalacticraftCore")){
+ GalacticraftCore = true;
+ Logger.INFO("Components enabled for: Galacticraft Core");
+ totalMods++;
+ }
+ if (isModLoaded("OpenComputers")){
+ OpenComputers = true;
+ Logger.INFO("Components enabled for: OpenComputers");
+ totalMods++;
+ }
+ if (isModLoaded("computronics")){
+ Computronics = true;
+ Logger.INFO("Components disabled for: Computronics - This feature will enable itself if you remove Computronics.");
+ totalMods++;
+ }
+ else {
+ Logger.INFO("Components enabled for: Computronics - This feature will disable itself if you add Computronics.");
+ }
+ if (isModLoaded("GTRedtech")){
+ RedTech = true;
+ Logger.INFO("Components enabled for: GTRedtech");
+ totalMods++;
+ }
+ if (isModLoaded("tectech")){
+ TecTech = true;
+ Logger.INFO("Components enabled for: TecTech");
+ totalMods++;
+ }
+ if (isModLoaded("kekztech")){
+ KekzTech = true;
+ Logger.INFO("Components enabled for: KekzTech");
+ totalMods++;
+ }
+ if (isModLoaded("witchery")){
+ Witchery = true;
+ Logger.INFO("Components enabled for: Witchery");
+ totalMods++;
+ }
+ if (isModLoaded("RIO")){
+ RemoteIO = true;
+ Logger.INFO("Components enabled for: RemoteIO");
+ totalMods++;
+ }
+
+ Logger.INFO("Content found for "+totalMods+" mods");
+
+ }
+
+ public static String getModVersion(final String modName){
+ final String ver = cpw.mods.fml.common.FMLCommonHandler.instance().findContainerFor(modName).getVersion();
+ return ver;
+ }
+
+ private static final HashMap<String, Boolean> mLoadedModCache = new HashMap<String, Boolean>();
+
+ public static boolean isModLoaded(String aModName) {
+ Boolean aResult = mLoadedModCache.get(aModName);
+ if (aResult == null) {
+ boolean aTemp = Loader.isModLoaded(aModName);
+ mLoadedModCache.put(aModName, aTemp);
+ aResult = aTemp;
+ }
+ return aResult;
+ }
+
+}
diff --git a/src/main/java/gtPlusPlus/core/lib/VanillaColours.java b/src/main/java/gtPlusPlus/core/lib/VanillaColours.java
new file mode 100644
index 0000000000..9a7a82cb1f
--- /dev/null
+++ b/src/main/java/gtPlusPlus/core/lib/VanillaColours.java
@@ -0,0 +1,28 @@
+package gtPlusPlus.core.lib;
+
+import gtPlusPlus.core.util.Utils;
+
+public enum VanillaColours {
+
+ BONE_MEAL(249, 255, 254), INK_BLACK(29, 29, 33), COCOA_BEANS(131, 84, 50), LAPIS_LAZULI(60, 68, 170),
+ DYE_WHITE(249, 255, 254), DYE_BLACK(29, 29, 33), DYE_RED(176, 46, 38), DYE_GREEN(94, 124, 22),
+ DYE_CYAN(22, 156, 156), DYE_PINK(243, 139, 170), DYE_LIME(128, 199, 31), DYE_YELLOW(254, 216, 61),
+ DYE_ORANGE(249, 128, 29), DYE_BROWN(131, 84, 50), DYE_LIGHT_BLUE(58, 179, 218), DYE_LIGHT_PURPLE(199, 78, 189),
+ DYE_LIGHT_GRAY(157, 157, 151), DYE_DARK_BLUE(60, 68, 170), DYE_DARK_PURPLE(137, 50, 184), DYE_DARK_GRAY(71, 79, 82);
+
+ private final int r, g, b;
+
+ private VanillaColours(int aR, int aG, int aB) {
+ r = aR;
+ g = aG;
+ b = aB;
+ }
+
+ public short[] getAsShort() {
+ return new short[] { (short) r, (short) g, (short) b };
+ }
+
+ public int getAsInt() {
+ return Utils.rgbtoHexValue(r, g, b);
+ }
+}