Spaces:
Build error
Build error
File size: 6,594 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 |
package com.mojang.blaze3d.vertex;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import net.minecraft.client.renderer.LightTexture;
import net.minecraft.client.renderer.block.model.BakedQuad;
import net.minecraft.core.Vec3i;
import net.minecraft.util.ARGB;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.joml.Matrix4f;
import org.joml.Vector3f;
import org.lwjgl.system.MemoryStack;
@OnlyIn(Dist.CLIENT)
public interface VertexConsumer {
VertexConsumer addVertex(float p_344294_, float p_342213_, float p_344859_);
VertexConsumer setColor(int p_342749_, int p_344324_, int p_343336_, int p_342831_);
VertexConsumer setUv(float p_344155_, float p_345269_);
VertexConsumer setUv1(int p_344168_, int p_342818_);
VertexConsumer setUv2(int p_342773_, int p_345341_);
VertexConsumer setNormal(float p_342733_, float p_342268_, float p_344916_);
default void addVertex(
float p_342335_,
float p_342594_,
float p_342395_,
int p_344436_,
float p_344317_,
float p_344558_,
int p_344862_,
int p_343109_,
float p_343232_,
float p_342995_,
float p_343739_
) {
this.addVertex(p_342335_, p_342594_, p_342395_);
this.setColor(p_344436_);
this.setUv(p_344317_, p_344558_);
this.setOverlay(p_344862_);
this.setLight(p_343109_);
this.setNormal(p_343232_, p_342995_, p_343739_);
}
default VertexConsumer setColor(float p_345344_, float p_343040_, float p_343668_, float p_342740_) {
return this.setColor((int)(p_345344_ * 255.0F), (int)(p_343040_ * 255.0F), (int)(p_343668_ * 255.0F), (int)(p_342740_ * 255.0F));
}
default VertexConsumer setColor(int p_345390_) {
return this.setColor(ARGB.red(p_345390_), ARGB.green(p_345390_), ARGB.blue(p_345390_), ARGB.alpha(p_345390_));
}
default VertexConsumer setWhiteAlpha(int p_342254_) {
return this.setColor(ARGB.color(p_342254_, -1));
}
default VertexConsumer setLight(int p_342385_) {
return this.setUv2(p_342385_ & 65535, p_342385_ >> 16 & 65535);
}
default VertexConsumer setOverlay(int p_345433_) {
return this.setUv1(p_345433_ & 65535, p_345433_ >> 16 & 65535);
}
default void putBulkData(
PoseStack.Pose p_85996_, BakedQuad p_85997_, float p_85999_, float p_86000_, float p_86001_, float p_330684_, int p_86003_, int p_332867_
) {
this.putBulkData(
p_85996_,
p_85997_,
new float[]{1.0F, 1.0F, 1.0F, 1.0F},
p_85999_,
p_86000_,
p_86001_,
p_330684_,
new int[]{p_86003_, p_86003_, p_86003_, p_86003_},
p_332867_,
false
);
}
default void putBulkData(
PoseStack.Pose p_85988_,
BakedQuad p_85989_,
float[] p_331915_,
float p_85990_,
float p_85991_,
float p_85992_,
float p_335371_,
int[] p_331444_,
int p_85993_,
boolean p_329910_
) {
int[] aint = p_85989_.getVertices();
Vec3i vec3i = p_85989_.getDirection().getUnitVec3i();
Matrix4f matrix4f = p_85988_.pose();
Vector3f vector3f = p_85988_.transformNormal((float)vec3i.getX(), (float)vec3i.getY(), (float)vec3i.getZ(), new Vector3f());
int i = 8;
int j = aint.length / 8;
int k = (int)(p_335371_ * 255.0F);
int l = p_85989_.getLightEmission();
try (MemoryStack memorystack = MemoryStack.stackPush()) {
ByteBuffer bytebuffer = memorystack.malloc(DefaultVertexFormat.BLOCK.getVertexSize());
IntBuffer intbuffer = bytebuffer.asIntBuffer();
for (int i1 = 0; i1 < j; i1++) {
intbuffer.clear();
intbuffer.put(aint, i1 * 8, 8);
float f = bytebuffer.getFloat(0);
float f1 = bytebuffer.getFloat(4);
float f2 = bytebuffer.getFloat(8);
float f3;
float f4;
float f5;
if (p_329910_) {
float f6 = (float)(bytebuffer.get(12) & 255);
float f7 = (float)(bytebuffer.get(13) & 255);
float f8 = (float)(bytebuffer.get(14) & 255);
f3 = f6 * p_331915_[i1] * p_85990_;
f4 = f7 * p_331915_[i1] * p_85991_;
f5 = f8 * p_331915_[i1] * p_85992_;
} else {
f3 = p_331915_[i1] * p_85990_ * 255.0F;
f4 = p_331915_[i1] * p_85991_ * 255.0F;
f5 = p_331915_[i1] * p_85992_ * 255.0F;
}
int j1 = ARGB.color(k, (int)f3, (int)f4, (int)f5);
int k1 = LightTexture.lightCoordsWithEmission(p_331444_[i1], l);
float f10 = bytebuffer.getFloat(16);
float f9 = bytebuffer.getFloat(20);
Vector3f vector3f1 = matrix4f.transformPosition(f, f1, f2, new Vector3f());
this.addVertex(vector3f1.x(), vector3f1.y(), vector3f1.z(), j1, f10, f9, p_85993_, k1, vector3f.x(), vector3f.y(), vector3f.z());
}
}
}
default VertexConsumer addVertex(Vector3f p_343309_) {
return this.addVertex(p_343309_.x(), p_343309_.y(), p_343309_.z());
}
default VertexConsumer addVertex(PoseStack.Pose p_343718_, Vector3f p_344795_) {
return this.addVertex(p_343718_, p_344795_.x(), p_344795_.y(), p_344795_.z());
}
default VertexConsumer addVertex(PoseStack.Pose p_343203_, float p_343315_, float p_342573_, float p_344986_) {
return this.addVertex(p_343203_.pose(), p_343315_, p_342573_, p_344986_);
}
default VertexConsumer addVertex(Matrix4f p_344823_, float p_342636_, float p_342677_, float p_343814_) {
Vector3f vector3f = p_344823_.transformPosition(p_342636_, p_342677_, p_343814_, new Vector3f());
return this.addVertex(vector3f.x(), vector3f.y(), vector3f.z());
}
default VertexConsumer setNormal(PoseStack.Pose p_343706_, float p_345121_, float p_344892_, float p_344341_) {
Vector3f vector3f = p_343706_.transformNormal(p_345121_, p_344892_, p_344341_, new Vector3f());
return this.setNormal(vector3f.x(), vector3f.y(), vector3f.z());
}
default VertexConsumer setNormal(PoseStack.Pose p_369767_, Vector3f p_366727_) {
return this.setNormal(p_369767_, p_366727_.x(), p_366727_.y(), p_366727_.z());
}
} |