Working on new tank render
|
@ -2,5 +2,5 @@ dir.development=./
|
|||
dir.mcp=${dir.development}forge/mcp
|
||||
version.minecraft=1.5.2
|
||||
version.mod.major=0
|
||||
version.mod.minor=4
|
||||
version.mod.revis=3
|
||||
version.mod.minor=5
|
||||
version.mod.revis=1
|
||||
|
|
BIN
models/Current_Models/Tank.tcn
Normal file
BIN
resources/mods/fluidmech/textures/models/TankSide.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 942 B |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 491 B |
Before Width: | Height: | Size: 742 B |
Before Width: | Height: | Size: 742 B |
Before Width: | Height: | Size: 742 B |
Before Width: | Height: | Size: 770 B |
Before Width: | Height: | Size: 974 B |
Before Width: | Height: | Size: 990 B |
Before Width: | Height: | Size: 967 B |
Before Width: | Height: | Size: 974 B |
Before Width: | Height: | Size: 1,003 B |
Before Width: | Height: | Size: 790 B |
Before Width: | Height: | Size: 975 B |
Before Width: | Height: | Size: 1,003 B |
Before Width: | Height: | Size: 740 B |
Before Width: | Height: | Size: 762 B |
Before Width: | Height: | Size: 810 B |
|
@ -41,10 +41,10 @@ public class ClientProxy extends CommonProxy
|
|||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStarterPump.class, new RenderPump());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRod.class, new RenderGearRod());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGenerator.class, new RenderGenerator());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTank.class, new RenderTank());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReleaseValve.class, new RenderReleaseValve());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySink.class, new RenderSink());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConstructionPump.class, new RenderConstructionPump());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTank.class, new RenderTank());
|
||||
|
||||
MinecraftForgeClient.registerItemRenderer(FluidMech.blockPipe.blockID, new ItemRenderHelper());
|
||||
MinecraftForgeClient.registerItemRenderer(FluidMech.blockGenPipe.blockID, new ItemRenderHelper());
|
||||
|
|
179
src/minecraft/dark/fluid/client/model/ModelTankSide.java
Normal file
|
@ -0,0 +1,179 @@
|
|||
// Date: 6/3/2013 6:47:54 AM
|
||||
// Template version 1.1
|
||||
// Java generated by Techne
|
||||
// Keep in mind that you still need to fill in some blanks
|
||||
// - ZeuX
|
||||
|
||||
package dark.fluid.client.model;
|
||||
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
|
||||
public class ModelTankSide extends ModelBase
|
||||
{
|
||||
// fields
|
||||
ModelRenderer tankBack;
|
||||
ModelRenderer backRightSiding;
|
||||
ModelRenderer backLeftSiding;
|
||||
ModelRenderer backTopSiding;
|
||||
ModelRenderer backBotSiding;
|
||||
ModelRenderer topLeft;
|
||||
ModelRenderer topRight;
|
||||
ModelRenderer botRight;
|
||||
ModelRenderer botLeft;
|
||||
ModelRenderer botRightOut;
|
||||
ModelRenderer botLeftOut;
|
||||
ModelRenderer topRightOut;
|
||||
ModelRenderer topLeftOut;
|
||||
ModelRenderer tankBackRight;
|
||||
ModelRenderer tankBackLeft;
|
||||
|
||||
public ModelTankSide()
|
||||
{
|
||||
textureWidth = 128;
|
||||
textureHeight = 128;
|
||||
|
||||
tankBack = new ModelRenderer(this, 21, 43);
|
||||
tankBack.addBox(-6F, 8F, 5F, 12, 16, 1);
|
||||
tankBack.setRotationPoint(0F, 0F, 0F);
|
||||
tankBack.setTextureSize(128, 128);
|
||||
tankBack.mirror = true;
|
||||
setRotation(tankBack, 0F, 0F, 0F);
|
||||
backRightSiding = new ModelRenderer(this, 0, 19);
|
||||
backRightSiding.addBox(-6F, 10F, 6F, 2, 12, 1);
|
||||
backRightSiding.setRotationPoint(0F, 0F, 0F);
|
||||
backRightSiding.setTextureSize(128, 128);
|
||||
backRightSiding.mirror = true;
|
||||
setRotation(backRightSiding, 0F, 0F, 0F);
|
||||
backLeftSiding = new ModelRenderer(this, 0, 19);
|
||||
backLeftSiding.addBox(4F, 10F, 6F, 2, 12, 1);
|
||||
backLeftSiding.setRotationPoint(0F, 0F, 0F);
|
||||
backLeftSiding.setTextureSize(128, 128);
|
||||
backLeftSiding.mirror = true;
|
||||
setRotation(backLeftSiding, 0F, 0F, 0F);
|
||||
backTopSiding = new ModelRenderer(this, 7, 8);
|
||||
backTopSiding.addBox(-4F, 8F, 6F, 8, 2, 1);
|
||||
backTopSiding.setRotationPoint(0F, 0F, 0F);
|
||||
backTopSiding.setTextureSize(128, 128);
|
||||
backTopSiding.mirror = true;
|
||||
setRotation(backTopSiding, 0F, 0F, 0F);
|
||||
backBotSiding = new ModelRenderer(this, 7, 8);
|
||||
backBotSiding.addBox(-4F, 22F, 6F, 8, 2, 1);
|
||||
backBotSiding.setRotationPoint(0F, 0F, 0F);
|
||||
backBotSiding.setTextureSize(128, 128);
|
||||
backBotSiding.mirror = true;
|
||||
setRotation(backBotSiding, 0F, 0F, 0F);
|
||||
topLeft = new ModelRenderer(this, 0, 0);
|
||||
topLeft.addBox(4F, 8F, 6F, 2, 2, 1);
|
||||
topLeft.setRotationPoint(0F, 0F, 0F);
|
||||
topLeft.setTextureSize(128, 128);
|
||||
topLeft.mirror = true;
|
||||
setRotation(topLeft, 0F, 0F, 0F);
|
||||
topRight = new ModelRenderer(this, 0, 0);
|
||||
topRight.addBox(-6F, 8F, 6F, 2, 2, 1);
|
||||
topRight.setRotationPoint(0F, 0F, 0F);
|
||||
topRight.setTextureSize(128, 128);
|
||||
topRight.mirror = true;
|
||||
setRotation(topRight, 0F, 0F, 0F);
|
||||
botRight = new ModelRenderer(this, 0, 0);
|
||||
botRight.addBox(-6F, 22F, 6F, 2, 2, 1);
|
||||
botRight.setRotationPoint(0F, 0F, 0F);
|
||||
botRight.setTextureSize(128, 128);
|
||||
botRight.mirror = true;
|
||||
setRotation(botRight, 0F, 0F, 0F);
|
||||
botLeft = new ModelRenderer(this, 0, 0);
|
||||
botLeft.addBox(4F, 22F, 6F, 2, 2, 1);
|
||||
botLeft.setRotationPoint(0F, 0F, 0F);
|
||||
botLeft.setTextureSize(128, 128);
|
||||
botLeft.mirror = true;
|
||||
setRotation(botLeft, 0F, 0F, 0F);
|
||||
botRightOut = new ModelRenderer(this, 0, 0);
|
||||
botRightOut.addBox(-8F, 22F, 6F, 2, 2, 1);
|
||||
botRightOut.setRotationPoint(0F, 0F, 0F);
|
||||
botRightOut.setTextureSize(128, 128);
|
||||
botRightOut.mirror = true;
|
||||
setRotation(botRightOut, 0F, 0F, 0F);
|
||||
botLeftOut = new ModelRenderer(this, 0, 0);
|
||||
botLeftOut.addBox(6F, 22F, 6F, 2, 2, 1);
|
||||
botLeftOut.setRotationPoint(0F, 0F, 0F);
|
||||
botLeftOut.setTextureSize(128, 128);
|
||||
botLeftOut.mirror = true;
|
||||
setRotation(botLeftOut, 0F, 0F, 0F);
|
||||
topRightOut = new ModelRenderer(this, 0, 0);
|
||||
topRightOut.addBox(-8F, 8F, 6F, 2, 2, 1);
|
||||
topRightOut.setRotationPoint(0F, 0F, 0F);
|
||||
topRightOut.setTextureSize(128, 128);
|
||||
topRightOut.mirror = true;
|
||||
setRotation(topRightOut, 0F, 0F, 0F);
|
||||
topLeftOut = new ModelRenderer(this, 0, 0);
|
||||
topLeftOut.addBox(6F, 8F, 6F, 2, 2, 1);
|
||||
topLeftOut.setRotationPoint(0F, 0F, 0F);
|
||||
topLeftOut.setTextureSize(128, 128);
|
||||
topLeftOut.mirror = true;
|
||||
setRotation(topLeftOut, 0F, 0F, 0F);
|
||||
tankBackRight = new ModelRenderer(this, 49, 43);
|
||||
tankBackRight.addBox(-8F, 8F, 5F, 2, 16, 1);
|
||||
tankBackRight.setRotationPoint(0F, 0F, 0F);
|
||||
tankBackRight.setTextureSize(128, 128);
|
||||
tankBackRight.mirror = true;
|
||||
setRotation(tankBackRight, 0F, 0F, 0F);
|
||||
tankBackLeft = new ModelRenderer(this, 12, 43);
|
||||
tankBackLeft.addBox(6F, 8F, 5F, 2, 16, 1);
|
||||
tankBackLeft.setRotationPoint(0F, 0F, 0F);
|
||||
tankBackLeft.setTextureSize(128, 128);
|
||||
tankBackLeft.mirror = true;
|
||||
setRotation(tankBackLeft, 0F, 0F, 0F);
|
||||
}
|
||||
|
||||
public void render(float f5, boolean left, boolean right, boolean bot, boolean top)
|
||||
{
|
||||
tankBack.render(f5);
|
||||
if (!top)
|
||||
{
|
||||
backTopSiding.render(f5);
|
||||
topLeft.render(f5);
|
||||
topRight.render(f5);
|
||||
topRightOut.render(f5);
|
||||
topLeftOut.render(f5);
|
||||
}
|
||||
if (!bot)
|
||||
{
|
||||
backBotSiding.render(f5);
|
||||
botRight.render(f5);
|
||||
botLeft.render(f5);
|
||||
botRightOut.render(f5);
|
||||
botLeftOut.render(f5);
|
||||
}
|
||||
if (!right)
|
||||
{
|
||||
backRightSiding.render(f5);
|
||||
if (top)
|
||||
{
|
||||
topRight.render(f5);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
tankBackRight.render(f5);
|
||||
|
||||
}
|
||||
if (!left)
|
||||
{
|
||||
backLeftSiding.render(f5);
|
||||
}
|
||||
else
|
||||
{
|
||||
tankBackLeft.render(f5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void setRotation(ModelRenderer model, float x, float y, float z)
|
||||
{
|
||||
model.rotateAngleX = x;
|
||||
model.rotateAngleY = y;
|
||||
model.rotateAngleZ = z;
|
||||
}
|
||||
|
||||
}
|
|
@ -56,14 +56,7 @@ public class BlockRenderHelper implements ISimpleBlockRenderingHandler
|
|||
}
|
||||
if (block.blockID == FluidMech.blockTank.blockID)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.0F, (float) 1.0F, (float) 0.0F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(RenderTank.getTankTexture(metadata)));
|
||||
tank.renderMain(0.0625F);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(RenderTank.getGuageTexture(metadata,4)));
|
||||
tank.renderMeter(null, 0.0565F);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
if (block.blockID == FluidMech.blockRod.blockID)
|
||||
{
|
||||
|
|
|
@ -1,152 +1,75 @@
|
|||
package dark.fluid.client.render;
|
||||
|
||||
import hydraulic.api.ColorCode;
|
||||
import hydraulic.helpers.LiquidRenderer;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
||||
import net.minecraftforge.liquids.ILiquidTank;
|
||||
import net.minecraftforge.liquids.LiquidStack;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import dark.fluid.client.model.ModelLiquidTank;
|
||||
import dark.fluid.client.model.ModelLiquidTankCorner;
|
||||
import dark.fluid.client.model.ModelTankSide;
|
||||
import dark.fluid.common.FluidMech;
|
||||
import dark.fluid.common.machines.TileEntityTank;
|
||||
import dark.library.helpers.ConnectionHelper;
|
||||
|
||||
public class RenderTank extends TileEntitySpecialRenderer
|
||||
{
|
||||
private ModelLiquidTank model;
|
||||
private ModelLiquidTankCorner modelC;
|
||||
private ModelTankSide model;
|
||||
|
||||
public RenderTank()
|
||||
{
|
||||
model = new ModelLiquidTank();
|
||||
modelC = new ModelLiquidTankCorner();
|
||||
}
|
||||
|
||||
public void renderAModelAt(TileEntityTank te, double d, double d1, double d2, float f)
|
||||
{
|
||||
int meta = te.getBlockMetadata();
|
||||
int guageMeta = meta;
|
||||
LiquidStack stack = te.getTank().getLiquid();
|
||||
int pos = 0;
|
||||
if (stack != null)
|
||||
{
|
||||
pos = Math.min(((stack.amount / LiquidContainerRegistry.BUCKET_VOLUME) / 2), 4);
|
||||
if (meta == ColorCode.NONE.ordinal())
|
||||
{
|
||||
guageMeta = ColorCode.get(stack).ordinal();
|
||||
}
|
||||
}
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F);
|
||||
GL11.glScalef(1.0F, -1F, -1F);
|
||||
|
||||
if (ConnectionHelper.corner(te) > 0)
|
||||
{
|
||||
bindTextureByName(this.getCornerTexture(meta));
|
||||
int corner = ConnectionHelper.corner(te);
|
||||
switch (corner)
|
||||
{
|
||||
case 2:
|
||||
GL11.glRotatef(270f, 0f, 1f, 0f);
|
||||
break;
|
||||
case 3:
|
||||
GL11.glRotatef(0f, 0f, 1f, 0f);
|
||||
break;
|
||||
case 4:
|
||||
GL11.glRotatef(90f, 0f, 1f, 0f);
|
||||
break;
|
||||
case 1:
|
||||
GL11.glRotatef(180f, 0f, 1f, 0f);
|
||||
break;
|
||||
}
|
||||
modelC.render(0.0625F);
|
||||
}
|
||||
else
|
||||
{
|
||||
bindTextureByName(this.getTankTexture(meta));
|
||||
model.renderMain(0.0625F);
|
||||
bindTextureByName(this.getGuageTexture(guageMeta, pos));
|
||||
model.renderMeter(te, 0.0625F);
|
||||
}
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
|
||||
public static String getTankTexture(int meta)
|
||||
{
|
||||
String type = "";
|
||||
switch (ColorCode.get(meta))
|
||||
{
|
||||
case RED:
|
||||
type = "Lava";
|
||||
break;
|
||||
case BLUE:
|
||||
type = "Water";
|
||||
break;
|
||||
case WHITE:
|
||||
type = "Milk";
|
||||
break;
|
||||
case ORANGE:
|
||||
type = "Steam";
|
||||
break;
|
||||
default:
|
||||
type = "";
|
||||
break;
|
||||
}
|
||||
|
||||
return FluidMech.MODEL_TEXTURE_DIRECTORY + "tanks/" + type + "Tank.png";
|
||||
|
||||
}
|
||||
|
||||
public static String getGuageTexture(int meta, int pos)
|
||||
{
|
||||
String type = "";
|
||||
switch (ColorCode.get(meta))
|
||||
{
|
||||
case RED:
|
||||
type = "Lava";
|
||||
break;
|
||||
case YELLOW:
|
||||
type = "Fuel";
|
||||
break;
|
||||
default:
|
||||
type = "";
|
||||
break;
|
||||
}
|
||||
|
||||
return FluidMech.MODEL_TEXTURE_DIRECTORY + "tanks/guage/" + pos + type + ".png";
|
||||
}
|
||||
|
||||
public static String getCornerTexture(int meta)
|
||||
{
|
||||
String type = "";
|
||||
switch (ColorCode.get(meta))
|
||||
{
|
||||
case RED:
|
||||
type = "Lava";
|
||||
break;
|
||||
case BLUE:
|
||||
type = "Water";
|
||||
break;
|
||||
case WHITE:
|
||||
type = "Milk";
|
||||
break;
|
||||
default:
|
||||
type = "";
|
||||
break;
|
||||
}
|
||||
return FluidMech.MODEL_TEXTURE_DIRECTORY + "tanks/Corner" + type + ".png";
|
||||
|
||||
model = new ModelTankSide();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double var2, double var4, double var6, float var8)
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float var8)
|
||||
{
|
||||
this.renderAModelAt((TileEntityTank) tileEntity, var2, var4, var6, var8);
|
||||
if (tileEntity instanceof TileEntityTank)
|
||||
{
|
||||
TileEntityTank tileEntityTank = ((TileEntityTank) tileEntity);
|
||||
ILiquidTank tank = tileEntityTank.getTank();
|
||||
LiquidStack liquid = tank.getLiquid();
|
||||
|
||||
ColorCode color = tileEntityTank.getColor();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
bindTextureByName(FluidMech.MODEL_TEXTURE_DIRECTORY + "TankSide.png");
|
||||
|
||||
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 5F);
|
||||
GL11.glScalef(1.0F, -1F, -1F);
|
||||
model.render(0.0625F, false, false, false, false);
|
||||
GL11.glRotatef(90f, 0f, 1f, 0f);
|
||||
model.render(0.0625F, false, false, false, false);
|
||||
GL11.glRotatef(180f, 0f, 1f, 0f);
|
||||
model.render(0.0625F, false, false, false, false);
|
||||
GL11.glRotatef(270f, 0f, 1f, 0f);
|
||||
model.render(0.0625F, false, false, false, false);
|
||||
|
||||
if (liquid != null && liquid.amount > 0)
|
||||
{
|
||||
|
||||
int[] displayList = LiquidRenderer.getLiquidDisplayLists(liquid, tileEntity.worldObj, false);
|
||||
if (displayList != null)
|
||||
{
|
||||
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
bindTextureByName(LiquidRenderer.getLiquidSheet(liquid));
|
||||
|
||||
// GL11.glTranslatef((float) -0.475F, (float) -1.5F, (float) -0.475F);
|
||||
GL11.glScalef(0.6F, 0.999F, 0.6F);
|
||||
|
||||
GL11.glCallList(displayList[(int) ((float) liquid.amount / (float) (tank.getCapacity()) * (LiquidRenderer.DISPLAY_STAGES - 1))]);
|
||||
|
||||
GL11.glPopAttrib();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
}
|