- 214
- 11
- 59
Этот вопрос уже наверняка задавался, но у меня не получилось никаким запросом найти ответ на него =\
Нужно зарендерить LayerRenderer на игроке с .obj моделью. Сейчас код выглядит примерно так:
Конкретно этот код крашит клиент на переборе this.model.getQuads.
Мог бы кто поделиться решением ?
Нужно зарендерить LayerRenderer на игроке с .obj моделью. Сейчас код выглядит примерно так:
Java:
public class LayerAccessory implements LayerRenderer<AbstractClientPlayer> {
private RenderLivingBase<AbstractClientPlayer> render;
private IBakedModel model;
public LayerAccessory(RenderLivingBase<AbstractClientPlayer> render) {
this.render = render;
try {
model = OBJLoader.INSTANCE.loadModel(new ResourceLocation(XlvsMainMod.MOD_ID, "models/test.obj"))
.bake(TRSRTransformation.identity(), DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void doRenderLayer(AbstractClientPlayer entitlingIn, float limbSwing, float limbSwingAmount, float partialTicks,
float ageInTicks, float netHeadYaw, float headPitch, float scale) {
Player player = XlvsMainMod.INSTANCE.getPlayerManager().getPlayerByName(entitlingIn.getName());
if(player != null) {
AppearanceElement appearanceElement = player.accessory;
if(appearanceElement != null && appearanceElement.getModel() != null
&& appearanceElement.getResourceLocation() != null) {
ResourceLocation resourceLocation = appearanceElement.getResourceLocation();
GL11.glPushMatrix();
((ModelBiped) render.getMainModel()).bipedHead.postRender(0.0625F);
Minecraft.getMinecraft().getTextureManager().bindTexture(resourceLocation);
float scl = appearanceElement.getScale();
GL11.glScalef(scl, scl, scl);
GL11.glScalef(5, 5, 5);
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder worldrenderer = tessellator.getBuffer();
worldrenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.ITEM);
for (BakedQuad bakedquad : this.model.getQuads(null, null, 0)) {
worldrenderer.addVertexData(bakedquad.getVertexData());
}
tessellator.draw();
GL11.glPopMatrix();
}
}
}
@Override
public boolean shouldCombineTextures() {
return false;
}
}
Java:
> java.lang.NullPointerException: null
at ru.xlv.wh40k_races.render.layer.LayerAccessory.doRenderLayer(LayerAccessory.java:68) ~[LayerAccessory.class:?]
at ru.xlv.wh40k_races.render.layer.LayerAccessory.func_177141_a(LayerAccessory.java:25) ~[LayerAccessory.class:?]
at net.minecraft.client.renderer.entity.RenderLivingBase.func_177093_a(RenderLivingBase.java:439) ~[caa.class:?]
at net.minecraft.client.renderer.entity.RenderLivingBase.func_76986_a(RenderLivingBase.java:186) [caa.class:?]
at net.minecraft.client.renderer.entity.RenderPlayer.func_76986_a(RenderPlayer.java:71) [cct.class:?]
at net.minecraft.client.renderer.entity.RenderPlayer.func_76986_a(RenderPlayer.java:28) [cct.class:?]
at net.minecraft.client.renderer.entity.RenderManager.func_188391_a(RenderManager.java:384) [bzf.class:?]
at ru.xlv.wh40k_races.gui.GuiRaceSelection.drawEntityOnScreen(GuiRaceSelection.java:296) [GuiRaceSelection.class:?]
at ru.xlv.wh40k_races.gui.GuiRaceSelection.func_73863_a(GuiRaceSelection.java:127) [GuiRaceSelection.class:?]
at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:396) [ForgeHooksClient.class:?]
at net.minecraft.client.renderer.EntityRenderer.func_181560_a(EntityRenderer.java:1124) [buq.class:?]
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1119) [bib.class:?]
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398) [bib.class:?]
at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_211]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_211]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
[18:02:56] [Client thread/FATAL] [minecraft/Minecraft]: Unreported exception thrown!
java.lang.IllegalStateException: Already building!
at net.minecraft.client.renderer.BufferBuilder.func_181668_a(BufferBuilder.java:187) ~[buk.class:?]
at net.minecraft.client.shader.Framebuffer.func_178038_a(Framebuffer.java:264) ~[bvd.class:?]
at net.minecraft.client.shader.Framebuffer.func_147615_c(Framebuffer.java:229) ~[bvd.class:?]
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1147) ~[bib.class:?]
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:398) [bib.class:?]
at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_211]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_211]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_211]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
Последнее редактирование: