- 1,057
- 50
- 234
Вечер добрый.
Есть TESR блока, в котором идет подгрузка OBJ и "наклеивание" текстуры из атласа:
Через эвент вешаю текстуру:
И вроде бы все прекрасно, кроме этого:
Почему она черная?
Есть TESR блока, в котором идет подгрузка OBJ и "наклеивание" текстуры из атласа:
Java:
public class TileEntityModernSolarPanelRenderer extends TileEntitySpecialRenderer<TileEntityModernSolarPanel>
{
private OBJModel.OBJBakedModel main;
private OBJModel.OBJBakedModel panels;
private void updateModels()
{
if (main == null)
{
try
{
IModel model = OBJLoaderGC.instance.loadModel(new ResourceLocation(GalaxySpace.MODID, "modern_solarpanel.obj"));
Function<ResourceLocation, TextureAtlasSprite> spriteFunction = location -> Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(location.toString());
main = (OBJModel.OBJBakedModel) model.bake(new OBJModel.OBJState(ImmutableList.of("base"), false), DefaultVertexFormats.ITEM, spriteFunction);
panels = (OBJModel.OBJBakedModel) model.bake(new OBJModel.OBJState(ImmutableList.of("panels"), false), DefaultVertexFormats.ITEM, spriteFunction);
}
catch (Exception e)
{
throw new RuntimeException(e);
}
}
}
@Override
public void render(TileEntityModernSolarPanel panel, double par2, double par4, double par6, float partialTickTime, int par9, float alpha)
{
GlStateManager.disableRescaleNormal();
GlStateManager.pushMatrix();
GlStateManager.disableCull();
GlStateManager.disableBlend();
this.updateModels();
boolean doSkyRotation = false;
this.bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
GlStateManager.translate((float) par2, (float) par4 , (float) par6);
GlStateManager.translate(0.5F, 3.1F, 0.48F);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
ClientUtil.drawBakedModel(main);
float celestialAngle = (panel.getWorld().getCelestialAngle(1.0F) - 0.784690560F) * 360.0F;
float celestialAngle2 = panel.getWorld().getCelestialAngle(1.0F) * 360.0F;
GlStateManager.rotate(panel.currentAngle - (celestialAngle - celestialAngle2), 1.0F, 0.0F, 0.0F);
GlStateManager.scale(0.9F, 0.9F, 0.9F);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
ClientUtil.drawBakedModel(panels);
GlStateManager.popMatrix();
}
}
Через эвент вешаю текстуру:
Java:
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
GalaxySpace.proxy.registerTexture(event, "modern_solarpanel", "blocks/model/");
}
public void registerTexture(Pre event, String texture, String path) {
event.getMap().registerSprite(new ResourceLocation(GalaxySpace.TEXTURE_PREFIX + path + texture));
}
И вроде бы все прекрасно, кроме этого:
Почему она черная?