Skip to content

Commit be173f1

Browse files
committed
TODO: Setup actual client cache for this.
1 parent 2567bf6 commit be173f1

4 files changed

Lines changed: 46 additions & 3 deletions

File tree

src/main/java/noppes/npcs/client/ClientEventHandler.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919
import net.minecraftforge.client.event.RenderHandEvent;
2020
import net.minecraftforge.client.event.RenderLivingEvent;
2121
import net.minecraftforge.client.event.RenderPlayerEvent;
22+
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
2223
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
24+
import net.minecraftforge.event.world.WorldEvent;
2325
import noppes.npcs.client.gui.customoverlay.OverlayCustom;
2426
import noppes.npcs.client.gui.hud.ClientHudManager;
2527
import noppes.npcs.client.gui.hud.CompassHudComponent;
@@ -36,6 +38,7 @@
3638
import noppes.npcs.controllers.data.MarkData;
3739
import noppes.npcs.controllers.data.PlayerData;
3840
import noppes.npcs.entity.EntityNPCInterface;
41+
import somehussar.gui.guides.GuideController;
3942

4043
import java.lang.reflect.Field;
4144
import java.util.ArrayList;
@@ -79,6 +82,12 @@ public ClientEventHandler() {
7982
}
8083
}
8184

85+
@SubscribeEvent
86+
public void worldEventLoad(WorldEvent.Load event) {
87+
GuideController.resetGlint();
88+
GuideController.handleWorldJoin();
89+
}
90+
8291
@SubscribeEvent
8392
public void onItemTooltip(ItemTooltipEvent event) {
8493
AuctionTooltipHandler.onItemTooltip(event);

src/main/java/somehussar/gui/guides/GuideController.java

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package somehussar.gui.guides;
22

33

4-
import tconstruct.client.tabs.InventoryTabGuides;
5-
import tconstruct.client.tabs.TabRegistry;
4+
import net.minecraft.client.Minecraft;
5+
import net.minecraft.client.gui.achievement.GuiAchievement;
6+
import net.minecraft.stats.AchievementList;
67

78
// TODO: THIS IS JUST THE CLIENT SIDE CONTROLLER
89
// NEED SERVER SIDE
910
public class GuideController {
11+
private static boolean glint = true;
1012
private static boolean isGuideLoaded = true;
1113

1214
public static boolean isGuideLoaded() {
@@ -18,6 +20,28 @@ public static void setGuideLoaded(boolean isGuideLoaded) {
1820
}
1921

2022
public static boolean glint() {
21-
return true;
23+
return glint;
24+
}
25+
26+
public static void handleWorldJoin() {
27+
if (glint()){
28+
GuiAchievement achievementGui = Minecraft.getMinecraft().guiAchievement;
29+
achievementGui.func_146255_b(AchievementList.openInventory);
30+
achievementGui.field_146265_j = "Check out guides in your inventory!";
31+
achievementGui.field_146268_i = "CNPC Guides!";
32+
}
33+
}
34+
35+
public static void disableGlint() {
36+
glint = false;
37+
final long time = Minecraft.getSystemTime();
38+
GuiAchievement achievementGui = Minecraft.getMinecraft().guiAchievement;
39+
achievementGui.field_146263_l = (achievementGui.field_146263_l <= time - 3000 && achievementGui.field_146262_n ? time : Minecraft.getSystemTime() - (long) (3000.0D * 0.5D));
40+
achievementGui.field_146262_n = false;
41+
achievementGui.field_146265_j = "Guides explored!";
42+
}
43+
44+
public static void resetGlint() {
45+
glint = true;
2246
}
2347
}

src/main/java/tconstruct/client/tabs/InventoryTabGuides.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
import net.minecraft.client.Minecraft;
44
import net.minecraft.client.gui.GuiScreen;
5+
import net.minecraft.client.gui.achievement.GuiAchievement;
56
import net.minecraft.client.gui.inventory.GuiInventory;
67
import net.minecraft.client.renderer.OpenGlHelper;
78
import net.minecraft.client.renderer.RenderHelper;
89
import net.minecraft.client.renderer.Tessellator;
910
import net.minecraft.client.renderer.entity.RenderItem;
11+
import net.minecraft.stats.Achievement;
12+
import net.minecraft.stats.AchievementList;
1013
import net.minecraft.util.ResourceLocation;
1114
import org.lwjgl.opengl.GL11;
1215
import org.lwjgl.opengl.GL12;
@@ -28,6 +31,7 @@ public void onTabClicked() {
2831
int ySize = 166;
2932
GuiScreen gui = Minecraft.getMinecraft().currentScreen;
3033

34+
GuideController.disableGlint();
3135
if (!(gui instanceof GuiInventory))
3236
return;
3337

src/main/resources/META-INF/customnpcs_at.cfg

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,9 @@ public net.minecraft.client.audio.MusicTicker field_147676_d # timeUntilNextMusi
2828
public net.minecraft.client.gui.GuiScreen field_146290_a # selectedButton
2929
# ItemRenderer
3030
public net.minecraft.client.renderer.entity.RenderItem field_110798_h # RES_ITEM_GLINT
31+
32+
public net.minecraft.client.gui.achievement.GuiAchievement field_146268_i # popupTitle
33+
public net.minecraft.client.gui.achievement.GuiAchievement field_146265_j # description
34+
public net.minecraft.client.gui.achievement.GuiAchievement field_146263_l # startTime
35+
public net.minecraft.client.gui.achievement.GuiAchievement field_146266_k # achievementType
36+
public net.minecraft.client.gui.achievement.GuiAchievement field_146262_n # showOnlyDescription / persistUntilCompletion. It does the job of both of these ;o

0 commit comments

Comments
 (0)