Skip to content

Commit

Permalink
1.20
Browse files Browse the repository at this point in the history
  • Loading branch information
gliscowo committed Jun 7, 2023
1 parent 8ecd21a commit fcd4350
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 30 deletions.
14 changes: 7 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
org.gradle.jvmargs=-Xmx1G
# Fabric Properties
# check these on https://fabricmc.net/develop/
minecraft_base_version=1.19.4
minecraft_version=1.19.4
yarn_mappings=1.19.4+build.1
loader_version=0.14.17
minecraft_base_version=1.20
minecraft_version=1.20
yarn_mappings=1.20+build.1
loader_version=0.14.21
# Mod Properties
mod_version=0.1.2
maven_group=io.wispforest
archives_base_name=ok-boomer
# Dependencies
# check this on https://fabricmc.net/develop/
fabric_version=0.76.0+1.19.4
fabric_version=0.83.0+1.20

# https://maven.wispforest.io/io/wispforest/owo-lib/
owo_version=0.10.3+1.19.4
owo_version=0.11.0+1.20

# https://maven.terraformersmc.com/releases/com/terraformersmc/modmenu/
modmenu_version=6.1.0-rc.4
modmenu_version=7.0.0-beta.2
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package io.wispforest.okboomer.mixin;

import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.gui.DrawContext;
import org.joml.Vector4f;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArgs;
import org.spongepowered.asm.mixin.injection.invoke.arg.Args;

@Mixin(DrawableHelper.class)
@Mixin(DrawContext.class)
public class DrawableHelperMixin {

@ModifyArgs(method = "enableScissor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/ScreenRect;<init>(IIII)V"))
private static void pushScissors(Args args) {
private void pushScissors(Args args) {
int x = args.<Integer>get(0), y = args.<Integer>get(1);
int width = args.<Integer>get(2), height = args.<Integer>get(3);

Expand Down
46 changes: 27 additions & 19 deletions src/main/java/io/wispforest/okboomer/mixin/GameRendererMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import com.mojang.blaze3d.systems.RenderSystem;
import io.wispforest.okboomer.OkBoomer;
import io.wispforest.owo.ui.core.Color;
import io.wispforest.owo.ui.util.Drawer;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.RotationAxis;
Expand All @@ -22,16 +22,20 @@
@Mixin(GameRenderer.class)
public abstract class GameRendererMixin {

@Unique private static final MatrixStack BOOM$BOTTOM_STACK = new MatrixStack();
@Unique
private double boom$lastBoomDivisor = OkBoomer.boomDivisor;

@Unique private double boom$lastBoomDivisor = OkBoomer.boomDivisor;
@Unique
private float boom$lastScreenBoom = (float) OkBoomer.screenBoom;
@Unique
private float boom$lastMouseX = 0, boom$lastMouseY = 0;
@Unique
private boolean boom$screenBoomEnabled = false;

@Unique private float boom$lastScreenBoom = (float) OkBoomer.screenBoom;
@Unique private float boom$lastMouseX = 0, boom$lastMouseY = 0;
@Unique private boolean boom$screenBoomEnabled = false;

@Unique private final MatrixStack boom$rotat = new MatrixStack();
@Unique private final Vector4f boom$mouseVec = new Vector4f();
@Unique
private final MatrixStack boom$rotat = new MatrixStack();
@Unique
private final Vector4f boom$mouseVec = new Vector4f();

@ModifyVariable(method = "getFov", at = @At(value = "RETURN", shift = At.Shift.BEFORE), ordinal = 0)
private double injectBoomer(double fov) {
Expand Down Expand Up @@ -104,29 +108,34 @@ private void injectScreenBoomer(float tickDelta, long startTime, boolean tick, C
method = "render",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/gui/screen/Screen;renderWithTooltip(Lnet/minecraft/client/util/math/MatrixStack;IIF)V",
target = "Lnet/minecraft/client/gui/screen/Screen;renderWithTooltip(Lnet/minecraft/client/gui/DrawContext;IIF)V",
shift = At.Shift.AFTER
),
locals = LocalCapture.CAPTURE_FAILHARD
)
@SuppressWarnings("InvalidInjectorMethodSignature")
private void bottomText(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int i, int j, MatrixStack matrixStack) {
private void bottomText(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int i, int j, MatrixStack matrixStack, DrawContext drawContext) {
drawContext.draw();

if (OkBoomer.CONFIG.iDoNotEndorseTomfoolery()) return;
if (this.boom$lastScreenBoom >= 1 && OkBoomer.screenRotation == 0) return;

var client = MinecraftClient.getInstance();
var window = client.getWindow();
var textRenderer = client.textRenderer;

Drawer.fill(BOOM$BOTTOM_STACK,
drawContext.getMatrices().push();
drawContext.getMatrices().loadIdentity();

drawContext.fill(
0,
0,
window.getScaledWidth(),
(-textRenderer.fontHeight - 2) * 3,
Color.BLACK.argb()
);

Drawer.fill(BOOM$BOTTOM_STACK,
drawContext.fill(
0,
window.getScaledHeight(),
window.getScaledWidth(),
Expand All @@ -147,13 +156,12 @@ private void bottomText(float tickDelta, long startTime, boolean tick, CallbackI
if (oneRotat > 22.5 + 315) bottom_text = "Bottom Text";

float factor = window.getScaledWidth() / (textRenderer.getWidth(bottom_text) + 2f);
BOOM$BOTTOM_STACK.push();
BOOM$BOTTOM_STACK.scale(factor, 3, 1);
textRenderer.draw(BOOM$BOTTOM_STACK, bottom_text, 1, (window.getScaledHeight() + 6) / 3f, Color.WHITE.argb());
BOOM$BOTTOM_STACK.pop();
drawContext.getMatrices().scale(factor, 3, 1);
drawContext.drawText(textRenderer, bottom_text, 1, (int) ((window.getScaledHeight() + 6) / 3f), Color.WHITE.argb(), false);
drawContext.getMatrices().pop();
}

@ModifyArgs(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;renderWithTooltip(Lnet/minecraft/client/util/math/MatrixStack;IIF)V"))
@ModifyArgs(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/Screen;renderWithTooltip(Lnet/minecraft/client/gui/DrawContext;IIF)V"))
private void transformMouse(Args args) {
this.boom$mouseVec.set(args.<Number>get(1).floatValue(), args.<Number>get(2).floatValue(), 0, 1);
this.boom$mouseVec.mul(OkBoomer.mouseTransform);
Expand All @@ -166,7 +174,7 @@ private void transformMouse(Args args) {
method = "render",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/gui/screen/Screen;renderWithTooltip(Lnet/minecraft/client/util/math/MatrixStack;IIF)V",
target = "Lnet/minecraft/client/gui/screen/Screen;renderWithTooltip(Lnet/minecraft/client/gui/DrawContext;IIF)V",
shift = At.Shift.AFTER
)
)
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
"depends": {
"fabricloader": "*",
"fabric": "*",
"minecraft": "1.19.x",
"minecraft": "1.20.x",
"owo-lib": ">=0.9.0"
}
}

0 comments on commit fcd4350

Please sign in to comment.