Added model for multimeter

This commit is contained in:
Calclavia 2013-08-05 11:59:14 -04:00
parent b0ffec41d3
commit 5530ab352b
6 changed files with 148 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,75 @@
package resonantinduction.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
public class ModelMultimeter extends ModelBase
{
// fields
ModelRenderer Base;
ModelRenderer secPanel;
ModelRenderer arm;
ModelRenderer button;
ModelRenderer arm2;
ModelRenderer infopanel;
public ModelMultimeter()
{
textureWidth = 128;
textureHeight = 128;
Base = new ModelRenderer(this, 0, 0);
Base.addBox(0F, 0F, 0F, 14, 14, 1);
Base.setRotationPoint(-7F, 9F, 7F);
Base.setTextureSize(128, 128);
Base.mirror = true;
setRotation(Base, 0F, 0F, 0F);
secPanel = new ModelRenderer(this, 0, 18);
secPanel.addBox(0F, 0F, 0F, 4, 8, 1);
secPanel.setRotationPoint(-6F, 10F, 6F);
secPanel.setTextureSize(128, 128);
secPanel.mirror = true;
setRotation(secPanel, 0F, 0F, 0F);
arm = new ModelRenderer(this, 0, 29);
arm.addBox(0F, 0F, 0F, 1, 9, 2);
arm.setRotationPoint(-3.5F, 13F, 5.5F);
arm.setTextureSize(128, 128);
arm.mirror = true;
setRotation(arm, 0F, 0F, 0F);
button = new ModelRenderer(this, 0, 43);
button.addBox(0F, 0F, 0F, 2, 1, 1);
button.setRotationPoint(-5F, 11F, 5.5F);
button.setTextureSize(128, 128);
button.mirror = true;
setRotation(button, 0F, 0F, 0F);
arm2 = new ModelRenderer(this, 10, 29);
arm2.addBox(0F, 0F, 0F, 1, 9, 2);
arm2.setRotationPoint(-5.5F, 13F, 5.5F);
arm2.setTextureSize(128, 128);
arm2.mirror = true;
setRotation(arm2, 0F, 0F, 0F);
infopanel = new ModelRenderer(this, 33, 0);
infopanel.addBox(0F, 0F, 0F, 7, 12, 1);
infopanel.setRotationPoint(-1F, 10F, 6.5F);
infopanel.setTextureSize(128, 128);
infopanel.mirror = true;
setRotation(infopanel, 0F, 0F, 0F);
}
public void render(float f5)
{
Base.render(f5);
secPanel.render(f5);
arm.render(f5);
button.render(f5);
arm2.render(f5);
infopanel.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
}

View file

@ -7,6 +7,8 @@ import static net.minecraftforge.common.ForgeDirection.EAST;
import static net.minecraftforge.common.ForgeDirection.NORTH;
import static net.minecraftforge.common.ForgeDirection.SOUTH;
import static net.minecraftforge.common.ForgeDirection.WEST;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
@ -22,6 +24,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import resonantinduction.ResonantInduction;
import resonantinduction.base.BlockBase;
import resonantinduction.render.BlockRenderingHandler;
/**
* A block that detects power.
@ -103,6 +106,12 @@ public class BlockMultimeter extends BlockBase implements ITileEntityProvider
{
return true;
}
@SideOnly(Side.CLIENT)
@Override
public int getRenderType()
{
return BlockRenderingHandler.INSTANCE.getRenderId();
}
@Override
public boolean renderAsNormalBlock()
@ -110,6 +119,12 @@ public class BlockMultimeter extends BlockBase implements ITileEntityProvider
return false;
}
@Override
public boolean isOpaqueCube()
{
return false;
}
@Override
public TileEntity createNewTileEntity(World world)
{

View file

@ -44,11 +44,11 @@ public class ItemBlockMultimeter extends ItemBlock
}
@Override
public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World world, int x, int y, int z, int par7, float par8, float par9, float par10)
public boolean onItemUseFirst(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World world, int x, int y, int z, int par7, float par8, float par9, float par10)
{
if (!par2EntityPlayer.isSneaking())
{
if (!world.isRemote)
//if (!world.isRemote)
{
par2EntityPlayer.addChatMessage("Energy: " + TileEntityMultimeter.getDetectedEnergy(world.getBlockTileEntity(x, y, z)) + " J");
}
@ -56,7 +56,7 @@ public class ItemBlockMultimeter extends ItemBlock
return true;
}
return super.onItemUse(par1ItemStack, par2EntityPlayer, world, x, y, z, par7, par8, par9, par10);
return super.onItemUseFirst(par1ItemStack, par2EntityPlayer, world, x, y, z, par7, par8, par9, par10);
}
public float getDetection(ItemStack itemStack)

View file

@ -11,6 +11,7 @@ import org.lwjgl.opengl.GL11;
import resonantinduction.battery.BlockBattery;
import resonantinduction.contractor.BlockEMContractor;
import resonantinduction.multimeter.BlockMultimeter;
import resonantinduction.tesla.BlockTesla;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
@ -58,6 +59,17 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler
RenderBattery.MODEL.render(0.0625f);
GL11.glPopMatrix();
}
else if (block instanceof BlockMultimeter)
{
GL11.glPushMatrix();
GL11.glTranslated(-0.5, 1, -1);
// GL11.glTranslated(1.5, 1.5, -0.5);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(-180, 0.0F, 1, 1.0F);
FMLClientHandler.instance().getClient().renderEngine.func_110577_a(RenderMultimeter.TEXTURE);
RenderMultimeter.MODEL.render(0.0625f);
GL11.glPopMatrix();
}
}
@Override

View file

@ -3,10 +3,14 @@ package resonantinduction.render;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.ForgeDirection;
import org.lwjgl.opengl.GL11;
import resonantinduction.ResonantInduction;
import resonantinduction.contractor.TileEntityEMContractor;
import resonantinduction.model.ModelMultimeter;
import resonantinduction.multimeter.TileEntityMultimeter;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -20,12 +24,51 @@ import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class RenderMultimeter extends TileEntitySpecialRenderer
{
public static final ModelMultimeter MODEL = new ModelMultimeter();
public static final ResourceLocation TEXTURE = new ResourceLocation(ResonantInduction.DOMAIN, ResonantInduction.MODEL_TEXTURE_DIRECTORY + "multimeter.png");
@Override
public void renderTileEntityAt(TileEntity t, double x, double y, double z, float var8)
{
TileEntityMultimeter tileEntity = (TileEntityMultimeter) t;
ForgeDirection direction = ForgeDirection.getOrientation(tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord));
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
/*
switch (direction)
{
case DOWN:
GL11.glRotatef(180, 0, 0, 1);
GL11.glTranslatef(0, -2, 0);
break;
case UP:
break;
case NORTH:
GL11.glTranslatef(1, 1, 0);
GL11.glRotatef(90, 0, 0, 1);
break;
case SOUTH:
GL11.glTranslatef(-1, 1, 0);
GL11.glRotatef(-90, 0, 0, 1);
break;
case WEST:
GL11.glTranslatef(0, 1, 1);
GL11.glRotatef(-90, 1, 0, 0);
break;
case EAST:
GL11.glTranslatef(0, 1, -1);
GL11.glRotatef(90, 1, 0, 0);
break;
}
*/
this.func_110628_a(TEXTURE);
MODEL.render(0.0625f);
GL11.glPopMatrix();
/**
* Render from side 2 to 6. This means render all sides excluding top and bottom.
*/