Hi, this is my second post with the same content as no one answered this and it's been a long time since I made the last post, I want to make a client-only mod, everything is ok, but when I use shaders, none of the textures rendered in RenderLevelStageEvent nor the crow entity model are rendered, I want them to be visible, because it's a horror themed mod
I've already tried it with different shaders, but it didn't work with any of them and I really want to add support for shaders
Here is how i render the crow model in the CrowEntityRenderer<CrowEntity>, by the time i use this method, i know is not the right method but i don't think this is the cause of the problem, the renderType i'm using is entityCutout
@Override
public void render(CrowEntity p_entity, float entityYaw, float partialTick,
PoseStack poseStack, MultiBufferSource bufferSource,
int packedLight) {
super.render(p_entity, entityYaw, partialTick, poseStack, bufferSource,
packedLight);
ClientEventHandler.getClient().crow.renderToBuffer(poseStack,
bufferSource.getBuffer(ClientEventHandler.getClient().crow
.renderType(TEXTURE)), packedLight, OverlayTexture.NO_OVERLAY,
Utils.rgb(255, 255, 255));
}
Here renderLevelStage
@Override
public void renderWorld(RenderLevelStageEvent e) {
horrorEvents.draw(e);
}
Here is how i render every event
public void draw(RenderLevelStageEvent e) {
for (HorrorEvent event : currentHorrorEvents) {
event.tick(e.getPartialTick());
event.draw(e);
}
}
Here is how i render the crow model on the event
@Override
public void draw(RenderLevelStageEvent e) {
if(e.getStage() == RenderLevelStageEvent.Stage.AFTER_ENTITIES) {
float arcProgress = getArcProgress(0.25f);
int alpha = (int) Mth.lerp(arcProgress, 0, 255);
int packedLight = LevelRenderer.getLightColor(Minecraft.getInstance().level,
blockPos);
VertexConsumer builder = ClientEventHandler.bufferSource.getBuffer(crow);
Crow<CreepyBirdHorrorEvent> model = ClientEventHandler
.getClient().crow;
model.setupAnim(this);
RenderHelper.renderModelInWorld(model, position, offset, e.getCamera(),
e.getPoseStack(), builder, packedLight, OverlayTexture.NO_OVERLAY,
alpha);
builder = ClientEventHandler.bufferSource.getBuffer(eyes);
RenderHelper.renderModelInWorld(model, position, offset, e.getCamera(),
e.getPoseStack(), builder, 15728880, OverlayTexture.NO_OVERLAY,
alpha);
}
}
How i render the model
public static void renderModelInWorld(Model model, Vector3f pos, Vector3f offset,
Camera camera, PoseStack matrix, VertexConsumer builder, int light,
int overlay, int alpha) {
matrix.pushPose();
Vec3 cameraPos = camera.getPosition();
double finalX = pos.x - cameraPos.x + offset.x;
double finalY = pos.y - cameraPos.y + offset.y;
double finalZ = pos.z - cameraPos.z + offset.z;
matrix.pushPose();
matrix.translate(finalX, finalY, finalZ);
matrix.mulPose(Axis.XP.rotationDegrees(180f));
model.renderToBuffer(matrix, builder, light, overlay, Utils
.rgba(255, 255, 255, alpha));
matrix.popPose();
matrix.popPose();
}
Thanks in advance