diff --git a/src/common/aa/DevProxy.java b/src/common/aa/DevProxy.java index 12df3e46..80d12498 100644 --- a/src/common/aa/DevProxy.java +++ b/src/common/aa/DevProxy.java @@ -6,7 +6,7 @@ import net.minecraft.src.World; import net.minecraftforge.client.MinecraftForgeClient; import basicpipes.BasicPipesMain; import basicpipes.pipes.TileEntityPipe; -import basicpipes.pipes.TileEntityPump; +import basicpipes.pumps.TileEntityPump; import cpw.mods.fml.common.Side; import cpw.mods.fml.common.asm.SideOnly; import cpw.mods.fml.common.network.IGuiHandler; diff --git a/src/common/basicpipes/BasicPipesMain.java b/src/common/basicpipes/BasicPipesMain.java index bd0b9f50..3063e8e3 100644 --- a/src/common/basicpipes/BasicPipesMain.java +++ b/src/common/basicpipes/BasicPipesMain.java @@ -2,12 +2,12 @@ package basicpipes; import java.io.File; import basicpipes.pipes.BlockPipe; -import basicpipes.pipes.BlockMachine; import basicpipes.pipes.ItemGuage; import basicpipes.pipes.ItemParts; import basicpipes.pipes.ItemPipe; -import basicpipes.pipes.TileEntityPump; import basicpipes.pipes.api.Liquid; +import basicpipes.pumps.BlockMachine; +import basicpipes.pumps.TileEntityPump; import net.minecraft.client.Minecraft; import net.minecraft.src.Block; @@ -41,7 +41,7 @@ public class BasicPipesMain{ public static int pipeID = configurationProperties(); private static int partID; private static int ppipeID; - private static int machineID; + public static int machineID; private static int toolID; public static Block pipe = new BlockPipe(pipeID).setBlockName("pipe"); public static Block machine = new BlockMachine(machineID).setBlockName("pump"); @@ -68,7 +68,7 @@ public class BasicPipesMain{ { proxy.preInit(); GameRegistry.registerBlock(pipe); - GameRegistry.registerBlock(machine); + GameRegistry.registerBlock(machine,basicpipes.pumps.ItemMachine.class); } @Init public void load(FMLInitializationEvent evt) diff --git a/src/common/basicpipes/PipeProxy.java b/src/common/basicpipes/PipeProxy.java index 69ad27f9..b82d9883 100644 --- a/src/common/basicpipes/PipeProxy.java +++ b/src/common/basicpipes/PipeProxy.java @@ -1,7 +1,7 @@ package basicpipes; import basicpipes.pipes.TileEntityPipe; -import basicpipes.pipes.TileEntityPump; +import basicpipes.pumps.TileEntityPump; import net.minecraft.src.EntityPlayer; import net.minecraft.src.TileEntity; import net.minecraft.src.World; diff --git a/src/common/basicpipes/pipes/api/IHeatConsumer.java b/src/common/basicpipes/pipes/api/IHeatConsumer.java deleted file mode 100644 index 1c5a29e3..00000000 --- a/src/common/basicpipes/pipes/api/IHeatConsumer.java +++ /dev/null @@ -1,22 +0,0 @@ -package basicpipes.pipes.api; - -/** - * The IHeatConsumer interface is an interface that must be applied to all tile entities that can receive heat joules. - * @author Darkguardsman code sourced from Calclavia - * - */ -public interface IHeatConsumer -{ - /** - * onRecieveSteam is called whenever a Steam transmitter sends a packet of electricity to the consumer (which is this block). - * @param vol - The amount of steam this block received - * @param side - The side of the block in which the electricity came from. - * @return vol - The amount of rejected steam to be sent to back - */ - public float onReceiveHeat(float jouls, int side); - - /** - * @return Return the stored electricity in this consumer. Called by conductors to spread electricity to this unit. - */ - public float getStoredHeat(); -} \ No newline at end of file diff --git a/src/common/basicpipes/pipes/api/Liquid.java b/src/common/basicpipes/pipes/api/Liquid.java index 705b5840..e8c6f5f5 100644 --- a/src/common/basicpipes/pipes/api/Liquid.java +++ b/src/common/basicpipes/pipes/api/Liquid.java @@ -1,5 +1,6 @@ package basicpipes.pipes.api; + import universalelectricity.basiccomponents.BasicComponents; import net.minecraft.src.Block; import net.minecraftforge.common.ForgeDirection; @@ -48,4 +49,15 @@ private Liquid(String name,boolean flame,boolean gas,int block, int Moving) } return DEFUALT; } +public static Liquid getLiquidByBlock(int bBlock) { + for(int i = 0; i < Liquid.values().length;i++) + { + Liquid selected = Liquid.getLiquid(i); + if(bBlock == selected.Still) + { + return selected; + } + } + return Liquid.DEFUALT; +} } diff --git a/src/common/basicpipes/pipes/BlockMachine.java b/src/common/basicpipes/pumps/BlockMachine.java similarity index 89% rename from src/common/basicpipes/pipes/BlockMachine.java rename to src/common/basicpipes/pumps/BlockMachine.java index 94b9c4fe..b37d5f2a 100644 --- a/src/common/basicpipes/pipes/BlockMachine.java +++ b/src/common/basicpipes/pumps/BlockMachine.java @@ -1,4 +1,4 @@ -package basicpipes.pipes; +package basicpipes.pumps; import java.util.ArrayList; import net.minecraft.src.*; @@ -48,14 +48,8 @@ public class BlockMachine extends BlockContainer //Per tick public int conductorCapacity() { - return 10; + return 1; } - public void addCreativeItems(ArrayList itemList) - { - - itemList.add(new ItemStack(this, 1,0)); - } - @Override public TileEntity createNewTileEntity(World var1,int meta) { // TODO Auto-generated method stub diff --git a/src/common/basicpipes/pumps/ItemMachine.java b/src/common/basicpipes/pumps/ItemMachine.java new file mode 100644 index 00000000..a8b37a81 --- /dev/null +++ b/src/common/basicpipes/pumps/ItemMachine.java @@ -0,0 +1,125 @@ +package basicpipes.pumps; + +import java.util.List; + +import basicpipes.BasicPipesMain; + +import net.minecraft.src.Block; +import net.minecraft.src.CreativeTabs; +import net.minecraft.src.EntityPlayer; +import net.minecraft.src.Item; +import net.minecraft.src.ItemBlock; +import net.minecraft.src.ItemStack; +import net.minecraft.src.MathHelper; +import net.minecraft.src.TileEntity; +import net.minecraft.src.World; + +public class ItemMachine extends ItemBlock +{ + int index = 26; + private int spawnID; + + public ItemMachine(int id) + { + super(id); + this.setMaxDamage(0); + this.setHasSubtypes(true); + this.setIconIndex(10); + this.setItemName("Machine"); + this.setTabToDisplayOn(CreativeTabs.tabRedstone); + } + @Override + public int getIconFromDamage(int par1) + { + + return par1+index; + } + @Override + public String getItemNameIS(ItemStack itemstack) + { + return itemstack.getItemDamage() == 0 ? "Pump" :"Condenser"; + } + @Override + public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) + { + + par3List.add(new ItemStack(this, 1, 0)); + + } + public String getTextureFile() { + return BasicPipesMain.textureFile+"/Items.png"; + } + @Override + public String getItemName() + { + return "Machines"; + } + @Override + public boolean tryPlaceIntoWorld(ItemStack itemStack, EntityPlayer player, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) + { + int blockID = par3World.getBlockId(par4, par5, par6); + spawnID = BasicPipesMain.machineID; + if (blockID == Block.snow.blockID) + { + par7 = 1; + } + else if (blockID != Block.vine.blockID && blockID != Block.tallGrass.blockID && blockID != Block.deadBush.blockID) + { + if (par7 == 0) + { + --par5; + } + + if (par7 == 1) + { + ++par5; + } + + if (par7 == 2) + { + --par6; + } + + if (par7 == 3) + { + ++par6; + } + + if (par7 == 4) + { + --par4; + } + + if (par7 == 5) + { + ++par4; + } + } + + if (BasicPipesMain.pipe.canPlaceBlockAt(par3World,par4,par5,par6)) + { + Block var9 = Block.blocksList[this.spawnID]; + par3World.editingBlocks = true; + int angle = MathHelper.floor_double((double)(player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + if (par3World.setBlockAndMetadataWithNotify(par4, par5, par6, var9.blockID,angle+itemStack.getItemDamage())) + { + if (par3World.getBlockId(par4, par5, par6) == var9.blockID) + { + + Block.blocksList[this.spawnID].onBlockAdded(par3World, par4, par5, par6); + Block.blocksList[this.spawnID].onBlockPlacedBy(par3World, par4, par5, par6, player); + TileEntity blockEntity = par3World.getBlockTileEntity(par4, par5, par6); + + } + + --itemStack.stackSize; + par3World.editingBlocks = false; + return true; + } + } + par3World.editingBlocks = false; + return false; + } + + +} \ No newline at end of file diff --git a/src/common/basicpipes/pipes/TileEntityCondenser.java b/src/common/basicpipes/pumps/TileEntityCondenser.java similarity index 99% rename from src/common/basicpipes/pipes/TileEntityCondenser.java rename to src/common/basicpipes/pumps/TileEntityCondenser.java index 0d042c99..951d8758 100644 --- a/src/common/basicpipes/pipes/TileEntityCondenser.java +++ b/src/common/basicpipes/pumps/TileEntityCondenser.java @@ -1,4 +1,4 @@ -package basicpipes.pipes; +package basicpipes.pumps; import basicpipes.pipes.api.ILiquidProducer; import basicpipes.pipes.api.Liquid; diff --git a/src/common/basicpipes/pipes/TileEntityPump.java b/src/common/basicpipes/pumps/TileEntityPump.java similarity index 68% rename from src/common/basicpipes/pipes/TileEntityPump.java rename to src/common/basicpipes/pumps/TileEntityPump.java index 4c211851..f639e95a 100644 --- a/src/common/basicpipes/pipes/TileEntityPump.java +++ b/src/common/basicpipes/pumps/TileEntityPump.java @@ -1,4 +1,4 @@ -package basicpipes.pipes; +package basicpipes.pumps; import basicpipes.TradeHelper; import basicpipes.pipes.api.ILiquidProducer; @@ -13,8 +13,9 @@ public class TileEntityPump extends TileEntityElectricUnit implements ILiquidPro int dCount = 0; float eStored = 0; float eMax = 2000; - int wStored = 0; + int lStored = 0; int wMax = 10; + public Liquid type = Liquid.DEFUALT; public TileEntity[] sList = {null,null,null,null,null,null}; private int count = 0; @Override @@ -35,6 +36,12 @@ public class TileEntityPump extends TileEntityElectricUnit implements ILiquidPro public void onUpdate(float watts, float voltage, ForgeDirection side) { super.onUpdate(watts, voltage, side); sList = TradeHelper.getSourounding(this); + int bBlock = worldObj.getBlockId(xCoord, yCoord -1, zCoord); + Liquid bellow = Liquid.getLiquidByBlock(bBlock); + if(bellow != null && this.lStored <= 0) + { + this.type = bellow; + } if(!worldObj.isRemote) { count++; @@ -43,11 +50,11 @@ public class TileEntityPump extends TileEntityElectricUnit implements ILiquidPro float rejectedElectricity = (float) Math.max((this.eStored + watts) - this.eMax, 0.0); this.eStored = (float) Math.max(this.eStored + watts - rejectedElectricity, 0.0); } - int bBlock = worldObj.getBlockId(xCoord, yCoord -1, zCoord); - if(bBlock == Block.waterStill.blockID && this.eStored > 500 && this.wStored < this.wMax && count>=2) + + if(bBlock == type.Still && this.eStored > 200 && this.lStored < this.wMax && count>=2) { - eStored -= 500; - wStored += 1; + eStored -= 200; + lStored += 1; worldObj.setBlockAndMetadataWithNotify(xCoord, yCoord-1, zCoord, 0, 0); count = 0; } @@ -80,10 +87,10 @@ public class TileEntityPump extends TileEntityElectricUnit implements ILiquidPro @Override public int onProduceLiquid(Liquid type, int maxVol, ForgeDirection side) { - if(type == Liquid.WATER && wStored > 0) + if(type == this.type && lStored > 0) { - int tradeW = Math.min(maxVol, wStored); - wStored -= tradeW; + int tradeW = Math.min(maxVol, lStored); + lStored -= tradeW; return tradeW; } return 0; @@ -91,7 +98,17 @@ public class TileEntityPump extends TileEntityElectricUnit implements ILiquidPro @Override public boolean canProduceLiquid(Liquid type, ForgeDirection side) { - if(type == Liquid.WATER && side != ForgeDirection.DOWN) + int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); + int facing = 0; + switch(meta) + { + case 0: facing = 2;break; + case 1: facing = 5;break; + case 2: facing = 3;break; + case 3: facing = 4;break; + } + + if(type == this.type && side != ForgeDirection.DOWN && side != ForgeDirection.UP && side != ForgeDirection.getOrientation(facing).getOpposite()) { return true; } @@ -103,13 +120,21 @@ public class TileEntityPump extends TileEntityElectricUnit implements ILiquidPro if(type == Liquid.WATER) { return 32; + }else + if(type == Liquid.LAVA) + { + return 10; + }else + if(type == this.type) + { + return 50; } return 0; } @Override public boolean canProducePresure(Liquid type, ForgeDirection side) { - if(type == Liquid.WATER) + if(type == this.type) { return true; } diff --git a/src/minecraft/basicpipes/PipeClientProxy.java b/src/minecraft/basicpipes/PipeClientProxy.java index 9fb72e9c..22c433af 100644 --- a/src/minecraft/basicpipes/PipeClientProxy.java +++ b/src/minecraft/basicpipes/PipeClientProxy.java @@ -3,7 +3,7 @@ package basicpipes; import steampower.SteamPowerMain; import basicpipes.PipeProxy; import basicpipes.pipes.TileEntityPipe; -import basicpipes.pipes.TileEntityPump; +import basicpipes.pumps.TileEntityPump; import net.minecraftforge.client.MinecraftForgeClient; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.common.registry.GameRegistry; diff --git a/src/minecraft/basicpipes/RenderPipe.java b/src/minecraft/basicpipes/RenderPipe.java index f97a0f54..bfd0c678 100644 --- a/src/minecraft/basicpipes/RenderPipe.java +++ b/src/minecraft/basicpipes/RenderPipe.java @@ -57,6 +57,9 @@ public class RenderPipe extends TileEntitySpecialRenderer switch(type.ordinal()) { case 0: bindTextureByName(BasicPipesMain.textureFile+"/pipes/SixSteamPipe.png");break; + case 1: bindTextureByName(BasicPipesMain.textureFile+"/pipes/SixWaterPipe.png");break; + case 2: bindTextureByName(BasicPipesMain.textureFile+"/pipes/SixLavaPipe.png");break; + case 3: bindTextureByName(BasicPipesMain.textureFile+"/pipes/SixOilPipe.png");break; default:bindTextureByName(BasicPipesMain.textureFile+"/pipes/DefaultPipe.png"); break; } if(tileEntity.connectedBlocks[0] != null) SixPipe.renderBottom(); diff --git a/src/minecraft/basicpipes/RenderPump.java b/src/minecraft/basicpipes/RenderPump.java index dd652020..ca21ba12 100644 --- a/src/minecraft/basicpipes/RenderPump.java +++ b/src/minecraft/basicpipes/RenderPump.java @@ -6,7 +6,8 @@ import net.minecraft.src.TileEntitySpecialRenderer; import org.lwjgl.opengl.GL11; import basicpipes.pipes.TileEntityPipe; -import basicpipes.pipes.TileEntityPump; +import basicpipes.pipes.api.Liquid; +import basicpipes.pumps.TileEntityPump; public class RenderPump extends TileEntitySpecialRenderer @@ -21,12 +22,27 @@ public class RenderPump extends TileEntitySpecialRenderer public void renderAModelAt(TileEntityPump tileEntity, double d, double d1, double d2, float f) { - - bindTextureByName(BasicPipesMain.textureFile+"/Pump.png"); + Liquid type = tileEntity.type; + int meta = tileEntity.worldObj.getBlockMetadata(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); + switch(type.ordinal()) + { + default: bindTextureByName("/textures/pumps/Pump.png");break; + //case 0://steam + case 1:bindTextureByName("/textures/pumps/WaterPump.png");break;//water + case 2:bindTextureByName("/textures/pumps/LavaPump.png");break;//lava + case 3:bindTextureByName("/textures/pumps/OilPump.png");break;//oil + //case 4://fuel + } GL11.glPushMatrix(); GL11.glTranslatef((float) d + 0.5F, (float) d1 + 1.5F, (float) d2 + 0.5F); GL11.glScalef(1.0F, -1F, -1F); - + switch(meta) + { + case 1:GL11.glRotatef(0f, 0f, 1f, 0f);break; + case 2:GL11.glRotatef(90f, 0f, 1f, 0f);break; + case 3:GL11.glRotatef(180f, 0f, 1f, 0f);break; + case 0:GL11.glRotatef(270f, 0f, 1f, 0f);break; + } model.renderMain(0.0625F); model.renderC1(0.0625F); model.renderC2(0.0625F); diff --git a/src/minecraft/textures/CopperWire.png b/src/minecraft/textures/CopperWire.png deleted file mode 100644 index 5f4bb528..00000000 Binary files a/src/minecraft/textures/CopperWire.png and /dev/null differ diff --git a/src/minecraft/textures/YellowPiston.png b/src/minecraft/textures/YellowPiston.png deleted file mode 100644 index b0134785..00000000 Binary files a/src/minecraft/textures/YellowPiston.png and /dev/null differ diff --git a/src/minecraft/textures/pipes/SixLavaPipe.png b/src/minecraft/textures/pipes/SixLavaPipe.png new file mode 100644 index 00000000..85fc2dc8 Binary files /dev/null and b/src/minecraft/textures/pipes/SixLavaPipe.png differ diff --git a/src/minecraft/textures/pipes/SixOilPipe.png b/src/minecraft/textures/pipes/SixOilPipe.png new file mode 100644 index 00000000..0f34b76d Binary files /dev/null and b/src/minecraft/textures/pipes/SixOilPipe.png differ diff --git a/src/minecraft/textures/pipes/SixWaterPipe.png b/src/minecraft/textures/pipes/SixWaterPipe.png new file mode 100644 index 00000000..fafffce5 Binary files /dev/null and b/src/minecraft/textures/pipes/SixWaterPipe.png differ diff --git a/src/minecraft/textures/pumps/LavaPump.png b/src/minecraft/textures/pumps/LavaPump.png new file mode 100644 index 00000000..c0d9b0ab Binary files /dev/null and b/src/minecraft/textures/pumps/LavaPump.png differ diff --git a/src/minecraft/textures/pumps/OilPump.png b/src/minecraft/textures/pumps/OilPump.png new file mode 100644 index 00000000..59b192a4 Binary files /dev/null and b/src/minecraft/textures/pumps/OilPump.png differ diff --git a/src/minecraft/textures/pumps/Pump.png b/src/minecraft/textures/pumps/Pump.png new file mode 100644 index 00000000..dd471208 Binary files /dev/null and b/src/minecraft/textures/pumps/Pump.png differ diff --git a/src/minecraft/textures/Pump.png b/src/minecraft/textures/pumps/WaterPump.png similarity index 100% rename from src/minecraft/textures/Pump.png rename to src/minecraft/textures/pumps/WaterPump.png