diff options
| author | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-07-06 20:14:37 +0200 |
|---|---|---|
| committer | viciscat <51047087+viciscat@users.noreply.github.com> | 2024-12-12 18:19:05 +0100 |
| commit | 36f39757a870e5091389bd1c4b7c1866f74f14e7 (patch) | |
| tree | a1d3d673202a0d7fb950b2f54a7a6ca8f436daad /src | |
| parent | e39c1cc586306870579c3976d7393f23ab7fd3b9 (diff) | |
| download | Skyblocker-36f39757a870e5091389bd1c4b7c1866f74f14e7.tar.gz Skyblocker-36f39757a870e5091389bd1c4b7c1866f74f14e7.tar.bz2 Skyblocker-36f39757a870e5091389bd1c4b7c1866f74f14e7.zip | |
sidebar on the right!1!!1one
Diffstat (limited to 'src')
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", |
