Skip to content
This repository was archived by the owner on Jun 3, 2024. It is now read-only.

Commit 4dcc0c6

Browse files
Update patchwork-events-rendering (#221)
Co-authored-by: Glitch <[email protected]>
1 parent a974fff commit 4dcc0c6

File tree

18 files changed

+196
-241
lines changed

18 files changed

+196
-241
lines changed

patchwork-events-rendering/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
archivesBaseName = "patchwork-client-colors"
1+
archivesBaseName = "patchwork-events-rendering"
22
version = getSubprojectVersion(project, "0.3.3")
33

44
dependencies {

patchwork-events-rendering/src/main/java/net/minecraftforge/client/event/ColorHandlerEvent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
/**
2828
* Use these events to register block/item
2929
* color handlers at the appropriate time.
30+
* TODO: This is supposed to implement IModBusEvent, which is not yet implemented
3031
*/
3132
public abstract class ColorHandlerEvent extends Event {
3233
public static class Block extends ColorHandlerEvent {
Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121

2222
import net.minecraftforge.eventbus.api.Event;
2323

24+
import net.minecraft.client.render.VertexConsumerProvider;
25+
import net.minecraft.client.util.math.MatrixStack;
2426
import net.minecraft.client.render.Camera;
2527
import net.minecraft.client.render.WorldRenderer;
2628
import net.minecraft.util.hit.BlockHitResult;
@@ -31,20 +33,21 @@
3133
* An event called whenever the selection highlight around blocks is about to be rendered.
3234
* Canceling this event stops the selection highlight from being rendered.
3335
*/
34-
//TODO: in 1.15 rename to DrawHighlightEvent
35-
public class DrawBlockHighlightEvent extends Event {
36+
public class DrawHighlightEvent extends Event {
3637
private final WorldRenderer context;
3738
private final Camera info;
3839
private final HitResult target;
39-
private final int subID;
4040
private final float partialTicks;
41+
private final MatrixStack matrix;
42+
private final VertexConsumerProvider buffers;
4143

42-
public DrawBlockHighlightEvent(WorldRenderer context, Camera info, HitResult target, int subID, float partialTicks) {
44+
public DrawHighlightEvent(WorldRenderer context, Camera info, HitResult target, float partialTicks, MatrixStack matrix, VertexConsumerProvider buffers) {
4345
this.context = context;
4446
this.info = info;
4547
this.target = target;
46-
this.subID = subID;
4748
this.partialTicks = partialTicks;
49+
this.matrix = matrix;
50+
this.buffers = buffers;
4851
}
4952

5053
public WorldRenderer getContext() {
@@ -59,45 +62,54 @@ public HitResult getTarget() {
5962
return target;
6063
}
6164

62-
public int getSubID() {
63-
return subID;
64-
}
65-
6665
public float getPartialTicks() {
6766
return partialTicks;
6867
}
6968

70-
@Override
71-
public boolean isCancelable() {
72-
return true;
69+
public MatrixStack getMatrix() {
70+
return matrix;
71+
}
72+
73+
public VertexConsumerProvider getBuffers() {
74+
return buffers;
7375
}
7476

7577
/**
7678
* A variant of the DrawHighlightEvent only called when a block is highlighted.
7779
*/
78-
public static class HighlightBlock extends DrawBlockHighlightEvent {
79-
public HighlightBlock(WorldRenderer context, Camera info, HitResult target, int subID, float partialTicks) {
80-
super(context, info, target, subID, partialTicks);
80+
public static class HighlightBlock extends DrawHighlightEvent {
81+
public HighlightBlock(WorldRenderer context, Camera info, HitResult target, float partialTicks, MatrixStack matrix, VertexConsumerProvider buffers) {
82+
super(context, info, target, partialTicks, matrix, buffers);
8183
}
8284

8385
@Override
8486
public BlockHitResult getTarget() {
8587
return (BlockHitResult) super.target;
8688
}
89+
90+
@Override
91+
public boolean isCancelable() {
92+
return true;
93+
}
8794
}
8895

8996
/**
9097
* A variant of the DrawHighlightEvent only called when an entity is highlighted.
9198
* Canceling this event has no effect.
9299
*/
93-
public static class HighlightEntity extends DrawBlockHighlightEvent {
94-
public HighlightEntity(WorldRenderer context, Camera info, HitResult target, int subID, float partialTicks) {
95-
super(context, info, target, subID, partialTicks);
100+
public static class HighlightEntity extends DrawHighlightEvent {
101+
public HighlightEntity(WorldRenderer context, Camera info, HitResult target, float partialTicks, MatrixStack matrix, VertexConsumerProvider buffers) {
102+
super(context, info, target, partialTicks, matrix, buffers);
96103
}
97104

98105
@Override
99106
public EntityHitResult getTarget() {
100107
return (EntityHitResult) super.target;
101108
}
109+
110+
@Override
111+
public boolean isCancelable() {
112+
return true;
113+
}
102114
}
103115
}

patchwork-events-rendering/src/main/java/net/minecraftforge/client/event/RenderHandEvent.java

Lines changed: 70 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,33 +19,93 @@
1919

2020
package net.minecraftforge.client.event;
2121

22+
import javax.annotation.Nonnull;
23+
2224
import net.minecraftforge.eventbus.api.Event;
2325

24-
import net.minecraft.client.render.WorldRenderer;
26+
import net.minecraft.client.render.VertexConsumerProvider;
27+
import net.minecraft.client.util.math.MatrixStack;
28+
import net.minecraft.item.ItemStack;
29+
import net.minecraft.util.Hand;
2530

2631
/**
27-
* This event is fired on {@link net.minecraftforge.common.MinecraftForge#EVENT_BUS}
28-
* before both hands are rendered.
29-
* Canceling this event prevents either hand from being rendered,
30-
* and prevents {@link RenderSpecificHandEvent} from firing.
32+
* This event is fired on the {@link net.minecraftforge.common.MinecraftForge#EVENT_BUS}
33+
* whenever a hand is rendered in first person.
34+
* Canceling the event causes the hand to not render.
3135
*/
3236
public class RenderHandEvent extends Event {
33-
private final WorldRenderer context;
37+
private final Hand hand;
38+
private final MatrixStack mat;
39+
private final VertexConsumerProvider buffers;
40+
private final int light;
3441
private final float partialTicks;
42+
private final float interpolatedPitch;
43+
private final float swingProgress;
44+
private final float equipProgress;
45+
@Nonnull
46+
private final ItemStack stack;
3547

36-
public RenderHandEvent(WorldRenderer context, float partialTicks) {
37-
this.context = context;
48+
public RenderHandEvent(Hand hand, MatrixStack mat, VertexConsumerProvider buffers, int light, float partialTicks, float interpolatedPitch, float swingProgress, float equipProgress, @Nonnull ItemStack stack) {
49+
this.hand = hand;
50+
this.mat = mat;
51+
this.buffers = buffers;
52+
this.light = light;
3853
this.partialTicks = partialTicks;
54+
this.interpolatedPitch = interpolatedPitch;
55+
this.swingProgress = swingProgress;
56+
this.equipProgress = equipProgress;
57+
this.stack = stack;
58+
}
59+
60+
public Hand getHand() {
61+
return hand;
62+
}
63+
64+
public MatrixStack getMatrixStack() {
65+
return mat;
66+
}
67+
68+
public VertexConsumerProvider getBuffers() {
69+
return buffers;
3970
}
4071

41-
public WorldRenderer getContext() {
42-
return context;
72+
public int getLight() {
73+
return light;
4374
}
4475

4576
public float getPartialTicks() {
4677
return partialTicks;
4778
}
4879

80+
/**
81+
* @return The interpolated pitch of the player entity
82+
*/
83+
public float getInterpolatedPitch() {
84+
return interpolatedPitch;
85+
}
86+
87+
/**
88+
* @return The swing progress of the hand being rendered
89+
*/
90+
public float getSwingProgress() {
91+
return swingProgress;
92+
}
93+
94+
/**
95+
* @return The progress of the equip animation. 1.0 is fully equipped.
96+
*/
97+
public float getEquipProgress() {
98+
return equipProgress;
99+
}
100+
101+
/**
102+
* @return The ItemStack to be rendered
103+
*/
104+
@Nonnull
105+
public ItemStack getItemStack() {
106+
return stack;
107+
}
108+
49109
@Override
50110
public boolean isCancelable() {
51111
return true;

patchwork-events-rendering/src/main/java/net/minecraftforge/client/event/RenderSpecificHandEvent.java

Lines changed: 0 additions & 93 deletions
This file was deleted.

patchwork-events-rendering/src/main/java/net/minecraftforge/client/event/RenderWorldLastEvent.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,42 @@
1919

2020
package net.minecraftforge.client.event;
2121

22-
import net.minecraftforge.eventbus.api.Event;
23-
22+
import net.minecraft.client.util.math.MatrixStack;
23+
import net.minecraft.util.math.Matrix4f;
2424
import net.minecraft.client.render.WorldRenderer;
2525

26-
public class RenderWorldLastEvent extends Event {
26+
public class RenderWorldLastEvent extends net.minecraftforge.eventbus.api.Event {
2727
private final WorldRenderer context;
28+
private final MatrixStack mat;
2829
private final float partialTicks;
30+
private final Matrix4f projectionMatrix;
31+
private final long finishTimeNano;
2932

30-
public RenderWorldLastEvent(WorldRenderer context, float partialTicks) {
33+
public RenderWorldLastEvent(WorldRenderer context, MatrixStack mat, float partialTicks, Matrix4f projectionMatrix, long finishTimeNano) {
3134
this.context = context;
35+
this.mat = mat;
3236
this.partialTicks = partialTicks;
37+
this.projectionMatrix = projectionMatrix;
38+
this.finishTimeNano = finishTimeNano;
3339
}
3440

3541
public WorldRenderer getContext() {
3642
return context;
3743
}
3844

45+
public MatrixStack getMatrixStack() {
46+
return mat;
47+
}
48+
3949
public float getPartialTicks() {
4050
return partialTicks;
4151
}
52+
53+
public Matrix4f getProjectionMatrix() {
54+
return projectionMatrix;
55+
}
56+
57+
public long getFinishTimeNano() {
58+
return finishTimeNano;
59+
}
4260
}

patchwork-events-rendering/src/main/java/net/minecraftforge/client/event/TextureStitchEvent.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import net.minecraft.client.texture.SpriteAtlasTexture;
2727
import net.minecraft.util.Identifier;
2828

29+
// TODO: This is supposed to implement IModBusEvent, which is not yet implemented
2930
public class TextureStitchEvent extends Event {
3031
private final SpriteAtlasTexture map;
3132

0 commit comments

Comments
 (0)