I'm trying to Render a table but whenever I try to place it down it just is an invisible block, like a barrier.
I am new to Modding so help wold be greatly appreciated.
BlockTable.java:
package com.CptTomm.ms.blocks;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockTable extends Block{
public BlockTable() {
super(Material.wood);
this.setBlockName("table");
this.setCreativeTab(CreativeTabs.tabDecorations);
}
public TileEntity createNewTileEntity(World w) {
return new TileEntityTable();
}
public int getRenderType() {
return -1;
}
public boolean isOpaqueCube() {
return false;
}
public boolean renderAsNormalBlock() {
return false;
}
@SideOnly(Side.CLIENT)
public void regiaterIcons(IIconRegister icon) {
this.blockIcon = icon.registerIcon("ms:table");
}
}
TileEntityTable.java:
package com.CptTomm.ms.blocks;
import net.minecraft.tileentity.TileEntity;
public class TileEntityTable extends TileEntity {
}
ModelTable.java:
package com.CptTomm.ms.blocks;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
public class ModelTable extends ModelBase
{
//fields
ModelRenderer leg1;
ModelRenderer leg2;
ModelRenderer leg3;
ModelRenderer leg4;
ModelRenderer Shape1;
public ModelTable()
{
textureWidth = 64;
textureHeight = 32;
leg1 = new ModelRenderer(this, 0, 0);
leg1.addBox(0F, 0F, 0F, 2, 13, 2);
leg1.setRotationPoint(4F, 11F, 4F);
leg1.setTextureSize(64, 32);
leg1.mirror = true;
setRotation(leg1, 0F, 0F, 0F);
leg2 = new ModelRenderer(this, 0, 0);
leg2.addBox(0F, 0F, -2F, 2, 13, 2);
leg2.setRotationPoint(4F, 11F, -4F);
leg2.setTextureSize(64, 32);
leg2.mirror = true;
setRotation(leg2, 0F, 0F, 0F);
leg3 = new ModelRenderer(this, 0, 0);
leg3.addBox(-2F, 0F, -2F, 2, 13, 2);
leg3.setRotationPoint(-4F, 11F, -4F);
leg3.setTextureSize(64, 32);
leg3.mirror = true;
setRotation(leg3, 0F, 0F, 0F);
leg4 = new ModelRenderer(this, 0, 0);
leg4.addBox(-2F, 0F, 0F, 2, 13, 2);
leg4.setRotationPoint(-4F, 11F, 4F);
leg4.setTextureSize(64, 32);
leg4.mirror = true;
setRotation(leg4, 0F, 0F, 0F);
Shape1 = new ModelRenderer(this, 5, 16);
Shape1.addBox(-7F, 0F, -7F, 14, 2, 14);
Shape1.setRotationPoint(0F, 9F, 0F);
Shape1.setTextureSize(64, 32);
Shape1.mirror = true;
setRotation(Shape1, 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);
leg1.render(f5);
leg2.render(f5);
leg3.render(f5);
leg4.render(f5);
Shape1.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);
}
}
RendererTable.java:
package com.CptTomm.ms.blocks;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
public class RendererTable extends TileEntitySpecialRenderer {
//The model of your block
private final ModelTable model;
public RendererTable() {
this.model = new ModelTable();
}
private void adjustRotatePivotViaMeta(World world, int x, int y, int z) {
int meta = world.getBlockMetadata(x, y, z);
GL11.glPushMatrix();
GL11.glRotatef(meta * (-90), 0.0F, 0.0F, 1.0F);
GL11.glPopMatrix();
}
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) {
//The PushMatrix tells the renderer to "start" doing something.
GL11.glPushMatrix();
//This is setting the initial location.
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
//This is the texture of your block. It's pathed to be the same place as your other blocks here.
//Outdated bindTextureByName("/mods/roads/textures/blocks/TrafficLightPoleRed.png");
//Use in 1.6.2 this
ResourceLocation textures = (new ResourceLocation("ms:textures/models/table.png"));
//the ':' is very important
//binding the textures
Minecraft.getMinecraft().renderEngine.bindTexture(textures);
//This rotation part is very important! Without it, your model will render upside-down! And for some reason you DO need PushMatrix again!
GL11.glPushMatrix();
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
//A reference to your Model file. Again, very important.
this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
//Tell it to stop rendering for both the PushMatrix's
GL11.glPopMatrix();
GL11.glPopMatrix();
}
//Set the lighting stuff, so it changes it's brightness properly.
private void adjustLightFixture(World world, int i, int j, int k, Block block) {
Tessellator tess = Tessellator.instance;
//float brightness = block.getBlockBrightness(world, i, j, k);
//As of MC 1.7+ block.getBlockBrightness() has become block.getLightValue():
float brightness = block.getLightValue(world, i, j, k);
int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0);
int modulousModifier = skyLight % 65536;
int divModifier = skyLight / 65536;
tess.setColorOpaque_F(brightness, brightness, brightness);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier);
}
}