diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/core/lib')
-rw-r--r-- | src/main/java/gtPlusPlus/core/lib/CORE.java | 365 | ||||
-rw-r--r-- | src/main/java/gtPlusPlus/core/lib/LoadedMods.java | 354 | ||||
-rw-r--r-- | src/main/java/gtPlusPlus/core/lib/VanillaColours.java | 28 |
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); + } +} |