aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonDeaths.java82
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonMilestone.java54
2 files changed, 99 insertions, 37 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonDeaths.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonDeaths.java
index 89fcc47c..ecf1d6fb 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonDeaths.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonDeaths.java
@@ -7,40 +7,91 @@ import kr.syeyoung.dungeonsguide.features.FeatureParameter;
import kr.syeyoung.dungeonsguide.features.GuiFeature;
import kr.syeyoung.dungeonsguide.features.listener.ChatListener;
import kr.syeyoung.dungeonsguide.features.listener.TickListener;
+import kr.syeyoung.dungeonsguide.features.text.StyledText;
+import kr.syeyoung.dungeonsguide.features.text.TextHUDFeature;
import kr.syeyoung.dungeonsguide.utils.TextUtils;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.util.ChatComponentText;
import net.minecraftforge.client.event.ClientChatReceivedEvent;
import org.lwjgl.opengl.GL11;
+import scala.actors.threadpool.Arrays;
import java.awt.*;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-public class FeatureDungeonDeaths extends GuiFeature implements ChatListener {
+public class FeatureDungeonDeaths extends TextHUDFeature implements ChatListener {
public FeatureDungeonDeaths() {
super("Dungeon", "Display Deaths", "Display names of player and death count in dungeon run", "dungeon.stats.deaths", false, getFontRenderer().getStringWidth("longestplayernamepos: 100"), getFontRenderer().FONT_HEIGHT * 6);
this.setEnabled(false);
- parameters.put("color", new FeatureParameter<Color>("color", "Color", "Color of text", Color.orange, "color"));
+// parameters.put("color", new FeatureParameter<Color>("color", "Color", "Color of text", Color.orange, "color"));
}
SkyblockStatus skyblockStatus = e.getDungeonsGuide().getSkyblockStatus();
@Override
- public void drawHUD(float partialTicks) {
- if (!skyblockStatus.isOnDungeon()) return;
+ public boolean isEnabled() {
+ if (!skyblockStatus.isOnDungeon()) return false;
+ DungeonContext context = skyblockStatus.getContext();
+ if (context == null) return false;
+ return true;
+ }
+
+ @Override
+ public List<String> getUsedTextStyle() {
+ return Arrays.asList(new String[] {
+ "username", "separator", "deaths", "total", "totalDeaths"
+ });
+ }
+
+ @Override
+ public List<StyledText> getText() {
+
+ List<StyledText> text= new ArrayList<StyledText>();
+
DungeonContext context = skyblockStatus.getContext();
- if (context == null) return;
Map<String, Integer> deaths = context.getDeaths();
int i = 0;
int deathsCnt = 0;
- FontRenderer fr = getFontRenderer();
for (Map.Entry<String, Integer> death:deaths.entrySet()) {
- fr.drawString(death.getKey()+": "+death.getValue(), 0,i, this.<Color>getParameter("color").getValue().getRGB());
- i += 8;
- deathsCnt += death.getValue();
+ text.add(new StyledText(death.getKey(),"username"));
+ text.add(new StyledText(": ","separator"));
+ text.add(new StyledText(death.getValue()+"\n","deaths"));
}
- fr.drawString("Total Deaths: "+deathsCnt, 0,i, this.<Color>getParameter("color").getValue().getRGB());
+ text.add(new StyledText("Total Deaths","total"));
+ text.add(new StyledText(": ","separator"));
+ text.add(new StyledText(deathsCnt+"","totalDeaths"));
+
+ return text;
+ }
+
+ private static final List<StyledText> dummyText= new ArrayList<StyledText>();
+ static {
+ dummyText.add(new StyledText("syeyoung","username"));
+ dummyText.add(new StyledText(": ","separator"));
+ dummyText.add(new StyledText("-130\n","deaths"));
+ dummyText.add(new StyledText("notsyeyoung","username"));
+ dummyText.add(new StyledText(": ","separator"));
+ dummyText.add(new StyledText("-13\n","deaths"));
+ dummyText.add(new StyledText("dungeonsguide","username"));
+ dummyText.add(new StyledText(": ","separator"));
+ dummyText.add(new StyledText("-42\n","deaths"));
+ dummyText.add(new StyledText("penguinman","username"));
+ dummyText.add(new StyledText(": ","separator"));
+ dummyText.add(new StyledText("0\n","deaths"));
+ dummyText.add(new StyledText("probablysalt","username"));
+ dummyText.add(new StyledText(": ","separator"));
+ dummyText.add(new StyledText("0\n","deaths"));
+ dummyText.add(new StyledText("Total Deaths","total"));
+ dummyText.add(new StyledText(": ","separator"));
+ dummyText.add(new StyledText("0","totalDeaths"));
+ }
+
+ @Override
+ public List<StyledText> getDummyText() {
+ return dummyText;
}
public int getTotalDeaths() {
@@ -54,17 +105,6 @@ public class FeatureDungeonDeaths extends GuiFeature implements ChatListener {
return d;
}
- @Override
- public void drawDemo(float partialTicks) {
- FontRenderer fr = getFontRenderer();
- fr.drawString("syeyoung: -130", 0,0, this.<Color>getParameter("color").getValue().getRGB());
- fr.drawString("notsyeyoung: -13", 0,8, this.<Color>getParameter("color").getValue().getRGB());
- fr.drawString("dungeonsguide: -42", 0,16, this.<Color>getParameter("color").getValue().getRGB());
- fr.drawString("--not more--", 0,24, this.<Color>getParameter("color").getValue().getRGB());
- fr.drawString("--maybe more--", 0,32, this.<Color>getParameter("color").getValue().getRGB());
- fr.drawString("Total Deaths: 0", 0,40, this.<Color>getParameter("color").getValue().getRGB());
- }
-
Pattern deathPattern = Pattern.compile("§r§c ☠ (.+?)§r§7 .+and became a ghost.+");
Pattern meDeathPattern = Pattern.compile("§r§c ☠ §r§7You .+and became a ghost.+");
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonMilestone.java b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonMilestone.java
index bb65cb2c..6f2a6912 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonMilestone.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/features/impl/dungeon/FeatureDungeonMilestone.java
@@ -8,6 +8,8 @@ import kr.syeyoung.dungeonsguide.features.FeatureRegistry;
import kr.syeyoung.dungeonsguide.features.GuiFeature;
import kr.syeyoung.dungeonsguide.features.listener.ChatListener;
import kr.syeyoung.dungeonsguide.features.listener.TickListener;
+import kr.syeyoung.dungeonsguide.features.text.StyledText;
+import kr.syeyoung.dungeonsguide.features.text.TextHUDFeature;
import kr.syeyoung.dungeonsguide.utils.TextUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
@@ -17,11 +19,14 @@ import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.util.ChatComponentText;
import net.minecraftforge.client.event.ClientChatReceivedEvent;
import org.lwjgl.opengl.GL11;
+import scala.actors.threadpool.Arrays;
import java.awt.*;
+import java.util.ArrayList;
+import java.util.List;
import java.util.regex.Pattern;
-public class FeatureDungeonMilestone extends GuiFeature implements ChatListener {
+public class FeatureDungeonMilestone extends TextHUDFeature implements ChatListener {
public FeatureDungeonMilestone() {
super("Dungeon", "Display Current Class Milestone", "Display current class milestone of yourself", "dungeon.stats.milestone", true, getFontRenderer().getStringWidth("Milestone: 12"), getFontRenderer().FONT_HEIGHT);
this.setEnabled(false);
@@ -29,30 +34,47 @@ public class FeatureDungeonMilestone extends GuiFeature implements ChatListener
}
SkyblockStatus skyblockStatus = e.getDungeonsGuide().getSkyblockStatus();
+
+ private static final List<StyledText> dummyText= new ArrayList<StyledText>();
+ static {
+ dummyText.add(new StyledText("Milestone","title"));
+ dummyText.add(new StyledText(": ","separator"));
+ dummyText.add(new StyledText("9","number"));
+ }
+
@Override
- public void drawHUD(float partialTicks) {
- if (!skyblockStatus.isOnDungeon()) return;
- FontRenderer fr = getFontRenderer();
- double scale = getFeatureRect().getHeight() / fr.FONT_HEIGHT;
- GlStateManager.scale(scale, scale, 0);
+ public boolean isEnabled() {
+ return skyblockStatus.isOnDungeon();
+ }
+
+ @Override
+ public List<String> getUsedTextStyle() {
+ return Arrays.asList(new String[] {
+ "title", "separator", "number"
+ });
+ }
+
+ @Override
+ public List<StyledText> getDummyText() {
+ return dummyText;
+ }
+
+ @Override
+ public List<StyledText> getText() {
+ List<StyledText> actualBit = new ArrayList<StyledText>();
+ actualBit.add(new StyledText("Milestone","title"));
+ actualBit.add(new StyledText(": ","separator"));
for (NetworkPlayerInfo networkPlayerInfoIn : Minecraft.getMinecraft().thePlayer.sendQueue.getPlayerInfoMap()) {
String name = networkPlayerInfoIn.getDisplayName() != null ? networkPlayerInfoIn.getDisplayName().getFormattedText() : ScorePlayerTeam.formatPlayerName(networkPlayerInfoIn.getPlayerTeam(), networkPlayerInfoIn.getGameProfile().getName());
if (name.startsWith("§r Milestone: §r")) {
String milestone = TextUtils.stripColor(name).substring(13);
- fr.drawString("Milestone: "+milestone, 0,0, this.<Color>getParameter("color").getValue().getRGB());
- return;
+ actualBit.add(new StyledText(milestone+"","number"));
+ break;
}
}
- fr.drawString("Milestone: ?", 0,0, this.<Color>getParameter("color").getValue().getRGB());
+ return actualBit;
}
- @Override
- public void drawDemo(float partialTicks) {
- FontRenderer fr = getFontRenderer();
- double scale = getFeatureRect().getHeight() / fr.FONT_HEIGHT;
- GlStateManager.scale(scale, scale, 0);
- fr.drawString("Milestone: 9", 0,0, this.<Color>getParameter("color").getValue().getRGB());
- }
public static final Pattern milestone_pattern = Pattern.compile("§r§e§l(.+) Milestone §r§e(.)§r§7: .+ §r§a(.+)§r");