diff options
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc')
-rw-r--r-- | src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java | 13 | ||||
-rw-r--r-- | src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java | 315 |
2 files changed, 163 insertions, 165 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java index ab4203bca6..5a8306abee 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AddCustomMachineToPA.java @@ -2,15 +2,12 @@ package gtPlusPlus.xmod.gregtech.loaders.misc; import gregtech.api.util.GTPP_Recipe; import gregtech.api.util.GT_ProcessingArray_Manager; -import gregtech.api.util.GT_Recipe.GT_Recipe_Map; -import gtPlusPlus.api.objects.Logger; public class AddCustomMachineToPA { - public static void register() { - - // Simple Washers - GT_ProcessingArray_Manager.addRecipeMapToPA("simplewasher.01", GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes); - - } + public static void register() { + // Simple Washers + GT_ProcessingArray_Manager.addRecipeMapToPA( + "simplewasher.01", GTPP_Recipe.GTPP_Recipe_Map.sSimpleWasherRecipes); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java index 351a4cc546..01683e8067 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java @@ -1,7 +1,5 @@ package gtPlusPlus.xmod.gregtech.loaders.misc; -import java.util.concurrent.ConcurrentHashMap; - import cpw.mods.fml.common.eventhandler.SubscribeEvent; import gregtech.GT_Mod; import gregtech.api.util.GT_Log; @@ -11,6 +9,7 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.common.StaticFields59; +import java.util.concurrent.ConcurrentHashMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; @@ -21,160 +20,162 @@ import net.minecraftforge.event.entity.player.EntityItemPickupEvent; public class AssLineAchievements { - public static int assReg = -1; - public static ConcurrentHashMap<String, Achievement> mAchievementMap; - public static ConcurrentHashMap<String, Boolean> mIssuedAchievementMap; - public static int adjX = 5; - public static int adjY = 9; - private static boolean active = true; - - public AssLineAchievements() { - Logger.INFO(active ? "Loading custom achievement page for Assembly Line recipes." - : "Achievements are disabled."); - Utils.registerEvent(this); - } - - private static boolean ready = false; - private static int recipeTotal = 0; - private static int recipeCount = 0; - private static void init() { - if (!ready) { - active = GT_Mod.gregtechproxy.mAchievements; - try { - recipeTotal = ((GT_Recipe.GT_Recipe_Map) StaticFields59.mAssLineVisualMapNEI.get(null)).mRecipeList.size(); - } catch (IllegalArgumentException | IllegalAccessException e) { - recipeTotal = 0; - } - mAchievementMap = new ConcurrentHashMap<String, Achievement>(); - mIssuedAchievementMap = new ConcurrentHashMap<String, Boolean>(); - ready = true; - } - - } - - public static void registerAchievements() { - if (active && mAchievementMap.size() > 0) { - AchievementPage.registerAchievementPage(new AchievementPage("GT Assembly Line", - (Achievement[]) mAchievementMap.values().toArray(new Achievement[mAchievementMap.size()]))); - } - else if (active) { - Logger.INFO("Unable to register custom achievement page for Assembly Line recipes."); - } - } - - public static Achievement registerAssAchievement(GT_Recipe recipe) { - init(); - String aSafeUnlocalName; - // Debugging - if (recipe == null) { - Logger.INFO( - "Someone tried to register an achievement for an invalid recipe. Please report this to Alkalus."); - return null; - } - if (recipe.getOutput(0) == null) { - Logger.INFO( - "Someone tried to register an achievement for a recipe with null output. Please report this to Alkalus."); - return null; - } - ItemStack aStack = recipe.getOutput(0); - try { - aSafeUnlocalName = aStack.getUnlocalizedName(); - } catch (Throwable t) { - aSafeUnlocalName = ItemUtils.getUnlocalizedItemName(aStack); - } - - Achievement aYouDidSomethingInGT; - if (mAchievementMap.get(aSafeUnlocalName) == null) { - assReg++; - recipeCount++; - aYouDidSomethingInGT = registerAchievement(aSafeUnlocalName, -(11 + assReg % 5), ((assReg) / 5) - 8, - recipe.getOutput(0), AchievementList.openInventory, false); - } - else { - aYouDidSomethingInGT = null; - } - if (recipeCount >= recipeTotal) { - Logger.INFO("Critical mass achieved. ["+recipeCount+"]"); - registerAchievements(); - } - - return aYouDidSomethingInGT; - } - - public static Achievement registerAchievement(String textId, int x, int y, ItemStack icon, - Achievement requirement, boolean special) { - if (!GT_Mod.gregtechproxy.mAchievements) { - return null; - } - Achievement achievement = new Achievement(textId, textId, adjX + x, 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="); - } - mAchievementMap.put(textId, achievement); - return achievement; - } - - public static void issueAchievement(EntityPlayer entityplayer, String textId) { - if (entityplayer == null || !GT_Mod.gregtechproxy.mAchievements) { - return; - } - - entityplayer.triggerAchievement((StatBase) getAchievement(textId)); - } - - public static Achievement getAchievement(String textId) { - if (mAchievementMap.containsKey(textId)) { - Logger.INFO("Found Achivement: "+textId); - return (Achievement) mAchievementMap.get(textId); - } - return null; - } - - @SubscribeEvent - public void onItemPickup(EntityItemPickupEvent event) { - EntityPlayer player = event.entityPlayer; - ItemStack stack = event.item.getEntityItem(); - String aPickupUnlocalSafe = ItemUtils.getUnlocalizedItemName(stack); - if (player == null || stack == null) { - return; - } - - if (StaticFields59.sAssemblylineVisualRecipes == null) { - return; - } - - Logger.INFO("Trying to check for achievements"); - // Debug scanner unlocks all AL recipes in creative - if (player.capabilities.isCreativeMode && aPickupUnlocalSafe.equals("gt.metaitem.01.32761")) { - for (GT_Recipe recipe : StaticFields59.sAssemblylineVisualRecipes.mRecipeList) { - issueAchievement(player, recipe.getOutput(0).getUnlocalizedName()); - recipe.mHidden = false; - } - } - for (GT_Recipe recipe : StaticFields59.sAssemblylineVisualRecipes.mRecipeList) { - - String aSafeUnlocalName; - if (recipe.getOutput(0) == null) { - Logger.INFO( - "Someone tried to register an achievement for a recipe with null output. Please report this to Alkalus."); - continue; - } - ItemStack aStack = recipe.getOutput(0); - aSafeUnlocalName = ItemUtils.getUnlocalizedItemName(aStack); - if (aSafeUnlocalName.equals(aPickupUnlocalSafe)) { - issueAchievement(player, aSafeUnlocalName); - recipe.mHidden = false; - Logger.INFO("FOUND: " + aSafeUnlocalName + " | " + aPickupUnlocalSafe); - } - else { - //Logger.INFO(aSafeUnlocalName + " | " + aPickupUnlocalSafe); - } - } - } + public static int assReg = -1; + public static ConcurrentHashMap<String, Achievement> mAchievementMap; + public static ConcurrentHashMap<String, Boolean> mIssuedAchievementMap; + public static int adjX = 5; + public static int adjY = 9; + private static boolean active = true; + + public AssLineAchievements() { + Logger.INFO( + active ? "Loading custom achievement page for Assembly Line recipes." : "Achievements are disabled."); + Utils.registerEvent(this); + } + + private static boolean ready = false; + private static int recipeTotal = 0; + private static int recipeCount = 0; + + private static void init() { + if (!ready) { + active = GT_Mod.gregtechproxy.mAchievements; + try { + recipeTotal = + ((GT_Recipe.GT_Recipe_Map) StaticFields59.mAssLineVisualMapNEI.get(null)).mRecipeList.size(); + } catch (IllegalArgumentException | IllegalAccessException e) { + recipeTotal = 0; + } + mAchievementMap = new ConcurrentHashMap<String, Achievement>(); + mIssuedAchievementMap = new ConcurrentHashMap<String, Boolean>(); + ready = true; + } + } + + public static void registerAchievements() { + if (active && mAchievementMap.size() > 0) { + AchievementPage.registerAchievementPage(new AchievementPage("GT Assembly Line", (Achievement[]) + mAchievementMap.values().toArray(new Achievement[mAchievementMap.size()]))); + } else if (active) { + Logger.INFO("Unable to register custom achievement page for Assembly Line recipes."); + } + } + + public static Achievement registerAssAchievement(GT_Recipe recipe) { + init(); + String aSafeUnlocalName; + // Debugging + if (recipe == null) { + Logger.INFO( + "Someone tried to register an achievement for an invalid recipe. Please report this to Alkalus."); + return null; + } + if (recipe.getOutput(0) == null) { + Logger.INFO( + "Someone tried to register an achievement for a recipe with null output. Please report this to Alkalus."); + return null; + } + ItemStack aStack = recipe.getOutput(0); + try { + aSafeUnlocalName = aStack.getUnlocalizedName(); + } catch (Throwable t) { + aSafeUnlocalName = ItemUtils.getUnlocalizedItemName(aStack); + } + + Achievement aYouDidSomethingInGT; + if (mAchievementMap.get(aSafeUnlocalName) == null) { + assReg++; + recipeCount++; + aYouDidSomethingInGT = registerAchievement( + aSafeUnlocalName, + -(11 + assReg % 5), + ((assReg) / 5) - 8, + recipe.getOutput(0), + AchievementList.openInventory, + false); + } else { + aYouDidSomethingInGT = null; + } + if (recipeCount >= recipeTotal) { + Logger.INFO("Critical mass achieved. [" + recipeCount + "]"); + registerAchievements(); + } + + return aYouDidSomethingInGT; + } + + public static Achievement registerAchievement( + String textId, int x, int y, ItemStack icon, Achievement requirement, boolean special) { + if (!GT_Mod.gregtechproxy.mAchievements) { + return null; + } + Achievement achievement = new Achievement(textId, textId, adjX + x, 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="); + } + mAchievementMap.put(textId, achievement); + return achievement; + } + + public static void issueAchievement(EntityPlayer entityplayer, String textId) { + if (entityplayer == null || !GT_Mod.gregtechproxy.mAchievements) { + return; + } + + entityplayer.triggerAchievement((StatBase) getAchievement(textId)); + } + + public static Achievement getAchievement(String textId) { + if (mAchievementMap.containsKey(textId)) { + Logger.INFO("Found Achivement: " + textId); + return (Achievement) mAchievementMap.get(textId); + } + return null; + } + + @SubscribeEvent + public void onItemPickup(EntityItemPickupEvent event) { + EntityPlayer player = event.entityPlayer; + ItemStack stack = event.item.getEntityItem(); + String aPickupUnlocalSafe = ItemUtils.getUnlocalizedItemName(stack); + if (player == null || stack == null) { + return; + } + + if (StaticFields59.sAssemblylineVisualRecipes == null) { + return; + } + + Logger.INFO("Trying to check for achievements"); + // Debug scanner unlocks all AL recipes in creative + if (player.capabilities.isCreativeMode && aPickupUnlocalSafe.equals("gt.metaitem.01.32761")) { + for (GT_Recipe recipe : StaticFields59.sAssemblylineVisualRecipes.mRecipeList) { + issueAchievement(player, recipe.getOutput(0).getUnlocalizedName()); + recipe.mHidden = false; + } + } + for (GT_Recipe recipe : StaticFields59.sAssemblylineVisualRecipes.mRecipeList) { + String aSafeUnlocalName; + if (recipe.getOutput(0) == null) { + Logger.INFO( + "Someone tried to register an achievement for a recipe with null output. Please report this to Alkalus."); + continue; + } + ItemStack aStack = recipe.getOutput(0); + aSafeUnlocalName = ItemUtils.getUnlocalizedItemName(aStack); + if (aSafeUnlocalName.equals(aPickupUnlocalSafe)) { + issueAchievement(player, aSafeUnlocalName); + recipe.mHidden = false; + Logger.INFO("FOUND: " + aSafeUnlocalName + " | " + aPickupUnlocalSafe); + } else { + // Logger.INFO(aSafeUnlocalName + " | " + aPickupUnlocalSafe); + } + } + } } |