diff --git a/archaic/src/main/java/resonantinduction/archaic/crate/RenderCrate.java b/archaic/src/main/java/resonantinduction/archaic/crate/RenderCrate.java index 1c14db5a..dd0696c6 100644 --- a/archaic/src/main/java/resonantinduction/archaic/crate/RenderCrate.java +++ b/archaic/src/main/java/resonantinduction/archaic/crate/RenderCrate.java @@ -1,10 +1,11 @@ package resonantinduction.archaic.crate; +import net.minecraft.tileentity.TileEntity; + import org.lwjgl.opengl.GL11; -import calclavia.lib.utility.LanguageUtility; -import net.minecraft.tileentity.TileEntity; import resonantinduction.core.render.RenderItemOverlayTile; +import calclavia.lib.utility.LanguageUtility; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/archaic/src/main/java/resonantinduction/archaic/crate/TileCrate.java b/archaic/src/main/java/resonantinduction/archaic/crate/TileCrate.java index 0ac2117a..fedff850 100644 --- a/archaic/src/main/java/resonantinduction/archaic/crate/TileCrate.java +++ b/archaic/src/main/java/resonantinduction/archaic/crate/TileCrate.java @@ -14,9 +14,6 @@ import calclavia.lib.utility.inventory.IExtendedStorage; import com.google.common.io.ByteArrayDataInput; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.relauncher.Side; - /** * Basic single stack inventory. * diff --git a/archaic/src/main/java/resonantinduction/archaic/engineering/TileEngineeringTable.java b/archaic/src/main/java/resonantinduction/archaic/engineering/TileEngineeringTable.java index 8eb0beca..e2e60ef0 100644 --- a/archaic/src/main/java/resonantinduction/archaic/engineering/TileEngineeringTable.java +++ b/archaic/src/main/java/resonantinduction/archaic/engineering/TileEngineeringTable.java @@ -29,7 +29,6 @@ import resonantinduction.core.prefab.imprint.ItemImprint; import resonantinduction.core.render.RenderItemOverlayTile; import universalelectricity.api.vector.Vector2; import universalelectricity.api.vector.Vector3; -import universalelectricity.api.vector.VectorWorld; import calclavia.lib.content.module.TileRender; import calclavia.lib.content.module.prefab.TileInventory; import calclavia.lib.gui.ContainerDummy; @@ -114,7 +113,7 @@ public class TileEngineeringTable extends TileInventory implements IPacketReceiv { if (this instanceof IInventory) { - IInventory inventory = (IInventory) this; + IInventory inventory = this; // Don't drop the output, so subtract by one. for (int i = 0; i < inventory.getSizeInventory() - 1; ++i) diff --git a/archaic/src/main/java/resonantinduction/archaic/fluid/grate/TileGrate.java b/archaic/src/main/java/resonantinduction/archaic/fluid/grate/TileGrate.java index 7c87d3d8..e7dc5521 100644 --- a/archaic/src/main/java/resonantinduction/archaic/fluid/grate/TileGrate.java +++ b/archaic/src/main/java/resonantinduction/archaic/fluid/grate/TileGrate.java @@ -483,6 +483,7 @@ public class TileGrate extends TilePressureNode implements IRotatable this.iterations = iterations; } + @Override public int compareTo(Object obj) { ComparableVector wr = (ComparableVector) obj; diff --git a/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/FluidGravityNode.java b/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/FluidGravityNode.java index c5d065f5..73152842 100644 --- a/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/FluidGravityNode.java +++ b/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/FluidGravityNode.java @@ -1,12 +1,8 @@ package resonantinduction.archaic.fluid.gutter; -import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; -import net.minecraftforge.fluids.IFluidHandler; -import resonantinduction.archaic.fluid.grate.TileGrate; -import resonantinduction.core.grid.fluid.IPressureNodeProvider; import resonantinduction.core.grid.fluid.FluidPressureNode; -import calclavia.lib.utility.WorldUtility; +import resonantinduction.core.grid.fluid.IPressureNodeProvider; public class FluidGravityNode extends FluidPressureNode { diff --git a/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/TileGutter.java b/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/TileGutter.java index 0937362f..be435cec 100644 --- a/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/TileGutter.java +++ b/archaic/src/main/java/resonantinduction/archaic/fluid/gutter/TileGutter.java @@ -24,14 +24,14 @@ import net.minecraftforge.fluids.IFluidTank; import org.lwjgl.opengl.GL11; import resonantinduction.api.recipe.MachineRecipes; -import resonantinduction.api.recipe.RecipeResource; import resonantinduction.api.recipe.MachineRecipes.RecipeType; +import resonantinduction.api.recipe.RecipeResource; import resonantinduction.archaic.fluid.grate.TileGrate; import resonantinduction.core.Reference; import resonantinduction.core.ResonantInduction; import resonantinduction.core.fluid.TilePressureNode; -import resonantinduction.core.grid.fluid.IPressureNodeProvider; import resonantinduction.core.grid.fluid.FluidPressureNode; +import resonantinduction.core.grid.fluid.IPressureNodeProvider; import universalelectricity.api.vector.Vector3; import calclavia.lib.content.module.TileRender; import calclavia.lib.prefab.vector.Cuboid; @@ -271,6 +271,7 @@ public class TileGutter extends TilePressureNode } } + @Override protected void onWorldJoin() { onNeighborChanged(); diff --git a/archaic/src/main/java/resonantinduction/archaic/fluid/tank/TankNetwork.java b/archaic/src/main/java/resonantinduction/archaic/fluid/tank/TankNetwork.java index 797117f3..677043ac 100644 --- a/archaic/src/main/java/resonantinduction/archaic/fluid/tank/TankNetwork.java +++ b/archaic/src/main/java/resonantinduction/archaic/fluid/tank/TankNetwork.java @@ -9,8 +9,6 @@ import net.minecraftforge.fluids.FluidStack; import resonantinduction.core.fluid.FluidDistributionetwork; import resonantinduction.core.fluid.IFluidDistribution; import calclavia.lib.utility.FluidUtility; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.relauncher.Side; /** * Network that handles connected tanks diff --git a/archaic/src/main/java/resonantinduction/archaic/fluid/tank/TileTank.java b/archaic/src/main/java/resonantinduction/archaic/fluid/tank/TileTank.java index 31614452..b07f696d 100644 --- a/archaic/src/main/java/resonantinduction/archaic/fluid/tank/TileTank.java +++ b/archaic/src/main/java/resonantinduction/archaic/fluid/tank/TileTank.java @@ -29,6 +29,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO itemBlock = ItemBlockFluidContainer.class; } + @Override protected boolean use(EntityPlayer player, int side, Vector3 vector3) { if (!world().isRemote) diff --git a/electrical/src/main/java/resonantinduction/electrical/ClientProxy.java b/electrical/src/main/java/resonantinduction/electrical/ClientProxy.java index 6c62031e..9c372e15 100644 --- a/electrical/src/main/java/resonantinduction/electrical/ClientProxy.java +++ b/electrical/src/main/java/resonantinduction/electrical/ClientProxy.java @@ -18,7 +18,6 @@ import resonantinduction.electrical.render.FXElectricBolt; import resonantinduction.electrical.tesla.RenderTesla; import resonantinduction.electrical.tesla.TileTesla; import resonantinduction.electrical.transformer.RenderTransformer; -import resonantinduction.mechanical.energy.gear.RenderGear; import resonantinduction.quantum.gate.RenderQuantumGlyph; import universalelectricity.api.vector.Vector3; import calclavia.lib.render.item.GlobalItemRenderer; diff --git a/electrical/src/main/java/resonantinduction/electrical/battery/BlockBattery.java b/electrical/src/main/java/resonantinduction/electrical/battery/BlockBattery.java index 6eb8242e..53378144 100644 --- a/electrical/src/main/java/resonantinduction/electrical/battery/BlockBattery.java +++ b/electrical/src/main/java/resonantinduction/electrical/battery/BlockBattery.java @@ -22,128 +22,130 @@ import calclavia.lib.utility.inventory.InventoryUtility; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -/** A block that detects power. +/** + * A block that detects power. * - * @author Calclavia */ + * @author Calclavia + */ public class BlockBattery extends BlockSidedIO implements ITileEntityProvider { - public BlockBattery(int id) - { - super(id, UniversalElectricity.machine); - setTextureName(Reference.PREFIX + "material_metal_side"); - } + public BlockBattery(int id) + { + super(id, UniversalElectricity.machine); + setTextureName(Reference.PREFIX + "material_metal_side"); + } - @Override - public void onBlockAdded(World world, int x, int y, int z) - { - if (!world.isRemote) - { - TileEnergyDistribution distribution = (TileEnergyDistribution) world.getBlockTileEntity(x, y, z); - distribution.updateStructure(); - } - } + @Override + public void onBlockAdded(World world, int x, int y, int z) + { + if (!world.isRemote) + { + TileEnergyDistribution distribution = (TileEnergyDistribution) world.getBlockTileEntity(x, y, z); + distribution.updateStructure(); + } + } - @Override - public void onNeighborBlockChange(World world, int x, int y, int z, int id) - { - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, int id) + { + TileEntity tileEntity = world.getBlockTileEntity(x, y, z); - if (!world.isRemote && tileEntity instanceof TileEnergyDistribution) - { - TileEnergyDistribution distribution = (TileEnergyDistribution) tileEntity; - distribution.updateStructure(); - } - } + if (!world.isRemote && tileEntity instanceof TileEnergyDistribution) + { + TileEnergyDistribution distribution = (TileEnergyDistribution) tileEntity; + distribution.updateStructure(); + } + } - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityliving, ItemStack itemStack) - { - if (!world.isRemote && itemStack.getItem() instanceof ItemBlockBattery) - { - ItemBlockBattery itemBlock = (ItemBlockBattery) itemStack.getItem(); - TileBattery battery = (TileBattery) world.getBlockTileEntity(x, y, z); - battery.energy.setCapacity(TileBattery.getEnergyForTier(ItemBlockBattery.getTier(itemStack))); - battery.energy.setEnergy(itemBlock.getEnergy(itemStack)); - battery.updateStructure(); - world.setBlockMetadataWithNotify(x, y, z, ItemBlockBattery.getTier(itemStack), 3); - } - } + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityliving, ItemStack itemStack) + { + if (!world.isRemote && itemStack.getItem() instanceof ItemBlockBattery) + { + ItemBlockBattery itemBlock = (ItemBlockBattery) itemStack.getItem(); + TileBattery battery = (TileBattery) world.getBlockTileEntity(x, y, z); + battery.energy.setCapacity(TileBattery.getEnergyForTier(ItemBlockBattery.getTier(itemStack))); + battery.energy.setEnergy(itemBlock.getEnergy(itemStack)); + battery.updateStructure(); + world.setBlockMetadataWithNotify(x, y, z, ItemBlockBattery.getTier(itemStack), 3); + } + } - @Override - public boolean onSneakUseWrench(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ) - { - if (!world.isRemote) - { - InventoryUtility.dropBlockAsItem(world, x, y, z, true); - } - return true; - } + @Override + public boolean onSneakUseWrench(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ) + { + if (!world.isRemote) + { + InventoryUtility.dropBlockAsItem(world, x, y, z, true); + } + return true; + } - @Override - public void breakBlock(World world, int x, int y, int z, int par5, int par6) - { - super.breakBlock(world, x, y, z, par5, par6); - } + @Override + public void breakBlock(World world, int x, int y, int z, int par5, int par6) + { + super.breakBlock(world, x, y, z, par5, par6); + } - @Override - public ArrayList getBlockDropped(World world, int x, int y, int z, int metadata, int fortune) - { - ArrayList ret = new ArrayList(); - ItemStack itemStack = new ItemStack(this, 1); + @Override + public ArrayList getBlockDropped(World world, int x, int y, int z, int metadata, int fortune) + { + ArrayList ret = new ArrayList(); + ItemStack itemStack = new ItemStack(this, 1); - if (world.getBlockTileEntity(x, y, z) instanceof TileBattery) - { - TileBattery battery = (TileBattery) world.getBlockTileEntity(x, y, z); - ItemBlockBattery itemBlock = (ItemBlockBattery) itemStack.getItem(); - ItemBlockBattery.setTier(itemStack, (byte) world.getBlockMetadata(x, y, z)); - itemBlock.setEnergy(itemStack, battery.energy.getEnergy()); - } - ret.add(itemStack); - return ret; - } + if (world.getBlockTileEntity(x, y, z) instanceof TileBattery) + { + TileBattery battery = (TileBattery) world.getBlockTileEntity(x, y, z); + ItemBlockBattery itemBlock = (ItemBlockBattery) itemStack.getItem(); + ItemBlockBattery.setTier(itemStack, (byte) world.getBlockMetadata(x, y, z)); + itemBlock.setEnergy(itemStack, battery.energy.getEnergy()); + } + ret.add(itemStack); + return ret; + } - @Override - public boolean renderAsNormalBlock() - { - return false; - } + @Override + public boolean renderAsNormalBlock() + { + return false; + } - @Override - public boolean isOpaqueCube() - { - return false; - } + @Override + public boolean isOpaqueCube() + { + return false; + } - @Override - @SideOnly(Side.CLIENT) - public int getRenderType() - { - return BlockRenderingHandler.INSTANCE.getRenderId(); - } + @Override + @SideOnly(Side.CLIENT) + public int getRenderType() + { + return BlockRenderingHandler.INSTANCE.getRenderId(); + } - @Override - public TileEntity createNewTileEntity(World world) - { - return new TileBattery(); - } + @Override + public TileEntity createNewTileEntity(World world) + { + return new TileBattery(); + } - @Override - public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) - { - int id = idPicked(world, x, y, z); + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) + { + int id = idPicked(world, x, y, z); - if (id == 0) - { - return null; - } + if (id == 0) + { + return null; + } - Item item = Item.itemsList[id]; - if (item == null) - { - return null; - } + Item item = Item.itemsList[id]; + if (item == null) + { + return null; + } - TileBattery battery = (TileBattery) world.getBlockTileEntity(x, y, z); - return CompatibilityModule.getItemWithCharge(ItemBlockBattery.setTier(new ItemStack(id, 1, 0), (byte) world.getBlockMetadata(x, y, z)), battery.energy.getEnergy()); - } + TileBattery battery = (TileBattery) world.getBlockTileEntity(x, y, z); + return CompatibilityModule.getItemWithCharge(ItemBlockBattery.setTier(new ItemStack(id, 1, 0), (byte) world.getBlockMetadata(x, y, z)), battery.energy.getEnergy()); + } } diff --git a/electrical/src/main/java/resonantinduction/electrical/battery/EnergyDistributionNetwork.java b/electrical/src/main/java/resonantinduction/electrical/battery/EnergyDistributionNetwork.java index 69c5a54b..6382360a 100644 --- a/electrical/src/main/java/resonantinduction/electrical/battery/EnergyDistributionNetwork.java +++ b/electrical/src/main/java/resonantinduction/electrical/battery/EnergyDistributionNetwork.java @@ -70,7 +70,7 @@ public class EnergyDistributionNetwork extends Network EE. Inverted one will turn EE -> KE. */ public boolean isInversed = true; @@ -35,6 +29,10 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr public TileGenerator() { energy = new EnergyStorageHandler(1000000); + node = NodeRegistry.get(this, IMechanicalNode.class); + + if (node != null) + node.setLoad(0.5); } public byte toggleGearRatio() @@ -61,29 +59,30 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr { super.updateEntity(); - if (!isInversed) + if (node != null) { - receiveMechanical(); - produce(); + if (!isInversed) + { + receiveMechanical(); + produce(); + } + else + { + produceMechanical(); + } } - else - { - produceMechanical(); - } - } public void receiveMechanical() { double power = node.getEnergy(); - // System.out.println(power); + long receive = energy.receiveEnergy((long) power, true); if (receive > 0) { - double percentageUsed = (double) receive / (double) power; - node.torque = (node.getTorque() - (node.getTorque() * percentageUsed)); - node.angularVelocity = (node.getAngularVelocity() - (node.getAngularVelocity() * percentageUsed)); + double percentageUsed = receive / power; + node.apply(-node.getTorque() * percentageUsed, -node.getAngularVelocity() * percentageUsed); } } @@ -99,7 +98,7 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr { final double maxAngularVelocity = extract / (float) torqueRatio; - final double maxTorque = ((double) extract) / maxAngularVelocity; + final double maxTorque = (extract) / maxAngularVelocity; double setAngularVelocity = maxAngularVelocity; double setTorque = maxTorque; @@ -113,8 +112,7 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr if (currentVelo != 0) setAngularVelocity = Math.min(+setAngularVelocity, maxAngularVelocity) * (node.getAngularVelocity() / currentVelo); - node.torque = setTorque; - node.angularVelocity = setAngularVelocity; + node.apply(setTorque - node.getTorque(), setAngularVelocity - node.getAngularVelocity()); energy.extractEnergy((long) Math.abs(setTorque * setAngularVelocity), true); } } @@ -165,10 +163,14 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr } @Override - public N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { - if (nodeType.isAssignableFrom(node.getClass())) - return (N) node; + if (from == getDirection() || from == getDirection().getOpposite()) + { + if (nodeType.isAssignableFrom(node.getClass())) + return (N) node; + } + return null; } } diff --git a/electrical/src/main/java/resonantinduction/electrical/multimeter/Graph.java b/electrical/src/main/java/resonantinduction/electrical/multimeter/Graph.java index baa3e46d..01f371b1 100644 --- a/electrical/src/main/java/resonantinduction/electrical/multimeter/Graph.java +++ b/electrical/src/main/java/resonantinduction/electrical/multimeter/Graph.java @@ -86,6 +86,6 @@ public abstract class Graph> public abstract NBTTagCompound save(); public abstract double getDouble(); - + public abstract V getAverage(); } diff --git a/electrical/src/main/java/resonantinduction/electrical/multimeter/ItemMultimeter.java b/electrical/src/main/java/resonantinduction/electrical/multimeter/ItemMultimeter.java index 39348642..46394662 100644 --- a/electrical/src/main/java/resonantinduction/electrical/multimeter/ItemMultimeter.java +++ b/electrical/src/main/java/resonantinduction/electrical/multimeter/ItemMultimeter.java @@ -2,8 +2,6 @@ package resonantinduction.electrical.multimeter; import java.util.List; -import org.lwjgl.input.Keyboard; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -11,11 +9,11 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; + +import org.lwjgl.input.Keyboard; + import resonantinduction.core.prefab.part.IHighlight; import resonantinduction.electrical.wire.EnumWireMaterial; -import resonantinduction.mechanical.energy.gear.PartGearShaft; -import universalelectricity.api.energy.UnitDisplay; -import universalelectricity.api.energy.UnitDisplay.Unit; import calclavia.lib.render.EnumColor; import calclavia.lib.utility.LanguageUtility; import codechicken.lib.vec.BlockCoord; diff --git a/electrical/src/main/java/resonantinduction/electrical/multimeter/MultimeterNetwork.java b/electrical/src/main/java/resonantinduction/electrical/multimeter/MultimeterNetwork.java index c7ddff25..10b528c6 100644 --- a/electrical/src/main/java/resonantinduction/electrical/multimeter/MultimeterNetwork.java +++ b/electrical/src/main/java/resonantinduction/electrical/multimeter/MultimeterNetwork.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import calclavia.lib.utility.LanguageUtility; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import universalelectricity.api.energy.UnitDisplay; @@ -13,6 +12,7 @@ import universalelectricity.api.net.IUpdate; import universalelectricity.api.vector.Vector3; import universalelectricity.core.net.Network; import universalelectricity.core.net.NetworkTickHandler; +import calclavia.lib.utility.LanguageUtility; public class MultimeterNetwork extends Network implements IUpdate { diff --git a/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java b/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java index 0f72e126..df37cf1d 100644 --- a/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java +++ b/electrical/src/main/java/resonantinduction/electrical/multimeter/PartMultimeter.java @@ -11,13 +11,13 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; +import resonantinduction.api.IMechanicalNode; import resonantinduction.core.ResonantInduction; import resonantinduction.core.grid.INodeProvider; -import resonantinduction.core.grid.fluid.IPressureNodeProvider; import resonantinduction.core.grid.fluid.FluidPressureNode; +import resonantinduction.core.grid.fluid.IPressureNodeProvider; import resonantinduction.core.prefab.part.PartFace; import resonantinduction.electrical.Electrical; -import resonantinduction.mechanical.energy.grid.MechanicalNode; import universalelectricity.api.CompatibilityModule; import universalelectricity.api.electricity.IElectricalNetwork; import universalelectricity.api.energy.IConductor; @@ -271,7 +271,7 @@ public class PartMultimeter extends PartFace implements IConnector 0) { diff --git a/electrical/src/main/java/resonantinduction/quantum/gate/QuantumGateManager.java b/electrical/src/main/java/resonantinduction/quantum/gate/QuantumGateManager.java index 7e0130ff..a487438a 100644 --- a/electrical/src/main/java/resonantinduction/quantum/gate/QuantumGateManager.java +++ b/electrical/src/main/java/resonantinduction/quantum/gate/QuantumGateManager.java @@ -1,11 +1,6 @@ package resonantinduction.quantum.gate; -import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; @@ -13,9 +8,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.server.MinecraftServer; import net.minecraft.util.ChunkCoordinates; import net.minecraft.world.Teleporter; -import net.minecraft.world.World; import net.minecraft.world.WorldServer; -import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.VectorWorld; public class QuantumGateManager @@ -93,7 +86,7 @@ public class QuantumGateManager { ChunkCoordinates chunkcoordinates = worldserver1.getSpawnPoint(); chunkcoordinates.posY = currentEntity.worldObj.getTopSolidOrLiquidBlock(chunkcoordinates.posX, chunkcoordinates.posZ); - entity.setLocationAndAngles((double) chunkcoordinates.posX, (double) chunkcoordinates.posY, (double) chunkcoordinates.posZ, entity.rotationYaw, entity.rotationPitch); + entity.setLocationAndAngles(chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, entity.rotationYaw, entity.rotationPitch); } worldserver1.spawnEntityInWorld(entity); diff --git a/electrical/src/main/java/resonantinduction/quantum/gate/RenderQuantumGlyph.java b/electrical/src/main/java/resonantinduction/quantum/gate/RenderQuantumGlyph.java index 61f75e1c..3bb9ec66 100644 --- a/electrical/src/main/java/resonantinduction/quantum/gate/RenderQuantumGlyph.java +++ b/electrical/src/main/java/resonantinduction/quantum/gate/RenderQuantumGlyph.java @@ -3,19 +3,13 @@ package resonantinduction.quantum.gate; import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; -import codechicken.lib.vec.Cuboid6; -import codechicken.lib.vec.Vector3; import resonantinduction.core.Reference; -import resonantinduction.electrical.Electrical; import calclavia.lib.render.RenderUtility; import calclavia.lib.render.item.ISimpleItemRenderer; -import cpw.mods.fml.client.FMLClientHandler; +import codechicken.lib.vec.Cuboid6; public class RenderQuantumGlyph implements ISimpleItemRenderer { diff --git a/electrical/src/main/java/resonantinduction/quantum/gate/TraitQuantumGate.java b/electrical/src/main/java/resonantinduction/quantum/gate/TraitQuantumGate.java index 12dc88ff..ef790958 100644 --- a/electrical/src/main/java/resonantinduction/quantum/gate/TraitQuantumGate.java +++ b/electrical/src/main/java/resonantinduction/quantum/gate/TraitQuantumGate.java @@ -1,24 +1,14 @@ package resonantinduction.quantum.gate; import icbm.api.IBlockFrequency; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import calclavia.lib.utility.inventory.IExternalInventoryBox; -import mffs.api.fortron.FrequencyGrid; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTankInfo; -import universalelectricity.api.vector.VectorWorld; import codechicken.multipart.TMultiPart; import codechicken.multipart.TileMultipart; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java b/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java index 0e686a72..6f8818bb 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/Mechanical.java @@ -6,14 +6,17 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; +import resonantinduction.api.IMechanicalNode; import resonantinduction.core.Reference; import resonantinduction.core.ResonantInduction; import resonantinduction.core.Settings; import resonantinduction.core.TabRI; +import resonantinduction.core.grid.NodeRegistry; import resonantinduction.mechanical.belt.BlockConveyorBelt; import resonantinduction.mechanical.belt.TileConveyorBelt; import resonantinduction.mechanical.energy.gear.ItemGear; import resonantinduction.mechanical.energy.gear.ItemGearShaft; +import resonantinduction.mechanical.energy.grid.MechanicalNode; import resonantinduction.mechanical.energy.turbine.BlockWaterTurbine; import resonantinduction.mechanical.energy.turbine.BlockWindTurbine; import resonantinduction.mechanical.energy.turbine.SchematicWaterTurbine; @@ -55,7 +58,7 @@ import cpw.mods.fml.common.registry.GameRegistry; * * @author DarkCow, Calclavia */ -@Mod(modid = Mechanical.ID, name = Mechanical.NAME, version = Reference.VERSION, dependencies = "before:ThermalExpansion;required-after:" + ResonantInduction.ID) +@Mod(modid = Mechanical.ID, name = Mechanical.NAME, version = Reference.VERSION, dependencies = "before:ThermalExpansion;required-after:" + ResonantInduction.ID + ";after:ResonantInduction|Archaic") @NetworkMod(channels = Reference.CHANNEL, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class) public class Mechanical { @@ -104,6 +107,8 @@ public class Mechanical MinecraftForge.EVENT_BUS.register(new MicroblockHighlightHandler()); BlockCreativeBuilder.register(new SchematicWindTurbine()); BlockCreativeBuilder.register(new SchematicWaterTurbine()); + NodeRegistry.register(IMechanicalNode.class, MechanicalNode.class); + Settings.CONFIGURATION.load(); itemGear = contentRegistry.createItem(ItemGear.class); diff --git a/mechanical/src/main/java/resonantinduction/mechanical/MicroblockHighlightHandler.java b/mechanical/src/main/java/resonantinduction/mechanical/MicroblockHighlightHandler.java index d19df39e..cd0f8e86 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/MicroblockHighlightHandler.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/MicroblockHighlightHandler.java @@ -9,8 +9,8 @@ import org.lwjgl.opengl.GL11; import resonantinduction.core.prefab.part.IHighlight; import codechicken.lib.render.RenderUtils; import codechicken.lib.vec.Vector3; -import codechicken.microblock.FacePlacementGrid$; import codechicken.microblock.CornerPlacementGrid$; +import codechicken.microblock.FacePlacementGrid$; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGear.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGear.java index bede0546..305752a2 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGear.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/gear/PartGear.java @@ -12,8 +12,8 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import resonantinduction.core.Reference; +import resonantinduction.core.grid.INode; import resonantinduction.core.grid.INodeProvider; -import resonantinduction.core.grid.Node; import resonantinduction.core.resource.ItemHandCrank; import resonantinduction.mechanical.Mechanical; import resonantinduction.mechanical.energy.grid.MechanicalNode; @@ -344,7 +344,7 @@ public class PartGear extends PartMechanical implements IMultiBlockStructure 0) { - node.apply(isClockwiseCrank ? 2 : -2, isClockwiseCrank ? 0.02f : -0.02f); + node.apply(isClockwiseCrank ? 5 : -5, isClockwiseCrank ? 0.025f : -0.025f); manualCrankTime--; } @@ -528,7 +528,7 @@ public class PartGear extends PartMechanical implements IMultiBlockStructure N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { if (nodeType.isAssignableFrom(node.getClass())) return (N) getMultiBlock().get().node; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/MechanicalNode.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/MechanicalNode.java index e7d357fb..8878338b 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/MechanicalNode.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/MechanicalNode.java @@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; +import resonantinduction.api.IMechanicalNode; import resonantinduction.core.ResonantInduction; import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.Node; @@ -51,6 +52,7 @@ public class MechanicalNode extends Node N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { if (nodeType.isAssignableFrom(node.getClass())) return (N) node; @@ -95,18 +94,23 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu { if (world() != null && !world().isRemote) { - sendDescUpdate(); - // TODO: Make packets more efficient. - // getWriteStream().writeByte(1).writeFloat(angularVelocity); + getWriteStream().writeByte(1).writeDouble(node.angularVelocity); } } + /** Packet Code. */ + @Override + public void read(MCDataInput packet) + { + read(packet, packet.readUByte()); + } + public void read(MCDataInput packet, int packetID) { switch (packetID) { case 0: - readDesc(packet); + load(packet.readNBTTagCompound()); break; case 1: node.angularVelocity = packet.readDouble(); @@ -114,29 +118,22 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu } } - /** Packet Code. */ @Override public void readDesc(MCDataInput packet) { + packet.readByte(); load(packet.readNBTTagCompound()); } @Override public void writeDesc(MCDataOutput packet) { - // packet.writeByte(0); + packet.writeByte(0); NBTTagCompound nbt = new NBTTagCompound(); save(nbt); packet.writeNBTTagCompound(nbt); } - @Override - public void read(MCDataInput packet) - { - super.read(packet); - // read(packet, packet.readUByte()); - } - @Override public int redstoneConductionMap() { diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/TileMechanical.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/TileMechanical.java index 084246ee..dbdb2b2c 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/TileMechanical.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/TileMechanical.java @@ -5,8 +5,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.ForgeDirection; import resonantinduction.core.ResonantInduction; +import resonantinduction.core.grid.INode; import resonantinduction.core.grid.INodeProvider; -import resonantinduction.core.grid.Node; import resonantinduction.mechanical.Mechanical; import universalelectricity.api.vector.Vector3; import calclavia.lib.content.module.TileBase; @@ -82,7 +82,7 @@ public abstract class TileMechanical extends TileBase implements INodeProvider, } @Override - public N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { if (nodeType.isAssignableFrom(mechanicalNode.getClass())) return (N) mechanicalNode; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWaterTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWaterTurbine.java index feaf77b2..c21bc20c 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWaterTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/RenderWaterTurbine.java @@ -48,7 +48,7 @@ public class RenderWaterTurbine extends TileEntitySpecialRenderer implements ISi public void renderInventoryItem(ItemStack itemStack) { GL11.glPushMatrix(); - GL11.glTranslatef((float) 0.5f, (float) 0.5f, (float) 0.5f); + GL11.glTranslatef(0.5f, 0.5f, 0.5f); renderWaterTurbine(itemStack.getItemDamage(), 1, false); GL11.glPopMatrix(); } diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileMechanicalTurbine.java b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileMechanicalTurbine.java index ead281ec..a502f9be 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileMechanicalTurbine.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/energy/turbine/TileMechanicalTurbine.java @@ -3,8 +3,8 @@ package resonantinduction.mechanical.energy.turbine; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; +import resonantinduction.core.grid.INode; import resonantinduction.core.grid.INodeProvider; -import resonantinduction.core.grid.Node; import resonantinduction.mechanical.energy.grid.MechanicalNode; import universalelectricity.api.energy.EnergyStorageHandler; import calclavia.lib.network.Synced.SyncedInput; @@ -77,7 +77,7 @@ public class TileMechanicalTurbine extends TileTurbine implements INodeProvider } @Override - public N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { if (nodeType.isAssignableFrom(mechanicalNode.getClass())) return (N) ((TileMechanicalTurbine) getMultiBlock().get()).mechanicalNode; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/ItemPipe.java b/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/ItemPipe.java index 8fb703c3..96bf2e95 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/ItemPipe.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/ItemPipe.java @@ -2,17 +2,17 @@ package resonantinduction.mechanical.fluid.pipe; import java.util.List; -import org.lwjgl.input.Keyboard; - -import resonantinduction.electrical.wire.EnumWireMaterial; -import universalelectricity.api.energy.UnitDisplay; -import universalelectricity.api.energy.UnitDisplay.Unit; -import calclavia.lib.render.EnumColor; -import calclavia.lib.utility.LanguageUtility; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; + +import org.lwjgl.input.Keyboard; + +import universalelectricity.api.energy.UnitDisplay; +import universalelectricity.api.energy.UnitDisplay.Unit; +import calclavia.lib.render.EnumColor; +import calclavia.lib.utility.LanguageUtility; import codechicken.lib.vec.BlockCoord; import codechicken.lib.vec.Vector3; import codechicken.multipart.JItemMultiPart; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/PartPipe.java b/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/PartPipe.java index c4748044..5c348c88 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/PartPipe.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/PartPipe.java @@ -12,8 +12,8 @@ import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; import resonantinduction.core.ResonantInduction; -import resonantinduction.core.grid.fluid.IPressureNodeProvider; import resonantinduction.core.grid.fluid.FluidPressureNode; +import resonantinduction.core.grid.fluid.IPressureNodeProvider; import resonantinduction.core.prefab.part.PartFramedNode; import resonantinduction.mechanical.Mechanical; import calclavia.lib.utility.WorldUtility; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/RenderPipe.java b/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/RenderPipe.java index e6ccb3f6..5475bcfc 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/RenderPipe.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/fluid/pipe/RenderPipe.java @@ -118,7 +118,7 @@ public class RenderPipe implements ISimpleItemRenderer GL11.glColor4f(material.color.getRed() / 255f, material.color.getGreen() / 255f, material.color.getBlue() / 255f, 1); MODEL.renderOnly("Mid"); - + /** * Render each side */ diff --git a/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/RenderPump.java b/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/RenderPump.java index d28af245..2ab67b5e 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/RenderPump.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/RenderPump.java @@ -19,6 +19,7 @@ public class RenderPump extends TileEntitySpecialRenderer public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "pump.tcn"); public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "pump.png"); + @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { TilePump tile = (TilePump) tileEntity; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/TilePump.java b/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/TilePump.java index 4bcb178f..2de715be 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/TilePump.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/fluid/transport/TilePump.java @@ -7,10 +7,9 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; -import resonantinduction.core.Reference; -import resonantinduction.core.grid.Node; -import resonantinduction.core.grid.fluid.IPressureNodeProvider; +import resonantinduction.core.grid.INode; import resonantinduction.core.grid.fluid.FluidPressureNode; +import resonantinduction.core.grid.fluid.IPressureNodeProvider; import resonantinduction.mechanical.energy.grid.TileMechanical; import universalelectricity.api.UniversalElectricity; import universalelectricity.api.vector.Vector3; @@ -154,7 +153,7 @@ public class TilePump extends TileMechanical implements IPressureNodeProvider, I } @Override - public N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { if (nodeType.isAssignableFrom(pressureNode.getClass())) return (N) pressureNode; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/BlockDetector.java b/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/BlockDetector.java index 880a93bf..f44a9130 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/BlockDetector.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/BlockDetector.java @@ -74,7 +74,7 @@ public class BlockDetector extends BlockImprintable ((TileDetector) tileEntity).toggleInversion(); return true; } - + return false; } diff --git a/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/TileSorter.java b/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/TileSorter.java index d9148b7e..c93a2e3d 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/TileSorter.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/logistic/belt/TileSorter.java @@ -1,7 +1,6 @@ package resonantinduction.mechanical.logistic.belt; import java.util.ArrayList; -import java.util.EnumSet; import java.util.List; import net.minecraft.block.Block; @@ -20,7 +19,6 @@ import net.minecraftforge.common.ForgeDirection; import org.lwjgl.opengl.GL11; -import resonantinduction.api.IFilterable; import resonantinduction.core.Reference; import resonantinduction.core.prefab.imprint.ItemImprint; import universalelectricity.api.UniversalElectricity; @@ -55,6 +53,7 @@ public class TileSorter extends TileInventory return interactCurrentItem(side, player); } + @Override protected boolean configure(EntityPlayer player, int side, Vector3 vector3) { isInverted = !isInverted; @@ -134,7 +133,7 @@ public class TileSorter extends TileInventory int blockID = position().translate(dir).getBlockID(world()); Block block = Block.blocksList[blockID]; - if (block == null || !block.isNormalCube(blockID)) + if (block == null || !Block.isNormalCube(blockID)) { possibleDirections.add(dir); } @@ -152,7 +151,7 @@ public class TileSorter extends TileInventory int blockID = position().translate(dir).getBlockID(world()); Block block = Block.blocksList[blockID]; - if (block == null || !block.isNormalCube(blockID)) + if (block == null || !Block.isNormalCube(blockID)) { possibleDirections.add(dir); } diff --git a/mechanical/src/main/java/resonantinduction/mechanical/logistic/rail/PartRailing.java b/mechanical/src/main/java/resonantinduction/mechanical/logistic/rail/PartRailing.java index 172c0fcb..6f86b483 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/logistic/rail/PartRailing.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/logistic/rail/PartRailing.java @@ -7,7 +7,6 @@ import resonantinduction.core.prefab.part.PartFramedConnection; import resonantinduction.mechanical.fluid.pipe.EnumPipeMaterial; import universalelectricity.api.net.INodeNetwork; import codechicken.microblock.IHollowConnect; -import codechicken.multipart.JIconHitEffects; import codechicken.multipart.JNormalOcclusion; import codechicken.multipart.TSlottedPart; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/process/crusher/RenderMechanicalPiston.java b/mechanical/src/main/java/resonantinduction/mechanical/process/crusher/RenderMechanicalPiston.java index 5fa1ba0e..bd0783ed 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/process/crusher/RenderMechanicalPiston.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/process/crusher/RenderMechanicalPiston.java @@ -9,7 +9,6 @@ import net.minecraftforge.client.model.IModelCustom; import org.lwjgl.opengl.GL11; import resonantinduction.core.Reference; -import resonantinduction.core.grid.fluid.FluidPressureNode; import calclavia.lib.render.RenderUtility; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/mechanical/src/main/java/resonantinduction/mechanical/process/grinder/RenderGrindingWheel.java b/mechanical/src/main/java/resonantinduction/mechanical/process/grinder/RenderGrindingWheel.java index 4b7d30e5..ed969514 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/process/grinder/RenderGrindingWheel.java +++ b/mechanical/src/main/java/resonantinduction/mechanical/process/grinder/RenderGrindingWheel.java @@ -22,7 +22,7 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RenderGrindingWheel extends TileEntitySpecialRenderer { - public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "grinder.obj"); + public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "grinder.obj"); @Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/IEnergyNode.java b/src/main/java/resonantinduction/api/IEnergyNode.java similarity index 67% rename from mechanical/src/main/java/resonantinduction/mechanical/energy/grid/IEnergyNode.java rename to src/main/java/resonantinduction/api/IEnergyNode.java index 7997af88..f569701e 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/IEnergyNode.java +++ b/src/main/java/resonantinduction/api/IEnergyNode.java @@ -1,6 +1,8 @@ -package resonantinduction.mechanical.energy.grid; +package resonantinduction.api; -public interface IEnergyNode +import resonantinduction.core.grid.INode; + +public interface IEnergyNode extends INode { /** * @return Gets the power of this node. Note that power by definition is energy per second. diff --git a/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/IMechanicalNode.java b/src/main/java/resonantinduction/api/IMechanicalNode.java similarity index 72% rename from mechanical/src/main/java/resonantinduction/mechanical/energy/grid/IMechanicalNode.java rename to src/main/java/resonantinduction/api/IMechanicalNode.java index c569dac4..7e0e5337 100644 --- a/mechanical/src/main/java/resonantinduction/mechanical/energy/grid/IMechanicalNode.java +++ b/src/main/java/resonantinduction/api/IMechanicalNode.java @@ -1,5 +1,6 @@ -package resonantinduction.mechanical.energy.grid; +package resonantinduction.api; +import resonantinduction.mechanical.energy.grid.MechanicalNode; import net.minecraftforge.common.ForgeDirection; public interface IMechanicalNode extends IEnergyNode @@ -13,4 +14,6 @@ public interface IMechanicalNode extends IEnergyNode public float getRatio(ForgeDirection dir, MechanicalNode with); public boolean inverseRotation(ForgeDirection dir, MechanicalNode with); + + public IMechanicalNode setLoad(double load); } diff --git a/src/main/java/resonantinduction/core/ResonantInduction.java b/src/main/java/resonantinduction/core/ResonantInduction.java index 193a1c13..8632a772 100644 --- a/src/main/java/resonantinduction/core/ResonantInduction.java +++ b/src/main/java/resonantinduction/core/ResonantInduction.java @@ -3,7 +3,6 @@ package resonantinduction.core; import java.util.HashMap; import java.util.logging.Logger; -import calclavia.lib.configurable.ConfigHandler; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; @@ -22,6 +21,7 @@ import resonantinduction.core.resource.ResourceGenerator; import resonantinduction.core.resource.TileMaterial; import resonantinduction.core.resource.fluid.ItemOreResourceBucket; import resonantinduction.core.resource.fluid.TileFluidMixture; +import calclavia.lib.configurable.ConfigHandler; import calclavia.lib.content.ContentRegistry; import calclavia.lib.network.PacketAnnotation; import calclavia.lib.network.PacketHandler; @@ -37,8 +37,6 @@ import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.event.FMLServerStoppingEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; diff --git a/src/main/java/resonantinduction/core/Settings.java b/src/main/java/resonantinduction/core/Settings.java index e24fdafe..096461d6 100644 --- a/src/main/java/resonantinduction/core/Settings.java +++ b/src/main/java/resonantinduction/core/Settings.java @@ -3,9 +3,9 @@ package resonantinduction.core; import java.io.File; import java.util.Arrays; -import calclavia.lib.configurable.Config; import net.minecraft.server.MinecraftServer; import net.minecraftforge.common.Configuration; +import calclavia.lib.configurable.Config; import calclavia.lib.content.IDManager; import calclavia.lib.utility.LanguageUtility; import cpw.mods.fml.common.FMLCommonHandler; diff --git a/src/main/java/resonantinduction/core/fluid/FluidColored.java b/src/main/java/resonantinduction/core/fluid/FluidColored.java index 393de28c..75c127ce 100644 --- a/src/main/java/resonantinduction/core/fluid/FluidColored.java +++ b/src/main/java/resonantinduction/core/fluid/FluidColored.java @@ -11,6 +11,7 @@ public class FluidColored extends Fluid super(fluidName); } + @Override public int getColor() { return color; diff --git a/src/main/java/resonantinduction/core/fluid/FluidDistributionetwork.java b/src/main/java/resonantinduction/core/fluid/FluidDistributionetwork.java index 90d0c172..22b2610e 100644 --- a/src/main/java/resonantinduction/core/fluid/FluidDistributionetwork.java +++ b/src/main/java/resonantinduction/core/fluid/FluidDistributionetwork.java @@ -123,6 +123,7 @@ public abstract class FluidDistributionetwork extends NodeNetwork N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { if (nodeType.isAssignableFrom(node.getClass())) return (N) node; diff --git a/src/main/java/resonantinduction/core/grid/INode.java b/src/main/java/resonantinduction/core/grid/INode.java new file mode 100644 index 00000000..311d3908 --- /dev/null +++ b/src/main/java/resonantinduction/core/grid/INode.java @@ -0,0 +1,26 @@ +package resonantinduction.core.grid; + +public interface INode +{ + /** + * Called to reconstruct and reset all connections for this node/ + */ + public void reconstruct(); + + /** + * This destroys the node, removing it from the grid and also destroying all references to it. + */ + public void deconstruct(); + + /** + * Clears all the node's cache. + */ + public void recache(); + + /** + * Called to update the node. + * + * @param deltaTime - Time in seconds that has passed compared to the last update time. + */ + public void update(float deltaTime); +} diff --git a/src/main/java/resonantinduction/core/grid/INodeProvider.java b/src/main/java/resonantinduction/core/grid/INodeProvider.java index ae6846ba..78ce9933 100644 --- a/src/main/java/resonantinduction/core/grid/INodeProvider.java +++ b/src/main/java/resonantinduction/core/grid/INodeProvider.java @@ -14,5 +14,5 @@ public interface INodeProvider * @param from - The direction. * @return Returns the node object. */ - public N getNode(Class nodeType, ForgeDirection from); + public N getNode(Class nodeType, ForgeDirection from); } diff --git a/src/main/java/resonantinduction/core/grid/Node.java b/src/main/java/resonantinduction/core/grid/Node.java index 15816318..97de4327 100644 --- a/src/main/java/resonantinduction/core/grid/Node.java +++ b/src/main/java/resonantinduction/core/grid/Node.java @@ -6,7 +6,7 @@ import java.util.WeakHashMap; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.ForgeDirection; -public abstract class Node

+public abstract class Node

implements INode { public final P parent; @@ -54,9 +54,6 @@ public abstract class Node

} } - /** - * This destroys the node, removing it from the grid and also destroying all references to it. - */ public void deconstruct() { synchronized (connections) diff --git a/src/main/java/resonantinduction/core/grid/NodeRegistry.java b/src/main/java/resonantinduction/core/grid/NodeRegistry.java index 3feed0a3..8febf2bb 100644 --- a/src/main/java/resonantinduction/core/grid/NodeRegistry.java +++ b/src/main/java/resonantinduction/core/grid/NodeRegistry.java @@ -17,13 +17,13 @@ public class NodeRegistry INTERFACE_NODE_MAP.put(nodeInterface, nodeClass); } - public static Class get(INodeProvider parent, Class nodeInterface) + public static N get(INodeProvider parent, Class nodeInterface) { Class nodeClass = INTERFACE_NODE_MAP.get(nodeInterface); try { - return (Class) nodeClass.getConstructor(INodeProvider.class).newInstance(parent); + return (N) nodeClass.getConstructor(INodeProvider.class).newInstance(parent); } catch (Exception e) { diff --git a/src/main/java/resonantinduction/core/grid/TickingGrid.java b/src/main/java/resonantinduction/core/grid/TickingGrid.java index a0cd7e79..b89b7a48 100644 --- a/src/main/java/resonantinduction/core/grid/TickingGrid.java +++ b/src/main/java/resonantinduction/core/grid/TickingGrid.java @@ -1,7 +1,6 @@ package resonantinduction.core.grid; import universalelectricity.api.net.IUpdate; -import universalelectricity.core.net.NetworkTickHandler; public class TickingGrid extends NodeGrid implements IUpdate { diff --git a/src/main/java/resonantinduction/core/grid/TraitNodeProvider.java b/src/main/java/resonantinduction/core/grid/TraitNodeProvider.java index b3e0fb8d..b29b013a 100644 --- a/src/main/java/resonantinduction/core/grid/TraitNodeProvider.java +++ b/src/main/java/resonantinduction/core/grid/TraitNodeProvider.java @@ -53,7 +53,7 @@ public class TraitNodeProvider extends TileMultipart implements INodeProvider } @Override - public N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { TMultiPart part = this.partMap(from.ordinal()); diff --git a/src/main/java/resonantinduction/core/grid/fluid/FluidPressureNode.java b/src/main/java/resonantinduction/core/grid/fluid/FluidPressureNode.java index 9689977a..a197638c 100644 --- a/src/main/java/resonantinduction/core/grid/fluid/FluidPressureNode.java +++ b/src/main/java/resonantinduction/core/grid/fluid/FluidPressureNode.java @@ -202,6 +202,7 @@ public class FluidPressureNode extends Node handleTooltip(GuiRecipe gui, List currenttip, int recipeID) - { - if(currenttip.size() == 0) - { - Point offset = gui.getRecipePosition(recipeID); - Point mouse = GuiDraw.getMousePosition(); - CachedRecipe cachedRecipe = this.arecipes.get(recipeID); - - if (cachedRecipe instanceof CachedRIRecipe) - { - CachedRIRecipe recipe = (CachedRIRecipe) cachedRecipe; - FluidStack fluid; - Rectangle rect; - - for (int i = 0; i < recipe.inputFluids.length; i++) - { - fluid = recipe.inputFluids[i]; - if (fluid == null) - break; - - rect = new Rectangle(offset.x + inputSlots[i][0] - 1, offset.y + inputSlots[i][1] - 1, 18, 18); - if (rect.contains(mouse)) - { - currenttip.add(fluid.getFluid().getLocalizedName()); - currenttip.add(LanguageUtility.getLocal("tooltip.ri.amount").replace("%s", fluid.amount + "")); - return currenttip; - } - } - - for (int i = 0; i < recipe.outputFluids.length; i++) - { - fluid = recipe.outputFluids[i]; - if (fluid == null) - break; + @Override + public List handleTooltip(GuiRecipe gui, List currenttip, int recipeID) + { + if (currenttip.size() == 0) + { + Point offset = gui.getRecipePosition(recipeID); + Point mouse = GuiDraw.getMousePosition(); - rect = new Rectangle(offset.x + outputSlots[i][0] - 1, offset.y + outputSlots[i][1] - 1, 18, 18); - if (rect.contains(mouse)) - { - currenttip.add(fluid.getFluid().getLocalizedName()); - currenttip.add(LanguageUtility.getLocal("tooltip.ri.amount").replace("%s", fluid.amount + "")); - return currenttip; - } - } - } - } - return currenttip; - } + CachedRecipe cachedRecipe = this.arecipes.get(recipeID); + + if (cachedRecipe instanceof CachedRIRecipe) + { + CachedRIRecipe recipe = (CachedRIRecipe) cachedRecipe; + FluidStack fluid; + Rectangle rect; + + for (int i = 0; i < recipe.inputFluids.length; i++) + { + fluid = recipe.inputFluids[i]; + if (fluid == null) + break; + + rect = new Rectangle(offset.x + inputSlots[i][0] - 1, offset.y + inputSlots[i][1] - 1, 18, 18); + if (rect.contains(mouse)) + { + currenttip.add(fluid.getFluid().getLocalizedName()); + currenttip.add(LanguageUtility.getLocal("tooltip.ri.amount").replace("%s", fluid.amount + "")); + return currenttip; + } + } + + for (int i = 0; i < recipe.outputFluids.length; i++) + { + fluid = recipe.outputFluids[i]; + if (fluid == null) + break; + + rect = new Rectangle(offset.x + outputSlots[i][0] - 1, offset.y + outputSlots[i][1] - 1, 18, 18); + if (rect.contains(mouse)) + { + currenttip.add(fluid.getFluid().getLocalizedName()); + currenttip.add(LanguageUtility.getLocal("tooltip.ri.amount").replace("%s", fluid.amount + "")); + return currenttip; + } + } + } + } + return currenttip; + } @Override public void loadCraftingRecipes(ItemStack result) diff --git a/src/main/java/resonantinduction/core/prefab/part/PartFramedConnection.java b/src/main/java/resonantinduction/core/prefab/part/PartFramedConnection.java index a9379bb9..8a535880 100644 --- a/src/main/java/resonantinduction/core/prefab/part/PartFramedConnection.java +++ b/src/main/java/resonantinduction/core/prefab/part/PartFramedConnection.java @@ -4,7 +4,6 @@ import java.util.Collection; import java.util.HashSet; import java.util.Set; -import net.minecraft.client.particle.EffectRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -24,8 +23,6 @@ import codechicken.lib.render.RenderUtils; import codechicken.lib.vec.Cuboid6; import codechicken.lib.vec.Translation; import codechicken.microblock.IHollowConnect; -import codechicken.multipart.IconHitEffects; -import codechicken.multipart.JIconHitEffects; import codechicken.multipart.JNormalOcclusion; import codechicken.multipart.NormalOcclusionTest; import codechicken.multipart.PartMap; diff --git a/src/main/java/resonantinduction/core/prefab/part/PartFramedNode.java b/src/main/java/resonantinduction/core/prefab/part/PartFramedNode.java index 5523da13..bd42aa00 100644 --- a/src/main/java/resonantinduction/core/prefab/part/PartFramedNode.java +++ b/src/main/java/resonantinduction/core/prefab/part/PartFramedNode.java @@ -8,14 +8,12 @@ import net.minecraft.client.particle.EffectRenderer; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Icon; import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.common.ForgeDirection; +import resonantinduction.core.grid.INode; import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.Node; -import universalelectricity.api.vector.Vector3; -import universalelectricity.api.vector.VectorHelper; import codechicken.lib.data.MCDataInput; import codechicken.lib.data.MCDataOutput; import codechicken.lib.raytracer.IndexedCuboid6; @@ -192,7 +190,7 @@ public abstract class PartFramedNode N getNode(Class nodeType, ForgeDirection from) + public N getNode(Class nodeType, ForgeDirection from) { if (nodeType.isAssignableFrom(node.getClass())) return (N) node; diff --git a/src/main/java/resonantinduction/core/resource/BlockDust.java b/src/main/java/resonantinduction/core/resource/BlockDust.java index d03bf797..f5ba52ba 100644 --- a/src/main/java/resonantinduction/core/resource/BlockDust.java +++ b/src/main/java/resonantinduction/core/resource/BlockDust.java @@ -12,7 +12,6 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import resonantinduction.core.Reference; import resonantinduction.core.ResonantInduction; -import scala.annotation.meta.setter; import calclavia.lib.prefab.block.BlockTile; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -250,6 +249,7 @@ public class BlockDust extends BlockTile return damageDropped(0); } + @Override public int damageDropped(int par1) { return nextDropMaterialID; diff --git a/src/main/java/resonantinduction/core/resource/ResourceGenerator.java b/src/main/java/resonantinduction/core/resource/ResourceGenerator.java index 16c5dad4..d19a9720 100644 --- a/src/main/java/resonantinduction/core/resource/ResourceGenerator.java +++ b/src/main/java/resonantinduction/core/resource/ResourceGenerator.java @@ -160,30 +160,28 @@ public class ResourceGenerator implements IVirtualObject ResonantInduction.blockMixtureFluids.put(getID(materialName), blockFluidMixture); FluidContainerRegistry.registerFluidContainer(fluidMixture, ResonantInduction.itemBucketMixture.getStackFromMaterial(materialName)); + ItemStack dust = ResonantInduction.itemDust.getStackFromMaterial(materialName); + ItemStack rubble = ResonantInduction.itemRubble.getStackFromMaterial(materialName); + ItemStack refinedDust = ResonantInduction.itemRefinedDust.getStackFromMaterial(materialName); + if (allowOreDictCompatibility) { OreDictionary.registerOre("dust" + nameCaps, ResonantInduction.itemDust.getStackFromMaterial(materialName)); OreDictionary.registerOre("rubble" + nameCaps, ResonantInduction.itemRubble.getStackFromMaterial(materialName)); OreDictionary.registerOre("dustRefined" + nameCaps, ResonantInduction.itemRefinedDust.getStackFromMaterial(materialName)); - MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, "rubble" + nameCaps, "dust" + nameCaps, "dust" + nameCaps); - MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, "dust" + nameCaps, "dustRefined" + nameCaps); + MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, "rubble" + nameCaps, dust, dust); + MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, "dust" + nameCaps, refinedDust); MachineRecipes.INSTANCE.addRecipe(RecipeType.SMELTER, new FluidStack(fluidMolten, FluidContainerRegistry.BUCKET_VOLUME), "ingot" + nameCaps); } else { - ItemStack dust = ResonantInduction.itemDust.getStackFromMaterial(materialName); - ItemStack rubble = ResonantInduction.itemRubble.getStackFromMaterial(materialName); - ItemStack refinedDust = ResonantInduction.itemRefinedDust.getStackFromMaterial(materialName); - MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, rubble, dust, dust); MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, dust, refinedDust); MachineRecipes.INSTANCE.addRecipe(RecipeType.SMELTER, new FluidStack(fluidMolten, FluidContainerRegistry.BUCKET_VOLUME), "ingot" + nameCaps); } - ItemStack dust = ResonantInduction.itemDust.getStackFromMaterial(materialName); FurnaceRecipes.smelting().addSmelting(dust.itemID, dust.getItemDamage(), OreDictionary.getOres("ingot" + nameCaps).get(0).copy(), 0.7f); - ItemStack refinedDust = ResonantInduction.itemRefinedDust.getStackFromMaterial(materialName); ItemStack smeltResult = OreDictionary.getOres("ingot" + nameCaps).get(0).copy(); FurnaceRecipes.smelting().addSmelting(refinedDust.itemID, refinedDust.getItemDamage(), smeltResult, 0.7f); diff --git a/src/main/java/resonantinduction/core/resource/fluid/ItemOreResourceBucket.java b/src/main/java/resonantinduction/core/resource/fluid/ItemOreResourceBucket.java index 9e167486..20ed1348 100644 --- a/src/main/java/resonantinduction/core/resource/fluid/ItemOreResourceBucket.java +++ b/src/main/java/resonantinduction/core/resource/fluid/ItemOreResourceBucket.java @@ -67,6 +67,7 @@ public class ItemOreResourceBucket extends Item * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, * world, entityPlayer */ + @Override public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityPlayer) { String materialName = ResourceGenerator.getName(itemStack.getItemDamage());