diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java deleted file mode 100644 index 351a4cc546..0000000000 --- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/misc/AssLineAchievements.java +++ /dev/null @@ -1,180 +0,0 @@ -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; -import gregtech.api.util.GT_Recipe; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.xmod.gregtech.common.StaticFields59; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.stats.Achievement; -import net.minecraft.stats.AchievementList; -import net.minecraft.stats.StatBase; -import net.minecraftforge.common.AchievementPage; -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); - } - } - } - -} |