aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorviciscat <51047087+viciscat@users.noreply.github.com>2024-07-06 20:14:37 +0200
committerviciscat <51047087+viciscat@users.noreply.github.com>2024-12-12 18:19:05 +0100
commit36f39757a870e5091389bd1c4b7c1866f74f14e7 (patch)
treea1d3d673202a0d7fb950b2f54a7a6ca8f436daad /src
parente39c1cc586306870579c3976d7393f23ab7fd3b9 (diff)
downloadSkyblocker-36f39757a870e5091389bd1c4b7c1866f74f14e7.tar.gz
Skyblocker-36f39757a870e5091389bd1c4b7c1866f74f14e7.tar.bz2
Skyblocker-36f39757a870e5091389bd1c4b7c1866f74f14e7.zip
sidebar on the right!1!!1one
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/mixins/accessors/InGameHudInvoker.java14
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java54
-rw-r--r--src/main/resources/skyblocker.mixins.json1
3 files changed, 68 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/accessors/InGameHudInvoker.java b/src/main/java/de/hysky/skyblocker/mixins/accessors/InGameHudInvoker.java
new file mode 100644
index 00000000..d32ca253
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/mixins/accessors/InGameHudInvoker.java
@@ -0,0 +1,14 @@
+package de.hysky.skyblocker.mixins.accessors;
+
+import net.minecraft.client.gui.DrawContext;
+import net.minecraft.client.gui.hud.InGameHud;
+import net.minecraft.scoreboard.ScoreboardObjective;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.gen.Invoker;
+
+@Mixin(InGameHud.class)
+public interface InGameHudInvoker {
+
+ @Invoker("renderScoreboardSidebar")
+ void skyblocker$renderSidebar(DrawContext context, ScoreboardObjective objective);
+}
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java
index 92a0268f..1408b4b6 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/PreviewTab.java
@@ -1,7 +1,7 @@
package de.hysky.skyblocker.skyblock.tabhud.config;
-import de.hysky.skyblocker.SkyblockerMod;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.mixins.accessors.InGameHudInvoker;
import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.ScreenBuilder;
import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.ScreenMaster;
import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.pipeline.PositionRule;
@@ -24,6 +24,11 @@ import net.minecraft.client.gui.widget.ScrollableWidget;
import net.minecraft.client.gui.widget.TextWidget;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack;
+import net.minecraft.scoreboard.ScoreHolder;
+import net.minecraft.scoreboard.Scoreboard;
+import net.minecraft.scoreboard.ScoreboardCriterion;
+import net.minecraft.scoreboard.ScoreboardObjective;
+import net.minecraft.scoreboard.number.BlankNumberFormat;
import net.minecraft.text.MutableText;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
@@ -52,6 +57,7 @@ public class PreviewTab implements Tab {
private ScreenMaster.ScreenLayer currentScreenLayer = ScreenMaster.ScreenLayer.MAIN_TAB;
private final ButtonWidget[] layerButtons;
private final TextWidget textWidget;
+ private final ScoreboardObjective placeHolderObjective;
public PreviewTab(MinecraftClient client, WidgetsConfigurationScreen parent, boolean dungeon) {
this.client = client;
@@ -88,6 +94,43 @@ public class PreviewTab implements Tab {
.width(100)
.tooltip(Tooltip.of(Text.literal("Reset positions to before you opened this screen!")))
.build();
+
+ placeHolderObjective = new ScoreboardObjective(
+ new Scoreboard(),
+ "temp",
+ ScoreboardCriterion.DUMMY,
+ Text.literal("SKYBLOCK"),
+ ScoreboardCriterion.RenderType.INTEGER,
+ true,
+ BlankNumberFormat.INSTANCE
+ );
+ Scoreboard scoreboard = placeHolderObjective.getScoreboard();
+ scoreboard.getOrCreateScore(createHolder(Text.literal("Random text!")), placeHolderObjective).setScore(0);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("To fill in")), placeHolderObjective).setScore(-1);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("The place!")), placeHolderObjective).setScore(-2);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("...")), placeHolderObjective).setScore(-3);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("yea")), placeHolderObjective).setScore(-4);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("so how's your")), placeHolderObjective).setScore(-5);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("day? great that's")), placeHolderObjective).setScore(-6);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("nice to hear.")), placeHolderObjective).setScore(-7);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("this should be")), placeHolderObjective).setScore(-8);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("enough lines bye")), placeHolderObjective).setScore(-9);
+ scoreboard.getOrCreateScore(createHolder(Text.literal("NEVER GONNA GIVE Y-")), placeHolderObjective).setScore(-10);
+ }
+
+ private ScoreHolder createHolder(Text name) {
+ return new ScoreHolder() {
+ @Override
+ public String getNameForScoreboard() {
+ return name.getString().replace(' ', '_');
+ }
+
+ @Nullable
+ @Override
+ public Text getDisplayName() {
+ return name;
+ }
+ };
}
public void goToLayer(ScreenMaster.ScreenLayer layer) {
@@ -153,6 +196,10 @@ public class PreviewTab implements Tab {
lines.add(Text.literal("LifeIsAParadox"));
lines.add(Text.literal("Rime"));
lines.add(Text.literal("Vic is a Cat"));
+ lines.add(Text.literal("that's right i "));
+ lines.add(Text.literal("don't care about"));
+ lines.add(Text.literal("spaces MWAHAHA"));
+ lines.add(Text.literal("[MVP--] sixteencharacter"));
for (int i = 3; i <= 5; i++) {
ItemStack stack = parent.getHandler().getSlot(i).getStack();
@@ -369,6 +416,11 @@ public class PreviewTab implements Tab {
}
matrices.pop();
+ matrices.push();
+ matrices.translate(getX(), getY(), 0.f);
+ matrices.scale(ratio, ratio, 1.f);
+ ((InGameHudInvoker) MinecraftClient.getInstance().inGameHud).skyblocker$renderSidebar(context, placeHolderObjective);
+ matrices.pop();
context.disableScissor();
}
diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json
index 674e38cb..ac9624f6 100644
--- a/src/main/resources/skyblocker.mixins.json
+++ b/src/main/resources/skyblocker.mixins.json
@@ -48,6 +48,7 @@
"accessors.EndermanEntityAccessor",
"accessors.FrustumInvoker",
"accessors.HandledScreenAccessor",
+ "accessors.InGameHudInvoker",
"accessors.MessageHandlerAccessor",
"accessors.MinecraftClientAccessor",
"accessors.PlayerListHudAccessor",