Face Lift
Added: Item Render for Pipe Added: Item Render for Tank Changed: Improve motor model Changed: Tank vol to use global var Disabled: Motor rotation( tempary) Fixed: Pick Block for all blocks except pipe which picks to steam pipe etc etc normal cleanup and derps
This commit is contained in:
parent
f2c04a007d
commit
558ed1bda8
23 changed files with 943 additions and 482 deletions
|
@ -1,12 +1,15 @@
|
|||
package dark.BasicUtilities;
|
||||
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import dark.BasicUtilities.Tile.TileEntityGen;
|
||||
import dark.BasicUtilities.Tile.TileEntityTank;
|
||||
import dark.BasicUtilities.Tile.TileEntityPipe;
|
||||
import dark.BasicUtilities.Tile.TileEntityPump;
|
||||
import dark.BasicUtilities.Tile.TileEntityRod;
|
||||
import dark.BasicUtilities.renders.RenderGearRod;
|
||||
import dark.BasicUtilities.renders.RenderGenerator;
|
||||
import dark.BasicUtilities.renders.RenderTank;
|
||||
import dark.BasicUtilities.renders.RenderPipe;
|
||||
import dark.BasicUtilities.renders.RenderPump;
|
||||
|
@ -25,8 +28,11 @@ public class BPClientProxy extends BPCommonProxy
|
|||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPipe.class, new RenderPipe());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPump.class, new RenderPump());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRod.class, new RenderGearRod());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGen.class, new RenderGenerator());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTank.class, new RenderTank());
|
||||
RenderingRegistry.registerBlockHandler(new ItemRenderHelper());
|
||||
RenderingRegistry.registerBlockHandler(new BlockRenderHelper());
|
||||
MinecraftForgeClient.registerItemRenderer(BasicUtilitiesMain.itemPipes.shiftedIndex, new ItemRenderHelper());
|
||||
MinecraftForgeClient.registerItemRenderer(BasicUtilitiesMain.itemTank.shiftedIndex, new ItemRenderHelper());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -29,7 +29,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
|
|||
import cpw.mods.fml.common.registry.LanguageRegistry;
|
||||
import dark.BasicUtilities.Blocks.BlockEValve;
|
||||
import dark.BasicUtilities.Blocks.BlockGenerator;
|
||||
import dark.BasicUtilities.Blocks.BlockMachine;
|
||||
import dark.BasicUtilities.Blocks.BlockPipeMachine;
|
||||
import dark.BasicUtilities.Blocks.BlockOilFlowing;
|
||||
import dark.BasicUtilities.Blocks.BlockOilStill;
|
||||
import dark.BasicUtilities.Blocks.BlockPipe;
|
||||
|
@ -64,7 +64,7 @@ import dark.BasicUtilities.api.Liquid;
|
|||
public class BasicUtilitiesMain extends DummyModContainer
|
||||
{
|
||||
// TODO need changed on release
|
||||
public static final String VERSION = "0.2.0";
|
||||
public static final String VERSION = "0.2.1";
|
||||
// Constants
|
||||
public static final String NAME = "BasicUtilities";
|
||||
public static final String CHANNEL = "BPipes";
|
||||
|
@ -153,7 +153,7 @@ public class BasicUtilitiesMain extends DummyModContainer
|
|||
LanguageRegistry.addName((new ItemStack(machine, 1, 0)), "Pump");
|
||||
LanguageRegistry.addName((new ItemStack(machine, 1, 4)), "WaterCondensor");
|
||||
|
||||
LanguageRegistry.addName((new ItemStack(generator, 1)), "EU Generator");
|
||||
LanguageRegistry.addName((new ItemStack(generator, 1)), "ElectricGen");
|
||||
// mechanical rod
|
||||
LanguageRegistry.addName((new ItemStack(rod, 1)), "GearedRod");
|
||||
// Tools
|
||||
|
@ -287,7 +287,7 @@ public class BasicUtilitiesMain extends DummyModContainer
|
|||
CONFIGURATION.load();
|
||||
// blocks
|
||||
pipe = new BlockPipe(this.CONFIGURATION.getBlock("Pipe", BLOCK_ID_PREFIX).getInt());
|
||||
machine = new BlockMachine(this.CONFIGURATION.getBlock("MachineSetOne", BLOCK_ID_PREFIX + 1).getInt());
|
||||
machine = new BlockPipeMachine(this.CONFIGURATION.getBlock("MachineSetOne", BLOCK_ID_PREFIX + 1).getInt());
|
||||
// valve = new BlockValve(this.CONFIGURATION.getBlock("Valve",
|
||||
// BLOCK_ID_PREFIX + 2).getInt());
|
||||
rod = new BlockRod(this.CONFIGURATION.getBlock("MechanicalRod", BLOCK_ID_PREFIX + 3).getInt());
|
||||
|
|
72
minecraft/dark/BasicUtilities/BlockRenderHelper.java
Normal file
72
minecraft/dark/BasicUtilities/BlockRenderHelper.java
Normal file
|
@ -0,0 +1,72 @@
|
|||
package dark.BasicUtilities;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import dark.BasicUtilities.renders.models.ModelGearRod;
|
||||
import dark.BasicUtilities.renders.models.ModelGenerator;
|
||||
import dark.BasicUtilities.renders.models.ModelPump;
|
||||
|
||||
public class BlockRenderHelper implements ISimpleBlockRenderingHandler {
|
||||
public static BlockRenderHelper instance = new BlockRenderHelper();
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
private ModelPump modelPump = new ModelPump();
|
||||
private ModelGearRod modelRod = new ModelGearRod();
|
||||
private ModelGenerator modelGen = new ModelGenerator();
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
|
||||
if(block.blockID == BasicUtilitiesMain.machine.blockID && metadata < 4)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.0F, (float)1.1F, (float)0.0F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(BasicUtilitiesMain.textureFile+"pumps/Pump.png"));
|
||||
modelPump.renderMain(0.0725F);
|
||||
modelPump.renderC1(0.0725F);
|
||||
modelPump.renderC2(0.0725F);
|
||||
modelPump.renderC3(0.0725F);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
if(block.blockID == BasicUtilitiesMain.pipe.blockID)
|
||||
{
|
||||
|
||||
}
|
||||
if(block.blockID == BasicUtilitiesMain.rod.blockID)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.0F, (float)1.5F, (float)0.0F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(BasicUtilitiesMain.textureFile+"mechanical/GearRod.png"));
|
||||
modelRod.render(0.0825F,0);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
if(block.blockID == BasicUtilitiesMain.generator.blockID)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.0F, (float)1.3F, (float)0.0F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(BasicUtilitiesMain.textureFile+"mechanical/Generator.png"));
|
||||
modelGen.render(null);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean shouldRender3DInInventory() {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getRenderId()
|
||||
{
|
||||
return renderID;
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ import net.minecraft.creativetab.CreativeTabs;
|
|||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import universalelectricity.prefab.implement.IRedstoneReceptor;
|
||||
|
@ -89,6 +90,12 @@ public class BlockEValve extends BlockContainer
|
|||
this.checkForPower(par1World, x, y, z);
|
||||
|
||||
}
|
||||
@Override
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
|
||||
{
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
return new ItemStack(BasicUtilitiesMain.eValve,1,meta);
|
||||
}
|
||||
public static void checkForPower(World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||
|
|
|
@ -2,6 +2,8 @@ package dark.BasicUtilities.Blocks;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import universalelectricity.prefab.implement.IRedstoneReceptor;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
|
@ -9,9 +11,12 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import dark.BasicUtilities.ItemRenderHelper;
|
||||
import dark.BasicUtilities.BasicUtilitiesMain;
|
||||
import dark.BasicUtilities.BlockRenderHelper;
|
||||
import dark.BasicUtilities.PipeTab;
|
||||
import dark.BasicUtilities.Tile.TileEntityEValve;
|
||||
import dark.BasicUtilities.Tile.TileEntityGen;
|
||||
|
||||
public class BlockGenerator extends universalelectricity.prefab.BlockMachine {
|
||||
|
@ -27,7 +32,12 @@ public class BlockGenerator extends universalelectricity.prefab.BlockMachine {
|
|||
public void addCreativeItems(ArrayList itemList) {
|
||||
itemList.add(new ItemStack(this, 1, 0));
|
||||
}
|
||||
@Override
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
|
||||
{
|
||||
|
||||
return new ItemStack(BasicUtilitiesMain.generator,1);
|
||||
}
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z,
|
||||
EntityLiving par5EntityLiving) {
|
||||
|
@ -62,11 +72,37 @@ public class BlockGenerator extends universalelectricity.prefab.BlockMachine {
|
|||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return ItemRenderHelper.renderID;
|
||||
return BlockRenderHelper.renderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world) {
|
||||
return new TileEntityGen();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange(World par1World, int x, int y, int z, int side)
|
||||
{
|
||||
super.onNeighborBlockChange(par1World, x, y, z, side);
|
||||
this.checkForPower(par1World, x, y, z);
|
||||
|
||||
}
|
||||
public static void checkForPower(World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
|
||||
|
||||
if (tileEntity instanceof TileEntityGen)
|
||||
{
|
||||
boolean powered = ((TileEntityGen) tileEntity).isPowered;
|
||||
boolean beingPowered = world.isBlockIndirectlyGettingPowered(x, y, z) || world.isBlockGettingPowered(x, y, z);
|
||||
if (powered && !beingPowered)
|
||||
{
|
||||
((IRedstoneReceptor) world.getBlockTileEntity(x, y, z)).onPowerOff();
|
||||
}
|
||||
else if (!powered && beingPowered)
|
||||
{
|
||||
((IRedstoneReceptor) world.getBlockTileEntity(x, y, z)).onPowerOn();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,70 +0,0 @@
|
|||
package dark.BasicUtilities.Blocks;
|
||||
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import dark.BasicUtilities.ItemRenderHelper;
|
||||
import dark.BasicUtilities.PipeTab;
|
||||
import dark.BasicUtilities.Tile.TileEntityTank;
|
||||
import dark.BasicUtilities.Tile.TileEntityPump;
|
||||
|
||||
public class BlockMachine extends BlockContainer
|
||||
{
|
||||
|
||||
public BlockMachine(int id)
|
||||
{
|
||||
super(id, Material.iron);
|
||||
this.setBlockName("Machine");
|
||||
this.setCreativeTab(PipeTab.INSTANCE);
|
||||
this.setRequiresSelfNotify();
|
||||
this.blockIndexInTexture = 26;
|
||||
this.setHardness(1f);
|
||||
this.setResistance(5f);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean renderAsNormalBlock()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* The type of render function that is called for this block
|
||||
*/
|
||||
public int getRenderType()
|
||||
{
|
||||
return ItemRenderHelper.renderID;
|
||||
}
|
||||
|
||||
public int damageDropped(int meta)
|
||||
{
|
||||
if (meta < 4) { return 0; }
|
||||
return meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World var1, int meta)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
if (meta < 4) { return new TileEntityPump(); }
|
||||
if (meta == 4)
|
||||
{
|
||||
// return new TileEntityCondenser();
|
||||
}
|
||||
if (meta == 5) { return new TileEntityTank(); }
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World var1)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -7,6 +7,7 @@ import net.minecraft.block.material.Material;
|
|||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import dark.BasicUtilities.BasicUtilitiesMain;
|
||||
import dark.BasicUtilities.Tile.TileEntityPipe;
|
||||
|
@ -79,7 +80,17 @@ public class BlockPipe extends BlockContainer
|
|||
// TODO Auto-generated method stub
|
||||
return new TileEntityPipe();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity ent = world.getBlockTileEntity(x, y, z);
|
||||
int meta = 0;
|
||||
if(ent instanceof TileEntityPipe)
|
||||
{
|
||||
meta = ((TileEntityPipe)ent).type.ordinal();
|
||||
}
|
||||
return new ItemStack(BasicUtilitiesMain.itemPipes,1,0);
|
||||
}
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, int par5, int par6)
|
||||
{
|
||||
|
|
144
minecraft/dark/BasicUtilities/Blocks/BlockPipeMachine.java
Normal file
144
minecraft/dark/BasicUtilities/Blocks/BlockPipeMachine.java
Normal file
|
@ -0,0 +1,144 @@
|
|||
package dark.BasicUtilities.Blocks;
|
||||
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
||||
import net.minecraftforge.liquids.LiquidStack;
|
||||
import dark.BasicUtilities.BasicUtilitiesMain;
|
||||
import dark.BasicUtilities.BlockRenderHelper;
|
||||
import dark.BasicUtilities.PipeTab;
|
||||
import dark.BasicUtilities.Tile.TileEntityTank;
|
||||
import dark.BasicUtilities.Tile.TileEntityPump;
|
||||
import dark.BasicUtilities.api.Liquid;
|
||||
|
||||
public class BlockPipeMachine extends BlockContainer
|
||||
{
|
||||
|
||||
public BlockPipeMachine(int id)
|
||||
{
|
||||
super(id, Material.iron);
|
||||
this.setBlockName("Machine");
|
||||
this.setCreativeTab(PipeTab.INSTANCE);
|
||||
this.setRequiresSelfNotify();
|
||||
this.blockIndexInTexture = 26;
|
||||
this.setHardness(1f);
|
||||
this.setResistance(5f);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean renderAsNormalBlock()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Code thanks to buildcraft src
|
||||
*/
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float hitX, float hitY, float hitZ)
|
||||
{
|
||||
ItemStack current = entityplayer.inventory.getCurrentItem();
|
||||
if (current != null) {
|
||||
|
||||
LiquidStack liquid = LiquidContainerRegistry.getLiquidForFilledItem(current);
|
||||
|
||||
TileEntityTank tank = (TileEntityTank) world.getBlockTileEntity(x, y, z);
|
||||
|
||||
// Handle filled containers
|
||||
if (liquid != null) {
|
||||
int filled = tank.fill(ForgeDirection.UNKNOWN, liquid, true);
|
||||
|
||||
if (filled != 0 &&!entityplayer.capabilities.isCreativeMode) {
|
||||
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, Liquid.consumeItem(current));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
// Handle empty containers
|
||||
} else {
|
||||
|
||||
LiquidStack stack = tank.tank.getLiquid();
|
||||
if (stack != null) {
|
||||
ItemStack liquidItem = LiquidContainerRegistry.fillLiquidContainer(stack, current);
|
||||
|
||||
liquid = LiquidContainerRegistry.getLiquidForFilledItem(liquidItem);
|
||||
|
||||
if (liquid != null) {
|
||||
if (!entityplayer.capabilities.isCreativeMode) {
|
||||
if (current.stackSize > 1) {
|
||||
if (!entityplayer.inventory.addItemStackToInventory(liquidItem))
|
||||
return false;
|
||||
else {
|
||||
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, Liquid.consumeItem(current));
|
||||
}
|
||||
} else {
|
||||
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, Liquid.consumeItem(current));
|
||||
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem, liquidItem);
|
||||
}
|
||||
}
|
||||
tank.tank.drain(liquid.amount, true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The type of render function that is called for this block
|
||||
*/
|
||||
public int getRenderType()
|
||||
{
|
||||
return BlockRenderHelper.renderID;
|
||||
}
|
||||
|
||||
public int damageDropped(int meta)
|
||||
{
|
||||
if (meta < 4) { return 0; }
|
||||
return meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
|
||||
{
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if (meta < 4) new ItemStack(BasicUtilitiesMain.machine, 1, 0);
|
||||
// if(meta == 4) ;
|
||||
TileEntity ent = world.getBlockTileEntity(x, y, z);
|
||||
if (ent instanceof TileEntityTank) new ItemStack(BasicUtilitiesMain.itemTank, 1, ((TileEntityTank) ent).type.ordinal());
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World var1, int meta)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
if (meta < 4) { return new TileEntityPump(); }
|
||||
if (meta == 4)
|
||||
{
|
||||
// return new TileEntityCondenser();
|
||||
}
|
||||
if (meta == 5) { return new TileEntityTank(); }
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World var1)
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -4,11 +4,14 @@ import net.minecraft.block.material.Material;
|
|||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import dark.BasicUtilities.ItemRenderHelper;
|
||||
import dark.BasicUtilities.BasicUtilitiesMain;
|
||||
import dark.BasicUtilities.BlockRenderHelper;
|
||||
import dark.BasicUtilities.PipeTab;
|
||||
import dark.BasicUtilities.Tile.TileEntityRod;
|
||||
|
||||
|
@ -84,7 +87,11 @@ public class BlockRod extends universalelectricity.prefab.BlockMachine
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
|
||||
{
|
||||
return new ItemStack(BasicUtilitiesMain.rod,1,0);
|
||||
}
|
||||
/**
|
||||
* If this block doesn't render as an ordinary block it will return False
|
||||
* (examples: signs, buttons, stairs, etc)
|
||||
|
@ -99,7 +106,7 @@ public class BlockRod extends universalelectricity.prefab.BlockMachine
|
|||
*/
|
||||
public int getRenderType()
|
||||
{
|
||||
return ItemRenderHelper.renderID;
|
||||
return BlockRenderHelper.renderID;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,67 +2,117 @@ package dark.BasicUtilities;
|
|||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.ForgeHooksClient;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import dark.BasicUtilities.renders.models.ModelGearRod;
|
||||
import dark.BasicUtilities.renders.models.ModelGenerator;
|
||||
import dark.BasicUtilities.renders.models.ModelPump;
|
||||
import dark.BasicUtilities.renders.models.ModelLargePipe;
|
||||
import dark.BasicUtilities.renders.models.ModelLiquidTank;
|
||||
|
||||
public class ItemRenderHelper implements ISimpleBlockRenderingHandler {
|
||||
public static ItemRenderHelper instance = new ItemRenderHelper();
|
||||
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
private ModelPump modelPump = new ModelPump();
|
||||
private ModelGearRod modelRod = new ModelGearRod();
|
||||
private ModelGenerator modelGen = new ModelGenerator();
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
|
||||
if(block.blockID == BasicUtilitiesMain.machine.blockID && metadata < 4)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.0F, (float)1.1F, (float)0.0F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(BasicUtilitiesMain.textureFile+"pumps/Pump.png"));
|
||||
modelPump.renderMain(0.0725F);
|
||||
modelPump.renderC1(0.0725F);
|
||||
modelPump.renderC2(0.0725F);
|
||||
modelPump.renderC3(0.0725F);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
if(block.blockID == BasicUtilitiesMain.rod.blockID)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.0F, (float)1.5F, (float)0.0F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(BasicUtilitiesMain.textureFile+"mechanical/GearRod.png"));
|
||||
modelRod.render(0.0825F,0);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
if(block.blockID == BasicUtilitiesMain.generator.blockID)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.0F, (float)1.3F, (float)0.0F);
|
||||
GL11.glRotatef(180f, 0f, 0f, 1f);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(BasicUtilitiesMain.textureFile+"mechanical/Generator.png"));
|
||||
modelGen.RenderMain(0.0725F);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean shouldRender3DInInventory() {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getRenderId()
|
||||
{
|
||||
return renderID;
|
||||
}
|
||||
/**
|
||||
* special tanks to Mekanism github
|
||||
*/
|
||||
public class ItemRenderHelper implements IItemRenderer
|
||||
{
|
||||
static final ModelLiquidTank model = new ModelLiquidTank();
|
||||
static final ModelLargePipe SixPipe = new ModelLargePipe();
|
||||
|
||||
@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 (item.itemID == BasicUtilitiesMain.itemPipes.shiftedIndex)
|
||||
{
|
||||
this.renderPipeItem((RenderBlocks) data[0], item.getItemDamage(), type == ItemRenderType.EQUIPPED);
|
||||
}
|
||||
if (item.itemID == BasicUtilitiesMain.itemTank.shiftedIndex)
|
||||
{
|
||||
this.rendertankItem((RenderBlocks) data[0], item.getItemDamage(), type == ItemRenderType.EQUIPPED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void renderPipeItem(RenderBlocks renderer, int meta, boolean equ)
|
||||
{
|
||||
|
||||
GL11.glPushMatrix();
|
||||
String file = BasicUtilitiesMain.textureFile + "pipes/";
|
||||
switch (meta)
|
||||
{
|
||||
case 0:
|
||||
file += "SixSteamPipe.png";
|
||||
break;
|
||||
case 1:
|
||||
file += "SixWaterPipe.png";
|
||||
break;
|
||||
case 2:
|
||||
file += "SixLavaPipe.png";
|
||||
break;
|
||||
case 3:
|
||||
file += "SixOilPipe.png";
|
||||
break;
|
||||
default:
|
||||
file += "DefaultPipe.png";
|
||||
break;
|
||||
}
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(file));
|
||||
if (!equ)
|
||||
{
|
||||
GL11.glTranslatef(0.5F, -0.5F, 0.5F);
|
||||
SixPipe.renderRight();
|
||||
SixPipe.renderLeft();
|
||||
SixPipe.renderMiddle();
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glTranslatef(0.5F, -0.5F, 0.5F);
|
||||
SixPipe.renderFront();
|
||||
SixPipe.renderBack();
|
||||
SixPipe.renderMiddle();
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
public void rendertankItem(RenderBlocks renderer, int meta, boolean equ)
|
||||
{
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
String file = BasicUtilitiesMain.textureFile + "tanks/";
|
||||
switch (meta)
|
||||
{
|
||||
default:
|
||||
file += "LiquidTank.png";
|
||||
break;
|
||||
}
|
||||
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, FMLClientHandler.instance().getClient().renderEngine.getTexture(file));
|
||||
if (!equ)
|
||||
{
|
||||
GL11.glTranslatef(0.5F, -0.5F, 0.5F);
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glTranslatef(0.5F, -0.5F, 0.5F);
|
||||
}
|
||||
model.renderMain(null, 0.0625F);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import net.minecraft.util.MathHelper;
|
|||
import net.minecraft.world.World;
|
||||
import dark.BasicUtilities.BasicUtilitiesMain;
|
||||
import dark.BasicUtilities.PipeTab;
|
||||
import dark.BasicUtilities.Tile.TileEntityTank;
|
||||
|
||||
public class ItemMachine extends ItemBlock
|
||||
{
|
||||
|
@ -28,6 +29,12 @@ public class ItemMachine extends ItemBlock
|
|||
this.setCreativeTab(PipeTab.INSTANCE);
|
||||
}
|
||||
@Override
|
||||
public void addInformation(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag)
|
||||
{
|
||||
if(itemstack.getItemDamage() == 5 ) list.add("Max Vol of "+ TileEntityTank.LMax);
|
||||
|
||||
}
|
||||
@Override
|
||||
public int getIconFromDamage(int par1)
|
||||
{
|
||||
|
||||
|
@ -38,14 +45,6 @@ public class ItemMachine extends ItemBlock
|
|||
{
|
||||
return itemstack.getItemDamage() == 0 ? "Pump" :"Conderser";//itemstack.getItemDamage() == 4 ? "Condenser":"Unknown";
|
||||
}
|
||||
@Override
|
||||
public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
||||
{
|
||||
|
||||
par3List.add(new ItemStack(this, 1, 0));
|
||||
//par3List.add(new ItemStack(this, 1, 4));
|
||||
|
||||
}
|
||||
public String getTextureFile() {
|
||||
return BasicUtilitiesMain.ITEM_PNG;
|
||||
}
|
||||
|
|
|
@ -11,29 +11,39 @@ import universalelectricity.core.electricity.ElectricityConnections;
|
|||
import universalelectricity.core.electricity.ElectricityNetwork;
|
||||
import universalelectricity.core.implement.IConductor;
|
||||
import universalelectricity.core.vector.Vector3;
|
||||
import universalelectricity.prefab.implement.IRedstoneReceptor;
|
||||
import universalelectricity.prefab.network.IPacketReceiver;
|
||||
import universalelectricity.prefab.tile.TileEntityElectricityProducer;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
|
||||
import dark.BasicUtilities.BasicUtilitiesMain;
|
||||
import dark.BasicUtilities.Blocks.BlockEValve;
|
||||
import dark.BasicUtilities.Blocks.BlockGenerator;
|
||||
import dark.BasicUtilities.api.IForce;
|
||||
import dark.BasicUtilities.api.IReadOut;
|
||||
import dark.BasicUtilities.api.MHelper;
|
||||
import dark.Library.Util.MetaGroupingHelper;
|
||||
|
||||
public class TileEntityGen extends TileEntityElectricityProducer implements IPacketReceiver, IForce, IReadOut
|
||||
public class TileEntityGen extends TileEntityElectricityProducer implements IPacketReceiver, IForce, IReadOut, IRedstoneReceptor
|
||||
{
|
||||
public boolean isPowered = false;
|
||||
|
||||
ForgeDirection facing = ForgeDirection.DOWN;
|
||||
|
||||
public int force = 0;// current total force
|
||||
public int aForce = 0;// force this unit can apply
|
||||
public int pos = 0;// current pos of rotation max of 8
|
||||
public int disableTicks = 0;// time disabled
|
||||
public double genAmmount = 0;// watt output of machine
|
||||
public int tCount = 0;
|
||||
double WATTS_PER_TICK = 500;
|
||||
double joulesReceived = 0;
|
||||
double genAmmount = 0;// watt output of machine
|
||||
|
||||
IConductor[] wires =
|
||||
{ null, null, null, null, null, null };
|
||||
{ null, null, null, null, null, null };
|
||||
|
||||
public boolean needUpdate()
|
||||
{
|
||||
|
@ -42,16 +52,32 @@ public class TileEntityGen extends TileEntityElectricityProducer implements IPac
|
|||
|
||||
public void initiate()
|
||||
{
|
||||
ElectricityConnections.registerConnector(this, EnumSet.of(ForgeDirection.UP));
|
||||
ElectricityConnections.registerConnector(this, EnumSet.of(ForgeDirection.DOWN));
|
||||
this.registerConnections();
|
||||
this.worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, BasicUtilitiesMain.generator.blockID);
|
||||
}
|
||||
|
||||
public void registerConnections()
|
||||
{
|
||||
int notchMeta = MetaGroupingHelper.getFacingMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord));
|
||||
ForgeDirection facing = ForgeDirection.getOrientation(notchMeta).getOpposite();
|
||||
ForgeDirection[] dirs = new ForgeDirection[] { ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN };
|
||||
ElectricityConnections.registerConnector(this, EnumSet.of(facing.getOpposite()));
|
||||
for (int i = 2; i < 6; i++)
|
||||
{
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(i);
|
||||
if (dir != facing && dir != facing.getOpposite())
|
||||
{
|
||||
dirs[i] = dir;
|
||||
}
|
||||
}
|
||||
ElectricityConnections.registerConnector(this, EnumSet.of(dirs[0], dirs[1], dirs[2], dirs[3], dirs[4], dirs[5]));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity()
|
||||
{
|
||||
this.genAmmount = force / this.getVoltage();
|
||||
|
||||
this.genAmmount = Math.abs(force / this.getVoltage());
|
||||
// wire count update
|
||||
int wireCount = 0;
|
||||
TileEntity[] ents = MHelper.getSourounding(worldObj, xCoord, yCoord, zCoord);
|
||||
this.wires = new IConductor[6];
|
||||
|
@ -62,21 +88,89 @@ public class TileEntityGen extends TileEntityElectricityProducer implements IPac
|
|||
this.wires[i] = (IConductor) ents[i];
|
||||
wireCount++;
|
||||
}
|
||||
}// end wire count
|
||||
if (tCount-- <= 0)
|
||||
{
|
||||
BlockGenerator.checkForPower(worldObj, xCoord, yCoord, zCoord);
|
||||
tCount = 10;
|
||||
if (this.force > 0 || this.isPowered)
|
||||
{
|
||||
this.pos++;
|
||||
if (force < 0) pos -= 2;
|
||||
if (pos >= 8) pos = 0;
|
||||
}
|
||||
}
|
||||
int notchMeta = MetaGroupingHelper.getFacingMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord));
|
||||
facing = ForgeDirection.getOrientation(notchMeta).getOpposite();
|
||||
TileEntity ent = worldObj.getBlockTileEntity(xCoord + facing.offsetX, yCoord + facing.offsetY, zCoord + facing.offsetZ);
|
||||
|
||||
if (!this.worldObj.isRemote)
|
||||
{
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
//TODO set up for other sides
|
||||
if (i == 0 || i == 1)
|
||||
{
|
||||
ForgeDirection outputDirection = ForgeDirection.getOrientation(i);
|
||||
TileEntity outputTile = Vector3.getConnectorFromSide(this.worldObj, new Vector3(this.xCoord, this.yCoord, this.zCoord), outputDirection);
|
||||
|
||||
ElectricityNetwork network = ElectricityNetwork.getNetworkFromTileEntity(outputTile, outputDirection);
|
||||
this.outputEnergy(network, wires[i], outputTile);
|
||||
if (!this.isPowered)
|
||||
{
|
||||
|
||||
for (int i = 2; i < 6; i++)
|
||||
{
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(i);
|
||||
if (dir != facing && dir != facing.getOpposite())
|
||||
{
|
||||
|
||||
TileEntity outputTile = Vector3.getConnectorFromSide(this.worldObj, new Vector3(this), dir);
|
||||
ElectricityNetwork network = ElectricityNetwork.getNetworkFromTileEntity(outputTile, dir);
|
||||
if (network != null)
|
||||
{
|
||||
if (network.getRequest().getWatts() > 0)
|
||||
{
|
||||
network.startProducing(this, (this.genAmmount), this.getVoltage());
|
||||
}
|
||||
else
|
||||
{
|
||||
network.stopProducing(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 2; i < 6; i++)
|
||||
{
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(i);
|
||||
if (dir != facing && dir != facing.getOpposite())
|
||||
{
|
||||
TileEntity inputTile = Vector3.getTileEntityFromSide(this.worldObj, new Vector3(this), dir);
|
||||
ElectricityNetwork network = ElectricityNetwork.getNetworkFromTileEntity(inputTile, dir);
|
||||
if (network != null)
|
||||
{
|
||||
|
||||
if (this.joulesReceived < this.WATTS_PER_TICK)
|
||||
{
|
||||
network.startRequesting(this, WATTS_PER_TICK / this.getVoltage(), this.getVoltage());
|
||||
this.joulesReceived = Math.max(Math.min(this.joulesReceived + network.consumeElectricity(this).getWatts(), WATTS_PER_TICK), 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
network.stopRequesting(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.joulesReceived >= this.WATTS_PER_TICK - 50)
|
||||
{
|
||||
joulesReceived -= this.WATTS_PER_TICK;
|
||||
TileEntity rod = Vector3.getTileEntityFromSide(worldObj, new Vector3(this), facing);
|
||||
if (rod instanceof IForce && ((IForce) rod).canInputSide(facing))
|
||||
{
|
||||
((IForce) rod).applyForce(10000);
|
||||
}
|
||||
else if (rod instanceof IForce && ((IForce) rod).canOutputSide(facing))
|
||||
{
|
||||
((IForce) rod).applyForce(-10000);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
super.updateEntity();
|
||||
|
@ -114,21 +208,6 @@ public class TileEntityGen extends TileEntityElectricityProducer implements IPac
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* does the basic animation for the model
|
||||
*/
|
||||
public void doAnimation()
|
||||
{
|
||||
if (worldObj.isRemote)
|
||||
{
|
||||
this.pos += 1;
|
||||
if (pos >= 8 || pos < 0)
|
||||
{
|
||||
pos = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------
|
||||
// Data handling
|
||||
// ------------------------------
|
||||
|
@ -138,6 +217,7 @@ public class TileEntityGen extends TileEntityElectricityProducer implements IPac
|
|||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
// ------------------------------
|
||||
// Mechanics
|
||||
// ------------------------------
|
||||
|
@ -157,14 +237,14 @@ public class TileEntityGen extends TileEntityElectricityProducer implements IPac
|
|||
@Override
|
||||
public boolean canOutputSide(ForgeDirection side)
|
||||
{
|
||||
if (side == facing.getOpposite()) { return true; }
|
||||
if (side == facing) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInputSide(ForgeDirection side)
|
||||
{
|
||||
if (side == facing) { return true; }
|
||||
if (side == facing || side == facing.getOpposite()) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -206,7 +286,25 @@ public class TileEntityGen extends TileEntityElectricityProducer implements IPac
|
|||
@Override
|
||||
public String getMeterReading(EntityPlayer user, ForgeDirection side)
|
||||
{
|
||||
return this.force + "N Input " + this.genAmmount + "W output";
|
||||
if (this.isPowered) return "Outputing Force " + this.joulesReceived + "J "+"pos "+this.pos;
|
||||
return this.force + "N Input " + this.genAmmount + "W output "+"pos "+this.pos;
|
||||
}
|
||||
|
||||
// ------------------------------
|
||||
// redSand
|
||||
// ------------------------------
|
||||
@Override
|
||||
public void onPowerOn()
|
||||
{
|
||||
this.isPowered = true;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPowerOff()
|
||||
{
|
||||
this.isPowered = false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -52,22 +52,22 @@ public class TileEntityPump extends TileEntityElectricityReceiver implements IPa
|
|||
this.registerConnections();
|
||||
this.worldObj.notifyBlocksOfNeighborChange(this.xCoord, this.yCoord, this.zCoord, BasicUtilitiesMain.machine.blockID);
|
||||
}
|
||||
//ElectricityConnections.registerConnector(this, EnumSet.of(ForgeDirection.getOrientation(this.getBlockMetadata() - BlockBasicMachine.BATTERY_BOX_METADATA + 2), ForgeDirection.getOrientation(this.getBlockMetadata() - BlockBasicMachine.BATTERY_BOX_METADATA + 2).getOpposite()));
|
||||
|
||||
public void registerConnections()
|
||||
{
|
||||
int notchMeta = MetaGroupingHelper.getFacingMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord));
|
||||
ForgeDirection facing = ForgeDirection.getOrientation(notchMeta).getOpposite();
|
||||
ForgeDirection[] dirs = new ForgeDirection[]{ForgeDirection.UNKNOWN,ForgeDirection.UNKNOWN,ForgeDirection.UNKNOWN,ForgeDirection.UNKNOWN,ForgeDirection.UNKNOWN,ForgeDirection.UNKNOWN};
|
||||
ForgeDirection[] dirs = new ForgeDirection[] { ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN, ForgeDirection.UNKNOWN };
|
||||
ElectricityConnections.registerConnector(this, EnumSet.of(facing.getOpposite()));
|
||||
for(int i = 2; i<6;i++)
|
||||
for (int i = 2; i < 6; i++)
|
||||
{
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(i);
|
||||
if(dir != facing)
|
||||
if (dir != facing)
|
||||
{
|
||||
dirs[i] = dir;
|
||||
dirs[i] = dir;
|
||||
}
|
||||
}
|
||||
ElectricityConnections.registerConnector(this, EnumSet.of(dirs[0],dirs[1],dirs[2],dirs[3],dirs[4],dirs[5]));
|
||||
ElectricityConnections.registerConnector(this, EnumSet.of(dirs[0], dirs[1], dirs[2], dirs[3], dirs[4], dirs[5]));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -105,45 +105,52 @@ public class TileEntityPump extends TileEntityElectricityReceiver implements IPa
|
|||
}
|
||||
count = 40;
|
||||
}
|
||||
|
||||
if (this.tank.getLiquid() == null)
|
||||
{
|
||||
this.tank.setLiquid(Liquid.getStack(this.type, 1));
|
||||
}
|
||||
LiquidStack stack = tank.getLiquid();
|
||||
|
||||
if (stack != null)
|
||||
{
|
||||
|
||||
if (stack.amount >= 0)
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(i);
|
||||
TileEntity tile = worldObj.getBlockTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(i);
|
||||
TileEntity tile = worldObj.getBlockTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ);
|
||||
|
||||
if (tile instanceof ITankContainer)
|
||||
{
|
||||
int moved = ((ITankContainer) tile).fill(dir.getOpposite(), stack, true);
|
||||
tank.drain(moved, true);
|
||||
if (stack.amount <= 0) break;
|
||||
}
|
||||
if (tile instanceof ITankContainer)
|
||||
{
|
||||
int moved = ((ITankContainer) tile).fill(dir.getOpposite(), stack, true);
|
||||
tank.drain(moved, true);
|
||||
if (stack.amount <= 0) break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ForgeDirection inputDirection = ForgeDirection.getOrientation(this.getBlockMetadata() + 2);
|
||||
TileEntity inputTile = Vector3.getTileEntityFromSide(this.worldObj, new Vector3(this), inputDirection);
|
||||
int notchMeta = MetaGroupingHelper.getFacingMeta(worldObj.getBlockMetadata(xCoord, yCoord, zCoord));
|
||||
ForgeDirection facing = ForgeDirection.getOrientation(notchMeta).getOpposite();
|
||||
|
||||
ElectricityNetwork network = ElectricityNetwork.getNetworkFromTileEntity(inputTile, inputDirection);
|
||||
|
||||
if (network != null)
|
||||
for (int i = 2; i < 6; i++)
|
||||
{
|
||||
if (this.canPump(xCoord, yCoord - 1, zCoord))
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(i);
|
||||
if (dir != facing)
|
||||
{
|
||||
network.startRequesting(this, WATTS_PER_TICK / this.getVoltage(), this.getVoltage());
|
||||
this.joulesReceived = Math.max(Math.min(this.joulesReceived + network.consumeElectricity(this).getWatts(), WATTS_PER_TICK), 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
network.stopRequesting(this);
|
||||
TileEntity inputTile = Vector3.getTileEntityFromSide(this.worldObj, new Vector3(this), dir);
|
||||
ElectricityNetwork network = ElectricityNetwork.getNetworkFromTileEntity(inputTile, dir);
|
||||
if (network != null)
|
||||
{
|
||||
|
||||
if (this.canPump(xCoord, yCoord - 1, zCoord))
|
||||
{
|
||||
network.startRequesting(this, WATTS_PER_TICK / this.getVoltage(), this.getVoltage());
|
||||
this.joulesReceived = Math.max(Math.min(this.joulesReceived + network.consumeElectricity(this).getWatts(), WATTS_PER_TICK), 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
network.stopRequesting(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (this.joulesReceived >= this.WATTS_PER_TICK - 50 && this.canPump(xCoord, yCoord - 1, zCoord))
|
||||
|
@ -191,7 +198,7 @@ public class TileEntityPump extends TileEntityElectricityReceiver implements IPa
|
|||
if (bBlock == Block.lavaMoving.blockID || (bBlock == Block.lavaStill.blockID && meta != 0)) return false;
|
||||
if (bBlock == type.liquid.itemID && this.isValidLiquid(Block.blocksList[bBlock]))
|
||||
{
|
||||
FMLLog.info("pumping " + bellow.displayerName + " blockID:" + bBlock + " Meta:" + meta);
|
||||
//FMLLog.info("pumping " + bellow.displayerName + " blockID:" + bBlock + " Meta:" + meta);
|
||||
int f = this.tank.fill(Liquid.getStack(this.type, LiquidContainerRegistry.BUCKET_VOLUME), true);
|
||||
if (f > 0) worldObj.setBlockWithNotify(loc.intX(), loc.intY(), loc.intZ(), 0);
|
||||
percentPumped = 0;
|
||||
|
|
|
@ -20,18 +20,13 @@ public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce
|
|||
{
|
||||
|
||||
public int pos = 0;
|
||||
private int force = 0;
|
||||
private int pForce = 0;
|
||||
public int aForce = 0;
|
||||
public int forceMax = 1000;
|
||||
private int currentForce = 0;// current force given to rod
|
||||
private int pasteForce = 0;// last update force count
|
||||
public int appliedForce = 0;// force this rod can apply to other things
|
||||
private int tickCount = 0;
|
||||
private int posCount = 0;
|
||||
private int posCount = 0;// animation position 0-8
|
||||
|
||||
private ForgeDirection frontDir;
|
||||
private ForgeDirection backDir;
|
||||
|
||||
private TileEntity bb;
|
||||
private TileEntity ff;
|
||||
private ForgeDirection facing = ForgeDirection.UNKNOWN;
|
||||
|
||||
@Override
|
||||
public void updateEntity()
|
||||
|
@ -41,56 +36,28 @@ public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce
|
|||
{
|
||||
tickCount = 0;
|
||||
int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord);
|
||||
frontDir = ForgeDirection.getOrientation(meta);
|
||||
backDir = ForgeDirection.getOrientation(meta).getOpposite();
|
||||
bb = worldObj.getBlockTileEntity(xCoord + backDir.offsetX, yCoord, zCoord + backDir.offsetZ);
|
||||
ff = worldObj.getBlockTileEntity(xCoord + frontDir.offsetX, yCoord, zCoord + frontDir.offsetZ);
|
||||
if (force > 0)
|
||||
facing = ForgeDirection.getOrientation(meta);
|
||||
if (this.currentForce > 0)
|
||||
{
|
||||
int posCountA = (forceMax / force) & 10;
|
||||
if (posCount++ >= posCountA)
|
||||
{
|
||||
pos++;
|
||||
if (pos > 7)
|
||||
{
|
||||
pos = 0;
|
||||
}
|
||||
;
|
||||
}
|
||||
}
|
||||
if (bb instanceof TileEntityRod)
|
||||
{
|
||||
this.pos = ((IForce) bb).getAnimationPos();
|
||||
this.pos++;
|
||||
if (pos >= 8) pos = 0;
|
||||
}
|
||||
if (!worldObj.isRemote)
|
||||
{
|
||||
TileEntity ent = Vector3.getTileEntityFromSide(worldObj, new Vector3(this), facing);
|
||||
appliedForce = Math.max(currentForce - 20, 0);
|
||||
if (ent instanceof IForce && (((IForce) ent).canInputSide(facing)))
|
||||
{
|
||||
((IForce) ent).applyForce(appliedForce);
|
||||
}
|
||||
|
||||
if (ff instanceof IForce)
|
||||
{
|
||||
if (((IForce) ff).canInputSide(backDir))
|
||||
{
|
||||
((IForce) ff).applyForce(aForce);
|
||||
}
|
||||
}
|
||||
if (bb instanceof IForce)
|
||||
{
|
||||
if (((IForce) bb).canOutputSide(frontDir))
|
||||
{
|
||||
this.force = ((IForce) bb).getForce();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.force -= Math.max(force / 10, 0);
|
||||
}
|
||||
aForce = Math.max(force - 10, 0);
|
||||
if (this.force != this.pForce)
|
||||
if (this.currentForce != this.pasteForce)
|
||||
{
|
||||
Packet packet = PacketManager.getPacket(BasicUtilitiesMain.CHANNEL, this, new Object[]
|
||||
{ force });
|
||||
{ currentForce });
|
||||
PacketManager.sendPacketToClients(packet, worldObj, new Vector3(this), 40);
|
||||
}
|
||||
this.pForce = this.force;
|
||||
this.pasteForce = this.currentForce;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -98,27 +65,27 @@ public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce
|
|||
@Override
|
||||
public int getForceSide(ForgeDirection side)
|
||||
{
|
||||
return aForce;
|
||||
return appliedForce;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canOutputSide(ForgeDirection side)
|
||||
{
|
||||
if (side == frontDir) { return true; }
|
||||
if (side == facing || side == facing.getOpposite()) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInputSide(ForgeDirection side)
|
||||
{
|
||||
if (side == backDir) { return true; }
|
||||
if (side == facing || side == facing.getOpposite()) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int applyForce(int force)
|
||||
{
|
||||
this.force = force;
|
||||
this.currentForce = force;
|
||||
return force;
|
||||
}
|
||||
|
||||
|
@ -129,7 +96,7 @@ public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce
|
|||
{
|
||||
try
|
||||
{
|
||||
this.force = data.readInt();
|
||||
this.currentForce = data.readInt();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -149,12 +116,12 @@ public class TileEntityRod extends TileEntity implements IPacketReceiver, IForce
|
|||
public int getForce()
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
return this.force;
|
||||
return this.currentForce;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMeterReading(EntityPlayer user, ForgeDirection side)
|
||||
{
|
||||
return this.aForce + "N Out " + this.force + "N In";
|
||||
return this.appliedForce + "N Out " + this.currentForce + "N In";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,15 +27,14 @@ import dark.BasicUtilities.api.MHelper;
|
|||
|
||||
public class TileEntityTank extends TileEntity implements IPacketReceiver, IReadOut, ITankOutputer
|
||||
{
|
||||
public TileEntity[] cc =
|
||||
{ null, null, null, null, null, null };
|
||||
public TileEntity[] cc = { null, null, null, null, null, null };
|
||||
public Liquid type = Liquid.DEFUALT;
|
||||
public int LMax = 4;
|
||||
public static final int LMax = 4;
|
||||
private int count = 0;
|
||||
private int count2 = 0;
|
||||
|
||||
private boolean doUpdate = true;
|
||||
public LiquidTank tank = new LiquidTank(LiquidContainerRegistry.BUCKET_VOLUME * 4);
|
||||
public LiquidTank tank = new LiquidTank(LiquidContainerRegistry.BUCKET_VOLUME * LMax);
|
||||
|
||||
public void updateEntity()
|
||||
{
|
||||
|
@ -53,7 +52,7 @@ public class TileEntityTank extends TileEntity implements IPacketReceiver, IRead
|
|||
{
|
||||
this.tradeDown();
|
||||
this.tradeArround();
|
||||
|
||||
|
||||
Packet packet = PacketManager.getPacket(BasicUtilitiesMain.CHANNEL, this, new Object[] { type.ordinal(), liquid.amount });
|
||||
PacketManager.sendPacketToClients(packet, worldObj, new Vector3(this), 20);
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package dark.BasicUtilities.api;
|
|||
import dark.BasicUtilities.BasicUtilitiesMain;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockSand;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.liquids.ILiquid;
|
||||
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
||||
import net.minecraftforge.liquids.LiquidDictionary;
|
||||
|
@ -17,12 +18,12 @@ import net.minecraftforge.liquids.LiquidStack;
|
|||
public enum Liquid
|
||||
{
|
||||
// -1 == null || unused
|
||||
STEAM("Steam", LiquidDictionary.getOrCreateLiquid("steam", new LiquidStack(BasicUtilitiesMain.SteamBlock, 1)), true, 100),
|
||||
WATER("Water", LiquidDictionary.getOrCreateLiquid("water", new LiquidStack(Block.waterStill, 1)), false, 32),
|
||||
LAVA("Lava", LiquidDictionary.getOrCreateLiquid("lava", new LiquidStack(Block.lavaStill, 1)), false, 20),
|
||||
OIL("Oil", LiquidDictionary.getOrCreateLiquid("oil", new LiquidStack(BasicUtilitiesMain.oilStill, 1)), true, 32),
|
||||
FUEL("Fuel", LiquidDictionary.getOrCreateLiquid("oil", new LiquidStack(BasicUtilitiesMain.oilStill, 1)), false, 40),
|
||||
DEFUALT("Empty", LiquidDictionary.getOrCreateLiquid("air", new LiquidStack(0, 1)), false, 0);
|
||||
STEAM("Steam", LiquidDictionary.getOrCreateLiquid("Steam", new LiquidStack(BasicUtilitiesMain.SteamBlock, 1)), true, 100),
|
||||
WATER("Water", LiquidDictionary.getOrCreateLiquid("Water", new LiquidStack(Block.waterStill, 1)), false, 32),
|
||||
LAVA("Lava", LiquidDictionary.getOrCreateLiquid("Lava", new LiquidStack(Block.lavaStill, 1)), false, 20),
|
||||
OIL("Oil", LiquidDictionary.getOrCreateLiquid("Oil", new LiquidStack(BasicUtilitiesMain.oilStill, 1)), true, 32),
|
||||
FUEL("Fuel", LiquidDictionary.getOrCreateLiquid("Fuel", new LiquidStack(BasicUtilitiesMain.oilStill, 1)), false, 40),
|
||||
DEFUALT("Empty", LiquidDictionary.getOrCreateLiquid("Air", new LiquidStack(0, 1)), false, 0);
|
||||
|
||||
public final boolean doesFlaot;
|
||||
public final String displayerName;
|
||||
|
@ -79,8 +80,8 @@ public enum Liquid
|
|||
*/
|
||||
public static Liquid getLiquidTypeByBlock(int bBlock)
|
||||
{
|
||||
if(bBlock == Block.waterMoving.blockID) return Liquid.DEFUALT;
|
||||
if(bBlock == Block.lavaMoving.blockID) return Liquid.DEFUALT;
|
||||
if (bBlock == Block.waterMoving.blockID) return Liquid.DEFUALT;
|
||||
if (bBlock == Block.lavaMoving.blockID) return Liquid.DEFUALT;
|
||||
for (int i = 0; i < Liquid.values().length - 1; i++)
|
||||
{
|
||||
Liquid selected = Liquid.getLiquid(i);
|
||||
|
@ -122,4 +123,19 @@ public enum Liquid
|
|||
if (type.itemID == stack.itemID && type.itemMeta == stack.itemMeta) { return true; }
|
||||
return false;
|
||||
}
|
||||
|
||||
public static ItemStack consumeItem(ItemStack stack)
|
||||
{
|
||||
if (stack.stackSize == 1)
|
||||
{
|
||||
if (stack.getItem().hasContainerItem()) return stack.getItem().getContainerItemStack(stack);
|
||||
else return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
stack.splitStack(1);
|
||||
|
||||
return stack;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,38 +9,64 @@ import dark.BasicUtilities.BasicUtilitiesMain;
|
|||
import dark.BasicUtilities.Tile.TileEntityRod;
|
||||
import dark.BasicUtilities.renders.models.ModelGearRod;
|
||||
|
||||
|
||||
public class RenderGearRod extends TileEntitySpecialRenderer
|
||||
{
|
||||
private ModelGearRod model;
|
||||
public RenderGearRod()
|
||||
{
|
||||
model = new ModelGearRod();
|
||||
}
|
||||
public void renderAModelAt(TileEntityRod tileEntity, double d, double d1, double d2, float f)
|
||||
{
|
||||
bindTextureByName(BasicUtilitiesMain.textureFile+"mechanical/GearRod.png");
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F);
|
||||
GL11.glScalef(1.0F, -1F, -1F);
|
||||
int meta = tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||||
switch(meta)
|
||||
{
|
||||
case 0: GL11.glRotatef(90f, 1f, 0f, 0f);break;
|
||||
case 1: GL11.glRotatef(-90f, 1f, 0f, 0f);break;
|
||||
case 2:GL11.glRotatef(0f, 0f, 1f, 0f);break;
|
||||
case 5:GL11.glRotatef(90f, 0f, 1f, 0f);break;
|
||||
case 3:GL11.glRotatef(180f, 0f, 1f, 0f);break;
|
||||
case 4:GL11.glRotatef(270f, 0f, 1f, 0f);break;
|
||||
}
|
||||
model.render(0.0625F,tileEntity.pos);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
private ModelGearRod model;
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double var2, double var4, double var6, float var8) {
|
||||
this.renderAModelAt((TileEntityRod)tileEntity, var2, var4, var6, var8);
|
||||
}
|
||||
public RenderGearRod()
|
||||
{
|
||||
model = new ModelGearRod();
|
||||
}
|
||||
|
||||
public void renderAModelAt(TileEntityRod tileEntity, double d, double d1, double d2, float f)
|
||||
{
|
||||
bindTextureByName(BasicUtilitiesMain.textureFile + "mechanical/GearRod.png");
|
||||
GL11.glPushMatrix();
|
||||
|
||||
int meta = tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||||
if (meta == 0)
|
||||
{
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 0.5F, (float) d2 + 1.5F);
|
||||
}else if(meta == 1)
|
||||
{
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 0.5F, (float) d2 - 0.5F);
|
||||
}
|
||||
else
|
||||
{
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F);
|
||||
}
|
||||
GL11.glScalef(1.0F, -1F, -1F);
|
||||
switch (meta)
|
||||
{
|
||||
case 0:
|
||||
GL11.glRotatef(90f, 1f, 0f, 0f);
|
||||
break;
|
||||
case 1:
|
||||
GL11.glRotatef(-90f, 1f, 0f, 0f);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
GL11.glRotatef(0f, 0f, 1f, 0f);
|
||||
break;
|
||||
case 5:
|
||||
GL11.glRotatef(90f, 0f, 1f, 0f);
|
||||
break;
|
||||
case 3:
|
||||
GL11.glRotatef(180f, 0f, 1f, 0f);
|
||||
break;
|
||||
case 4:
|
||||
GL11.glRotatef(270f, 0f, 1f, 0f);
|
||||
break;
|
||||
}
|
||||
model.render(0.0625F, tileEntity.pos);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double var2, double var4, double var6, float var8)
|
||||
{
|
||||
this.renderAModelAt((TileEntityRod) tileEntity, var2, var4, var6, var8);
|
||||
}
|
||||
|
||||
}
|
|
@ -23,7 +23,7 @@ public class RenderGenerator extends TileEntitySpecialRenderer
|
|||
public void renderTileEntityAt(TileEntity tileEntity, double d, double d1, double d2, float d3) {
|
||||
bindTextureByName(BasicUtilitiesMain.textureFile+"mechanical/Generator.png");
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F);
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.45F, (float) d2 + 0.5F);
|
||||
GL11.glScalef(1.0F, -1F, -1F);
|
||||
int meta = tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord);
|
||||
switch(meta)
|
||||
|
@ -33,7 +33,7 @@ public class RenderGenerator extends TileEntitySpecialRenderer
|
|||
case 2:GL11.glRotatef(180f, 0f, 1f, 0f);break;
|
||||
case 3:GL11.glRotatef(270f, 0f, 1f, 0f);break;
|
||||
}
|
||||
model.RenderMain(0.0625F);
|
||||
model.render(tileEntity);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
|
|
|
@ -12,54 +12,70 @@ import dark.BasicUtilities.api.Liquid;
|
|||
import dark.BasicUtilities.renders.models.ModelLargePipe;
|
||||
import dark.BasicUtilities.renders.models.ModelPipe;
|
||||
|
||||
|
||||
public class RenderPipe extends TileEntitySpecialRenderer
|
||||
{
|
||||
Liquid type;
|
||||
int size = 6;
|
||||
|
||||
private ModelPipe fourPipe;
|
||||
private ModelLargePipe SixPipe;
|
||||
private ModelBase model = fourPipe;
|
||||
|
||||
public RenderPipe()
|
||||
{
|
||||
fourPipe = new ModelPipe();
|
||||
SixPipe = new ModelLargePipe();
|
||||
}
|
||||
private Liquid type = Liquid.DEFUALT;
|
||||
private ModelPipe fourPipe;
|
||||
private ModelLargePipe SixPipe;
|
||||
private TileEntity[] ents = new TileEntity[6];
|
||||
|
||||
public void renderAModelAt(TileEntityPipe tileEntity, double d, double d1, double d2, float f)
|
||||
{
|
||||
//Texture file
|
||||
|
||||
type = tileEntity.getType();
|
||||
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F);
|
||||
GL11.glScalef(1.0F, -1F, -1F);
|
||||
switch(type.ordinal())
|
||||
{
|
||||
case 0: bindTextureByName(BasicUtilitiesMain.textureFile+"pipes/SixSteamPipe.png");break;
|
||||
case 1: bindTextureByName(BasicUtilitiesMain.textureFile+"pipes/SixWaterPipe.png");break;
|
||||
case 2: bindTextureByName(BasicUtilitiesMain.textureFile+"pipes/SixLavaPipe.png");break;
|
||||
case 3: bindTextureByName(BasicUtilitiesMain.textureFile+"pipes/SixOilPipe.png");break;
|
||||
default:bindTextureByName(BasicUtilitiesMain.textureFile+"pipes/DefaultPipe.png"); break;
|
||||
}
|
||||
if(tileEntity.connectedBlocks[0] != null) SixPipe.renderBottom();
|
||||
if(tileEntity.connectedBlocks[1] != null) SixPipe.renderTop();
|
||||
if(tileEntity.connectedBlocks[3] != null) SixPipe.renderFront();
|
||||
if(tileEntity.connectedBlocks[2] != null) SixPipe.renderBack();
|
||||
if(tileEntity.connectedBlocks[5] != null) SixPipe.renderRight();
|
||||
if(tileEntity.connectedBlocks[4] != null) SixPipe.renderLeft();
|
||||
SixPipe.renderMiddle();
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
public RenderPipe()
|
||||
{
|
||||
fourPipe = new ModelPipe();
|
||||
SixPipe = new ModelLargePipe();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double var2, double var4, double var6, float var8) {
|
||||
this.renderAModelAt((TileEntityPipe)tileEntity, var2, var4, var6, var8);
|
||||
}
|
||||
public void renderAModelAt(TileEntity te, double d, double d1, double d2, float f)
|
||||
{
|
||||
// Texture file
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F);
|
||||
GL11.glScalef(1.0F, -1F, -1F);
|
||||
if (te instanceof TileEntityPipe)
|
||||
{
|
||||
type = ((TileEntityPipe) te).getType();
|
||||
ents = ((TileEntityPipe) te).connectedBlocks;
|
||||
}
|
||||
this.render(type, ents);
|
||||
GL11.glPopMatrix();
|
||||
|
||||
}
|
||||
|
||||
public void render(Liquid type, TileEntity[] ents)
|
||||
{
|
||||
|
||||
switch (type.ordinal())
|
||||
{
|
||||
case 0:
|
||||
bindTextureByName(BasicUtilitiesMain.textureFile + "pipes/SixSteamPipe.png");
|
||||
break;
|
||||
case 1:
|
||||
bindTextureByName(BasicUtilitiesMain.textureFile + "pipes/SixWaterPipe.png");
|
||||
break;
|
||||
case 2:
|
||||
bindTextureByName(BasicUtilitiesMain.textureFile + "pipes/SixLavaPipe.png");
|
||||
break;
|
||||
case 3:
|
||||
bindTextureByName(BasicUtilitiesMain.textureFile + "pipes/SixOilPipe.png");
|
||||
break;
|
||||
default:
|
||||
bindTextureByName(BasicUtilitiesMain.textureFile + "pipes/DefaultPipe.png");
|
||||
break;
|
||||
}
|
||||
if (ents[0] != null) SixPipe.renderBottom();
|
||||
if (ents[1] != null) SixPipe.renderTop();
|
||||
if (ents[3] != null) SixPipe.renderFront();
|
||||
if (ents[2] != null) SixPipe.renderBack();
|
||||
if (ents[5] != null) SixPipe.renderRight();
|
||||
if (ents[4] != null) SixPipe.renderLeft();
|
||||
SixPipe.renderMiddle();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double var2, double var4, double var6, float var8)
|
||||
{
|
||||
this.renderAModelAt((TileEntityPipe) tileEntity, var2, var4, var6, var8);
|
||||
}
|
||||
|
||||
}
|
|
@ -113,6 +113,7 @@ public class ModelGearRod extends ModelBase
|
|||
|
||||
Rod.rotateAngleZ= 45 * r;
|
||||
Rod2.rotateAngleZ= Rod.rotateAngleZ + 45;
|
||||
|
||||
Rod.render(f5);
|
||||
Rod2.render(f5);
|
||||
//TODO add rotation to rods
|
||||
|
|
|
@ -1,131 +1,194 @@
|
|||
// Date: 8/27/2012 3:20:21 PM
|
||||
// Date: 12/23/2012 8:44:55 PM
|
||||
// Template version 1.1
|
||||
// Java generated by Techne
|
||||
// Keep in mind that you still need to fill in some blanks
|
||||
// - ZeuX
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
package dark.BasicUtilities.renders.models;
|
||||
|
||||
import cpw.mods.fml.common.FMLLog;
|
||||
import dark.BasicUtilities.Tile.TileEntityGen;
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class ModelGenerator extends ModelBase
|
||||
{
|
||||
//fields
|
||||
ModelRenderer BasePlate;
|
||||
ModelRenderer LeftConnection;
|
||||
ModelRenderer RightConnection;
|
||||
ModelRenderer Mid;
|
||||
ModelRenderer Mid2;
|
||||
ModelRenderer front;
|
||||
ModelRenderer front2;
|
||||
ModelRenderer front3;
|
||||
ModelRenderer Mid3;
|
||||
ModelRenderer FrontConnector;
|
||||
|
||||
public ModelGenerator()
|
||||
{
|
||||
textureWidth = 128;
|
||||
textureHeight = 128;
|
||||
|
||||
BasePlate = new ModelRenderer(this, 0, 0);
|
||||
BasePlate.addBox(-7F, 0F, -7F, 14, 1, 14);
|
||||
BasePlate.setRotationPoint(0F, 23F, 0F);
|
||||
BasePlate.setTextureSize(128, 128);
|
||||
BasePlate.mirror = true;
|
||||
setRotation(BasePlate, 0F, 0F, 0F);
|
||||
LeftConnection = new ModelRenderer(this, 0, 112);
|
||||
LeftConnection.addBox(-2F, -2F, -2F, 2, 4, 4);
|
||||
LeftConnection.setRotationPoint(-6F, 16F, 0F);
|
||||
LeftConnection.setTextureSize(128, 128);
|
||||
LeftConnection.mirror = true;
|
||||
setRotation(LeftConnection, 0F, 0F, 0F);
|
||||
RightConnection = new ModelRenderer(this, 12, 112);
|
||||
RightConnection.addBox(0F, -2F, -2F, 2, 4, 4);
|
||||
RightConnection.setRotationPoint(6F, 16F, 0F);
|
||||
RightConnection.setTextureSize(128, 128);
|
||||
RightConnection.mirror = true;
|
||||
setRotation(RightConnection, 0F, 0F, 0F);
|
||||
Mid = new ModelRenderer(this, 0, 29);
|
||||
Mid.addBox(-4F, 0F, -6F, 8, 12, 12);
|
||||
Mid.setRotationPoint(0F, 10F, 0F);
|
||||
Mid.setTextureSize(128, 128);
|
||||
Mid.mirror = true;
|
||||
setRotation(Mid, 0F, 0F, 0F);
|
||||
Mid2 = new ModelRenderer(this, 0, 53);
|
||||
Mid2.addBox(-6F, 0F, -6F, 12, 8, 12);
|
||||
Mid2.setRotationPoint(0F, 12F, 0F);
|
||||
Mid2.setTextureSize(128, 128);
|
||||
Mid2.mirror = true;
|
||||
setRotation(Mid2, 0F, 0F, 0F);
|
||||
front = new ModelRenderer(this, 20, 15);
|
||||
front.addBox(-2F, -4F, 0F, 4, 8, 1);
|
||||
front.setRotationPoint(0F, 16F, -7F);
|
||||
front.setTextureSize(128, 128);
|
||||
front.mirror = true;
|
||||
setRotation(front, 0F, 0F, 0F);
|
||||
front2 = new ModelRenderer(this, 0, 24);
|
||||
front2.addBox(-4F, -2F, 0F, 8, 4, 1);
|
||||
front2.setRotationPoint(0F, 16F, -7F);
|
||||
front2.setTextureSize(128, 128);
|
||||
front2.mirror = true;
|
||||
setRotation(front2, 0F, 0F, 0F);
|
||||
front3 = new ModelRenderer(this, 0, 16);
|
||||
front3.addBox(-3F, -3F, 0F, 6, 6, 1);
|
||||
front3.setRotationPoint(0F, 16F, -7F);
|
||||
front3.setTextureSize(128, 128);
|
||||
front3.mirror = true;
|
||||
setRotation(front3, 0F, 0F, 0F);
|
||||
Mid3 = new ModelRenderer(this, 40, 29);
|
||||
Mid3.addBox(-5F, -1F, -6F, 10, 10, 12);
|
||||
Mid3.setRotationPoint(0F, 12F, 0F);
|
||||
Mid3.setTextureSize(128, 128);
|
||||
Mid3.mirror = true;
|
||||
setRotation(Mid3, 0F, 0F, 0F);
|
||||
FrontConnector = new ModelRenderer(this, 0, 120);
|
||||
FrontConnector.addBox(-2F, 0F, -2F, 4, 4, 4);
|
||||
FrontConnector.setRotationPoint(0F, 14F, -6F);
|
||||
FrontConnector.setTextureSize(128, 128);
|
||||
FrontConnector.mirror = true;
|
||||
setRotation(FrontConnector, 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);
|
||||
|
||||
}
|
||||
public void RenderMain(float f5)
|
||||
{
|
||||
BasePlate.render(f5);
|
||||
Mid.render(f5);
|
||||
Mid2.render(f5);
|
||||
front.render(f5);
|
||||
front2.render(f5);
|
||||
front3.render(f5);
|
||||
Mid3.render(f5);
|
||||
FrontConnector.render(f5);
|
||||
}
|
||||
public void RenderLeft(float f5)
|
||||
{
|
||||
LeftConnection.render(f5);
|
||||
}
|
||||
public void RenderRight(float f5)
|
||||
{
|
||||
RightConnection.render(f5);
|
||||
}
|
||||
private void setRotation(ModelRenderer model, float x, float y, float z)
|
||||
{
|
||||
model.rotateAngleX = x;
|
||||
model.rotateAngleY = y;
|
||||
model.rotateAngleZ = z;
|
||||
}
|
||||
// fields
|
||||
ModelRenderer Bottom;
|
||||
ModelRenderer Left;
|
||||
ModelRenderer CenterRod;
|
||||
ModelRenderer Right;
|
||||
ModelRenderer RightTopCorner;
|
||||
ModelRenderer LeftTopCorner;
|
||||
ModelRenderer LeftBottomCorner;
|
||||
ModelRenderer RightBottomCorner;
|
||||
ModelRenderer BottomCase;
|
||||
ModelRenderer TopCase;
|
||||
ModelRenderer LeftBrace;
|
||||
ModelRenderer RightBrace;
|
||||
ModelRenderer BackBracer;
|
||||
ModelRenderer FrontBracer;
|
||||
ModelRenderer FrontDisc;
|
||||
ModelRenderer FrontDisc2;
|
||||
ModelRenderer BackDisc;
|
||||
ModelRenderer BackDisc2;
|
||||
|
||||
public ModelGenerator()
|
||||
{
|
||||
textureWidth = 128;
|
||||
textureHeight = 128;
|
||||
|
||||
Bottom = new ModelRenderer(this, 0, 74);
|
||||
Bottom.addBox(-7F, -1F, -7F, 14, 2, 14);
|
||||
Bottom.setRotationPoint(0F, 23F, 0F);
|
||||
Bottom.setTextureSize(128, 128);
|
||||
Bottom.mirror = true;
|
||||
setRotation(Bottom, 0F, 0F, 0F);
|
||||
Left = new ModelRenderer(this, 17, 49);
|
||||
Left.addBox(-1F, -4F, -3F, 2, 8, 6);
|
||||
Left.setRotationPoint(7F, 15F, 0F);
|
||||
Left.setTextureSize(128, 128);
|
||||
Left.mirror = true;
|
||||
setRotation(Left, 0F, 0F, 0F);
|
||||
CenterRod = new ModelRenderer(this, 62, 0);
|
||||
CenterRod.addBox(-1.5F, -1.5F, -8F, 3, 3, 16);
|
||||
CenterRod.setRotationPoint(0F, 15F, 0F);
|
||||
CenterRod.setTextureSize(128, 128);
|
||||
CenterRod.mirror = true;
|
||||
setRotation(CenterRod, 0F, 0F, 0F);
|
||||
Right = new ModelRenderer(this, 0, 49);
|
||||
Right.addBox(-1F, -4F, -3F, 2, 8, 6);
|
||||
Right.setRotationPoint(-7F, 15F, 0F);
|
||||
Right.setTextureSize(128, 128);
|
||||
Right.mirror = true;
|
||||
setRotation(Right, 0F, 0F, 0F);
|
||||
RightTopCorner = new ModelRenderer(this, 0, 35);
|
||||
RightTopCorner.addBox(-2F, -6F, -3F, 2, 6, 6);
|
||||
RightTopCorner.setRotationPoint(-7F, 13F, 0F);
|
||||
RightTopCorner.setTextureSize(128, 128);
|
||||
RightTopCorner.mirror = true;
|
||||
setRotation(RightTopCorner, 0F, 0F, 1.047198F);
|
||||
LeftTopCorner = new ModelRenderer(this, 17, 35);
|
||||
LeftTopCorner.addBox(0F, -6F, -3F, 2, 6, 6);
|
||||
LeftTopCorner.setRotationPoint(7F, 13F, 0F);
|
||||
LeftTopCorner.setTextureSize(128, 128);
|
||||
LeftTopCorner.mirror = true;
|
||||
setRotation(LeftTopCorner, 0F, 0F, -1.047198F);
|
||||
LeftBottomCorner = new ModelRenderer(this, 17, 91);
|
||||
LeftBottomCorner.addBox(0F, 0F, -3F, 2, 6, 6);
|
||||
LeftBottomCorner.setRotationPoint(7F, 17F, 0F);
|
||||
LeftBottomCorner.setTextureSize(128, 128);
|
||||
LeftBottomCorner.mirror = true;
|
||||
setRotation(LeftBottomCorner, 0F, 0F, 1.047198F);
|
||||
RightBottomCorner = new ModelRenderer(this, 0, 91);
|
||||
RightBottomCorner.addBox(-2F, 0F, -3F, 2, 6, 6);
|
||||
RightBottomCorner.setRotationPoint(-7F, 17F, 0F);
|
||||
RightBottomCorner.setTextureSize(128, 128);
|
||||
RightBottomCorner.mirror = true;
|
||||
setRotation(RightBottomCorner, 0F, 0F, -1.047198F);
|
||||
BottomCase = new ModelRenderer(this, 3, 64);
|
||||
BottomCase.addBox(0F, 0F, -3F, 6, 2, 6);
|
||||
BottomCase.setRotationPoint(-3F, 20F, 0F);
|
||||
BottomCase.setTextureSize(128, 128);
|
||||
BottomCase.mirror = true;
|
||||
setRotation(BottomCase, 0F, 0F, 0F);
|
||||
TopCase = new ModelRenderer(this, 3, 26);
|
||||
TopCase.addBox(0F, 0F, -3F, 6, 2, 6);
|
||||
TopCase.setRotationPoint(-3F, 8F, 0F);
|
||||
TopCase.setTextureSize(128, 128);
|
||||
TopCase.mirror = true;
|
||||
setRotation(TopCase, 0F, 0F, 0F);
|
||||
LeftBrace = new ModelRenderer(this, 44, 64);
|
||||
LeftBrace.addBox(0F, 0F, -1.5F, 3, 6, 3);
|
||||
LeftBrace.setRotationPoint(3F, 17F, 0F);
|
||||
LeftBrace.setTextureSize(128, 128);
|
||||
LeftBrace.mirror = true;
|
||||
setRotation(LeftBrace, 0F, 0F, 0F);
|
||||
RightBrace = new ModelRenderer(this, 31, 64);
|
||||
RightBrace.addBox(0F, 0F, -1.5F, 3, 6, 3);
|
||||
RightBrace.setRotationPoint(-6F, 17F, 0F);
|
||||
RightBrace.setTextureSize(128, 128);
|
||||
RightBrace.mirror = true;
|
||||
setRotation(RightBrace, 0F, 0F, 0F);
|
||||
BackBracer = new ModelRenderer(this, 50, 0);
|
||||
BackBracer.addBox(-2F, -3F, 5F, 4, 10, 1);
|
||||
BackBracer.setRotationPoint(0F, 15F, 0F);
|
||||
BackBracer.setTextureSize(128, 128);
|
||||
BackBracer.mirror = true;
|
||||
setRotation(BackBracer, 0F, 0F, 0F);
|
||||
FrontBracer = new ModelRenderer(this, 50, 0);
|
||||
FrontBracer.addBox(-2F, -3F, -6F, 4, 10, 1);
|
||||
FrontBracer.setRotationPoint(0F, 15F, 0F);
|
||||
FrontBracer.setTextureSize(128, 128);
|
||||
FrontBracer.mirror = true;
|
||||
setRotation(FrontBracer, 0F, 0F, 0F);
|
||||
FrontDisc = new ModelRenderer(this, 65, 25);
|
||||
FrontDisc.addBox(-5F, -5F, -5F, 10, 10, 2);
|
||||
FrontDisc.setRotationPoint(0F, 15F, 0F);
|
||||
FrontDisc.setTextureSize(128, 128);
|
||||
FrontDisc.mirror = true;
|
||||
setRotation(FrontDisc, 0F, 0F, 0.7853982F);
|
||||
FrontDisc2 = new ModelRenderer(this, 65, 25);
|
||||
FrontDisc2.addBox(-5F, -5F, -5F, 10, 10, 2);
|
||||
FrontDisc2.setRotationPoint(0F, 15F, 0F);
|
||||
FrontDisc2.setTextureSize(128, 128);
|
||||
FrontDisc2.mirror = true;
|
||||
setRotation(FrontDisc2, 0F, 0F, 0F);
|
||||
BackDisc = new ModelRenderer(this, 65, 25);
|
||||
BackDisc.addBox(-5F, -5F, 3F, 10, 10, 2);
|
||||
BackDisc.setRotationPoint(0F, 15F, 0F);
|
||||
BackDisc.setTextureSize(128, 128);
|
||||
BackDisc.mirror = true;
|
||||
setRotation(BackDisc, 0F, 0F, 0.7853982F);
|
||||
BackDisc2 = new ModelRenderer(this, 65, 25);
|
||||
BackDisc2.addBox(-5F, -5F, 3F, 10, 10, 2);
|
||||
BackDisc2.setRotationPoint(0F, 15F, 0F);
|
||||
BackDisc2.setTextureSize(128, 128);
|
||||
BackDisc2.mirror = true;
|
||||
setRotation(BackDisc2, 0F, 0F, 0F);
|
||||
}
|
||||
|
||||
public void render(TileEntity ent)
|
||||
{
|
||||
float f5 = 0.0625F;
|
||||
// noMoving renderParts
|
||||
Bottom.render(f5);
|
||||
Left.render(f5);
|
||||
CenterRod.render(f5);
|
||||
Right.render(f5);
|
||||
RightTopCorner.render(f5);
|
||||
LeftTopCorner.render(f5);
|
||||
LeftBottomCorner.render(f5);
|
||||
RightBottomCorner.render(f5);
|
||||
BottomCase.render(f5);
|
||||
TopCase.render(f5);
|
||||
LeftBrace.render(f5);
|
||||
RightBrace.render(f5);
|
||||
BackBracer.render(f5);
|
||||
FrontBracer.render(f5);
|
||||
// Moving parts
|
||||
float pos = 0;
|
||||
if (ent instanceof TileEntityGen) pos = 45 * ((TileEntityGen) ent).getAnimationPos();
|
||||
|
||||
//change
|
||||
FrontDisc.rotateAngleZ = (float) Math.toRadians(pos);
|
||||
FrontDisc2.rotateAngleZ = (float) Math.toRadians(pos+45);
|
||||
BackDisc.rotateAngleZ = (float) Math.toRadians(pos);
|
||||
BackDisc2.rotateAngleZ = (float) Math.toRadians(pos+45);
|
||||
|
||||
FrontDisc.render(f5);
|
||||
FrontDisc2.render(f5);
|
||||
BackDisc.render(f5);
|
||||
BackDisc2.render(f5);
|
||||
}
|
||||
|
||||
private void setRotation(ModelRenderer model, float x, float y, float z)
|
||||
{
|
||||
model.rotateAngleX = x;
|
||||
model.rotateAngleY = y;
|
||||
model.rotateAngleZ = z;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ package dark.BasicUtilities.renders.models;
|
|||
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import dark.BasicUtilities.Tile.TileEntityTank;
|
||||
import dark.BasicUtilities.Tile.TileEntityPipe;
|
||||
|
||||
|
@ -332,8 +333,13 @@ public class ModelLiquidTank extends ModelBase
|
|||
setRotation(CCTop, 0F, 0F, 0F);
|
||||
}
|
||||
|
||||
public void renderMain(TileEntityTank te, float f5)
|
||||
public void renderMain(TileEntity tee, float f5)
|
||||
{
|
||||
TileEntity[] ents = new TileEntity[6];
|
||||
if(tee instanceof TileEntityTank)
|
||||
{
|
||||
ents = ((TileEntityTank) tee).cc;
|
||||
}
|
||||
// render regardless of sides
|
||||
Mid.render(f5);
|
||||
Corner.render(f5);
|
||||
|
@ -351,7 +357,7 @@ public class ModelLiquidTank extends ModelBase
|
|||
CCTop.render(f5);
|
||||
CCBottom.render(f5);
|
||||
// Front
|
||||
if (te.cc[2] instanceof TileEntityPipe)
|
||||
if (ents[2] instanceof TileEntityPipe)
|
||||
{
|
||||
CCFront.render(f5);
|
||||
}
|
||||
|
@ -365,7 +371,7 @@ public class ModelLiquidTank extends ModelBase
|
|||
GuageL.render(f5);
|
||||
}
|
||||
// back
|
||||
if (te.cc[3] instanceof TileEntityPipe)
|
||||
if (ents[3] instanceof TileEntityPipe)
|
||||
{
|
||||
CCBack.render(f5);
|
||||
}
|
||||
|
@ -379,7 +385,7 @@ public class ModelLiquidTank extends ModelBase
|
|||
GuageL3.render(f5);
|
||||
}
|
||||
// right
|
||||
if (te.cc[4] instanceof TileEntityPipe)
|
||||
if (ents[4] instanceof TileEntityPipe)
|
||||
{
|
||||
CCRight.render(f5);
|
||||
}
|
||||
|
@ -393,7 +399,7 @@ public class ModelLiquidTank extends ModelBase
|
|||
GuageL4.render(f5);
|
||||
}
|
||||
// left
|
||||
if (te.cc[5] instanceof TileEntityPipe)
|
||||
if (ents[5] instanceof TileEntityPipe)
|
||||
{
|
||||
CCLeft.render(f5);
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 643 B |
Loading…
Reference in a new issue