Рендер json модели

Версия Minecraft
1.7.10
516
11
39
Всем привет. Подскажите как добавить мечу модельку .json формате.Заранее спасибо
 
1,031
19
87
Разве создавать свой загрузчик и бла бла, ибо в 1.7 джосоны не ввели. Кастомные модельки можно делать кодом. Вот как примерно выглядит:
Код:
public class ModelLaptop extends ModelBase
{
 //fields
 ModelRenderer Shape1;
 ModelRenderer Shape2;
 
 public ModelLaptop()
 {
 textureWidth = 256;
 textureHeight = 128;
 
 Shape1 = new ModelRenderer(this, 1, 19);
 Shape1.addBox(-7F, 0F, -15F, 16, 3, 16);
 Shape1.setRotationPoint(-1F, 21F, 7F);
 Shape1.setTextureSize(256, 128);
 Shape1.mirror = true;
 setRotation(Shape1, 0F, 0F, 0F);
 Shape2 = new ModelRenderer(this, 1, 1);
 Shape2.addBox(-7F, -15F, 0F, 16, 16, 1);
 Shape2.setRotationPoint(-1F, 20F, 7F);
 Shape2.setTextureSize(256, 128);
 Shape2.mirror = true;
 setRotation(Shape2, 0F, 0F, 0F);
 }
 
 public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
 {
 super.render(entity, f, f1, f2, f3, f4, f5);
 setRotationAngles(f, f1, f2, f3, f4, f5, entity);
 Shape1.render(f5);
 Shape2.render(f5);
 }
 
 public void RenderModel(float f5){
 Shape1.render(f5);
 Shape2.render(f5);
 
 }
 
 private void setRotation(ModelRenderer model, float x, float y, float z)
 {
 model.rotateAngleX = x;
 model.rotateAngleY = y;
 model.rotateAngleZ = z;
 }
 
 public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
 {
 super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
 }
 
516
11
39
Разве создавать свой загрузчик и бла бла, ибо в 1.7 джосоны не ввели. Кастомные модельки можно делать кодом. Вот как примерно выглядит:
типо надо json импортировать в java и уже добавлять
 
1,196
31
183
Дополню сообщения лейхора:
Вот у тебя сверху модель ModelLaptop
Потом создаешь класс с рендером модели лаптопа
В нем создаешь ModelLaptop laptop = new ModelLaptop();
а потом в методе где происходит весь рендер, вызываешь laptop.render();
Профит
 
1,031
19
87
Дополняю дважды.
Код:
public class laptop extends BlockContainer {
public laptop(Material material) {
 super(material);
 this.setHardness(10F);
 this.setResistance(5.0F);
}
 
 public int getRenderType(){
 return -1;
 }
 
 public boolean IsOpaqueCube(){
 return false;
 }
 public boolean RenderAsNormalBlock(){
 return false;
 }
@Override
 public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
 return new TileEntityLaptop();
 }
}
Код:
public class RenderLaptop extends TileEntitySpecialRenderer{
ResourceLocation texture = new ResourceLocation("dc" + ":"+ "textures/models/Laptop.png");
 
 private ModelLaptop model;
 
 public RenderLaptop(){
 this.model = new ModelLaptop();
 }
 
 
 @Override
 public void renderTileEntityAt(TileEntity entity, double x, double y, double z, float i) {
 GL11.glPushMatrix();
 GL11.glTranslatef((float)x + 0.1F, (float)y + 1.0F, (float)z + 0.5F);
 GL11.glRotatef(180, 0F, 0F, 1F);
 
 this.bindTexture(texture);
 GL11.glPushMatrix();
 this.model.RenderModel(0.0625F);
 GL11.glPopMatrix();
 GL11.glPopMatrix();
 }
 }
Код:
public class ModelLaptop extends ModelBase
{
 //fields
 ModelRenderer Shape1;
 ModelRenderer Shape2;
 
 public ModelLaptop()
 {
 textureWidth = 256;
 textureHeight = 128;
 
 Shape1 = new ModelRenderer(this, 1, 19);
 Shape1.addBox(-7F, 0F, -15F, 16, 3, 16);
 Shape1.setRotationPoint(-1F, 21F, 7F);
 Shape1.setTextureSize(256, 128);
 Shape1.mirror = true;
 setRotation(Shape1, 0F, 0F, 0F);
 Shape2 = new ModelRenderer(this, 1, 1);
 Shape2.addBox(-7F, -15F, 0F, 16, 16, 1);
 Shape2.setRotationPoint(-1F, 20F, 7F);
 Shape2.setTextureSize(256, 128);
 Shape2.mirror = true;
 setRotation(Shape2, 0F, 0F, 0F);
 }
 
 public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
 {
 super.render(entity, f, f1, f2, f3, f4, f5);
 setRotationAngles(f, f1, f2, f3, f4, f5, entity);
 Shape1.render(f5);
 Shape2.render(f5);
 }
 
 public void RenderModel(float f5){
 Shape1.render(f5);
 Shape2.render(f5);
 
 }
 
 private void setRotation(ModelRenderer model, float x, float y, float z)
 {
 model.rotateAngleX = x;
 model.rotateAngleY = y;
 model.rotateAngleZ = z;
 }
 
 public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
 {
 super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
 }
}
И результат:
635757672660993278.png
 
7,099
324
1,510
1,031
19
87
1,196
31
183
7,099
324
1,510
1,196
31
183
ТС
В клиент прокси в инит методе регаешь рендер для своего итема
MinecraftForgeClient.registerItemRenderer(YourItemClass, new YourRenderClass());
Потом YourRenderClass() должен выглядеть так

Java:
public class YourRenderClass implements IItemRenderer {
    public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("modid", "models/твоямодель.obj"));
    public YourRenderClass() {
        
    }

    public boolean handleRenderType(ItemStack is, ItemRenderType type) {
        switch (type) {
        case ENTITY:
            return true;
        case EQUIPPED:
            return true;
        case EQUIPPED_FIRST_PERSON:
            return true;
        default:
            return false;
        }
    }

    public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack is, ItemRendererHelper helper) {
        return true;
    }

    public void renderItem(ItemRenderType type, ItemStack is, Object ... data) {
      switch (type) {
        case EQUIPPED_FIRST_PERSON: {
         GL11.glPushMatrix();
         model.renderAll(); //для течне модели или модели из кода метод render()
         GL11.glPopMatrix();
        }
        break;
        case EQUIPPED: {
        //код для рендера от 3 лица
        }
        break;
        case ENTITY: {
        //код для рендера когда предмет брошен
        }
        //код в кейсах энтити и эквипед аналогичен коду в 1 кейсе
    }
 
Сверху