Skip to content

Commit eef0975

Browse files
committed
vanilla rendering attempt 1
1 parent 0431f02 commit eef0975

11 files changed

Lines changed: 248 additions & 208 deletions

File tree

common/src/main/java/generations/gg/generations/core/generationscore/common/client/GenerationsCoreClient.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,12 @@
2828
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.MinecraftClientGameProvider;
2929
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.ModelRegistry;
3030
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.Pipelines;
31+
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.loading.VanillaRenderModel;
3132
import generations.gg.generations.core.generationscore.common.client.screen.container.*;
3233
import generations.gg.generations.core.generationscore.common.world.container.GenerationsContainers;
3334
import generations.gg.generations.core.generationscore.common.world.entity.GenerationsBoatEntity;
3435
import generations.gg.generations.core.generationscore.common.world.entity.GenerationsEntities;
3536
import generations.gg.generations.core.generationscore.common.world.item.*;
36-
import generations.gg.generations.core.generationscore.common.world.item.curry.CurryData;
37-
import generations.gg.generations.core.generationscore.common.world.item.curry.CurryType;
3837
import generations.gg.generations.core.generationscore.common.world.item.curry.ItemCurry;
3938
import generations.gg.generations.core.generationscore.common.world.level.block.GenerationsBlocks;
4039
import generations.gg.generations.core.generationscore.common.world.level.block.GenerationsShrines;
@@ -72,10 +71,8 @@
7271
import net.minecraft.world.entity.Entity;
7372
import net.minecraft.world.entity.EntityType;
7473
import net.minecraft.world.entity.player.Player;
75-
import net.minecraft.world.item.FishingRodItem;
7674
import net.minecraft.world.item.Item;
7775
import net.minecraft.world.item.ItemStack;
78-
import net.minecraft.world.item.Items;
7976
import net.minecraft.world.level.Level;
8077
import net.minecraft.world.level.block.entity.BlockEntity;
8178
import net.minecraft.world.level.block.entity.BlockEntityType;
@@ -150,6 +147,8 @@ private static void setupClient(Minecraft event) {
150147

151148
Pipelines.onInitialize(event.getResourceManager());
152149

150+
VanillaRenderModel.initBuffers();
151+
153152
registerScreens();
154153
});
155154

@@ -451,17 +450,17 @@ private static void renderHitOutline(PoseStack poseStack, VertexConsumer vertexC
451450
}
452451

453452
public static void renderRareCandy(ClientLevel level) {
454-
if(GenerationsCore.CONFIG.client.useVanilla) return;
455-
456-
var startTime = System.currentTimeMillis();
457-
assert level != null;
458-
level.getProfiler().popPush("render_models");
459-
RenderSystem.enableDepthTest();
460-
BufferUploader.reset();
461-
462-
ModelRegistry.getWorldRareCandy().render(RenderStage.SOLID, true, MinecraftClientGameProvider.getTimePassed());
463-
ModelRegistry.getWorldRareCandy().render(RenderStage.TRANSPARENT, true, MinecraftClientGameProvider.getTimePassed());
464-
if (shouldRenderFpsPie()) LOGGER.warn("RareCandy render took " + (System.currentTimeMillis() - startTime) + "ms");
453+
// if(GenerationsCore.CONFIG.client.useVanilla) return;
454+
//
455+
// var startTime = System.currentTimeMillis();
456+
// assert level != null;
457+
// level.getProfiler().popPush("render_models");
458+
// RenderSystem.enableDepthTest();
459+
// BufferUploader.reset();
460+
461+
// ModelRegistry.getWorldRareCandy().render(RenderStage.SOLID, true, MinecraftClientGameProvider.getTimePassed());
462+
// ModelRegistry.getWorldRareCandy().render(RenderStage.TRANSPARENT, true, MinecraftClientGameProvider.getTimePassed());
463+
// if (shouldRenderFpsPie()) LOGGER.warn("RareCandy render took " + (System.currentTimeMillis() - startTime) + "ms");
465464
}
466465

467466
private static boolean shouldRenderFpsPie() {

common/src/main/java/generations/gg/generations/core/generationscore/common/client/model/RareCandyBone.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.cobblemon.mod.common.net.messages.client.pokemon.update.AspectsUpdate
1414
import com.cobblemon.mod.common.pokemon.FormData
1515
import com.cobblemon.mod.common.pokemon.Species
1616
import com.cobblemon.mod.common.util.asResource
17+
import com.mojang.blaze3d.systems.RenderSystem
1718
import com.mojang.blaze3d.vertex.PoseStack
1819
import com.mojang.blaze3d.vertex.VertexConsumer
1920
import com.mojang.math.Axis
@@ -157,13 +158,16 @@ class RareCandyBone /*Remove when cobblemon doesn't have parts of code that assu
157158
stack.scale(-scale, -scale, scale)
158159
stack.translate(0.0, -1.501 / scale, 0.0)
159160
instance.transformationMatrix().set(stack.last().pose())
160-
stack.popPose()
161+
// instance.viewMatrix().set(RenderSystem.getModelViewMatrix())
162+
161163

162164
// if(!isGui) {
163-
model.render(instance, Minecraft.getInstance().renderBuffers().bufferSource())
165+
model.render(instance)
164166
// } else {
165167
// model.renderGui(instance);
166168
// }
169+
170+
stack.popPose()
167171
}
168172
}
169173

common/src/main/java/generations/gg/generations/core/generationscore/common/client/render/block/entity/BreederBlocEntityRenderer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ public BreederBlocEntityRenderer(BlockEntityRendererProvider.Context ctx) {
2121
protected void renderModels(PoseStack stack, MultiBufferSource buffersource, BreederBlockEntity blockEntity, int packedLight) {
2222
super.renderModels(stack, buffersource, blockEntity, packedLight);
2323
((BlockObjectInstance) blockEntity.objectInstance[1]).setLight(packedLight);
24-
renderResourceLocation(buffersource, AUTO_FEEDER_FILL, stack, blockEntity.objectInstance[1]);
24+
renderResourceLocation(AUTO_FEEDER_FILL, stack, blockEntity.objectInstance[1]);
2525
((BlockObjectInstance) blockEntity.objectInstance[2]).setLight(packedLight);
26-
renderResourceLocation(buffersource, AUTO_FEEDER, stack, blockEntity.objectInstance[2]);
26+
renderResourceLocation(AUTO_FEEDER, stack, blockEntity.objectInstance[2]);
2727
((BlockObjectInstance) blockEntity.objectInstance[3]).setLight(packedLight);
28-
renderResourceLocation(buffersource, EGG, stack, blockEntity.objectInstance[3]);
28+
renderResourceLocation(EGG, stack, blockEntity.objectInstance[3]);
2929
}
3030

3131
@Override

common/src/main/java/generations/gg/generations/core/generationscore/common/client/render/block/entity/GeneralUseBlockEntityRenderer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ protected void renderModelProvider(PoseStack stack, MultiBufferSource buffersour
6464
instance.transformationMatrix().set(stack.last().pose());
6565
((BlockObjectInstance) instance).setLight(packedLight);
6666
if(blockEntity instanceof ModelContextProviders.TintProvider provider) ((BlockObjectInstance) instance).setTint(provider.getTint());
67-
model.render(instance, buffersource);
67+
model.render(instance);
6868
}
6969
}
7070

@@ -114,14 +114,14 @@ protected void renderModelFrameProvider(PoseStack stack, MultiBufferSource buffe
114114
fixedAnimation.setCurrentTime(frameProvider.getFrame());
115115
}
116116

117-
model.render(instance, buffersource);
117+
model.render(instance);
118118
}
119119

120-
protected void renderResourceLocation(MultiBufferSource source, ResourceLocation location, PoseStack stack, ObjectInstance objectInstance) {
120+
protected void renderResourceLocation(ResourceLocation location, PoseStack stack, ObjectInstance objectInstance) {
121121
objectInstance.transformationMatrix().set(stack.last().pose());
122122

123123
var model = ModelRegistry.get(location);
124-
if(model != null) model.render(objectInstance, source);
124+
if(model != null) model.render(objectInstance);
125125
}
126126

127127
@Override

common/src/main/java/generations/gg/generations/core/generationscore/common/client/render/entity/ZygardeCellRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public void render(ZygardeCellEntity entity, float entityYaw, float partialTick,
2929
instance.transformationMatrix().set(poseStack.last().pose());
3030
instance.setLight(packedLight);
3131
poseStack.popPose();
32-
model.render(instance, buffer);
32+
model.render(instance);
3333

3434
super.render(entity, entityYaw, partialTick, poseStack, buffer, packedLight);
3535
}

common/src/main/java/generations/gg/generations/core/generationscore/common/client/render/rarecandy/CompiledModel.kt

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.mojang.blaze3d.systems.RenderSystem
44
import com.mojang.blaze3d.vertex.BufferUploader
55
import generations.gg.generations.core.generationscore.common.GenerationsCore
66
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.loading.GenerationsModelLoader
7-
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.loading.VanilaRenderModel
7+
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.loading.VanillaRenderModel
88
import generations.gg.generations.core.generationscore.common.util.TaskQueue
99
import gg.generations.rarecandy.renderer.animation.AnimationController
1010
import gg.generations.rarecandy.renderer.components.AnimatedMeshObject
@@ -13,10 +13,8 @@ import gg.generations.rarecandy.renderer.components.MultiRenderObject
1313
import gg.generations.rarecandy.renderer.rendering.ObjectInstance
1414
import gg.generations.rarecandy.renderer.storage.AnimatedObjectInstance
1515
import gg.generations.rarecandy.renderer.storage.ObjectManager
16-
import net.minecraft.client.renderer.MultiBufferSource
1716
import net.minecraft.resources.ResourceLocation
1817
import net.minecraft.server.packs.resources.Resource
19-
import java.io.IOException
2018
import java.util.function.Supplier
2119

2220
/**
@@ -51,28 +49,26 @@ class CompiledModel @JvmOverloads constructor(
5149
ObjectManager.render(renderObject, instance)
5250
}
5351

54-
fun render(instance: ObjectInstance, source: MultiBufferSource) {
52+
fun render(instance: ObjectInstance) {
5553
if (renderObject == null) return
5654
if (!renderObject!!.isReady) return
5755

58-
if(GenerationsCore.CONFIG.client.useVanilla) {
59-
renderVanilla(instance, source)
60-
} else {
61-
renderRareCandy(instance, ModelRegistry.worldRareCandy.objectManager)
62-
}
56+
57+
58+
// if(GenerationsCore.CONFIG.client.useVanilla) {
59+
renderVanilla(instance)
60+
// } else {
61+
// renderRareCandy(instance, ModelRegistry.worldRareCandy.objectManager)
62+
// }
6363
}
6464

65-
private fun renderVanilla(instance: ObjectInstance, source: MultiBufferSource) {
65+
private fun renderVanilla(instance: ObjectInstance) {
6666
var list = renderObject!!.objects
6767

68-
var transforms = instance.takeIf { it is AnimatedObjectInstance }?.let { it as AnimatedObjectInstance }?.transforms ?: AnimationController.NO_ANIMATION
69-
7068
list.forEach {
71-
var model = it.model.takeIf { it is VanilaRenderModel }?.let { it as VanilaRenderModel } ?: return
72-
73-
model.bufferSource = source
69+
var model = it.model.takeIf { it is VanillaRenderModel }?.let { it as VanillaRenderModel } ?: return
7470

75-
model.render(instance, it, transforms)
71+
model.render(instance, it)
7672
}
7773
}
7874

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package generations.gg.generations.core.generationscore.common.client.render.rarecandy.loading;
2+
3+
import com.mojang.blaze3d.vertex.BufferBuilder;
4+
import com.mojang.blaze3d.vertex.VertexConsumer;
5+
import com.mojang.blaze3d.vertex.VertexFormatElement;
6+
import org.jetbrains.annotations.NotNull;
7+
import org.joml.Matrix3f;
8+
import org.joml.Matrix4f;
9+
10+
public class GenerationsBufferBuilder extends BufferBuilder {
11+
public GenerationsBufferBuilder(int capacity) {
12+
super(capacity);
13+
}
14+
15+
public GenerationsBufferBuilder weights(float x, float y, float z, float w) {
16+
VertexFormatElement vertexFormatElement = this.currentElement();
17+
if (vertexFormatElement.getUsage() != VertexFormatElement.Usage.GENERIC) {
18+
return this;
19+
} else if (vertexFormatElement.getType() == VertexFormatElement.Type.FLOAT && vertexFormatElement.getCount() == 4) {
20+
this.putFloat(0, (byte)x);
21+
this.putByte(4, (byte)y);
22+
this.putByte(8, (byte)z);
23+
this.putByte(12, (byte)w);
24+
this.nextElement();
25+
return this;
26+
} else {
27+
throw new IllegalStateException();
28+
}
29+
}
30+
31+
public GenerationsBufferBuilder joints(int x, int y, int z, int w) {
32+
VertexFormatElement vertexFormatElement = this.currentElement();
33+
if (vertexFormatElement.getUsage() != VertexFormatElement.Usage.GENERIC) {
34+
return this;
35+
} else if (vertexFormatElement.getType() == VertexFormatElement.Type.BYTE && vertexFormatElement.getCount() == 4) {
36+
this.putByte(0, (byte)x);
37+
this.putByte(1, (byte)y);
38+
this.putByte(2, (byte)z);
39+
this.putByte(3, (byte)w);
40+
this.nextElement();
41+
return this;
42+
} else {
43+
throw new IllegalStateException();
44+
}
45+
}
46+
47+
@Override
48+
public @NotNull GenerationsBufferBuilder normal(float x, float y, float z) {
49+
super.normal(x, y, z);
50+
51+
return this;
52+
}
53+
54+
public @NotNull GenerationsBufferBuilder vertex(float x, float y, float z) {
55+
super.vertex(x, y, z);
56+
57+
return this;
58+
}
59+
60+
public GenerationsBufferBuilder uv(float x, float y) {
61+
super.uv(x, y);
62+
return this;
63+
}
64+
}

common/src/main/java/generations/gg/generations/core/generationscore/common/client/render/rarecandy/loading/GenerationsModelLoader.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ public MultiRenderObject<MeshObject> compiledModelMethod(CompiledModel model, In
2929
(gltfModel, animResources, textures, config, object) -> {
3030
var glCalls = new ArrayList<Runnable>();
3131
try {
32-
if(GenerationsCore.CONFIG.client.useVanilla) {
32+
// if(GenerationsCore.CONFIG.client.useVanilla) {
3333
VanillaModelLoader.processModel(object, gltfModel, animResources, textures, config, glCalls, supplier);
34-
} else {
35-
processModel(object, gltfModel, animResources, textures, config, glCalls, supplier, GLModel::new);
36-
}
34+
// } else {
35+
// processModel(object, gltfModel, animResources, textures, config, glCalls, supplier, GLModel::new);
36+
// }
3737
} catch (Exception e) {
3838
System.out.println("Oh no! Model : " + name + " didn't properly load!");
3939
e.printStackTrace();

0 commit comments

Comments
 (0)