aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java12
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java57
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/internal/init/OneConfigInit.java4
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/OneConfigTweaker.java1
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/utils/holder/Holder.java13
5 files changed, 30 insertions, 57 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java b/src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java
index e3b3b16..86b339b 100644
--- a/src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java
+++ b/src/main/java/cc/polyfrost/oneconfig/config/elements/BasicOption.java
@@ -2,7 +2,6 @@ package cc.polyfrost.oneconfig.config.elements;
import java.lang.reflect.Field;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.function.Supplier;
@SuppressWarnings({"unused"})
@@ -17,8 +16,6 @@ public abstract class BasicOption {
private final ArrayList<Runnable> listeners = new ArrayList<>();
private final ArrayList<Supplier<Boolean>> hideConditions = new ArrayList<>();
- private static final HashMap<Field, BasicOption> options = new HashMap<>();
-
/**
* Initialize option
*
@@ -34,10 +31,7 @@ public abstract class BasicOption {
this.size = size;
this.category = category;
this.subcategory = subcategory;
- if (field != null) {
- field.setAccessible(true);
- options.put(field, this);
- }
+ if (field != null) field.setAccessible(true);
}
/**
@@ -134,8 +128,4 @@ public abstract class BasicOption {
public void addHideCondition(Supplier<Boolean> supplier) {
this.hideConditions.add(supplier);
}
-
- public static BasicOption getOption(Field field) {
- return options.get(field);
- }
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java b/src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java
index 013debb..4a1a765 100644
--- a/src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java
+++ b/src/main/java/cc/polyfrost/oneconfig/hud/TextHud.java
@@ -2,9 +2,7 @@ package cc.polyfrost.oneconfig.hud;
import cc.polyfrost.oneconfig.config.annotations.Color;
import cc.polyfrost.oneconfig.config.annotations.Dropdown;
-import cc.polyfrost.oneconfig.config.annotations.Switch;
import cc.polyfrost.oneconfig.config.core.OneColor;
-import cc.polyfrost.oneconfig.config.elements.BasicOption;
import cc.polyfrost.oneconfig.events.EventManager;
import cc.polyfrost.oneconfig.events.event.Stage;
import cc.polyfrost.oneconfig.events.event.TickEvent;
@@ -12,7 +10,6 @@ import cc.polyfrost.oneconfig.internal.hud.HudCore;
import cc.polyfrost.oneconfig.libs.eventbus.Subscribe;
import cc.polyfrost.oneconfig.libs.universal.UMinecraft;
import cc.polyfrost.oneconfig.renderer.RenderManager;
-import cc.polyfrost.oneconfig.utils.TickDelay;
import java.util.ArrayList;
import java.util.List;
@@ -33,37 +30,13 @@ public abstract class TextHud extends Hud {
)
public int textType = 0;
- @Switch(
- name = "Cache Text"
- )
- public boolean cacheText;
-
- public TextHud(boolean enabled, int x, int y, boolean caching) {
+ public TextHud(boolean enabled, int x, int y) {
super(enabled, x, y);
- cacheText = caching;
- new TickDelay(() -> {
- try {
- BasicOption option = BasicOption.getOption(getClass().getField("cacheText"));
- option.addHideCondition(() -> !caching);
- } catch (NoSuchFieldException e) {
- e.printStackTrace();
- }
- }, 3);
- if (caching) {
- EventManager.INSTANCE.register(new TickHandler());
- }
- }
-
- public TextHud() {
- this(true);
+ EventManager.INSTANCE.register(new TickHandler());
}
public TextHud(boolean enabled) {
- this(enabled, true);
- }
-
- public TextHud(boolean enabled, boolean caching) {
- this(enabled, 0, 0, caching);
+ this(enabled, 0, 0);
}
/**
@@ -74,6 +47,15 @@ public abstract class TextHud extends Hud {
protected abstract void getLines(List<String> lines);
/**
+ * This function is called every frame
+ *
+ * @param lines The current lines of the hud
+ */
+ protected void getLinesFrequent(List<String> lines) {
+
+ }
+
+ /**
* This function is called every tick in the move GUI
*
* @param lines The current lines of the hud
@@ -82,9 +64,21 @@ public abstract class TextHud extends Hud {
getLines(lines);
}
+ /**
+ * This function is called every frame in the move GUI
+ *
+ * @param lines The current lines of the hud
+ */
+ protected void getExampleLinesFrequent(List<String> lines) {
+ getLinesFrequent(lines);
+ }
+
@Override
public void draw(int x, int y, float scale) {
-// todo
+ if (!HudCore.editing) getLinesFrequent(lines);
+ else getExampleLinesFrequent(lines);
+ if (lines == null) return;
+
int textY = y;
width = 0;
for (String line : lines) {
@@ -109,7 +103,6 @@ public abstract class TextHud extends Hud {
@Subscribe
private void onTick(TickEvent event) {
if (event.stage != Stage.START) return;
- lines.clear();
if (!HudCore.editing) getLines(lines);
else getExampleLines(lines);
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/init/OneConfigInit.java b/src/main/java/cc/polyfrost/oneconfig/internal/init/OneConfigInit.java
index 1f70815..3d924ac 100644
--- a/src/main/java/cc/polyfrost/oneconfig/internal/init/OneConfigInit.java
+++ b/src/main/java/cc/polyfrost/oneconfig/internal/init/OneConfigInit.java
@@ -1,11 +1,15 @@
package cc.polyfrost.oneconfig.internal.init;
+import net.minecraft.launchwrapper.Launch;
+import org.spongepowered.asm.launch.MixinBootstrap;
import org.spongepowered.asm.mixin.Mixins;
@SuppressWarnings("unused")
public class OneConfigInit {
public static void initialize(String[] args) {
+ Launch.blackboard.put("oneconfig.initialized", true);
+ MixinBootstrap.init();
Mixins.addConfiguration("mixins.oneconfig.json");
}
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/OneConfigTweaker.java b/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/OneConfigTweaker.java
index d302b9d..8b822de 100644
--- a/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/OneConfigTweaker.java
+++ b/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/OneConfigTweaker.java
@@ -71,7 +71,6 @@ public class OneConfigTweaker implements ITweaker {
@Override
public void acceptOptions(List<String> args, File gameDir, File assetsDir, String profile) {
- MixinBootstrap.init();
boolean captureNext = false;
for (String arg : args) {
if (captureNext) {
diff --git a/src/main/java/cc/polyfrost/oneconfig/utils/holder/Holder.java b/src/main/java/cc/polyfrost/oneconfig/utils/holder/Holder.java
deleted file mode 100644
index 9488d4b..0000000
--- a/src/main/java/cc/polyfrost/oneconfig/utils/holder/Holder.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package cc.polyfrost.oneconfig.utils.holder;
-
-public abstract class Holder<T> {
- protected T holder;
- public Holder(T holder) {
- this.holder = holder;
- }
-
-
- public abstract T getHolder() throws UnsupportedOperationException;
-
- public abstract void setHolder() throws UnsupportedOperationException;
-}