aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/common/GT_Client.java28
-rw-r--r--src/main/java/gregtech/loaders/misc/GT_Achievements.java27
2 files changed, 40 insertions, 15 deletions
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java
index 9db8786767..7463893366 100644
--- a/src/main/java/gregtech/common/GT_Client.java
+++ b/src/main/java/gregtech/common/GT_Client.java
@@ -26,6 +26,7 @@ import gregtech.api.util.GT_Utility;
import gregtech.common.entities.GT_Entity_Arrow;
import gregtech.common.entities.GT_Entity_Arrow_Potion;
import gregtech.common.render.*;
+import gregtech.loaders.misc.GT_Achievements;
import gregtech.nei.NEI_GT_Config;
import ic2.api.tile.IWrenchable;
import net.minecraft.block.Block;
@@ -33,6 +34,8 @@ import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
+import net.minecraft.stats.Achievement;
+import net.minecraft.stats.StatFileWriter;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
@@ -77,7 +80,7 @@ public class GT_Client extends GT_Proxy
private final List mMoltenNegA = Arrays.asList(new Object[0]);
private long mAnimationTick;
/**This is the place to def the value used below**/
- //private long afterSomeTime;
+ private long afterSomeTime;
private boolean mAnimationDirection;
private boolean isFirstClientPlayerTick;
private String mMessage;
@@ -287,6 +290,18 @@ public class GT_Client extends GT_Proxy
@SubscribeEvent
public void onPlayerTickEventClient(TickEvent.PlayerTickEvent aEvent) {
if ((aEvent.side.isClient()) && (aEvent.phase == TickEvent.Phase.END) && (!aEvent.player.isDead)) {
+ /**Something on the lines of this works for recipe visibility toggling**/
+ /**yes just change the mHidden thing, rest is done by custom NEI configurer GT_NEI_AssLineHandler**/
+ afterSomeTime++;
+ if(afterSomeTime>=100L){
+ afterSomeTime=0;
+ StatFileWriter sfw= Minecraft.getMinecraft().thePlayer.getStatFileWriter();
+ try {
+ for(GT_Recipe recipe:GT_Recipe.GT_Recipe_Map.sAssemblylineFakeRecipes.mRecipeList){
+ recipe.mHidden=!sfw.hasAchievementUnlocked(GT_Mod.achievements.getAchievement(recipe.getOutput(0).getUnlocalizedName()));
+ }
+ }catch (Exception e){}
+ }
ArrayList<GT_PlayedSound> tList = new ArrayList();
for (Map.Entry<GT_PlayedSound, Integer> tEntry : GT_Utility.sPlayedSoundMap.entrySet()) {
if (tEntry.getValue().intValue() < 0) {//Integer -> Integer -> int? >_<, fix
@@ -362,17 +377,6 @@ public class GT_Client extends GT_Proxy
public void onClientTickEvent(cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent aEvent) {
if (aEvent.phase == cpw.mods.fml.common.gameevent.TickEvent.Phase.END) {
mAnimationTick++;
- /**Something on the lines of this works for recipe visibility toggling**/
- /**yes just change the mHidden thing, rest is done by custom NEI configurer GT_NEI_AssLineHandler**/
- //if(!isFirstClientPlayerTick)afterSomeTime++;
- //if(afterSomeTime>=600L){
- // afterSomeTime=0;
- // try {
- // for (GT_Recipe recipe : GT_Recipe.GT_Recipe_Map.sAssemblylineFakeRecipes.mRecipeList) {
- // recipe.mHidden ^= true;
- // }
- // }catch (Exception e){}
- //}
if (mAnimationTick % 50L == 0L)
{mAnimationDirection = !mAnimationDirection;}
int tDirection = mAnimationDirection ? 1 : -1;
diff --git a/src/main/java/gregtech/loaders/misc/GT_Achievements.java b/src/main/java/gregtech/loaders/misc/GT_Achievements.java
index a4ff8f774d..83a6971d44 100644
--- a/src/main/java/gregtech/loaders/misc/GT_Achievements.java
+++ b/src/main/java/gregtech/loaders/misc/GT_Achievements.java
@@ -15,6 +15,7 @@ import gregtech.api.objects.ItemData;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Recipe;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
import ic2.core.Ic2Items;
import net.minecraft.entity.player.EntityPlayer;
@@ -38,6 +39,7 @@ public class GT_Achievements {
public static List<Materials> oreList = new ArrayList<Materials>();
public static List<Integer[]> oreStats = new ArrayList<Integer[]>();
public static int oreReg = -1;
+ public static int assReg=-1;
public ConcurrentHashMap<String, Achievement> achievementList;
public ConcurrentHashMap<String, Boolean> issuedAchievements;
public int adjX = 5;
@@ -71,6 +73,10 @@ public class GT_Achievements {
}
registerOreAchievement(oreList.get(i));
}
+
+ for(GT_Recipe recipe: GT_Recipe.GT_Recipe_Map.sAssemblylineFakeRecipes.mRecipeList)
+ registerAssAchievement(recipe);
+
registerAchievement("flintpick", 0, 0, GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(2, 1, Materials.Flint, Materials.Wood, null), "", false);
registerAchievement("crops", -4, 0, GT_ModHandler.getIC2Item("crop", 1L), "flintpick", false);
registerAchievement("havestlead", -4, 2, ItemList.Crop_Drop_Plumbilia.get(1, new Object[]{}), "crops", false);
@@ -215,7 +221,6 @@ public class GT_Achievements {
if (!GT_Mod.gregtechproxy.mAchievements) {
return null;
}
- ;
Achievement achievement = new Achievement(textId, textId, this.adjX + x, this.adjY + y, icon, requirement);
if (special) {
achievement.setSpecial();
@@ -256,6 +261,15 @@ public class GT_Achievements {
return null;
}
+ public Achievement registerAssAchievement(GT_Recipe recipe) {
+ if (this.achievementList.get(recipe.getOutput(0).getUnlocalizedName()) == null) {
+ assReg++;
+ return registerAchievement(recipe.getOutput(0).getUnlocalizedName(), -(11 + assReg % 5), ((assReg) / 5) - 8, recipe.getOutput(0)
+ , AchievementList.openInventory, false);
+ }
+ return null;
+ }
+
public void issueAchievement(EntityPlayer entityplayer, String textId) {
if (entityplayer == null || !GT_Mod.gregtechproxy.mAchievements) {
return;
@@ -561,8 +575,15 @@ public class GT_Achievements {
}
} else if (stack.getUnlocalizedName().equals("gt.Thoriumcell")) {
issueAchievement(player, "newfuel");
- }else if ((stack.getItem() == Ic2Items.quantumBodyarmor.getItem()) || (stack.getItem() == Ic2Items.quantumBoots.getItem()) ||
+ } else if ((stack.getItem() == Ic2Items.quantumBodyarmor.getItem()) || (stack.getItem() == Ic2Items.quantumBoots.getItem()) ||
(stack.getItem() == Ic2Items.quantumHelmet.getItem()) || (stack.getItem() == Ic2Items.quantumLeggings.getItem())) {
- issueAchievement(player, "buildQArmor");}
+ issueAchievement(player, "buildQArmor");
+ }
+ for(GT_Recipe recipe: GT_Recipe.GT_Recipe_Map.sAssemblylineFakeRecipes.mRecipeList){
+ if(recipe.getOutput(0).getUnlocalizedName().equals(stack.getUnlocalizedName())) {
+ issueAchievement(player, recipe.getOutput(0).getUnlocalizedName());
+ recipe.mHidden=false;
+ }
+ }
}
} \ No newline at end of file