Не могу найти(сделать модель)

Версия Minecraft
1.7.10
98
1
Приветствую! Хочу сделать генерацию по миру камней (в виде кнопок) , как в TerraFirmaCraft, но не могу найти саму модель. Может кто-то сможет помочь. Пытаясь изменить свою получаются только краши =( 
Код:
package ...mod.model;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelObsidianTable extends ModelBase
{
  //fields
    ModelRenderer tabletop;
    ModelRenderer legone;
    ModelRenderer legtwo;
    ModelRenderer legthree;
    ModelRenderer legfour;
  
  public ModelObsidianTable()
  {
    textureWidth = 64;
    textureHeight = 32;
    
      tabletop = new ModelRenderer(this, 0, 0);
      tabletop.addBox(0F, 0F, 0F, 16, 4, 16);
      tabletop.setRotationPoint(-8F, 12F, -8F);
      tabletop.setTextureSize(64, 32);
      tabletop.mirror = true;
      setRotation(tabletop, 0F, 0F, 0F);
      legone = new ModelRenderer(this, 48, 20);
      legone.addBox(0F, 0F, 0F, 4, 8, 4);
      legone.setRotationPoint(-8F, 16F, -8F);
      legone.setTextureSize(64, 32);
      legone.mirror = true;
      setRotation(legone, 0F, 0F, 0F);
      legtwo = new ModelRenderer(this, 32, 20);
      legtwo.addBox(0F, 0F, 0F, 4, 8, 4);
      legtwo.setRotationPoint(4F, 16F, 4F);
      legtwo.setTextureSize(64, 32);
      legtwo.mirror = true;
      setRotation(legtwo, 0F, 0F, 0F);
      legthree = new ModelRenderer(this, 0, 20);
      legthree.addBox(4F, 0F, -8F, 4, 8, 4);
      legthree.setRotationPoint(0F, 16F, 0F);
      legthree.setTextureSize(64, 32);
      legthree.mirror = true;
      setRotation(legthree, 0F, 0F, 0F);
      legfour = new ModelRenderer(this, 16, 20);
      legfour.addBox(0F, 0F, 0F, 4, 8, 4);
      legfour.setRotationPoint(-8F, 16F, 4F);
      legfour.setTextureSize(64, 32);
      legfour.mirror = true;
      setRotation(legfour, 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);
    tabletop.render(f5);
    legone.render(f5);
    legtwo.render(f5);
    legthree.render(f5);
    legfour.render(f5);
  }
  
  public void renderModel(float f) {
  tabletop.render(f);
  legone.render(f);
  legtwo.render(f);
  legthree.render(f);
  legfour.render(f);
  }
  
  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);
  }

}
Render 
Код:
package ...mod.renderer;

import org.lwjgl.opengl.GL11;

import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import ...mod.model.ModelObsidianTable;
import ...mod.tileentity.TileEntityObsidianTable;

public class RenderObsidianTable extends TileEntitySpecialRenderer {

 private static final ResourceLocation texture = new ResourceLocation(Nealecraft.modid + ":" + "textures/model/ObsidianTable.png");
 
 private ModelObsidianTable model;
 
 public RenderObsidianTable() {
 this.model = new ModelObsidianTable();
 }
 
 @Override
 public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) {

 
 int i;
        if (tileentity.getWorldObj() == null)
        {
                i = 0;
        } else {
                Block block = tileentity.getBlockType();
                i = tileentity.getBlockMetadata();
                if (block != null && i == 0)
                {
                        i = tileentity.getBlockMetadata();
                }
        }
 GL11.glPushMatrix();
    GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); 
 Minecraft.getMinecraft().renderEngine.bindTexture(texture);
 GL11.glPushMatrix();
 GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F);
 int j = 0;
            if(i == 3) {
                j = 270;
            }
            if(i == 2) {
                j = 180;
            }
            if(i == 1) {
                j = 90;
            }
            if(i == 0) {
             j = 360;
            }
            GL11.glRotatef(j, 0.0F, 1.0F, 0F);
 this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
 GL11.glPopMatrix();
 GL11.glPopMatrix();
 }

}
Render item
Код:
package net.nealecraft.mod.renderer;

import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.IItemRenderer;

import org.lwjgl.opengl.GL11;

public class ItemRenderObsidianTable implements IItemRenderer {

 TileEntitySpecialRenderer render;
 private TileEntity entity;
 
 public ItemRenderObsidianTable(TileEntitySpecialRenderer render, TileEntity entity) {
 this.entity = entity;
 this.render = render;
 }
 
 
 @Override
 public boolean handleRenderType(ItemStack item, ItemRenderType type) {
 return true;
 }

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

 @Override
 public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
 if(type == IItemRenderer.ItemRenderType.ENTITY)
 GL11.glTranslatef(-0.5F, 0.0F, -0.5F);
 this.render.renderTileEntityAt(this.entity, 0.0D, 0.0D, 0.0D, 0.0F);
 
 }

}
 
timaxa007 написал(а):
Возможно место "tileentity.getWorldObj() == null" нужно "tileentity == null"?


И краш-лог какой?



Краша нет, мне нужно поменять эту модель на модель камня похожего на кнопку, которая лежит отдельно на блоке ( на подобии TF2).
 
Ну так сделай модель.


Kbac написал(а):
Код:
package ...mod.model;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelObsidianTable extends ModelBase
{
  //fields
    ModelRenderer tabletop;
    ModelRenderer legone;
    ModelRenderer legtwo;
    ModelRenderer legthree;
    ModelRenderer legfour;
  
  public ModelObsidianTable()
  {
    textureWidth = 64;
    textureHeight = 32;
    
      tabletop = new ModelRenderer(this, 0, 0);
      tabletop.addBox(0F, 0F, 0F, 16, 4, 16);
      tabletop.setRotationPoint(-8F, 12F, -8F);
      tabletop.setTextureSize(64, 32);
      tabletop.mirror = true;
      setRotation(tabletop, 0F, 0F, 0F);
      legone = new ModelRenderer(this, 48, 20);
      legone.addBox(0F, 0F, 0F, 4, 8, 4);
      legone.setRotationPoint(-8F, 16F, -8F);
      legone.setTextureSize(64, 32);
      legone.mirror = true;
      setRotation(legone, 0F, 0F, 0F);
      legtwo = new ModelRenderer(this, 32, 20);
      legtwo.addBox(0F, 0F, 0F, 4, 8, 4);
      legtwo.setRotationPoint(4F, 16F, 4F);
      legtwo.setTextureSize(64, 32);
      legtwo.mirror = true;
      setRotation(legtwo, 0F, 0F, 0F);
      legthree = new ModelRenderer(this, 0, 20);
      legthree.addBox(4F, 0F, -8F, 4, 8, 4);
      legthree.setRotationPoint(0F, 16F, 0F);
      legthree.setTextureSize(64, 32);
      legthree.mirror = true;
      setRotation(legthree, 0F, 0F, 0F);
      legfour = new ModelRenderer(this, 16, 20);
      legfour.addBox(0F, 0F, 0F, 4, 8, 4);
      legfour.setRotationPoint(-8F, 16F, 4F);
      legfour.setTextureSize(64, 32);
      legfour.mirror = true;
      setRotation(legfour, 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);
    tabletop.render(f5);
    legone.render(f5);
    legtwo.render(f5);
    legthree.render(f5);
    legfour.render(f5);
  }
  
  public void renderModel(float f) {
  tabletop.render(f);
  legone.render(f);
  legtwo.render(f);
  legthree.render(f);
  legfour.render(f);
  }
  
  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);
  }

}
Код:
package ...mod.model;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelObsidianTable extends ModelBase
{

    ModelRenderer rock_small;
  
  public ModelObsidianTable()
  {
    textureWidth = 64;
    textureHeight = 32;

      rock_small = new ModelRenderer(this, 0, 0);
      rock_small.addBox(-2F, -2F, -1F, 4, 2, 2);
      rock_small.setRotationPoint(0F, 24F, 0F);
      rock_small.setTextureSize(64, 32);
      rock_small.mirror = true;
      setRotation(rock_small, 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);
    rock_small.render(f5);
  }
  
  public void renderModel(float f) {
  rock_small.render(f);
  }
  
  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);
  }

}


Не обязательно менять содержимое класса ModelObsidianTable, просто создай свой.
 
timaxa007 написал(а):
Ну так сделай модель.


Kbac написал(а):
Код:
package ...mod.model;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelObsidianTable extends ModelBase
{
  //fields
    ModelRenderer tabletop;
    ModelRenderer legone;
    ModelRenderer legtwo;
    ModelRenderer legthree;
    ModelRenderer legfour;
  
  public ModelObsidianTable()
  {
    textureWidth = 64;
    textureHeight = 32;
    
      tabletop = new ModelRenderer(this, 0, 0);
      tabletop.addBox(0F, 0F, 0F, 16, 4, 16);
      tabletop.setRotationPoint(-8F, 12F, -8F);
      tabletop.setTextureSize(64, 32);
      tabletop.mirror = true;
      setRotation(tabletop, 0F, 0F, 0F);
      legone = new ModelRenderer(this, 48, 20);
      legone.addBox(0F, 0F, 0F, 4, 8, 4);
      legone.setRotationPoint(-8F, 16F, -8F);
      legone.setTextureSize(64, 32);
      legone.mirror = true;
      setRotation(legone, 0F, 0F, 0F);
      legtwo = new ModelRenderer(this, 32, 20);
      legtwo.addBox(0F, 0F, 0F, 4, 8, 4);
      legtwo.setRotationPoint(4F, 16F, 4F);
      legtwo.setTextureSize(64, 32);
      legtwo.mirror = true;
      setRotation(legtwo, 0F, 0F, 0F);
      legthree = new ModelRenderer(this, 0, 20);
      legthree.addBox(4F, 0F, -8F, 4, 8, 4);
      legthree.setRotationPoint(0F, 16F, 0F);
      legthree.setTextureSize(64, 32);
      legthree.mirror = true;
      setRotation(legthree, 0F, 0F, 0F);
      legfour = new ModelRenderer(this, 16, 20);
      legfour.addBox(0F, 0F, 0F, 4, 8, 4);
      legfour.setRotationPoint(-8F, 16F, 4F);
      legfour.setTextureSize(64, 32);
      legfour.mirror = true;
      setRotation(legfour, 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);
    tabletop.render(f5);
    legone.render(f5);
    legtwo.render(f5);
    legthree.render(f5);
    legfour.render(f5);
  }
  
  public void renderModel(float f) {
  tabletop.render(f);
  legone.render(f);
  legtwo.render(f);
  legthree.render(f);
  legfour.render(f);
  }
  
  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);
  }

}
Код:
package ...mod.model;

import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;

public class ModelObsidianTable extends ModelBase
{

    ModelRenderer rock_small;
  
  public ModelObsidianTable()
  {
    textureWidth = 64;
    textureHeight = 32;

      rock_small = new ModelRenderer(this, 0, 0);
      rock_small.addBox(-2F, -2F, -1F, 4, 2, 2);
      rock_small.setRotationPoint(0F, 24F, 0F);
      rock_small.setTextureSize(64, 32);
      rock_small.mirror = true;
      setRotation(rock_small, 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);
    rock_small.render(f5);
  }
  
  public void renderModel(float f) {
  rock_small.render(f);
  }
  
  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);
  }

}


Не обязательно менять содержимое класса ModelObsidianTable, просто создай свой.




[font=Monaco, Consolas, Courier, monospace]Поставил модель. Только теперь рамка не по самой модели. Вот скрин [/font][font=Monaco, Consolas, Courier, monospace]http://rgho.st/6rr7TKfbx[/font]
 
Рамка выделения?


this.setBlockBounds(-1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); в конструкторе по идее, но я чет всегда переопределяю метод get
 
Назад
Сверху