aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de
diff options
context:
space:
mode:
authorviciscat <51047087+viciscat@users.noreply.github.com>2025-06-07 21:24:38 +0200
committerGitHub <noreply@github.com>2025-06-07 15:24:38 -0400
commitc491ebe8ee0ddeace28052e8e657ce2998451811 (patch)
treebbc789feab31259f04e66b6d5575c4af4768519f /src/main/java/de
parentbf0aa92552375465d9269c615d6ead54e74fbf0e (diff)
downloadSkyblocker-c491ebe8ee0ddeace28052e8e657ce2998451811.tar.gz
Skyblocker-c491ebe8ee0ddeace28052e8e657ce2998451811.tar.bz2
Skyblocker-c491ebe8ee0ddeace28052e8e657ce2998451811.zip
kitty yay (#1293)
* kitty yay * remove eye booger
Diffstat (limited to 'src/main/java/de')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/MiscCategory.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/MiscConfig.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/CatPicture.java78
3 files changed, 91 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/MiscCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/MiscCategory.java
index c9820cdc..94dc8673 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/MiscCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/MiscCategory.java
@@ -7,6 +7,7 @@ import dev.isxander.yacl3.api.ConfigCategory;
import dev.isxander.yacl3.api.Option;
import dev.isxander.yacl3.api.OptionDescription;
import dev.isxander.yacl3.api.OptionGroup;
+import dev.isxander.yacl3.api.controller.BooleanControllerBuilder;
import dev.isxander.yacl3.api.controller.StringControllerBuilder;
import net.minecraft.text.Text;
@@ -17,6 +18,15 @@ public class MiscCategory {
.name(Text.translatable("skyblocker.config.misc"))
//Uncategorized Options
+ .option(Option.<Boolean>createBuilder()
+ .name(Text.literal("cat"))
+ .binding(
+ defaults.misc.cat,
+ () -> config.misc.cat,
+ newValue -> config.misc.cat = newValue)
+ .controller(opt -> BooleanControllerBuilder.create(opt).formatValue(b -> b ? Text.literal("yay kitty") : Text.literal(":(")))
+ .build()
+ )
//Discord RPC
.group(OptionGroup.createBuilder()
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/MiscConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/MiscConfig.java
index 919a26d8..0e426443 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/MiscConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/MiscConfig.java
@@ -8,6 +8,9 @@ public class MiscConfig {
@SerialEntry
public RichPresence richPresence = new RichPresence();
+ @SerialEntry
+ public boolean cat = true;
+
public static class RichPresence {
@SerialEntry
public boolean enableRichPresence = false;
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/CatPicture.java b/src/main/java/de/hysky/skyblocker/skyblock/CatPicture.java
new file mode 100644
index 00000000..42033e05
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/skyblock/CatPicture.java
@@ -0,0 +1,78 @@
+package de.hysky.skyblocker.skyblock;
+
+import de.hysky.skyblocker.SkyblockerMod;
+import de.hysky.skyblocker.annotations.Init;
+import de.hysky.skyblocker.config.SkyblockerConfigManager;
+import de.hysky.skyblocker.utils.Location;
+import de.hysky.skyblocker.utils.Utils;
+import de.hysky.skyblocker.utils.render.FrustumUtils;
+import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
+import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
+import net.minecraft.block.BlockState;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.render.OverlayTexture;
+import net.minecraft.client.render.RenderLayer;
+import net.minecraft.client.render.VertexConsumer;
+import net.minecraft.client.render.VertexConsumerProvider;
+import net.minecraft.client.render.block.BlockModelRenderer;
+import net.minecraft.client.render.model.BlockStateManagers;
+import net.minecraft.client.render.model.BlockStateModel;
+import net.minecraft.client.texture.SpriteAtlasTexture;
+import net.minecraft.client.util.math.MatrixStack;
+import net.minecraft.util.Identifier;
+import net.minecraft.util.math.Box;
+import net.minecraft.util.math.RotationAxis;
+import net.minecraft.util.math.Vec3d;
+import org.joml.Matrix4f;
+
+public class CatPicture {
+
+ private static final Vec3d RENDER_POSITION = new Vec3d(6, 72, -92);
+ private static final Box CULLING_BOX = new Box(RENDER_POSITION.x, RENDER_POSITION.y, RENDER_POSITION.z, RENDER_POSITION.x + 1, RENDER_POSITION.y + 1, RENDER_POSITION.z + 1/16d);
+ private static final Identifier TEXTURE = Identifier.of(SkyblockerMod.NAMESPACE, "textures/cat.png");
+
+ @Init
+ public static void init() {
+ WorldRenderEvents.AFTER_ENTITIES.register(CatPicture::render);
+ }
+
+ private static void render(WorldRenderContext context) {
+ if (!SkyblockerConfigManager.get().misc.cat ||
+ Utils.getLocation() != Location.HUB ||
+ !FrustumUtils.isVisible(CULLING_BOX)
+ ) return;
+ BlockState blockState = BlockStateManagers.getStateForItemFrame(false, true);
+ BlockStateModel blockStateModel = MinecraftClient.getInstance().getBlockRenderManager().getModel(blockState);
+ VertexConsumerProvider vertexConsumerProvider = context.consumers();
+ MatrixStack matrixStack = context.matrixStack();
+ if (matrixStack == null || vertexConsumerProvider == null) return;
+
+ matrixStack.push();
+ Vec3d pos = context.camera().getPos();
+ matrixStack.translate(-pos.x + RENDER_POSITION.x + 1, -pos.y + RENDER_POSITION.y, -pos.z + RENDER_POSITION.z + 1);
+ matrixStack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(180));
+ // Render item frame
+ MatrixStack.Entry peek = matrixStack.peek();
+ BlockModelRenderer.render(
+ peek,
+ vertexConsumerProvider.getBuffer(RenderLayer.getEntitySolidZOffsetForward(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE)),
+ blockStateModel,
+ 1.0F,
+ 1.0F,
+ 1.0F,
+ 15,
+ OverlayTexture.DEFAULT_UV
+ );
+ // Render kitty
+ matrixStack.translate(1, 1, 0);
+ matrixStack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(180.0F));
+ Matrix4f matrix4f = peek.getPositionMatrix();
+ VertexConsumer cat = vertexConsumerProvider.getBuffer(RenderLayer.getText(TEXTURE));
+ float z = 1F - 1 / 16f - 1 / 2048f;
+ cat.vertex(matrix4f, 0.0F, 1, z).color(-1).texture(0.0F, 1.0F).light(15);
+ cat.vertex(matrix4f, 1, 1, z).color(-1).texture(1.0F, 1.0F).light(15);
+ cat.vertex(matrix4f, 1, 0.0F, z).color(-1).texture(1.0F, 0.0F).light(15);
+ cat.vertex(matrix4f, 0.0F, 0.0F, z).color(-1).texture(0.0F, 0.0F).light(15);
+ matrixStack.pop();
+ }
+}