Skip to content

Commit 706324b

Browse files
committed
feat: fuck you ojng
1 parent bfcbe46 commit 706324b

File tree

7 files changed

+38
-38
lines changed

7 files changed

+38
-38
lines changed

src/main/java/me/matl114/gui/basic/RenderHandler.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,7 @@ public static void drawScrollableText0(VDrawContext context, TextRenderer textRe
234234
double e = Math.max((double)l * 0.5, 3.0);
235235
double f = Math.sin(1.5707963267948966 * Math.cos(6.283185307179586 * d / e)) / 2.0 + 0.5;
236236
double g = MathHelper.lerp(f, 0.0, (double)l);
237-
var trans = context.getMatrices().peek3D();
238-
var point1 = new Vector4f(startX, startY,0 ,1).mul(trans);
239-
var point2 = new Vector4f(endX, endY, 0, 1).mul(trans);
240-
//fix: respect MatrixTranslation
241-
context.enableScissor((int) point1.x, (int) point1.y, (int) point2.x, (int) point2.y);
237+
context.enableScissor(startX, startY, endX, endY);
242238
context.drawText(textRenderer, text.asOrderedText(), startX - (int)g, j, color, true);
243239
context.disableScissor();
244240
} else {

src/main/java/me/matl114/gui/basic/ScrollableExpandWidget.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,8 @@ public void render0(VDrawContext context, int mouseX, int mouseY, float delta, b
9696

9797
context.getMatrices().pushMatrix();
9898
// apply scissors, content outside the template will not be rendered
99-
var trans = context.getMatrices().peek3D();
100-
var point1 = new Vector4f(this.getX(),this.getY(),0 ,1).mul(trans);
101-
var point2 = new Vector4f(this.getX()+ this.getWidth(), this.getY()+this.getHeight(), 0, 1).mul(trans);
102-
context.enableScissor((int) point1.x, (int) point1.y, (int) point2.x, (int) point2.y);
99+
100+
context.enableScissor(this.getX(), this.getY(), this.getX() + this.getWidth(), this.getY() + this.getHeight());
103101
//apply current pose
104102
context.getMatrices().translate(x, y - this.currentPose);
105103
if(this.priority != 0){

src/main/java/me/matl114/gui/basic/ScrollableListWidget.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,7 @@ public void render0(VDrawContext context, int mouseX, int mouseY, float delta, b
9696

9797
context.getMatrices().pushMatrix();
9898
// apply scissors, content outside the template will not be rendered
99-
var trans = context.getMatrices().peek3D();
100-
var point1 = new Vector4f(this.getX(),this.getY(),0 ,1).mul(trans);
101-
var point2 = new Vector4f(this.getX()+ this.getWidth(), this.getY()+this.getHeight(), 0, 1).mul(trans);
102-
context.enableScissor((int) point1.x, (int) point1.y, (int) point2.x, (int) point2.y);
99+
context.enableScissor(getX(), getY(), getX() + getWidth(), getY() + getHeight());
103100
//apply current pose
104101
context.getMatrices().translate(x, y - this.currentPose);
105102
if(this.priority != 0){

src/main/java/me/matl114/mixins/events/ClientPlayNetworkHandlerEvents.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package me.matl114.mixins.events;
22

3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
35
import com.llamalad7.mixinextras.sugar.Local;
46
import com.llamalad7.mixinextras.sugar.ref.LocalRef;
57
import me.matl114.events.Listener;
@@ -112,8 +114,8 @@ private void onPlayerSwitchDimension(PlayerRespawnS2CPacket packet, CallbackInfo
112114
Listener.getThisPlayerSpawnPoint().broadcast(MinecraftClient.getInstance().player);
113115
}
114116

115-
@Redirect(method = "onPlayerPositionLook", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;setVelocity(DDD)V"))
116-
private void onTeleportConfirmVelocityUpdate(PlayerEntity instance, double v, double v2, double v3){
117+
@WrapOperation(method = "onPlayerPositionLook", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;setVelocity(DDD)V"))
118+
private void onTeleportConfirmVelocityUpdate(PlayerEntity instance, double v, double v2, double v3, Operation<Void> original){
117119
//disable velocity resync
118120
//fixme: turn this into Event
119121
Vec3d vec3d = new Vec3d(v, v2, v3);
@@ -125,7 +127,7 @@ private void onTeleportConfirmVelocityUpdate(PlayerEntity instance, double v, do
125127
}
126128
vec3d = vcUpdate.context();
127129
}
128-
instance.setVelocity(vec3d);
130+
original.call(instance, vec3d.x, vec3d.y, vec3d.z);
129131
// MovTasks.configurateTeleportBackVelocityUpdate(instance, new Vec3d(v, v2, v3));
130132
}
131133

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package me.matl114.mixins.events;
22

3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
35
import com.llamalad7.mixinextras.sugar.Local;
46
import me.matl114.events.Listener;
57
import me.matl114.events.Event;
@@ -8,6 +10,7 @@
810
import net.minecraft.network.NetworkThreadUtils;
911
import net.minecraft.network.listener.PacketListener;
1012
import net.minecraft.network.packet.Packet;
13+
import net.minecraft.util.crash.CrashException;
1114
import org.spongepowered.asm.mixin.Mixin;
1215
import org.spongepowered.asm.mixin.injection.At;
1316
import org.spongepowered.asm.mixin.injection.Inject;
@@ -17,25 +20,25 @@
1720
@Environment(EnvType.CLIENT)
1821
@Mixin(NetworkThreadUtils.class)
1922
public abstract class NetworkThreadUtilsEvents {
20-
@Inject(method = "method_11072",at = @At(value = "INVOKE", target = "Lnet/minecraft/network/packet/Packet;apply(Lnet/minecraft/network/listener/PacketListener;)V", shift = At.Shift.BEFORE), cancellable = true)
21-
private static void applyListenerToPacketPre(PacketListener packetListener, Packet packet, CallbackInfo ci){
22-
if(Listener.prepacketListenerApplyPoint(packet, packetListener)){
23-
ci.cancel();
24-
}
25-
}
26-
@Inject(method = "method_11072",at = @At(value = "INVOKE", target = "Lnet/minecraft/network/packet/Packet;apply(Lnet/minecraft/network/listener/PacketListener;)V", shift = At.Shift.AFTER))
27-
private static void applyListenerToPacketPost(PacketListener packetListener, Packet packet, CallbackInfo ci){
28-
Listener.postPacketListenerApplyPoint(packet, packetListener);
29-
}
30-
@Inject(method = "method_11072", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/listener/PacketListener;onPacketException(Lnet/minecraft/network/packet/Packet;Ljava/lang/Exception;)V", shift = At.Shift.BEFORE), cancellable = true)
31-
private static void hijackExceptionDisconnection(PacketListener packetListener, Packet packet, CallbackInfo ci, @Local Exception exception){
32-
if(!Listener.getPacketListenerException().isEmpty()){
33-
Event<Packet<?>> exevent = new Event<>(packet, true, false, packetListener, exception);
34-
Listener.getPacketListenerException().handleValue(exevent);
35-
if(exevent.isCancelled()){
36-
ci.cancel();
23+
@WrapOperation(method = "method_11072", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/packet/Packet;apply(Lnet/minecraft/network/listener/PacketListener;)V"))
24+
private static void wrapPacketHandle(Packet instance, PacketListener t, Operation<Void> original){
25+
if(!Listener.prepacketListenerApplyPoint(instance, t)){
26+
try{
27+
original.call(instance, t);
28+
}catch (Throwable e){
29+
if(e instanceof CrashException crashException && crashException.getCause() instanceof OutOfMemoryError){
30+
throw e;
31+
}
32+
if(!Listener.getPacketListenerException().isEmpty()){
33+
Event<Packet<?>> exevent = new Event<>(instance, true, false, t, e);
34+
Listener.getPacketListenerException().handleValue(exevent);
35+
if(!exevent.isCancelled()){
36+
throw e;
37+
}
38+
}
39+
}finally {
40+
Listener.postPacketListenerApplyPoint(instance, t);
3741
}
3842
}
3943
}
40-
4144
}

src/main/java/me/matl114/versioned/api/VDrawContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ default void drawTextWithShadow(TextRenderer textRenderer, @Nullable String text
110110

111111
public void drawText(TextRenderer textRenderer, OrderedText text, int x, int y, int color, boolean shadow) ;
112112
public void drawText(TextRenderer textRenderer, @Nullable String text, int x, int y, int color, boolean shadow);
113-
114-
public void enableScissor(int x, int y, int width, int height);
113+
// just pass the relative coord
114+
public void enableScissor(int x, int y, int x2, int y2);
115115

116116
public void disableScissor();
117117

src/main/java/me/matl114/versioned/impl/DrawContext_v1_21_1.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import net.minecraft.text.Text;
1313
import net.minecraft.util.Identifier;
1414
import org.jetbrains.annotations.Nullable;
15+
import org.joml.Vector4f;
1516

1617
import java.util.List;
1718
import java.util.Optional;
@@ -78,8 +79,11 @@ public void drawText(TextRenderer textRenderer, @Nullable String text, int x, in
7879
}
7980

8081
@Override
81-
public void enableScissor(int x, int y, int width, int height) {
82-
this.drawContext.enableScissor(x, y, width, height);
82+
public void enableScissor(int x, int y, int x2, int y2) {
83+
var trans = matrixStack.peek3D();
84+
var point1 = new Vector4f(x, y, 0 ,1).mul(trans);
85+
var point2 = new Vector4f(x2, y2, 0, 1).mul(trans);
86+
this.drawContext.enableScissor((int) point1.x, (int) point1.y, (int) point2.x, (int) point2.y);
8387
}
8488

8589
@Override

0 commit comments

Comments
 (0)