diff --git a/src/common/aa/DevProxy.java b/src/common/aa/DevProxy.java index 80d12498..b07fbff3 100644 --- a/src/common/aa/DevProxy.java +++ b/src/common/aa/DevProxy.java @@ -5,8 +5,8 @@ import net.minecraft.src.TileEntity; import net.minecraft.src.World; import net.minecraftforge.client.MinecraftForgeClient; import basicpipes.BasicPipesMain; -import basicpipes.pipes.TileEntityPipe; -import basicpipes.pumps.TileEntityPump; +import basicpipes.conductors.TileEntityPipe; +import basicpipes.machines.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 8b37d86a..8c7b4b2a 100644 --- a/src/common/basicpipes/BasicPipesMain.java +++ b/src/common/basicpipes/BasicPipesMain.java @@ -7,13 +7,13 @@ import net.minecraft.src.ItemStack; import net.minecraftforge.common.Configuration; import universalelectricity.BasicComponents; import universalelectricity.network.PacketManager; -import basicpipes.pipes.BlockPipe; -import basicpipes.pipes.ItemGuage; -import basicpipes.pipes.ItemParts; -import basicpipes.pipes.ItemPipe; +import basicpipes.conductors.BlockPipe; +import basicpipes.conductors.ItemGuage; +import basicpipes.conductors.ItemParts; +import basicpipes.conductors.ItemPipe; +import basicpipes.machines.BlockMachine; +import basicpipes.machines.BlockValve; import basicpipes.pipes.api.Liquid; -import basicpipes.pumps.BlockMachine; -import basicpipes.pumps.BlockValve; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.PostInit; @@ -70,7 +70,7 @@ public class BasicPipesMain{ { proxy.preInit(); GameRegistry.registerBlock(pipe); - GameRegistry.registerBlock(machine,basicpipes.pumps.ItemMachine.class); + GameRegistry.registerBlock(machine,basicpipes.machines.ItemMachine.class); } @Init public void load(FMLInitializationEvent evt) diff --git a/src/common/basicpipes/PipeProxy.java b/src/common/basicpipes/PipeProxy.java index b82d9883..8318c60f 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.pumps.TileEntityPump; +import basicpipes.conductors.TileEntityPipe; +import basicpipes.machines.TileEntityPump; import net.minecraft.src.EntityPlayer; import net.minecraft.src.TileEntity; import net.minecraft.src.World; diff --git a/src/common/basicpipes/pipes/BlockPipe.java b/src/common/basicpipes/conductors/BlockPipe.java similarity index 99% rename from src/common/basicpipes/pipes/BlockPipe.java rename to src/common/basicpipes/conductors/BlockPipe.java index e3b9985a..e6b4f5f2 100644 --- a/src/common/basicpipes/pipes/BlockPipe.java +++ b/src/common/basicpipes/conductors/BlockPipe.java @@ -1,4 +1,4 @@ -package basicpipes.pipes; +package basicpipes.conductors; import java.util.Random; diff --git a/src/common/basicpipes/conductors/BlockRod.java b/src/common/basicpipes/conductors/BlockRod.java new file mode 100644 index 00000000..48ea564a --- /dev/null +++ b/src/common/basicpipes/conductors/BlockRod.java @@ -0,0 +1,59 @@ +package basicpipes.conductors; + +import net.minecraft.src.Block; +import net.minecraft.src.EntityPlayer; +import net.minecraft.src.Material; +import net.minecraft.src.TileEntity; +import net.minecraft.src.World; + +public class BlockRod extends universalelectricity.prefab.BlockMachine { + + public BlockRod(int par1) { + super("MechanicRod", par1, Material.iron); + } + @Override + protected int damageDropped(int metadata) + { + return 0; + } + @Override + public boolean onUseWrench(World world, int x, int y, int z, EntityPlayer par5EntityPlayer) + { + int meta = world.getBlockMetadata(x, y, z); + if(meta >= 5) + { + world.setBlockMetadataWithNotify(x, y, z, 0); + } + else + { + world.setBlockMetadataWithNotify(x,y,z,meta+1); + } + return true; + } + @Override + public TileEntity createNewTileEntity(World var1) + { + return new TileEntityRod(); + } + public boolean isOpaqueCube() + { + return false; + } + + /** + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) + */ + public boolean renderAsNormalBlock() + { + return false; + } + + /** + * The type of render function that is called for this block + */ + public int getRenderType() + { + return -1; + } + +} diff --git a/src/common/basicpipes/pipes/ItemGuage.java b/src/common/basicpipes/conductors/ItemGuage.java similarity index 98% rename from src/common/basicpipes/pipes/ItemGuage.java rename to src/common/basicpipes/conductors/ItemGuage.java index 22272389..a5af175c 100644 --- a/src/common/basicpipes/pipes/ItemGuage.java +++ b/src/common/basicpipes/conductors/ItemGuage.java @@ -1,4 +1,4 @@ -package basicpipes.pipes; +package basicpipes.conductors; import java.util.ArrayList; import java.util.List; diff --git a/src/common/basicpipes/pipes/ItemParts.java b/src/common/basicpipes/conductors/ItemParts.java similarity index 97% rename from src/common/basicpipes/pipes/ItemParts.java rename to src/common/basicpipes/conductors/ItemParts.java index 274f1c71..a8821141 100644 --- a/src/common/basicpipes/pipes/ItemParts.java +++ b/src/common/basicpipes/conductors/ItemParts.java @@ -1,4 +1,4 @@ -package basicpipes.pipes; +package basicpipes.conductors; import java.util.ArrayList; import java.util.List; diff --git a/src/common/basicpipes/pipes/ItemPipe.java b/src/common/basicpipes/conductors/ItemPipe.java similarity index 99% rename from src/common/basicpipes/pipes/ItemPipe.java rename to src/common/basicpipes/conductors/ItemPipe.java index e623a0d5..c0b77986 100644 --- a/src/common/basicpipes/pipes/ItemPipe.java +++ b/src/common/basicpipes/conductors/ItemPipe.java @@ -1,4 +1,4 @@ -package basicpipes.pipes; +package basicpipes.conductors; import java.util.List; diff --git a/src/common/basicpipes/pipes/TileEntityPipe.java b/src/common/basicpipes/conductors/TileEntityPipe.java similarity index 99% rename from src/common/basicpipes/pipes/TileEntityPipe.java rename to src/common/basicpipes/conductors/TileEntityPipe.java index b4ab4046..9967f292 100644 --- a/src/common/basicpipes/pipes/TileEntityPipe.java +++ b/src/common/basicpipes/conductors/TileEntityPipe.java @@ -1,4 +1,4 @@ -package basicpipes.pipes; +package basicpipes.conductors; import net.minecraft.src.EntityPlayer; import net.minecraft.src.NBTTagCompound; import net.minecraft.src.NetworkManager; diff --git a/src/common/basicpipes/conductors/TileEntityRod.java b/src/common/basicpipes/conductors/TileEntityRod.java new file mode 100644 index 00000000..ca5bae34 --- /dev/null +++ b/src/common/basicpipes/conductors/TileEntityRod.java @@ -0,0 +1,133 @@ +package basicpipes.conductors; + +import com.google.common.io.ByteArrayDataInput; + +import net.minecraft.src.EntityPlayer; +import net.minecraft.src.NetworkManager; +import net.minecraft.src.Packet250CustomPayload; +import net.minecraft.src.TileEntity; +import net.minecraftforge.common.ForgeDirection; +import universalelectricity.network.IPacketReceiver; +import universalelectricity.network.PacketManager; +import basicpipes.BasicPipesMain; +import basicpipes.pipes.api.ILiquidConsumer; +import basicpipes.pipes.api.IMechenical; +import basicpipes.pipes.api.Liquid; + +public class TileEntityRod extends TileEntity implements IPacketReceiver,IMechenical { +private int count = 0; +private float rotation = 0; +public int rpm = 0;//rpm received from producer +public int loadRPM = 0; //rpm lost to the load +public int currentRPM = 0; +public TileEntity front = null; +public TileEntity back = null; +ForgeDirection frontD; +ForgeDirection backD; + @Override + public void handlePacketData(NetworkManager network, + Packet250CustomPayload packet, EntityPlayer player, + ByteArrayDataInput dataStream) { + try{ + this.rpm = dataStream.readInt(); + this.loadRPM = dataStream.readInt(); + this.currentRPM = dataStream.readInt(); + }catch(Exception e) + { + + } + + } + public Object[] data() + { + return new Object[]{rpm,loadRPM,currentRPM}; + } + @Override + public void updateEntity() + { + if(count++ >= 5) + { + int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); + frontD = ForgeDirection.getOrientation(meta); + backD = ForgeDirection.getOrientation(meta).getOpposite(); + count = 0; + if(!worldObj.isRemote) + { + + + back = worldObj.getBlockTileEntity(xCoord+backD.offsetX, yCoord+backD.offsetY, zCoord+backD.offsetZ); + front = worldObj.getBlockTileEntity(xCoord+frontD.offsetX, yCoord+frontD.offsetY, zCoord+frontD.offsetZ); + + if(!(back instanceof IMechenical)) + { + back = null; + } + if(!(front instanceof IMechenical)) + { + front = null; + } + + if(back != null && front != null) + { + this.rpm = ((IMechenical) back).getRPM(backD); + this.loadRPM = ((IMechenical) front).useRPM(rpm)+10; + this.currentRPM = rpm-loadRPM-10;//minus 10 is what it take to over come the rods friction + if(currentRPM < 0) + { + //TODO add stress to rod and break if left stressed too long + } + }else + { + if(currentRPM > 0) + { + currentRPM-=10; + if(currentRPM < 0) + { + currentRPM = 0; + } + + } + } + + + + + + + PacketManager.sendTileEntityPacketWithRange(this, BasicPipesMain.channel, 20, this.data()); + + } + this.rotation = currentRPM * 240; + if(back != null && back instanceof TileEntityRod) + { + this.rotation = ((TileEntityRod)front).rotation; + } + } + } + @Override + public int getRPM(ForgeDirection side) { + return this.currentRPM; + } + @Override + public boolean canOutputSide(ForgeDirection side) { + if(frontD != null && side == frontD) + { + return true; + } + return false; + } + @Override + public boolean canInputSide(ForgeDirection side) { + if(backD != null && side == backD) + { + return true; + } + return false; + } + @Override + public int useRPM(int RPM) { + // TODO Auto-generated method stub + return 10+loadRPM; + } + +} diff --git a/src/common/basicpipes/pumps/BlockMachine.java b/src/common/basicpipes/machines/BlockMachine.java similarity index 98% rename from src/common/basicpipes/pumps/BlockMachine.java rename to src/common/basicpipes/machines/BlockMachine.java index cba024bf..ca99f0a2 100644 --- a/src/common/basicpipes/pumps/BlockMachine.java +++ b/src/common/basicpipes/machines/BlockMachine.java @@ -1,4 +1,4 @@ -package basicpipes.pumps; +package basicpipes.machines; import java.util.Random; diff --git a/src/common/basicpipes/pumps/BlockValve.java b/src/common/basicpipes/machines/BlockValve.java similarity index 99% rename from src/common/basicpipes/pumps/BlockValve.java rename to src/common/basicpipes/machines/BlockValve.java index 062a35be..d139ba67 100644 --- a/src/common/basicpipes/pumps/BlockValve.java +++ b/src/common/basicpipes/machines/BlockValve.java @@ -1,4 +1,4 @@ -package basicpipes.pumps; +package basicpipes.machines; import java.util.ArrayList; import net.minecraft.src.*; diff --git a/src/common/basicpipes/pumps/ItemMachine.java b/src/common/basicpipes/machines/ItemMachine.java similarity index 99% rename from src/common/basicpipes/pumps/ItemMachine.java rename to src/common/basicpipes/machines/ItemMachine.java index 6639d072..cfb994b5 100644 --- a/src/common/basicpipes/pumps/ItemMachine.java +++ b/src/common/basicpipes/machines/ItemMachine.java @@ -1,4 +1,4 @@ -package basicpipes.pumps; +package basicpipes.machines; import java.util.List; diff --git a/src/common/basicpipes/pumps/ItemValve.java b/src/common/basicpipes/machines/ItemValve.java similarity index 99% rename from src/common/basicpipes/pumps/ItemValve.java rename to src/common/basicpipes/machines/ItemValve.java index b4b7ed72..8107b69d 100644 --- a/src/common/basicpipes/pumps/ItemValve.java +++ b/src/common/basicpipes/machines/ItemValve.java @@ -1,4 +1,4 @@ -package basicpipes.pumps; +package basicpipes.machines; import java.util.List; diff --git a/src/common/basicpipes/pumps/TileEntityCondenser.java b/src/common/basicpipes/machines/TileEntityCondenser.java similarity index 98% rename from src/common/basicpipes/pumps/TileEntityCondenser.java rename to src/common/basicpipes/machines/TileEntityCondenser.java index 2e1a2469..ad14aa23 100644 --- a/src/common/basicpipes/pumps/TileEntityCondenser.java +++ b/src/common/basicpipes/machines/TileEntityCondenser.java @@ -1,4 +1,4 @@ -package basicpipes.pumps; +package basicpipes.machines; import universalelectricity.implement.IElectricityReceiver; import net.minecraft.src.NBTTagCompound; diff --git a/src/common/basicpipes/pumps/TileEntityPump.java b/src/common/basicpipes/machines/TileEntityPump.java similarity index 99% rename from src/common/basicpipes/pumps/TileEntityPump.java rename to src/common/basicpipes/machines/TileEntityPump.java index 1274577a..9e91834b 100644 --- a/src/common/basicpipes/pumps/TileEntityPump.java +++ b/src/common/basicpipes/machines/TileEntityPump.java @@ -1,4 +1,4 @@ -package basicpipes.pumps; +package basicpipes.machines; import net.minecraft.src.TileEntity; import net.minecraftforge.common.ForgeDirection; diff --git a/src/common/basicpipes/pumps/TileEntityValve.java b/src/common/basicpipes/machines/TileEntityValve.java similarity index 96% rename from src/common/basicpipes/pumps/TileEntityValve.java rename to src/common/basicpipes/machines/TileEntityValve.java index efecb80b..7542310f 100644 --- a/src/common/basicpipes/pumps/TileEntityValve.java +++ b/src/common/basicpipes/machines/TileEntityValve.java @@ -1,8 +1,8 @@ -package basicpipes.pumps; +package basicpipes.machines; import net.minecraft.src.TileEntity; import net.minecraftforge.common.ForgeDirection; -import basicpipes.pipes.TileEntityPipe; +import basicpipes.conductors.TileEntityPipe; import basicpipes.pipes.api.ILiquidConsumer; import basicpipes.pipes.api.Liquid; import basicpipes.pipes.api.TradeHelper; diff --git a/src/common/basicpipes/pipes/api/IMechenical.java b/src/common/basicpipes/pipes/api/IMechenical.java new file mode 100644 index 00000000..d401b909 --- /dev/null +++ b/src/common/basicpipes/pipes/api/IMechenical.java @@ -0,0 +1,30 @@ +package basicpipes.pipes.api; + +import net.minecraftforge.common.ForgeDirection; +// mechanical +public interface IMechenical { +/** + * + * @param side the rpm is coming from + * @return rpm that the block is running at + */ + public int getRPM(ForgeDirection side); + /** + * + * @param side + * @return if mechanical force can be outputed from this side + */ + public boolean canOutputSide(ForgeDirection side); + /** + * + * @param side + * @return if mechanical force can be inputed from this side + */ + public boolean canInputSide(ForgeDirection side); + /** + * + * @param RPM being applied to this machine + * @return the rpm after the load has been applied + */ + public int useRPM(int RPM);//will change later to include force of rotation +} diff --git a/src/common/basicpipes/pipes/api/Liquid.java b/src/common/basicpipes/pipes/api/Liquid.java index 881033b9..807ca262 100644 --- a/src/common/basicpipes/pipes/api/Liquid.java +++ b/src/common/basicpipes/pipes/api/Liquid.java @@ -17,8 +17,9 @@ public enum Liquid { Air("Air",false,true,0,-1), Methain("Methain",true,true,-1,-1), BioFuel("BioFuel",true,false,-1,-1), - Coolent("Coolent",true,false,-1,-1), - NukeWaste("NukeWaste",true,false,-1,-1), + Coolent("Coolent",false,false,-1,-1), + NukeWaste("NukeWaste",false,false,-1,-1), + Ether("Ether",false,false,-1,-1), DEFUALT("Empty",false,false,-1,-1); public final boolean flamable;//can it catch on fire, not used but might be public final boolean isGas;//is it a gas, used to find if it floats diff --git a/src/common/steampower/turbine/TileEntitySteamPiston.java b/src/common/steampower/turbine/TileEntitySteamPiston.java index 0c68fd10..ad35bd3e 100644 --- a/src/common/steampower/turbine/TileEntitySteamPiston.java +++ b/src/common/steampower/turbine/TileEntitySteamPiston.java @@ -175,8 +175,8 @@ public class TileEntitySteamPiston extends TileEntityMachine implements IPacketR { ElectricityManager.instance.produceElectricity(this, connectedElectricUnit, this.generateRate*this.getTickInterval(), this.getVoltage()); } - } - } + } + } } } /** diff --git a/src/minecraft/basicpipes/PipeClientProxy.java b/src/minecraft/basicpipes/PipeClientProxy.java index 22c433af..61e07ace 100644 --- a/src/minecraft/basicpipes/PipeClientProxy.java +++ b/src/minecraft/basicpipes/PipeClientProxy.java @@ -2,8 +2,8 @@ package basicpipes; import steampower.SteamPowerMain; import basicpipes.PipeProxy; -import basicpipes.pipes.TileEntityPipe; -import basicpipes.pumps.TileEntityPump; +import basicpipes.conductors.TileEntityPipe; +import basicpipes.machines.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 bfd0c678..5af0ef6c 100644 --- a/src/minecraft/basicpipes/RenderPipe.java +++ b/src/minecraft/basicpipes/RenderPipe.java @@ -6,7 +6,7 @@ import net.minecraft.src.TileEntitySpecialRenderer; import org.lwjgl.opengl.GL11; -import basicpipes.pipes.TileEntityPipe; +import basicpipes.conductors.TileEntityPipe; import basicpipes.pipes.api.Liquid; diff --git a/src/minecraft/basicpipes/RenderPump.java b/src/minecraft/basicpipes/RenderPump.java index ca21ba12..49de4753 100644 --- a/src/minecraft/basicpipes/RenderPump.java +++ b/src/minecraft/basicpipes/RenderPump.java @@ -5,9 +5,9 @@ import net.minecraft.src.TileEntitySpecialRenderer; import org.lwjgl.opengl.GL11; -import basicpipes.pipes.TileEntityPipe; +import basicpipes.conductors.TileEntityPipe; +import basicpipes.machines.TileEntityPump; import basicpipes.pipes.api.Liquid; -import basicpipes.pumps.TileEntityPump; public class RenderPump extends TileEntitySpecialRenderer