[1.6.4] Рендер Techne модели

435
1
Привет всем. В общем появилась нужда грузить techne модели загрузчиком в виде файлов формата .tcn . С загрузкой разобрался, но встал вопрос о текстурах. майновская текстурмапа ложится очень криво.
Скрины:
Без текстуры
51289d809fc0.jpg
С текстурой
0bdd71369054.jpg

Рендер:
Код:
package buildBox;

import mods.GLLoader.GLModel;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
import net.minecraftforge.client.model.techne.TechneModel;

import org.lwjgl.opengl.GL11;

public class RendererBlockModel extends TileEntitySpecialRenderer
{

    public RendererBlockModel(int num)
    {
        super();
        BuildBox.model[num] = AdvancedModelLoader.loadModel("/assets/buildBox/models/"+BuildBox.modelBlockIDs[num]+".tcn");
        BuildBox.texture[num] = new ResourceLocation("buildbox:textures/blocksModels/"+BuildBox.modelBlockIDs[num]+".png");
    }

    public Minecraft mc = Minecraft.getMinecraft();


    public void renderTileEntityAt(TileEntity tileEntity, double d1, double d2, double d3, float f)
    {
        this.renderTileEntity((TileEntityBlockModel)tileEntity, d1, d2, d3, f);
    }

    public void renderTileEntity(TileEntityBlockModel tileEntity, double d1, double d2, double d3, float f)
    {
        int metadata = tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
        GL11.glPushMatrix();        
        GL11.glTranslatef((float)d1 + 0.5F, (float)d2 + 0.04F, (float)d3 + 0.5F);
        GL11.glRotatef(-180F, 0F, 0F, 1F);
        if(metadata == 1)
        {
            GL11.glRotatef(-180F, 0, 1, 0);
        }

        if(metadata == 4)
        {
            GL11.glRotatef(-90F, 0, 1, 0);
        }
        if(metadata == 7)
        {
            GL11.glRotatef(360F, 0, 1, 0);
        }
        if(metadata == 10)
        {
            GL11.glRotatef(-270F, 0, 1, 0);
        }
        if(metadata == 2)
        {
            GL11.glRotatef(180F, 0, 1, 0);
            GL11.glRotatef(90F, 1, 0, 0);
            GL11.glTranslatef(0F, 0.46F, 0.46F);
        }
        if(metadata == 5)
        {
            GL11.glRotatef(270F, 0, 1, 0);
            GL11.glRotatef(90F, 1, 0, 0);
            GL11.glTranslatef(0F, 0.46F, 0.46F);
        }
        if(metadata == 8)
        {
            GL11.glRotatef(360F, 0, 1, 0);
            GL11.glRotatef(90F, 1, 0, 0);
            GL11.glTranslatef(0F, 0.46F, 0.46F);
        }
        if(metadata == 11)
        {
            GL11.glRotatef(90F, 0, 1, 0);
            GL11.glRotatef(90F, 1, 0, 0);
            GL11.glTranslatef(0F, 0.46F, 0.46F);
        }
        if(metadata == 0)
        {
            GL11.glRotatef(180F, 1, 0, 0);
            GL11.glTranslatef(0F, 0.925F, 0F);
        }
        if(metadata == 3)
        {
            GL11.glRotatef(180F, 1, 0, 0);
            GL11.glRotatef(270F, 0, 1, 0);
            GL11.glTranslatef(0F, 0.925F, 0F);
        }
        if(metadata == 6)
        {
            GL11.glRotatef(180F, 1, 0, 0);
            GL11.glRotatef(180F, 0, 1, 0);
            GL11.glTranslatef(0F, 0.925F, 0F);
        }
        if(metadata == 9)
        {
            GL11.glRotatef(180F, 1, 0, 0);
            GL11.glRotatef(90F, 0, 1, 0);
            GL11.glTranslatef(0F, 0.925F, 0F);
        }
        GL11.glScalef(0.0625F, 0.0625F, 0.0625F);
        this.bindTexture(BuildBox.texture[tileEntity.id]);
        BuildBox.model[tileEntity.id].renderAll();
        GL11.glPopMatrix();

    }
}

В общем вопрос - как правильно наложить текстуру?
 
808
3
124
Код:
GL11.glRotatef(360F, 0, 1, 0);
:D
[merge_posts_bbcode]Добавлено: 09.09.2015 16:10:55[/merge_posts_bbcode]

ЕМНИП проблема в том, что загрузчик .tcn не читает размер текстуры из xml-файла с моделькой.
 
471
5
у iChun спроси, он такую систему реализовал в моде "Hats"
 
435
1
GloomyFolken написал(а):
Код:
GL11.glRotatef(360F, 0, 1, 0);
:D
[merge_posts_bbcode]Добавлено: 09.09.2015 16:10:55[/merge_posts_bbcode]

ЕМНИП проблема в том, что загрузчик .tcn не читает размер текстуры из xml-файла с моделькой.
Каким образом править?
 
Сверху