aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/handler
diff options
context:
space:
mode:
author‭huajijam <strhuaji@gmail.com>2019-03-18 20:52:30 +0800
committer‭huajijam <strhuaji@gmail.com>2019-03-18 20:52:30 +0800
commit8b090e1fd20eb4c301996b5e1dfeb78353e595e4 (patch)
tree52152dd767d195c76baa8fd8bacb14b105aaa146 /src/Java/gtPlusPlus/core/handler
parent40d7e5da9f5b84213e2c3e4596fdc69b94bd523e (diff)
downloadGT5-Unofficial-8b090e1fd20eb4c301996b5e1dfeb78353e595e4.tar.gz
GT5-Unofficial-8b090e1fd20eb4c301996b5e1dfeb78353e595e4.tar.bz2
GT5-Unofficial-8b090e1fd20eb4c301996b5e1dfeb78353e595e4.zip
fix a bug
Diffstat (limited to 'src/Java/gtPlusPlus/core/handler')
-rw-r--r--src/Java/gtPlusPlus/core/handler/AchievementHandler.java417
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java48
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java13
-rw-r--r--src/Java/gtPlusPlus/core/handler/StopAnnoyingFuckingAchievements.java24
-rw-r--r--src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java37
5 files changed, 531 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/core/handler/AchievementHandler.java b/src/Java/gtPlusPlus/core/handler/AchievementHandler.java
new file mode 100644
index 0000000000..482ca66f09
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/handler/AchievementHandler.java
@@ -0,0 +1,417 @@
+package gtPlusPlus.core.handler;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent;
+import cpw.mods.fml.common.gameevent.PlayerEvent.ItemSmeltedEvent;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_Log;
+import gregtech.common.items.GT_MetaGenerated_Tool_01;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.block.ModBlocks;
+import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.ALLOY;
+import gtPlusPlus.core.material.ELEMENT;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.stats.Achievement;
+import net.minecraft.stats.StatBase;
+import net.minecraftforge.common.AchievementPage;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.player.EntityItemPickupEvent;
+
+public class AchievementHandler {
+
+ public ConcurrentHashMap<String, Achievement> achievementList = new ConcurrentHashMap<String, Achievement>();
+ public ConcurrentHashMap<String, Boolean> issuedAchievements = new ConcurrentHashMap<String, Boolean>();
+
+ public int adjX = 5;
+ public int adjY = 9;
+
+ private static final String aBaseAchievementName = "gtpp.start";
+
+ public AchievementHandler() {
+
+ Logger.INFO("Initializing GT++ achievements");
+ GT_Log.out.println("Initializing GT++ achievements");
+
+ //register first
+ this.registerAchievement(aBaseAchievementName, 0, 0, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(GT_MetaGenerated_Tool_01.HARDHAMMER, 1, Materials.Neutronium, Materials.Osmium, null), "", true);
+
+ //Useful Info
+ boolean cores = CORE.ConfigSwitches.requireControlCores;
+ if (cores || GregtechMeta_MultiBlockBase.DEBUG_DISABLE_CORES_TEMPORARILY) {
+ this.registerAchievement("hatch.control", -2, -2, GregtechItemList.Hatch_Control_Core.get(1), aBaseAchievementName, false);
+ }
+ this.registerAchievement("hatch.dynamo.buffered", 2, -2, GregtechItemList.Hatch_Buffer_Dynamo_IV.get(1), aBaseAchievementName, false);
+ //First multi anyone really needs
+ this.registerAchievement("multi.abs", -4, -2, GregtechItemList.Industrial_AlloyBlastSmelter.get(1), cores ? "hatch.control" : aBaseAchievementName, true);
+
+ //Material Advancement
+ this.registerAchievement("dust.potin", 0, 2, ALLOY.POTIN.getDust(1), aBaseAchievementName, false);
+ this.registerAchievement("dust.eglin", 0, 4, ALLOY.EGLIN_STEEL.getDust(1), "dust.potin", false);
+ this.registerAchievement("dust.staballoy", 0, 6, ALLOY.STABALLOY.getDust(1), "dust.eglin", false);
+ this.registerAchievement("dust.quantum", 0, 8, ALLOY.QUANTUM.getDust(1), "dust.staballoy", true);
+ this.registerAchievement("dust.hypogen", 0, 10, ELEMENT.STANDALONE.HYPOGEN.getDust(1), "dust.quantum", true);
+
+
+ //Blocks
+ this.registerAchievement("block.fishtrap", -2, 2, ItemUtils.getSimpleStack(ModBlocks.blockFishTrap), "dust.potin", false);
+ this.registerAchievement("block.withercage", -2, 4, ItemUtils.getSimpleStack(ModBlocks.blockWitherGuard), "dust.eglin", false);
+
+
+ //Machines (-10/-8/-6)
+ this.registerAchievement("rtg", -16, -10, GregtechItemList.RTG.get(1), aBaseAchievementName, false);
+ this.registerAchievement("dehydrate", -15, -10, GregtechItemList.GT_Dehydrator_HV.get(1), aBaseAchievementName, false);
+ this.registerAchievement("semifluid", -14, -10, GregtechItemList.Generator_SemiFluid_HV.get(1), aBaseAchievementName, false);
+ this.registerAchievement("earlywasher", -13, -10, GregtechItemList.SimpleDustWasher.get(1), aBaseAchievementName, false);
+ this.registerAchievement("advancedsteam", -12, -10, GregtechItemList.Boiler_Advanced_MV.get(1), aBaseAchievementName, false);
+ this.registerAchievement("pollutionremoval", -11, -10, GregtechItemList.Pollution_Cleaner_IV.get(1), aBaseAchievementName, false);
+ this.registerAchievement("hiampxform", -10, -10, GregtechItemList.Transformer_HA_HV_MV.get(1), aBaseAchievementName, false);
+
+
+ //Multis (-4/-2/0)
+ this.registerAchievement("multi.pss", -16, -7, GregtechItemList.PowerSubStation.get(1), "multi.abs", false);
+ this.registerAchievement("multi.cyclo", -15, -7, GregtechItemList.COMET_Cyclotron.get(1), "multi.abs", false);
+ this.registerAchievement("multi.sifter", -14, -7, GregtechItemList.Industrial_Sifter.get(1), "dust.eglin", false);
+ this.registerAchievement("multi.cokeoven", -13, -7, GregtechItemList.Industrial_CokeOven.get(1), "multi.abs", false);
+ this.registerAchievement("multi.boiler.thermal", -12, -7, GregtechItemList.GT4_Thermal_Boiler.get(1), "multi.abs", false);
+ this.registerAchievement("multi.zhuhai", -11, -7, GregtechItemList.Industrial_FishingPond.get(1), aBaseAchievementName, false);
+ //this.registerAchievement("rtg", -4, -4, GregtechItemList.RTG.get(1), aBaseAchievementName, false);
+
+ //Casings
+ this.registerAchievement("casing.abs", 2, -10, GregtechItemList.Casing_Coil_BlastSmelter.get(1), aBaseAchievementName, false);
+ this.registerAchievement("casing.cyclotron.coil", 3, -10, GregtechItemList.Casing_Cyclotron_Coil.get(1), aBaseAchievementName, false);
+ this.registerAchievement("casing.multiuse", 4, -10, GregtechItemList.Casing_Multi_Use.get(1), aBaseAchievementName, false);
+ this.registerAchievement("casing.containment", 5, -10, GregtechItemList.Casing_Containment.get(1), aBaseAchievementName, false);
+
+
+
+
+
+
+
+
+ //Radioactive
+ this.registerAchievement("decay.neptunium238", 11, 8, ItemUtils.getSimpleStack(ModItems.dustNeptunium238), "multi.cyclo", false);
+ this.registerAchievement("decay.radium226", 12, 8, ItemUtils.getSimpleStack(ModItems.dustRadium226), "multi.cyclo", false);
+ this.registerAchievement("decay.molybdenum99", 13, 8, ItemUtils.getSimpleStack(ModItems.dustMolybdenum99), "multi.cyclo", false);
+ this.registerAchievement("decay.technetium99m", 14, 8, ItemUtils.getSimpleStack(ModItems.dustTechnetium99M), "multi.cyclo", false);
+ this.registerAchievement("decay.technetium99", 15, 8, ItemUtils.getSimpleStack(ModItems.dustTechnetium99), "multi.cyclo", false);
+
+
+
+
+
+
+
+
+
+
+
+
+ AchievementPage.registerAchievementPage(
+ new AchievementPage("GT++", (Achievement[]) ((Achievement[]) this.achievementList.values()
+ .toArray(new Achievement[this.achievementList.size()]))));
+ MinecraftForge.EVENT_BUS.register(this);
+ FMLCommonHandler.instance().bus().register(this);
+
+
+ }
+
+ public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, Achievement requirement,
+ boolean special) {
+ Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY + y, icon, requirement);
+ if (special) {
+ achievement.setSpecial();
+ }
+
+ achievement.registerStat();
+ if (CORE.DEVENV) {
+ GT_Log.out.println("achievement." + textId + "=");
+ GT_Log.out.println("achievement." + textId + ".desc=");
+ }
+
+ this.achievementList.put(textId, achievement);
+ return achievement;
+ }
+
+ public Achievement registerAchievement(String textId, int x, int y, ItemStack icon, String requirement,
+ boolean special) {
+ Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY + y, icon,
+ this.getAchievement(requirement));
+ if (special) {
+ achievement.setSpecial();
+ }
+
+ achievement.registerStat();
+ if (CORE.DEVENV) {
+ GT_Log.out.println("achievement." + textId + "=");
+ GT_Log.out.println("achievement." + textId + ".desc=");
+ }
+
+ this.achievementList.put(textId, achievement);
+ return achievement;
+ }
+
+ public void issueAchievement(EntityPlayer entityplayer, String textId) {
+ if (entityplayer != null) {
+ entityplayer.triggerAchievement((StatBase) this.achievementList.get(textId));
+ }
+ }
+
+ public Achievement getAchievement(String textId) {
+ return this.achievementList.containsKey(textId) ? (Achievement) this.achievementList.get(textId) : null;
+ }
+
+
+ /**
+ * A generic handler that will give an achievement for an item.
+ * Useful to only write this once, then call it from all handlers.
+ * @param aStack - The Itemstack to check for achievements.
+ * @param aPlayer - The player to unlock for.
+ */
+ private void handleAchivement(ItemStack aStack, EntityPlayer aPlayer) {
+
+ if (aPlayer != null && aStack != null) {
+ /*
+ * Copy this to all events because I am lazy - Alk 2019
+ */
+
+ //Safe name
+ String aUnlocalName = ItemUtils.getUnlocalizedItemName(aStack);
+
+
+ boolean isValid = false;
+ //Check if valid name // mod
+ String aModID = ItemUtils.getModId(aStack);
+
+ if (aModID == null || aModID.length() <= 0 || aModID.isEmpty()) {
+ return;
+ }
+
+ if (aModID != null && (ItemUtils.getModId(aStack).equals(CORE.MODID) || ItemUtils.getModId(aStack).equalsIgnoreCase("gregtech"))) {
+ isValid = true;
+ }
+ if (!isValid) {
+ return;
+ }
+
+ //Should unlock base achievement from *ANY* GT++ item. (Too lazy to special case GT machineBlocks though)
+ if (ItemUtils.getModId(aStack).equals(CORE.MODID)) {
+ this.issueAchievement(aPlayer, aBaseAchievementName);
+ }
+
+ if (aUnlocalName.contains("item.")) {
+ aUnlocalName = aUnlocalName.substring(5);
+ }
+ else if (aUnlocalName.contains("tile.")) {
+ aUnlocalName = aUnlocalName.substring(5);
+ }
+
+ //Logger.INFO("Picked up "+aUnlocalName);
+
+
+ /**
+ * Misc Blocks
+ */
+
+ if (aUnlocalName.equals("blockFishTrap")) {
+ this.issueAchievement(aPlayer, "block.fishtrap");
+ }
+ if (aUnlocalName.equals("blockBlackGate")) {
+ this.issueAchievement(aPlayer, "block.withercage");
+ }
+
+
+ /**
+ * Decayables
+ */
+ if (aUnlocalName.equals("dustNeptunium238")) {
+ this.issueAchievement(aPlayer, "decay.neptunium238");
+ }
+ else if (aUnlocalName.equals("dustRadium226")) {
+ this.issueAchievement(aPlayer, "decay.radium226");
+ }
+ else if (aUnlocalName.equals("dustMolybdenum99")) {
+ this.issueAchievement(aPlayer, "decay.molybdenum99");
+ }
+ else if (aUnlocalName.equals("dustTechnetium99M")) {
+ this.issueAchievement(aPlayer, "decay.technetium99m");
+ }
+ else if (aUnlocalName.equals("dustTechnetium99")) {
+ this.issueAchievement(aPlayer, "decay.technetium99");
+ }
+
+ /**
+ * Random Materials worthy of Achievements
+ */
+ else if (aUnlocalName.equals("itemDustPotin")) {
+ this.issueAchievement(aPlayer, "dust.potin");
+ }
+ else if (aUnlocalName.equals("itemDustEglinSteel")) {
+ this.issueAchievement(aPlayer, "dust.eglin");
+ }
+ else if (aUnlocalName.equals("itemDustStaballoy")) {
+ this.issueAchievement(aPlayer, "dust.staballoy");
+ }
+ else if (aUnlocalName.equals("itemDustQuantum")) {
+ this.issueAchievement(aPlayer, "dust.quantum");
+ }
+ else if (aUnlocalName.equals("itemDustHypogen")) {
+ this.issueAchievement(aPlayer, "dust.hypogen");
+ }
+
+
+
+ /**
+ * Machines
+ */
+
+ else if (aUnlocalName.startsWith("gt.blockmachines.")) {
+
+ //Readability
+ String aStartsWith = "gt.blockmachines.";
+
+ /**
+ * Single Blocks
+ */
+
+ //RTG
+ if (aUnlocalName.startsWith(aStartsWith + "basicgenerator.rtg")) {
+ this.issueAchievement(aPlayer, "rtg");
+ }
+ //Dehydrator
+ else if (aUnlocalName.startsWith(aStartsWith + "machine.dehydrator.tier.")) {
+ this.issueAchievement(aPlayer, "dehydrate");
+ }
+ //SemiFluids
+ else if (aUnlocalName.startsWith(aStartsWith + "basicgenerator.semifluid.tier.")) {
+ this.issueAchievement(aPlayer, "semifluid");
+ }
+ //Simple Washer
+ else if (aUnlocalName.startsWith(aStartsWith + "simplewasher.01.tier.")) {
+ this.issueAchievement(aPlayer, "earlywasher");
+ }
+ //Advanced Boilers
+ else if (aUnlocalName.startsWith(aStartsWith + "electricboiler.")) {
+ this.issueAchievement(aPlayer, "advancedsteam");
+ }
+ //Scrubers
+ else if (aUnlocalName.startsWith(aStartsWith + "pollutioncleaner.01.tier.")) {
+ this.issueAchievement(aPlayer, "pollutionremoval");
+ }
+ //High-amp xformers
+ else if (aUnlocalName.startsWith(aStartsWith + "transformer.ha.tier.")) {
+ this.issueAchievement(aPlayer, "hiampxform");
+ }
+ //Buffered Dynamos
+ else if (aUnlocalName.startsWith(aStartsWith + "hatch.dynamo.buffer.tier.")) {
+ this.issueAchievement(aPlayer, "hatch.dynamo.buffered");
+ }
+ //Control Core Hatch
+ else if (aUnlocalName.startsWith(aStartsWith + "hatch.control.adv")) {
+ this.issueAchievement(aPlayer, "hatch.control");
+ }
+
+
+
+ /**
+ * Multis
+ */
+
+ //ABS
+ else if (aUnlocalName.equals(aStartsWith + "industrialsalloyamelter.controller.tier.single")) {
+ this.issueAchievement(aPlayer, "multi.abs");
+ }
+ //PSS
+ else if (aUnlocalName.equals(aStartsWith + "substation.01.input.single")) {
+ this.issueAchievement(aPlayer, "multi.pss");
+ }
+ //Cyclotron
+ else if (aUnlocalName.startsWith(aStartsWith + "cyclotron.tier.single")) {
+ this.issueAchievement(aPlayer, "multi.cyclo");
+ }
+ //Sifter
+ else if (aUnlocalName.equals(aStartsWith + "industrialsifter.controller.tier.single")) {
+ this.issueAchievement(aPlayer, "multi.sifter");
+ }
+ //Coke Oven
+ else if (aUnlocalName.equals(aStartsWith + "industrialcokeoven.controller.tier.single")) {
+ this.issueAchievement(aPlayer, "multi.cokeoven");
+ }
+ //Thermal Boiler
+ else if (aUnlocalName.equals(aStartsWith + "gtplusplus.thermal.boiler")) {
+ this.issueAchievement(aPlayer, "multi.boiler.thermal");
+ }
+ //Zhuhai
+ else if (aUnlocalName.equals(aStartsWith + "industrial.fishpond.controller.tier.single")) {
+ this.issueAchievement(aPlayer, "multi.zhuhai");
+ }
+
+ }
+
+ /**
+ * Casings
+ */
+
+ else if (aUnlocalName.equals("gtplusplus.blockcasings.14")) {
+ this.issueAchievement(aPlayer, "casing.abs");
+ }
+
+ else if (aUnlocalName.equals("gtplusplus.blockcasings.2.9")) {
+ this.issueAchievement(aPlayer, "casing.cyclotron.coil");
+ }
+
+ else if (aUnlocalName.equals("gtplusplus.blockcasings.3.2")) {
+ this.issueAchievement(aPlayer, "casing.multiuse");
+ }
+ else if (aUnlocalName.equals("gtplusplus.blockcasings.3.15")) {
+ this.issueAchievement(aPlayer, "casing.containment");
+ }
+ }
+ }
+
+
+
+
+ /*
+ * Handle achievements for all vanilla types of obtianment.
+ */
+
+
+
+ @SubscribeEvent
+ public void onCrafting(ItemCraftedEvent event) {
+ EntityPlayer player = event.player;
+ ItemStack stack = event.crafting;
+ if (player != null && stack != null) {
+ handleAchivement(stack, player);
+ }
+ }
+
+ @SubscribeEvent
+ public void onSmelting(ItemSmeltedEvent event) {
+ EntityPlayer player = event.player;
+ ItemStack stack = event.smelting;
+ if (player != null && stack != null) {
+ handleAchivement(stack, player);
+ }
+ }
+
+ @SubscribeEvent
+ public void onItemPickup(EntityItemPickupEvent event) {
+ EntityPlayer player = event.entityPlayer;
+ ItemStack stack = event.item.getEntityItem();
+ if (player != null && stack != null) {
+ handleAchivement(stack, player);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index f6735de8e4..1e3cb0ffbb 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -4,11 +4,13 @@ import static gtPlusPlus.core.lib.LoadedMods.Gregtech;
import java.util.*;
+import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.api.objects.minecraft.ItemPackage;
import gtPlusPlus.core.common.compat.*;
import gtPlusPlus.core.handler.Recipes.LateRegistrationHandler;
import gtPlusPlus.core.handler.Recipes.RegistrationHandler;
@@ -19,6 +21,7 @@ import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.recipe.*;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
+import gtPlusPlus.xmod.gregtech.HANDLER_GT;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_Recycling;
import gtPlusPlus.xmod.gregtech.registration.gregtech.*;
import net.minecraft.item.ItemStack;
@@ -39,7 +42,7 @@ public class COMPAT_HANDLER {
GT_OreDictUnificator.registerOre("craftingToolSandHammer", new ItemStack(ModItems.itemSandstoneHammer));
for(int i=1; i<=10; i++){
- GT_OreDictUnificator.registerOre("bufferCore_"+GT_Values.VN[i-1], new ItemStack(ItemUtils.getItem("miscutils:item.itemBufferCore"+i)));
+ GT_OreDictUnificator.registerOre("bufferCore_"+GT_Values.VN[i-1], new ItemStack(ItemUtils.getItemFromFQRN("miscutils:item.itemBufferCore"+i)));
}
}
@@ -204,11 +207,21 @@ public class COMPAT_HANDLER {
}
}
}
- RecipeGen_Recycling.executeGenerators();
+ RecipeGen_Recycling.executeGenerators();
+ runQueuedMisc();
+ }
+
+
+
+ public static void onLoadComplete(FMLLoadCompleteEvent event) {
+ runQueuedOnLoadComplete(event);
}
public static final AutoMap<RunnableWithInfo<String>> mRecipesToGenerate = new AutoMap<RunnableWithInfo<String>>();
- public static final AutoMap<RunnableWithInfo<String>> mGtRecipesToGenerate = new AutoMap<RunnableWithInfo<String>>();
+ public static final AutoMap<RunnableWithInfo<String>> mGtRecipesToGenerate = new AutoMap<RunnableWithInfo<String>>();
+
+ public static final AutoMap<RunnableWithInfo<String>> mObjectsToRunInPostInit = new AutoMap<RunnableWithInfo<String>>();
+ public static final AutoMap<ItemPackage> mObjectsToRunInOnLoadComplete = new AutoMap<ItemPackage>();
public static void runQueuedRecipes() {
//Add autogenerated Recipes from Item Components
@@ -233,4 +246,33 @@ public class COMPAT_HANDLER {
}
}
+
+ public static void runQueuedMisc() {
+ for (RunnableWithInfo<String> m : mObjectsToRunInPostInit) {
+ try {
+ m.run();
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ Logger.INFO("[ERROR] "+m.getInfoData());
+ }
+
+ }
+ }
+
+ /**
+ * Generally used to register GT recipe map changes after they've been populated.
+ */
+ public static void runQueuedOnLoadComplete(FMLLoadCompleteEvent event) {
+ for (ItemPackage m : mObjectsToRunInOnLoadComplete) {
+ try {
+ m.onLoadComplete(event);
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ Logger.INFO("[ERROR] "+m.getInfoData());
+ }
+
+ }
+ }
}
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java b/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
index 79a2d2a6c0..0f689325a3 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
@@ -1,6 +1,10 @@
package gtPlusPlus.core.handler;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import gtPlusPlus.xmod.bartcrops.HANDLER_CropsPlusPlus;
import gtPlusPlus.xmod.bop.HANDLER_BiomesOPlenty;
import gtPlusPlus.xmod.computronics.HANDLER_Computronics;
import gtPlusPlus.xmod.forestry.HANDLER_FR;
@@ -15,7 +19,7 @@ import gtPlusPlus.xmod.tinkers.HANDLER_Tinkers;
public class COMPAT_IntermodStaging {
- public static void preInit(){
+ public static void preInit(FMLPreInitializationEvent preinit){
HANDLER_GT.preInit();
HANDLER_GC.preInit();
HANDLER_TF.preInit();
@@ -28,9 +32,10 @@ public class COMPAT_IntermodStaging {
HANDLER_Tinkers.preInit();
HANDLER_SC2.preInit();
HANDLER_GalactiCraft.preInit();
+ HANDLER_CropsPlusPlus.preInit(preinit);
}
- public static void init(){
+ public static void init(FMLInitializationEvent init){
HANDLER_GT.init();
HANDLER_GC.init();
HANDLER_TF.init();
@@ -43,9 +48,10 @@ public class COMPAT_IntermodStaging {
HANDLER_Tinkers.init();
HANDLER_SC2.init();
HANDLER_GalactiCraft.init();
+ HANDLER_CropsPlusPlus.init(init);
}
- public static void postInit(){
+ public static void postInit(FMLPostInitializationEvent postinit){
HANDLER_GT.postInit();
HANDLER_GC.postInit();
HANDLER_TF.postInit();
@@ -58,6 +64,7 @@ public class COMPAT_IntermodStaging {
HANDLER_Tinkers.postInit();
HANDLER_SC2.postInit();
HANDLER_GalactiCraft.postInit();
+ HANDLER_CropsPlusPlus.postInit(postinit);
}
public static void onLoadComplete(FMLLoadCompleteEvent event) {
diff --git a/src/Java/gtPlusPlus/core/handler/StopAnnoyingFuckingAchievements.java b/src/Java/gtPlusPlus/core/handler/StopAnnoyingFuckingAchievements.java
new file mode 100644
index 0000000000..b10e67aeaf
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/handler/StopAnnoyingFuckingAchievements.java
@@ -0,0 +1,24 @@
+package gtPlusPlus.core.handler;
+
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import net.minecraft.stats.AchievementList;
+import net.minecraftforge.event.entity.player.AchievementEvent;
+
+public class StopAnnoyingFuckingAchievements {
+
+ /**
+ * Stops me getting fireworks every fucking time I open my inventory upon first loading a dev client.
+ * @param event
+ */
+ @SubscribeEvent
+ public void FUCK_OFF(AchievementEvent event) {
+ if (event.achievement.equals(AchievementList.openInventory)) {
+ if (MathUtils.randInt(0, 10) >= 9)
+ PlayerUtils.messagePlayer(event.entityPlayer, "Bang! Nah, Just joking, there's no fireworks. :)");
+ event.setCanceled(true);
+ }
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
index 6c940371b3..ef91647c1a 100644
--- a/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
+++ b/src/Java/gtPlusPlus/core/handler/events/GeneralTooltipEventHandler.java
@@ -3,10 +3,16 @@ package gtPlusPlus.core.handler.events;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.block.Block;
+import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import gregtech.api.enums.ItemList;
+import gregtech.api.util.GT_Utility;
+import gtPlusPlus.GTplusplus;
+import gtPlusPlus.GTplusplus.INIT_PHASE;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.block.ModBlocks;
import gtPlusPlus.core.handler.events.BlockEventHandler;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.ItemUtils;
@@ -22,8 +28,15 @@ public class GeneralTooltipEventHandler {
@SubscribeEvent
public void onItemTooltip(ItemTooltipEvent event){
+
+ if (GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.STARTED && GTplusplus.CURRENT_LOAD_PHASE != INIT_PHASE.SERVER_START) {
+ return;
+ }
+ if (event.itemStack == null) {
+ return;
+ }
if (CORE.ConfigSwitches.chanceToDropFluoriteOre > 0) {
- if (!BlockEventHandler.blockLimestone.isEmpty()) {
+ if (BlockEventHandler.blockLimestone != null && !BlockEventHandler.blockLimestone.isEmpty()) {
for (ItemStack h : BlockEventHandler.blockLimestone) {
if (h != null && Block.getBlockFromItem(h.getItem()) == Block.getBlockFromItem(event.itemStack.getItem())) {
if (ItemUtils.getModId(h) != null && !ItemUtils.getModId(h).toLowerCase().contains("biomesoplenty")) {
@@ -32,7 +45,7 @@ public class GeneralTooltipEventHandler {
}
}
}
- if (!BlockEventHandler.oreLimestone.isEmpty()) {
+ if (BlockEventHandler.oreLimestone != null && !BlockEventHandler.oreLimestone.isEmpty()) {
for (ItemStack h : BlockEventHandler.oreLimestone) {
if (h != null && Block.getBlockFromItem(h.getItem()) == Block.getBlockFromItem(event.itemStack.getItem())) {
if (ItemUtils.getModId(h) != null && !ItemUtils.getModId(h).toLowerCase().contains("biomesoplenty")) {
@@ -43,6 +56,26 @@ public class GeneralTooltipEventHandler {
}
}
+ //Material Collector Tooltips
+ if (ModBlocks.blockPooCollector != null && Block.getBlockFromItem(event.itemStack.getItem()) == ModBlocks.blockPooCollector) {
+ //Normal
+ if (event.itemStack.getItemDamage() == 0) {
+ event.toolTip.add("Used to collect animal waste");
+ event.toolTip.add("Collects in a 5x4x5 area starting at Y+1");
+ event.toolTip.add("Use Hoppers/Pipes to empty");
+ event.toolTip.add(EnumChatFormatting.GOLD+"Capacity: "+EnumChatFormatting.AQUA+"8000L");
+ }
+ //Advanced
+ else {
+ event.toolTip.add("Used to collect waste (Works on more than animals)");
+ event.toolTip.add("Significantly faster than the simple version");
+ event.toolTip.add("Collects in a 5x4x5 area starting at Y+1");
+ event.toolTip.add("Use Hoppers/Pipes to empty");
+ event.toolTip.add(EnumChatFormatting.GOLD+"Capacity: "+EnumChatFormatting.AQUA+"128000L");
+ }
+ }
+
+
if (CORE.ConfigSwitches.enableAnimatedTurbines) {
boolean shift = false;