aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyeyoung <cyoung06@naver.com>2023-02-08 21:19:03 +0900
committersyeyoung <cyoung06@naver.com>2023-02-08 21:19:03 +0900
commitc553002ccaac367cf1e9abcd71316b80720db37b (patch)
tree42e8b0ae63c0c8b961928c9e4e6b21ba1dea3a78
parenta8f67b684de08e1e7fa751ca78a068a4e6400cd1 (diff)
downloadSkyblock-Dungeons-Guide-c553002ccaac367cf1e9abcd71316b80720db37b.tar.gz
Skyblock-Dungeons-Guide-c553002ccaac367cf1e9abcd71316b80720db37b.tar.bz2
Skyblock-Dungeons-Guide-c553002ccaac367cf1e9abcd71316b80720db37b.zip
- Name
Signed-off-by: syeyoung <cyoung06@naver.com>
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/AColor.java8
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRTextStyle.java73
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRTextStyleMap.java49
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractFeature.java2
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractHUDFeature.java7
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/FeatureRegistry.java3
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDebugTrap.java41
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDetectFreeze.java2
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomCoordDisplay.java33
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomDebugInfo.java36
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/boss/FeatureBossHealth.java44
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/boss/FeatureCurrentPhase.java46
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/boss/FeatureTerracotaTimer.java46
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/boss/FeatureThornBearPercentage.java51
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/boss/FeatureThornSpiritBowTimer.java43
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/discord/inviteViewer/PartyInviteViewer.java4
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonCurrentRoomSecrets.java62
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonDeaths.java83
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonMilestone.java40
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonRealTime.java49
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonRoomName.java39
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonSBTime.java48
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonScore.java198
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonSecrets.java64
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureDungeonTombs.java44
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureWarnLowHealth.java56
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/dungeon/FeatureWatcherWarning.java26
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/etc/FeatureCooldownCounter.java46
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/etc/ability/FeatureAbilityCooldown.java85
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/party/FeaturePartyList.java80
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/party/FeaturePartyReady.java82
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/party/customgui/PanelPartyFinder.java1
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/secret/FeatureActions.java101
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/secret/FeatureSoulRoomWarning.java18
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/text/DefaultTextHUDFeatureStyleFeature.java70
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/text/DefaultingDelegatingTextStyle.java82
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/text/NullTextStyle.java110
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/text/StyledText.java7
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/text/StyledTextSpan.java32
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/text/TextHUDFeature.java112
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/richtext/styles/ParentDelegatingTextStyle.java2
41 files changed, 1072 insertions, 953 deletions
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/AColor.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/AColor.java
index 35b9e41f..a031a8f3 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/AColor.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/AColor.java
@@ -18,6 +18,9 @@
package kr.syeyoung.dungeonsguide.mod.config.types;
+import kr.syeyoung.dungeonsguide.mod.guiv2.elements.richtext.shaders.ChromaShader;
+import kr.syeyoung.dungeonsguide.mod.guiv2.elements.richtext.shaders.Shader;
+import kr.syeyoung.dungeonsguide.mod.guiv2.elements.richtext.shaders.SingleColorShader;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@@ -52,6 +55,11 @@ public class AColor extends Color {
return aColor;
}
+ public Shader getShader() {
+ if (chroma) return new ChromaShader(chromaSpeed, getRGB());
+ else return new SingleColorShader(getRGB());
+ }
+
@Override
public String toString() {
return "AColor{" +
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRTextStyle.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRTextStyle.java
new file mode 100644
index 00000000..9d1d099b
--- /dev/null
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRTextStyle.java
@@ -0,0 +1,73 @@
+/*
+ * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
+ * Copyright (C) 2021 cyoung06
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package kr.syeyoung.dungeonsguide.mod.config.types;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import kr.syeyoung.dungeonsguide.mod.features.text.DefaultingDelegatingTextStyle;
+import kr.syeyoung.dungeonsguide.mod.features.text.TextStyle;
+
+
+public class TCRTextStyle implements FeatureTypeHandler<DefaultingDelegatingTextStyle> {
+ public static final TCRTextStyle INSTANCE = new TCRTextStyle();
+
+ @Override
+ public DefaultingDelegatingTextStyle deserialize(JsonElement element) {
+ JsonObject object = element.getAsJsonObject();
+ DefaultingDelegatingTextStyle textStyle = new DefaultingDelegatingTextStyle();
+ textStyle.setSize(object.has("size") && !object.get("size").isJsonNull() ? object.get("size").getAsDouble() : null);
+ textStyle.setTopAscent(object.has("topAscent") && !object.get("topAscent").isJsonNull()? object.get("topAscent").getAsDouble() : null);
+ textStyle.setBottomAscent(object.has("bottomAscent") && !object.get("bottomAscent").isJsonNull()? object.get("bottomAscent").getAsDouble() : null);
+ textStyle.setBold(object.has("bold") && !object.get("bold").isJsonNull()? object.get("bold").getAsBoolean() : null);
+ textStyle.setItalics(object.has("italics") && !object.get("italics").isJsonNull()? object.get("italics").getAsBoolean() : null);
+ textStyle.setStrikeThrough(object.has("strikethrough") && !object.get("strikethrough").isJsonNull()? object.get("strikethrough").getAsBoolean() : null);
+ textStyle.setUnderline(object.has("underline") && !object.get("underline").isJsonNull()? object.get("underline").getAsBoolean() : null);
+ textStyle.setOutline(object.has("outline") && !object.get("outline").isJsonNull()? object.get("outline").getAsBoolean() : null);
+ textStyle.setShadow(object.has("shadow") && !object.get("shadow").isJsonNull()? object.get("shadow").getAsBoolean() : null);
+ textStyle.setBackgroundShader(object.has("backgroundColor") && !object.get("backgroundColor").isJsonNull()? TCAColor.INSTANCE.deserialize(object.get("backgroundColor")) : null);
+ textStyle.setTextShader(object.has("textColor") && !object.get("textColor").isJsonNull()? TCAColor.INSTANCE.deserialize(object.get("textColor")) : null);
+ textStyle.setStrikeThroughShader(object.has("strikethroughColor") && !object.get("strikethroughColor").isJsonNull()? TCAColor.INSTANCE.deserialize(object.get("strikethroughColor")) : null);
+ textStyle.setUnderlineShader(object.has("underlineColor") && !object.get("underlineColor").isJsonNull()? TCAColor.INSTANCE.deserialize(object.get("underlineColor")) : null);
+ textStyle.setOutlineShader(object.has("outlineColor") && !object.get("outlineColor").isJsonNull()? TCAColor.INSTANCE.deserialize(object.get("outlineColor")) : null);
+ textStyle.setShadowShader(object.has("shadowColor") && !object.get("shadowColor").isJsonNull()? TCAColor.INSTANCE.deserialize(object.get("shadowColor")) : null);
+ return textStyle;
+ }
+
+ @Override
+ public JsonElement serialize(DefaultingDelegatingTextStyle element) {
+ JsonObject jsonObject = new JsonObject();
+ jsonObject.addProperty("size", element.size);
+ jsonObject.addProperty("topAscent", element.topAscent);
+ jsonObject.addProperty("bottomAscent", element.bottomAscent);
+ jsonObject.addProperty("bold", element.bold);
+ jsonObject.addProperty("italics", element.italics);
+ jsonObject.addProperty("strikethrough", element.strikeThrough);
+ jsonObject.addProperty("underline", element.underline);
+ jsonObject.addProperty("outline", element.outline);
+ jsonObject.addProperty("shadow", element.shadow);
+ jsonObject.add("backgroundColor", element.backgroundShader == null ? null : TCAColor.INSTANCE.serialize(element.backgroundShader));
+ jsonObject.add("textColor", element.textShader == null ? null : TCAColor.INSTANCE.serialize(element.textShader));
+ jsonObject.add("strikethroughColor", element.strikeThroughShader == null ? null : TCAColor.INSTANCE.serialize(element.strikeThroughShader));
+ jsonObject.add("underlineColor", element.underlineShader == null ? null : TCAColor.INSTANCE.serialize(element.underlineShader));
+ jsonObject.add("outlineColor", element.outlineShader == null ? null : TCAColor.INSTANCE.serialize(element.outlineShader));
+ jsonObject.add("shadowColor", element.shadowShader == null ? null : TCAColor.INSTANCE.serialize(element.shadowShader));
+ return jsonObject;
+ }
+}
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRTextStyleMap.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRTextStyleMap.java
new file mode 100644
index 00000000..9311ff2b
--- /dev/null
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/config/types/TCRTextStyleMap.java
@@ -0,0 +1,49 @@
+/*
+ * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
+ * Copyright (C) 2021 cyoung06
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package kr.syeyoung.dungeonsguide.mod.config.types;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import kr.syeyoung.dungeonsguide.mod.features.text.DefaultingDelegatingTextStyle;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+public class TCRTextStyleMap implements FeatureTypeHandler<Map<String, DefaultingDelegatingTextStyle>> {
+ public static final TCRTextStyleMap INSTANCE = new TCRTextStyleMap();
+ @Override
+ public Map<String, DefaultingDelegatingTextStyle> deserialize(JsonElement element) {
+ JsonObject jsonObject = element.getAsJsonObject();
+ Map<String, DefaultingDelegatingTextStyle> map = new HashMap<>();
+ for (Map.Entry<String, JsonElement> stringJsonElementEntry : jsonObject.entrySet()) {
+ map.put(stringJsonElementEntry.getKey(), TCRTextStyle.INSTANCE.deserialize(stringJsonElementEntry.getValue()));
+ }
+ return map;
+ }
+
+ @Override
+ public JsonElement serialize(Map<String, DefaultingDelegatingTextStyle> element) {
+ JsonObject jsonObject = new JsonObject();
+ for (Map.Entry<String, DefaultingDelegatingTextStyle> stringDefaultingDelegatingTextStyleEntry : element.entrySet()) {
+ jsonObject.add(stringDefaultingDelegatingTextStyleEntry.getKey(), TCRTextStyle.INSTANCE.serialize(stringDefaultingDelegatingTextStyleEntry.getValue()));
+ }
+ return jsonObject;
+ }
+}
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractFeature.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractFeature.java
index 363fd24e..28650192 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractFeature.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractFeature.java
@@ -18,12 +18,10 @@
package kr.syeyoung.dungeonsguide.mod.features;
-import com.google.common.base.Supplier;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import kr.syeyoung.dungeonsguide.mod.config.guiconfig.configv3.DefaultConfigurePageWidget;
import kr.syeyoung.dungeonsguide.mod.config.types.FeatureTypeHandler;
-import kr.syeyoung.dungeonsguide.mod.gui.MPanel;
import kr.syeyoung.dungeonsguide.mod.guiv2.Widget;
import lombok.Getter;
import lombok.Setter;
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractHUDFeature.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractHUDFeature.java
index ea1972b2..0fe84145 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractHUDFeature.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/AbstractHUDFeature.java
@@ -23,17 +23,11 @@ import kr.syeyoung.dungeonsguide.mod.config.guiconfig.configv3.MainConfigWidget;
import kr.syeyoung.dungeonsguide.mod.config.types.GUIPosition;
import kr.syeyoung.dungeonsguide.mod.config.types.TCGUIPosition;
import kr.syeyoung.dungeonsguide.mod.guiv2.BindableAttribute;
-import kr.syeyoung.dungeonsguide.mod.guiv2.DomElement;
import kr.syeyoung.dungeonsguide.mod.guiv2.GuiScreenAdapter;
import kr.syeyoung.dungeonsguide.mod.guiv2.Widget;
import kr.syeyoung.dungeonsguide.mod.guiv2.elements.GlobalHUDScale;
import kr.syeyoung.dungeonsguide.mod.guiv2.elements.Navigator;
import kr.syeyoung.dungeonsguide.mod.guiv2.elements.Text;
-import kr.syeyoung.dungeonsguide.mod.guiv2.layouter.Layouter;
-import kr.syeyoung.dungeonsguide.mod.guiv2.primitive.ConstraintBox;
-import kr.syeyoung.dungeonsguide.mod.guiv2.primitive.Size;
-import kr.syeyoung.dungeonsguide.mod.guiv2.renderer.Renderer;
-import kr.syeyoung.dungeonsguide.mod.guiv2.renderer.RenderingContext;
import kr.syeyoung.dungeonsguide.mod.guiv2.xml.AnnotatedImportOnlyWidget;
import kr.syeyoung.dungeonsguide.mod.guiv2.xml.annotations.Bind;
import kr.syeyoung.dungeonsguide.mod.guiv2.xml.annotations.On;
@@ -42,7 +36,6 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.util.ResourceLocation;
-import java.util.Collections;
import java.util.List;
@Getter
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/FeatureRegistry.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/FeatureRegistry.java
index 1c0bc38e..03cf914f 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/FeatureRegistry.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/FeatureRegistry.java
@@ -42,6 +42,7 @@ import kr.syeyoung.dungeonsguide.mod.features.impl.party.playerpreview.FeatureVi
import kr.syeyoung.dungeonsguide.mod.features.impl.secret.*;
import kr.syeyoung.dungeonsguide.mod.features.impl.secret.mechanicbrowser.FeatureMechanicBrowse;
import kr.syeyoung.dungeonsguide.mod.features.impl.solvers.*;
+import kr.syeyoung.dungeonsguide.mod.features.text.DefaultTextHUDFeatureStyleFeature;
import kr.syeyoung.dungeonsguide.mod.overlay.OverlayManager;
import lombok.Getter;
import org.lwjgl.input.Keyboard;
@@ -80,6 +81,8 @@ public class FeatureRegistry {
return abstractFeature;
}
+ public static final DefaultTextHUDFeatureStyleFeature DEFAULT_STYLE = register(new DefaultTextHUDFeatureStyleFeature());
+
public static final PathfindLineProperties SECRET_LINE_PROPERTIES_GLOBAL = register(new PathfindLineProperties("Dungeon.Secrets.Preferences", "Global Line Settings", "Global Line Settings", "secret.lineproperties.global", true, null));
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDebugTrap.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDebugTrap.java
index 93e7363e..84783d12 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDebugTrap.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDebugTrap.java
@@ -21,35 +21,28 @@ package kr.syeyoung.dungeonsguide.mod.features.impl.advanced;
import kr.syeyoung.dungeonsguide.mod.DungeonsGuide;
import kr.syeyoung.dungeonsguide.mod.SkyblockStatus;
import kr.syeyoung.dungeonsguide.mod.config.types.AColor;
-import kr.syeyoung.dungeonsguide.mod.features.text.StyledText;
+import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry;
+import kr.syeyoung.dungeonsguide.mod.features.text.DefaultTextHUDFeatureStyleFeature;
+import kr.syeyoung.dungeonsguide.mod.features.text.DefaultingDelegatingTextStyle;
+import kr.syeyoung.dungeonsguide.mod.features.text.NullTextStyle;
import kr.syeyoung.dungeonsguide.mod.features.text.TextHUDFeature;
-import kr.syeyoung.dungeonsguide.mod.features.text.TextStyle;
+import kr.syeyoung.dungeonsguide.mod.guiv2.elements.richtext.TextSpan;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.passive.EntityBat;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
public class FeatureDebugTrap extends TextHUDFeature {
public FeatureDebugTrap() {
super("Debug", "Display the current amount of bat entities", "", "advanced.bat");
- getStyles().add(new TextStyle("base", new AColor(0x00, 0xAA,0xAA,255), new AColor(0, 0,0,0), false));
- getStyles().add(new TextStyle("batsamm", new AColor(0x55, 0xFF,0xFF,255), new AColor(0, 0,0,0), false));
+ registerDefaultStyle("base", DefaultingDelegatingTextStyle.derive(() -> FeatureRegistry.DEFAULT_STYLE.getStyle(DefaultTextHUDFeatureStyleFeature.Styles.NAME)));
+ registerDefaultStyle("batsamm", DefaultingDelegatingTextStyle.ofDefault().setTextShader(new AColor(0x55, 0xFF,0xFF,255)).setBackgroundShader(new AColor(0, 0,0,0)));
}
-
-
SkyblockStatus skyblockStatus = DungeonsGuide.getDungeonsGuide().getSkyblockStatus();
- private static final List<StyledText> dummyText= new ArrayList<>();
- static {
- dummyText.add(new StyledText("Bats: ","base"));
- dummyText.add(new StyledText("9999","batsamm"));
- }
-
-
static List<Long> avgStorage = new ArrayList<>();
public static void updateVal(long timeItTookForThePacketToProcess){
@@ -72,26 +65,24 @@ public class FeatureDebugTrap extends TextHUDFeature {
}
@Override
- public List<String> getUsedTextStyle() {
- return Arrays.asList("batsamm", "base");
- }
-
- @Override
- public List<StyledText> getDummyText() {
- return dummyText;
+ public TextSpan getDummyText() {
+ TextSpan textSpan = new TextSpan(new NullTextStyle(), "");
+ textSpan.addChild(new TextSpan(getStyle("base"), "Bats: "));
+ textSpan.addChild(new TextSpan(getStyle("batsamm"), "9999"));
+ return textSpan;
}
@Override
- public List<StyledText> getText() {
+ public TextSpan getText() {
List<Entity> bats = Minecraft.getMinecraft().theWorld.getEntities(EntityBat.class, e -> true);
- List<StyledText> actualBit = new ArrayList<>();
- actualBit.add(new StyledText("Bats: ","base"));
+ TextSpan actualBit = new TextSpan(new NullTextStyle(), "");
+ actualBit.addChild(new TextSpan(getStyle("base"), "Bats: "));
- actualBit.add(new StyledText(String.valueOf(getAvgTimeItTookToPacket()),"batsamm"));
+ actualBit.addChild(new TextSpan(getStyle("batsamm"), String.valueOf(getAvgTimeItTookToPacket())));
return actualBit;
}
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDetectFreeze.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDetectFreeze.java
index b996c86f..8101f060 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDetectFreeze.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureDetectFreeze.java
@@ -20,8 +20,6 @@ package kr.syeyoung.dungeonsguide.mod.features.impl.advanced;
import kr.syeyoung.dungeonsguide.mod.DungeonsGuide;
import kr.syeyoung.dungeonsguide.mod.events.annotations.DGEventHandler;
-import kr.syeyoung.dungeonsguide.mod.events.impl.DGTickEvent;
-import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry;
import kr.syeyoung.dungeonsguide.mod.features.SimpleFeature;
import net.minecraftforge.fml.common.gameevent.TickEvent;
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomCoordDisplay.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomCoordDisplay.java
index 1b5357eb..1e1b622b 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomCoordDisplay.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomCoordDisplay.java
@@ -25,35 +25,29 @@ import kr.syeyoung.dungeonsguide.mod.SkyblockStatus;
import kr.syeyoung.dungeonsguide.mod.config.types.AColor;
import kr.syeyoung.dungeonsguide.mod.dungeon.DungeonContext;
import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.mod.features.text.StyledText;
+import kr.syeyoung.dungeonsguide.mod.features.text.DefaultingDelegatingTextStyle;
+import kr.syeyoung.dungeonsguide.mod.features.text.NullTextStyle;
import kr.syeyoung.dungeonsguide.mod.features.text.TextHUDFeature;
-import kr.syeyoung.dungeonsguide.mod.features.text.TextStyle;
+import kr.syeyoung.dungeonsguide.mod.guiv2.elements.richtext.TextSpan;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.util.BlockPos;
import java.awt.*;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
public class FeatureRoomCoordDisplay extends TextHUDFeature {
public FeatureRoomCoordDisplay() {
super("Debug", "Display Coordinate Relative to the Dungeon Room and room's rotation", "X: 0 Y: 3 Z: 5 Facing: Z+" , "advanced.coords");
this.setEnabled(false);
- getStyles().add(new TextStyle("coord", new AColor(Color.yellow.getRGB(),true), new AColor(0, 0,0,0), false));
+ registerDefaultStyle("coord", DefaultingDelegatingTextStyle.ofDefault().setTextShader(new AColor(Color.yellow.getRGB(),true)).setBackgroundShader(new AColor(0, 0,0,0)));
}
SkyblockStatus skyblockStatus = DungeonsGuide.getDungeonsGuide().getSkyblockStatus();
- private static final List<StyledText> dummyText= new ArrayList<StyledText>();
- static {
- dummyText.add(new StyledText("X: 0 Y: 3 Z: 5 Facing: Z+","coord"));
- }
@Override
- public List<StyledText> getDummyText() {
- return dummyText;
+ public TextSpan getDummyText() {
+ return new TextSpan(getStyle("coord"), "X: 0 Y: 3 Z: 5 Facing: Z+");
}
private static final String[] facing = {"Z+", "X-", "Z-", "X+"};
@@ -75,21 +69,16 @@ public class FeatureRoomCoordDisplay extends TextHUDFeature {
}
@Override
- public List<String> getUsedTextStyle() {
- return Collections.singletonList("coord");
- }
-
- @Override
- public List<StyledText> getText() {
- if (!skyblockStatus.isOnDungeon()) return Collections.emptyList();
+ public TextSpan getText() {
+ if (!skyblockStatus.isOnDungeon()) return new TextSpan(new NullTextStyle(), "");
DungeonContext context = DungeonsGuide.getDungeonsGuide().getDungeonFacade().getContext();
- if (context == null) return Collections.emptyList();
+ if (context == null) return new TextSpan(new NullTextStyle(), "");
EntityPlayerSP thePlayer = Minecraft.getMinecraft().thePlayer;
Point roomPt = context.getScaffoldParser().getDungeonMapLayout().worldPointToRoomPoint(thePlayer.getPosition());
DungeonRoom dungeonRoom = context.getScaffoldParser().getRoomMap().get(roomPt);
if (dungeonRoom == null) {
- return Collections.emptyList();
+ return new TextSpan(new NullTextStyle(), "");
}
int facing = (int) (thePlayer.rotationYaw + 45) % 360;
@@ -98,7 +87,7 @@ public class FeatureRoomCoordDisplay extends TextHUDFeature {
OffsetPoint offsetPoint = new OffsetPoint(dungeonRoom, new BlockPos((int)thePlayer.posX, (int)thePlayer.posY, (int)thePlayer.posZ));
- return Collections.singletonList(new StyledText("X: "+offsetPoint.getX()+" Y: "+offsetPoint.getY()+" Z: "+offsetPoint.getZ()+" Facing: "+ FeatureRoomCoordDisplay.facing[real], "coord"));
+ return new TextSpan(getStyle("coord"), "X: "+offsetPoint.getX()+" Y: "+offsetPoint.getY()+" Z: "+offsetPoint.getZ()+" Facing: "+ FeatureRoomCoordDisplay.facing[real]);
}
}
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomDebugInfo.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomDebugInfo.java
index ac7c7b90..3ecea83b 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomDebugInfo.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/features/impl/advanced/FeatureRoomDebugInfo.java
@@ -24,41 +24,29 @@ import kr.syeyoung.dungeonsguide.mod.config.types.AColor;
import kr.syeyoung.dungeonsguide.mod.dungeon.DungeonContext;
import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry;
-import kr.syeyoung.dungeonsguide.mod.features.text.StyledText;