Node now uses INode interface

This commit is contained in:
Calclavia 2014-03-12 18:22:31 +08:00
parent ab9de9b555
commit 747c851a8c
68 changed files with 357 additions and 360 deletions

View file

@ -1,10 +1,11 @@
package resonantinduction.archaic.crate; package resonantinduction.archaic.crate;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import calclavia.lib.utility.LanguageUtility;
import net.minecraft.tileentity.TileEntity;
import resonantinduction.core.render.RenderItemOverlayTile; import resonantinduction.core.render.RenderItemOverlayTile;
import calclavia.lib.utility.LanguageUtility;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -14,9 +14,6 @@ import calclavia.lib.utility.inventory.IExtendedStorage;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
/** /**
* Basic single stack inventory. * Basic single stack inventory.
* *

View file

@ -29,7 +29,6 @@ import resonantinduction.core.prefab.imprint.ItemImprint;
import resonantinduction.core.render.RenderItemOverlayTile; import resonantinduction.core.render.RenderItemOverlayTile;
import universalelectricity.api.vector.Vector2; import universalelectricity.api.vector.Vector2;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
import universalelectricity.api.vector.VectorWorld;
import calclavia.lib.content.module.TileRender; import calclavia.lib.content.module.TileRender;
import calclavia.lib.content.module.prefab.TileInventory; import calclavia.lib.content.module.prefab.TileInventory;
import calclavia.lib.gui.ContainerDummy; import calclavia.lib.gui.ContainerDummy;
@ -114,7 +113,7 @@ public class TileEngineeringTable extends TileInventory implements IPacketReceiv
{ {
if (this instanceof IInventory) if (this instanceof IInventory)
{ {
IInventory inventory = (IInventory) this; IInventory inventory = this;
// Don't drop the output, so subtract by one. // Don't drop the output, so subtract by one.
for (int i = 0; i < inventory.getSizeInventory() - 1; ++i) for (int i = 0; i < inventory.getSizeInventory() - 1; ++i)

View file

@ -483,6 +483,7 @@ public class TileGrate extends TilePressureNode implements IRotatable
this.iterations = iterations; this.iterations = iterations;
} }
@Override
public int compareTo(Object obj) public int compareTo(Object obj)
{ {
ComparableVector wr = (ComparableVector) obj; ComparableVector wr = (ComparableVector) obj;

View file

@ -1,12 +1,8 @@
package resonantinduction.archaic.fluid.gutter; package resonantinduction.archaic.fluid.gutter;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection; 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 resonantinduction.core.grid.fluid.FluidPressureNode;
import calclavia.lib.utility.WorldUtility; import resonantinduction.core.grid.fluid.IPressureNodeProvider;
public class FluidGravityNode extends FluidPressureNode public class FluidGravityNode extends FluidPressureNode
{ {

View file

@ -24,14 +24,14 @@ import net.minecraftforge.fluids.IFluidTank;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import resonantinduction.api.recipe.MachineRecipes; import resonantinduction.api.recipe.MachineRecipes;
import resonantinduction.api.recipe.RecipeResource;
import resonantinduction.api.recipe.MachineRecipes.RecipeType; import resonantinduction.api.recipe.MachineRecipes.RecipeType;
import resonantinduction.api.recipe.RecipeResource;
import resonantinduction.archaic.fluid.grate.TileGrate; import resonantinduction.archaic.fluid.grate.TileGrate;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.fluid.TilePressureNode; import resonantinduction.core.fluid.TilePressureNode;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import resonantinduction.core.grid.fluid.FluidPressureNode; import resonantinduction.core.grid.fluid.FluidPressureNode;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
import calclavia.lib.content.module.TileRender; import calclavia.lib.content.module.TileRender;
import calclavia.lib.prefab.vector.Cuboid; import calclavia.lib.prefab.vector.Cuboid;
@ -271,6 +271,7 @@ public class TileGutter extends TilePressureNode
} }
} }
@Override
protected void onWorldJoin() protected void onWorldJoin()
{ {
onNeighborChanged(); onNeighborChanged();

View file

@ -9,8 +9,6 @@ import net.minecraftforge.fluids.FluidStack;
import resonantinduction.core.fluid.FluidDistributionetwork; import resonantinduction.core.fluid.FluidDistributionetwork;
import resonantinduction.core.fluid.IFluidDistribution; import resonantinduction.core.fluid.IFluidDistribution;
import calclavia.lib.utility.FluidUtility; import calclavia.lib.utility.FluidUtility;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
/** /**
* Network that handles connected tanks * Network that handles connected tanks

View file

@ -29,6 +29,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
itemBlock = ItemBlockFluidContainer.class; itemBlock = ItemBlockFluidContainer.class;
} }
@Override
protected boolean use(EntityPlayer player, int side, Vector3 vector3) protected boolean use(EntityPlayer player, int side, Vector3 vector3)
{ {
if (!world().isRemote) if (!world().isRemote)

View file

@ -18,7 +18,6 @@ import resonantinduction.electrical.render.FXElectricBolt;
import resonantinduction.electrical.tesla.RenderTesla; import resonantinduction.electrical.tesla.RenderTesla;
import resonantinduction.electrical.tesla.TileTesla; import resonantinduction.electrical.tesla.TileTesla;
import resonantinduction.electrical.transformer.RenderTransformer; import resonantinduction.electrical.transformer.RenderTransformer;
import resonantinduction.mechanical.energy.gear.RenderGear;
import resonantinduction.quantum.gate.RenderQuantumGlyph; import resonantinduction.quantum.gate.RenderQuantumGlyph;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
import calclavia.lib.render.item.GlobalItemRenderer; import calclavia.lib.render.item.GlobalItemRenderer;

View file

@ -22,9 +22,11 @@ import calclavia.lib.utility.inventory.InventoryUtility;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; 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 class BlockBattery extends BlockSidedIO implements ITileEntityProvider
{ {
public BlockBattery(int id) public BlockBattery(int id)

View file

@ -70,7 +70,7 @@ public class EnergyDistributionNetwork extends Network<EnergyDistributionNetwork
/** /**
* Apply energy loss. * Apply energy loss.
*/ */
double percentageLoss = 0;//Math.max(0, (1 - (getConnectors().size() * 6 / 100d))); double percentageLoss = 0;// Math.max(0, (1 - (getConnectors().size() * 6 / 100d)));
long energyLoss = (long) (percentageLoss * 100); long energyLoss = (long) (percentageLoss * 100);
totalEnergy -= energyLoss; totalEnergy -= energyLoss;

View file

@ -70,7 +70,10 @@ public class RenderBattery extends TileEntitySpecialRenderer implements ISimpleI
{ {
final String[][] partToDisable = new String[][] { new String[] { "bottom" }, new String[] { "top" }, new String[] { "frame1", "frame2" }, new String[] { "frame3", "frame4" }, new String[] { "frame4", "frame1" }, new String[] { "frame2", "frame3" } }; final String[][] partToDisable = new String[][] { new String[] { "bottom" }, new String[] { "top" }, new String[] { "frame1", "frame2" }, new String[] { "frame3", "frame4" }, new String[] { "frame4", "frame1" }, new String[] { "frame2", "frame3" } };
final String[][] connectionPartToEnable = new String[][] { null, null, new String[] { "frame1con", "frame2con" }, new String[] { "frame3con", "frame4con" }, new String[] { "frame4con", "frame1con" }, new String[] { "frame2con", "frame3con" } }; final String[][] connectionPartToEnable = new String[][] { null, null, new String[] { "frame1con", "frame2con" }, new String[] { "frame3con", "frame4con" }, new String[] { "frame4con", "frame1con" }, new String[] { "frame2con", "frame3con" } };
//final String[][] connectionPartSideToEnable = new String[][] { null, null, new String[] { "frame1conSide", "frame2conSide" }, new String[] { "frame3conSide", "frame4conSide" }, new String[] { "frame4conSide", "frame1conSide" }, new String[] { "frame2conSide", "frame3conSide" } }; // final String[][] connectionPartSideToEnable = new String[][] { null, null, new String[] {
// "frame1conSide", "frame2conSide" }, new String[] { "frame3conSide", "frame4conSide" },
// new String[] { "frame4conSide", "frame1conSide" }, new String[] { "frame2conSide",
// "frame3conSide" } };
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5); GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5);
@ -109,7 +112,7 @@ public class RenderBattery extends TileEntitySpecialRenderer implements ISimpleI
if (new Vector3(t).translate(sideCheck).getTileEntity(t.worldObj) instanceof TileBattery) if (new Vector3(t).translate(sideCheck).getTileEntity(t.worldObj) instanceof TileBattery)
{ {
connectionParts.removeAll(Arrays.asList(connectionPartToEnable[sideCheck.ordinal()])); connectionParts.removeAll(Arrays.asList(connectionPartToEnable[sideCheck.ordinal()]));
//connectionParts.addAll(Arrays.asList(connectionPartSideToEnable[sideCheck.ordinal()])); // connectionParts.addAll(Arrays.asList(connectionPartSideToEnable[sideCheck.ordinal()]));
} }
} }
} }

View file

@ -48,7 +48,7 @@ public class TileBattery extends TileEnergyDistribution implements IVoltageInput
*/ */
public static long getEnergyForTier(int tier) public static long getEnergyForTier(int tier)
{ {
return (long) (Math.round(Math.pow(500000000, (tier / (MAX_TIER + 0.7f)) + 1) / (500000000)) * (500000000)); return Math.round(Math.pow(500000000, (tier / (MAX_TIER + 0.7f)) + 1) / (500000000)) * (500000000);
} }
@Override @Override

View file

@ -47,6 +47,7 @@ public class TileEnergyDistribution extends TileElectrical implements IConnector
{ {
return getNetwork().totalEnergy; return getNetwork().totalEnergy;
} }
@Override @Override
public long getEnergyCapacity(ForgeDirection from) public long getEnergyCapacity(ForgeDirection from)
{ {
@ -54,7 +55,6 @@ public class TileEnergyDistribution extends TileElectrical implements IConnector
} }
@Override @Override
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive) public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
{ {

View file

@ -1,12 +1,9 @@
package resonantinduction.electrical.generator; package resonantinduction.electrical.generator;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.client.model.IModelCustom;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;

View file

@ -4,8 +4,10 @@ import java.util.EnumSet;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonantinduction.api.IMechanicalNode;
import resonantinduction.core.grid.INode;
import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.Node; import resonantinduction.core.grid.NodeRegistry;
import resonantinduction.mechanical.energy.grid.MechanicalNode; import resonantinduction.mechanical.energy.grid.MechanicalNode;
import universalelectricity.api.energy.EnergyStorageHandler; import universalelectricity.api.energy.EnergyStorageHandler;
import calclavia.lib.prefab.tile.IRotatable; import calclavia.lib.prefab.tile.IRotatable;
@ -18,15 +20,7 @@ import calclavia.lib.prefab.tile.TileElectrical;
*/ */
public class TileGenerator extends TileElectrical implements IRotatable, INodeProvider public class TileGenerator extends TileElectrical implements IRotatable, INodeProvider
{ {
protected MechanicalNode node = new MechanicalNode(this) protected IMechanicalNode node;
{
@Override
public boolean canConnect(ForgeDirection from, Object source)
{
return from == getDirection() || from == getDirection().getOpposite();
}
}.setLoad(0.5f);
/** Generator turns KE -> EE. Inverted one will turn EE -> KE. */ /** Generator turns KE -> EE. Inverted one will turn EE -> KE. */
public boolean isInversed = true; public boolean isInversed = true;
@ -35,6 +29,10 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
public TileGenerator() public TileGenerator()
{ {
energy = new EnergyStorageHandler(1000000); energy = new EnergyStorageHandler(1000000);
node = NodeRegistry.get(this, IMechanicalNode.class);
if (node != null)
node.setLoad(0.5);
} }
public byte toggleGearRatio() public byte toggleGearRatio()
@ -61,6 +59,8 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
{ {
super.updateEntity(); super.updateEntity();
if (node != null)
{
if (!isInversed) if (!isInversed)
{ {
receiveMechanical(); receiveMechanical();
@ -70,20 +70,19 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
{ {
produceMechanical(); produceMechanical();
} }
}
} }
public void receiveMechanical() public void receiveMechanical()
{ {
double power = node.getEnergy(); double power = node.getEnergy();
// System.out.println(power);
long receive = energy.receiveEnergy((long) power, true); long receive = energy.receiveEnergy((long) power, true);
if (receive > 0) if (receive > 0)
{ {
double percentageUsed = (double) receive / (double) power; double percentageUsed = receive / power;
node.torque = (node.getTorque() - (node.getTorque() * percentageUsed)); node.apply(-node.getTorque() * percentageUsed, -node.getAngularVelocity() * percentageUsed);
node.angularVelocity = (node.getAngularVelocity() - (node.getAngularVelocity() * percentageUsed));
} }
} }
@ -99,7 +98,7 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
{ {
final double maxAngularVelocity = extract / (float) torqueRatio; final double maxAngularVelocity = extract / (float) torqueRatio;
final double maxTorque = ((double) extract) / maxAngularVelocity; final double maxTorque = (extract) / maxAngularVelocity;
double setAngularVelocity = maxAngularVelocity; double setAngularVelocity = maxAngularVelocity;
double setTorque = maxTorque; double setTorque = maxTorque;
@ -113,8 +112,7 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
if (currentVelo != 0) if (currentVelo != 0)
setAngularVelocity = Math.min(+setAngularVelocity, maxAngularVelocity) * (node.getAngularVelocity() / currentVelo); setAngularVelocity = Math.min(+setAngularVelocity, maxAngularVelocity) * (node.getAngularVelocity() / currentVelo);
node.torque = setTorque; node.apply(setTorque - node.getTorque(), setAngularVelocity - node.getAngularVelocity());
node.angularVelocity = setAngularVelocity;
energy.extractEnergy((long) Math.abs(setTorque * setAngularVelocity), true); energy.extractEnergy((long) Math.abs(setTorque * setAngularVelocity), true);
} }
} }
@ -165,10 +163,14 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
} }
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{
if (from == getDirection() || from == getDirection().getOpposite())
{ {
if (nodeType.isAssignableFrom(node.getClass())) if (nodeType.isAssignableFrom(node.getClass()))
return (N) node; return (N) node;
}
return null; return null;
} }
} }

View file

@ -2,8 +2,6 @@ package resonantinduction.electrical.multimeter;
import java.util.List; import java.util.List;
import org.lwjgl.input.Keyboard;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -11,11 +9,11 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon; import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import org.lwjgl.input.Keyboard;
import resonantinduction.core.prefab.part.IHighlight; import resonantinduction.core.prefab.part.IHighlight;
import resonantinduction.electrical.wire.EnumWireMaterial; 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.render.EnumColor;
import calclavia.lib.utility.LanguageUtility; import calclavia.lib.utility.LanguageUtility;
import codechicken.lib.vec.BlockCoord; import codechicken.lib.vec.BlockCoord;

View file

@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import calclavia.lib.utility.LanguageUtility;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import universalelectricity.api.energy.UnitDisplay; import universalelectricity.api.energy.UnitDisplay;
@ -13,6 +12,7 @@ import universalelectricity.api.net.IUpdate;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
import universalelectricity.core.net.Network; import universalelectricity.core.net.Network;
import universalelectricity.core.net.NetworkTickHandler; import universalelectricity.core.net.NetworkTickHandler;
import calclavia.lib.utility.LanguageUtility;
public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter> implements IUpdate public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter> implements IUpdate
{ {

View file

@ -11,13 +11,13 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.IFluidHandler;
import resonantinduction.api.IMechanicalNode;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import resonantinduction.core.grid.fluid.FluidPressureNode; import resonantinduction.core.grid.fluid.FluidPressureNode;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import resonantinduction.core.prefab.part.PartFace; import resonantinduction.core.prefab.part.PartFace;
import resonantinduction.electrical.Electrical; import resonantinduction.electrical.Electrical;
import resonantinduction.mechanical.energy.grid.MechanicalNode;
import universalelectricity.api.CompatibilityModule; import universalelectricity.api.CompatibilityModule;
import universalelectricity.api.electricity.IElectricalNetwork; import universalelectricity.api.electricity.IElectricalNetwork;
import universalelectricity.api.energy.IConductor; import universalelectricity.api.energy.IConductor;
@ -271,7 +271,7 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
if (tileEntity instanceof INodeProvider) if (tileEntity instanceof INodeProvider)
{ {
MechanicalNode instance = ((INodeProvider) tileEntity).getNode(MechanicalNode.class, receivingSide); IMechanicalNode instance = ((INodeProvider) tileEntity).getNode(IMechanicalNode.class, receivingSide);
for (ForgeDirection dir : ForgeDirection.values()) for (ForgeDirection dir : ForgeDirection.values())
{ {
@ -280,7 +280,7 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
break; break;
} }
instance = ((INodeProvider) tileEntity).getNode(MechanicalNode.class, dir); instance = ((INodeProvider) tileEntity).getNode(IMechanicalNode.class, dir);
} }
if (instance != null) if (instance != null)
@ -370,7 +370,9 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
public void read(MCDataInput packet, int packetID) public void read(MCDataInput packet, int packetID)
{ {
if (packetID == 0) switch (packetID)
{
case 0:
{ {
placementSide = ForgeDirection.getOrientation(packet.readByte()); placementSide = ForgeDirection.getOrientation(packet.readByte());
facing = packet.readByte(); facing = packet.readByte();
@ -381,17 +383,21 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
getNetwork().size = new universalelectricity.api.vector.Vector3(packet.readNBTTagCompound()); getNetwork().size = new universalelectricity.api.vector.Vector3(packet.readNBTTagCompound());
getNetwork().isEnabled = packet.readBoolean(); getNetwork().isEnabled = packet.readBoolean();
refresh(); refresh();
break;
} }
else if (packetID == 1) case 1:
{ {
redstoneTriggerLimit = packet.readLong(); redstoneTriggerLimit = packet.readLong();
break;
} }
else if (packetID == 2) case 2:
{ {
isPrimary = packet.readBoolean(); isPrimary = packet.readBoolean();
if (isPrimary) if (isPrimary)
getNetwork().load(packet.readNBTTagCompound()); getNetwork().load(packet.readNBTTagCompound());
break;
}
} }
} }
@ -485,6 +491,7 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
return true; return true;
} }
@Override
protected ItemStack getItem() protected ItemStack getItem()
{ {
return new ItemStack(Electrical.itemMultimeter); return new ItemStack(Electrical.itemMultimeter);

View file

@ -40,6 +40,7 @@ public class PartTransformer extends PartFace implements IVoltageOutput, IEnergy
/** Amount to mulitply the step by (up x2. down /2) */ /** Amount to mulitply the step by (up x2. down /2) */
public byte multiplier = 2; public byte multiplier = 2;
@Override
public void preparePlacement(int side, int facing) public void preparePlacement(int side, int facing)
{ {
this.placementSide = ForgeDirection.getOrientation(side); this.placementSide = ForgeDirection.getOrientation(side);
@ -71,6 +72,7 @@ public class PartTransformer extends PartFace implements IVoltageOutput, IEnergy
return false; return false;
} }
@Override
protected ItemStack getItem() protected ItemStack getItem()
{ {
return new ItemStack(Electrical.itemTransformer); return new ItemStack(Electrical.itemTransformer);

View file

@ -8,14 +8,12 @@ import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import resonantinduction.core.MultipartUtility; import resonantinduction.core.MultipartUtility;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.Settings;
import resonantinduction.core.TabRI; import resonantinduction.core.TabRI;
import resonantinduction.electrical.wire.flat.PartFlatWire; import resonantinduction.electrical.wire.flat.PartFlatWire;
import resonantinduction.electrical.wire.flat.RenderFlatWire; import resonantinduction.electrical.wire.flat.RenderFlatWire;

View file

@ -13,7 +13,6 @@ import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
@ -21,13 +20,11 @@ import net.minecraftforge.common.MinecraftForge;
import resonantinduction.core.prefab.part.PartFramedConnection; import resonantinduction.core.prefab.part.PartFramedConnection;
import resonantinduction.electrical.Electrical; import resonantinduction.electrical.Electrical;
import resonantinduction.electrical.wire.EnumWireMaterial; import resonantinduction.electrical.wire.EnumWireMaterial;
import resonantinduction.electrical.wire.PartAdvancedWire;
import universalelectricity.api.CompatibilityModule; import universalelectricity.api.CompatibilityModule;
import universalelectricity.api.UniversalClass; import universalelectricity.api.UniversalClass;
import universalelectricity.api.energy.EnergyNetworkLoader; import universalelectricity.api.energy.EnergyNetworkLoader;
import universalelectricity.api.energy.IConductor; import universalelectricity.api.energy.IConductor;
import universalelectricity.api.energy.IEnergyNetwork; import universalelectricity.api.energy.IEnergyNetwork;
import universalelectricity.api.vector.Vector3;
import codechicken.lib.lighting.LazyLightMatrix; import codechicken.lib.lighting.LazyLightMatrix;
import codechicken.lib.render.CCRenderState; import codechicken.lib.render.CCRenderState;
import codechicken.lib.render.IconTransformation; import codechicken.lib.render.IconTransformation;
@ -36,7 +33,6 @@ import codechicken.lib.vec.BlockCoord;
import codechicken.lib.vec.Cuboid6; import codechicken.lib.vec.Cuboid6;
import codechicken.lib.vec.Translation; import codechicken.lib.vec.Translation;
import codechicken.microblock.IHollowConnect; import codechicken.microblock.IHollowConnect;
import codechicken.multipart.JIconHitEffects;
import codechicken.multipart.JNormalOcclusion; import codechicken.multipart.JNormalOcclusion;
import codechicken.multipart.MultiPartRegistry; import codechicken.multipart.MultiPartRegistry;
import codechicken.multipart.PartMap; import codechicken.multipart.PartMap;

View file

@ -5,7 +5,6 @@ import net.minecraft.entity.Entity;
import net.minecraft.inventory.ISidedInventory; import net.minecraft.inventory.ISidedInventory;
import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.IFluidHandler;
import calclavia.lib.utility.inventory.IExternalInventoryBox;
/** /**
* Only TileEntities should implement this. * Only TileEntities should implement this.

View file

@ -68,7 +68,7 @@ public class ItemQuantumGlyph extends JItemMultiPart implements IHighlight
} }
else else
{ {
//pos.offset(side); // pos.offset(side);
} }
} }

View file

@ -110,7 +110,7 @@ public class PartQuantumGlyph extends JCuboidPart implements TSlottedPart, JNorm
} }
} }
gates.remove((IQuantumGate) tile()); gates.remove(tile());
if (gates.size() > 0) if (gates.size() > 0)
{ {

View file

@ -1,11 +1,6 @@
package resonantinduction.quantum.gate; package resonantinduction.quantum.gate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; 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.Entity;
import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityList;
@ -13,9 +8,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.Teleporter; import net.minecraft.world.Teleporter;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServer;
import universalelectricity.api.vector.Vector3;
import universalelectricity.api.vector.VectorWorld; import universalelectricity.api.vector.VectorWorld;
public class QuantumGateManager public class QuantumGateManager
@ -93,7 +86,7 @@ public class QuantumGateManager
{ {
ChunkCoordinates chunkcoordinates = worldserver1.getSpawnPoint(); ChunkCoordinates chunkcoordinates = worldserver1.getSpawnPoint();
chunkcoordinates.posY = currentEntity.worldObj.getTopSolidOrLiquidBlock(chunkcoordinates.posX, chunkcoordinates.posZ); 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); worldserver1.spawnEntityInWorld(entity);

View file

@ -3,19 +3,13 @@ package resonantinduction.quantum.gate;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.item.ItemStack; 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 org.lwjgl.opengl.GL11;
import codechicken.lib.vec.Cuboid6;
import codechicken.lib.vec.Vector3;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.electrical.Electrical;
import calclavia.lib.render.RenderUtility; import calclavia.lib.render.RenderUtility;
import calclavia.lib.render.item.ISimpleItemRenderer; import calclavia.lib.render.item.ISimpleItemRenderer;
import cpw.mods.fml.client.FMLClientHandler; import codechicken.lib.vec.Cuboid6;
public class RenderQuantumGlyph implements ISimpleItemRenderer public class RenderQuantumGlyph implements ISimpleItemRenderer
{ {

View file

@ -1,24 +1,14 @@
package resonantinduction.quantum.gate; package resonantinduction.quantum.gate;
import icbm.api.IBlockFrequency; 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.Entity;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.FluidTankInfo;
import universalelectricity.api.vector.VectorWorld;
import codechicken.multipart.TMultiPart; import codechicken.multipart.TMultiPart;
import codechicken.multipart.TileMultipart; import codechicken.multipart.TileMultipart;

View file

@ -6,14 +6,17 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapedOreRecipe;
import resonantinduction.api.IMechanicalNode;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.Settings; import resonantinduction.core.Settings;
import resonantinduction.core.TabRI; import resonantinduction.core.TabRI;
import resonantinduction.core.grid.NodeRegistry;
import resonantinduction.mechanical.belt.BlockConveyorBelt; import resonantinduction.mechanical.belt.BlockConveyorBelt;
import resonantinduction.mechanical.belt.TileConveyorBelt; import resonantinduction.mechanical.belt.TileConveyorBelt;
import resonantinduction.mechanical.energy.gear.ItemGear; import resonantinduction.mechanical.energy.gear.ItemGear;
import resonantinduction.mechanical.energy.gear.ItemGearShaft; import resonantinduction.mechanical.energy.gear.ItemGearShaft;
import resonantinduction.mechanical.energy.grid.MechanicalNode;
import resonantinduction.mechanical.energy.turbine.BlockWaterTurbine; import resonantinduction.mechanical.energy.turbine.BlockWaterTurbine;
import resonantinduction.mechanical.energy.turbine.BlockWindTurbine; import resonantinduction.mechanical.energy.turbine.BlockWindTurbine;
import resonantinduction.mechanical.energy.turbine.SchematicWaterTurbine; import resonantinduction.mechanical.energy.turbine.SchematicWaterTurbine;
@ -55,7 +58,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
* *
* @author DarkCow, Calclavia * @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) @NetworkMod(channels = Reference.CHANNEL, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class)
public class Mechanical public class Mechanical
{ {
@ -104,6 +107,8 @@ public class Mechanical
MinecraftForge.EVENT_BUS.register(new MicroblockHighlightHandler()); MinecraftForge.EVENT_BUS.register(new MicroblockHighlightHandler());
BlockCreativeBuilder.register(new SchematicWindTurbine()); BlockCreativeBuilder.register(new SchematicWindTurbine());
BlockCreativeBuilder.register(new SchematicWaterTurbine()); BlockCreativeBuilder.register(new SchematicWaterTurbine());
NodeRegistry.register(IMechanicalNode.class, MechanicalNode.class);
Settings.CONFIGURATION.load(); Settings.CONFIGURATION.load();
itemGear = contentRegistry.createItem(ItemGear.class); itemGear = contentRegistry.createItem(ItemGear.class);

View file

@ -9,8 +9,8 @@ import org.lwjgl.opengl.GL11;
import resonantinduction.core.prefab.part.IHighlight; import resonantinduction.core.prefab.part.IHighlight;
import codechicken.lib.render.RenderUtils; import codechicken.lib.render.RenderUtils;
import codechicken.lib.vec.Vector3; import codechicken.lib.vec.Vector3;
import codechicken.microblock.FacePlacementGrid$;
import codechicken.microblock.CornerPlacementGrid$; import codechicken.microblock.CornerPlacementGrid$;
import codechicken.microblock.FacePlacementGrid$;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -12,8 +12,8 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.grid.INode;
import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.Node;
import resonantinduction.core.resource.ItemHandCrank; import resonantinduction.core.resource.ItemHandCrank;
import resonantinduction.mechanical.Mechanical; import resonantinduction.mechanical.Mechanical;
import resonantinduction.mechanical.energy.grid.MechanicalNode; import resonantinduction.mechanical.energy.grid.MechanicalNode;
@ -344,7 +344,7 @@ public class PartGear extends PartMechanical implements IMultiBlockStructure<Par
{ {
if (manualCrankTime > 0) if (manualCrankTime > 0)
{ {
node.apply(isClockwiseCrank ? 2 : -2, isClockwiseCrank ? 0.02f : -0.02f); node.apply(isClockwiseCrank ? 5 : -5, isClockwiseCrank ? 0.025f : -0.025f);
manualCrankTime--; manualCrankTime--;
} }
@ -528,7 +528,7 @@ public class PartGear extends PartMechanical implements IMultiBlockStructure<Par
} }
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{ {
if (nodeType.isAssignableFrom(node.getClass())) if (nodeType.isAssignableFrom(node.getClass()))
return (N) getMultiBlock().get().node; return (N) getMultiBlock().get().node;

View file

@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonantinduction.api.IMechanicalNode;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.Node; import resonantinduction.core.grid.Node;
@ -51,6 +52,7 @@ public class MechanicalNode extends Node<INodeProvider, TickingGrid, MechanicalN
super(parent); super(parent);
} }
@Override
public MechanicalNode setLoad(double load) public MechanicalNode setLoad(double load)
{ {
this.load = load; this.load = load;
@ -196,6 +198,7 @@ public class MechanicalNode extends Node<INodeProvider, TickingGrid, MechanicalN
/** /**
* Recache the connections. This is the default connection implementation. * Recache the connections. This is the default connection implementation.
*/ */
@Override
public void recache() public void recache()
{ {
synchronized (connections) synchronized (connections)

View file

@ -7,9 +7,8 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonantinduction.core.grid.INode;
import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.Node;
import resonantinduction.mechanical.energy.turbine.TileMechanicalTurbine;
import codechicken.lib.data.MCDataInput; import codechicken.lib.data.MCDataInput;
import codechicken.lib.data.MCDataOutput; import codechicken.lib.data.MCDataOutput;
import codechicken.multipart.JCuboidPart; import codechicken.multipart.JCuboidPart;
@ -71,7 +70,7 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
} }
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{ {
if (nodeType.isAssignableFrom(node.getClass())) if (nodeType.isAssignableFrom(node.getClass()))
return (N) node; return (N) node;
@ -95,18 +94,23 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
{ {
if (world() != null && !world().isRemote) if (world() != null && !world().isRemote)
{ {
sendDescUpdate(); getWriteStream().writeByte(1).writeDouble(node.angularVelocity);
// TODO: Make packets more efficient.
// getWriteStream().writeByte(1).writeFloat(angularVelocity);
} }
} }
/** Packet Code. */
@Override
public void read(MCDataInput packet)
{
read(packet, packet.readUByte());
}
public void read(MCDataInput packet, int packetID) public void read(MCDataInput packet, int packetID)
{ {
switch (packetID) switch (packetID)
{ {
case 0: case 0:
readDesc(packet); load(packet.readNBTTagCompound());
break; break;
case 1: case 1:
node.angularVelocity = packet.readDouble(); node.angularVelocity = packet.readDouble();
@ -114,29 +118,22 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
} }
} }
/** Packet Code. */
@Override @Override
public void readDesc(MCDataInput packet) public void readDesc(MCDataInput packet)
{ {
packet.readByte();
load(packet.readNBTTagCompound()); load(packet.readNBTTagCompound());
} }
@Override @Override
public void writeDesc(MCDataOutput packet) public void writeDesc(MCDataOutput packet)
{ {
// packet.writeByte(0); packet.writeByte(0);
NBTTagCompound nbt = new NBTTagCompound(); NBTTagCompound nbt = new NBTTagCompound();
save(nbt); save(nbt);
packet.writeNBTTagCompound(nbt); packet.writeNBTTagCompound(nbt);
} }
@Override
public void read(MCDataInput packet)
{
super.read(packet);
// read(packet, packet.readUByte());
}
@Override @Override
public int redstoneConductionMap() public int redstoneConductionMap()
{ {

View file

@ -5,8 +5,8 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.grid.INode;
import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.Node;
import resonantinduction.mechanical.Mechanical; import resonantinduction.mechanical.Mechanical;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
import calclavia.lib.content.module.TileBase; import calclavia.lib.content.module.TileBase;
@ -82,7 +82,7 @@ public abstract class TileMechanical extends TileBase implements INodeProvider,
} }
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{ {
if (nodeType.isAssignableFrom(mechanicalNode.getClass())) if (nodeType.isAssignableFrom(mechanicalNode.getClass()))
return (N) mechanicalNode; return (N) mechanicalNode;

View file

@ -48,7 +48,7 @@ public class RenderWaterTurbine extends TileEntitySpecialRenderer implements ISi
public void renderInventoryItem(ItemStack itemStack) public void renderInventoryItem(ItemStack itemStack)
{ {
GL11.glPushMatrix(); 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); renderWaterTurbine(itemStack.getItemDamage(), 1, false);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }

View file

@ -3,8 +3,8 @@ package resonantinduction.mechanical.energy.turbine;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonantinduction.core.grid.INode;
import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.Node;
import resonantinduction.mechanical.energy.grid.MechanicalNode; import resonantinduction.mechanical.energy.grid.MechanicalNode;
import universalelectricity.api.energy.EnergyStorageHandler; import universalelectricity.api.energy.EnergyStorageHandler;
import calclavia.lib.network.Synced.SyncedInput; import calclavia.lib.network.Synced.SyncedInput;
@ -77,7 +77,7 @@ public class TileMechanicalTurbine extends TileTurbine implements INodeProvider
} }
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{ {
if (nodeType.isAssignableFrom(mechanicalNode.getClass())) if (nodeType.isAssignableFrom(mechanicalNode.getClass()))
return (N) ((TileMechanicalTurbine) getMultiBlock().get()).mechanicalNode; return (N) ((TileMechanicalTurbine) getMultiBlock().get()).mechanicalNode;

View file

@ -2,17 +2,17 @@ package resonantinduction.mechanical.fluid.pipe;
import java.util.List; 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.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; 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.BlockCoord;
import codechicken.lib.vec.Vector3; import codechicken.lib.vec.Vector3;
import codechicken.multipart.JItemMultiPart; import codechicken.multipart.JItemMultiPart;

View file

@ -12,8 +12,8 @@ import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.IFluidHandler;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import resonantinduction.core.grid.fluid.FluidPressureNode; import resonantinduction.core.grid.fluid.FluidPressureNode;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import resonantinduction.core.prefab.part.PartFramedNode; import resonantinduction.core.prefab.part.PartFramedNode;
import resonantinduction.mechanical.Mechanical; import resonantinduction.mechanical.Mechanical;
import calclavia.lib.utility.WorldUtility; import calclavia.lib.utility.WorldUtility;

View file

@ -19,6 +19,7 @@ public class RenderPump extends TileEntitySpecialRenderer
public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "pump.tcn"); 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"); 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) public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
{ {
TilePump tile = (TilePump) tileEntity; TilePump tile = (TilePump) tileEntity;

View file

@ -7,10 +7,9 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.IFluidHandler;
import resonantinduction.core.Reference; import resonantinduction.core.grid.INode;
import resonantinduction.core.grid.Node;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import resonantinduction.core.grid.fluid.FluidPressureNode; import resonantinduction.core.grid.fluid.FluidPressureNode;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import resonantinduction.mechanical.energy.grid.TileMechanical; import resonantinduction.mechanical.energy.grid.TileMechanical;
import universalelectricity.api.UniversalElectricity; import universalelectricity.api.UniversalElectricity;
import universalelectricity.api.vector.Vector3; import universalelectricity.api.vector.Vector3;
@ -154,7 +153,7 @@ public class TilePump extends TileMechanical implements IPressureNodeProvider, I
} }
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{ {
if (nodeType.isAssignableFrom(pressureNode.getClass())) if (nodeType.isAssignableFrom(pressureNode.getClass()))
return (N) pressureNode; return (N) pressureNode;

View file

@ -1,7 +1,6 @@
package resonantinduction.mechanical.logistic.belt; package resonantinduction.mechanical.logistic.belt;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List; import java.util.List;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -20,7 +19,6 @@ import net.minecraftforge.common.ForgeDirection;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import resonantinduction.api.IFilterable;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.prefab.imprint.ItemImprint; import resonantinduction.core.prefab.imprint.ItemImprint;
import universalelectricity.api.UniversalElectricity; import universalelectricity.api.UniversalElectricity;
@ -55,6 +53,7 @@ public class TileSorter extends TileInventory
return interactCurrentItem(side, player); return interactCurrentItem(side, player);
} }
@Override
protected boolean configure(EntityPlayer player, int side, Vector3 vector3) protected boolean configure(EntityPlayer player, int side, Vector3 vector3)
{ {
isInverted = !isInverted; isInverted = !isInverted;
@ -134,7 +133,7 @@ public class TileSorter extends TileInventory
int blockID = position().translate(dir).getBlockID(world()); int blockID = position().translate(dir).getBlockID(world());
Block block = Block.blocksList[blockID]; Block block = Block.blocksList[blockID];
if (block == null || !block.isNormalCube(blockID)) if (block == null || !Block.isNormalCube(blockID))
{ {
possibleDirections.add(dir); possibleDirections.add(dir);
} }
@ -152,7 +151,7 @@ public class TileSorter extends TileInventory
int blockID = position().translate(dir).getBlockID(world()); int blockID = position().translate(dir).getBlockID(world());
Block block = Block.blocksList[blockID]; Block block = Block.blocksList[blockID];
if (block == null || !block.isNormalCube(blockID)) if (block == null || !Block.isNormalCube(blockID))
{ {
possibleDirections.add(dir); possibleDirections.add(dir);
} }

View file

@ -7,7 +7,6 @@ import resonantinduction.core.prefab.part.PartFramedConnection;
import resonantinduction.mechanical.fluid.pipe.EnumPipeMaterial; import resonantinduction.mechanical.fluid.pipe.EnumPipeMaterial;
import universalelectricity.api.net.INodeNetwork; import universalelectricity.api.net.INodeNetwork;
import codechicken.microblock.IHollowConnect; import codechicken.microblock.IHollowConnect;
import codechicken.multipart.JIconHitEffects;
import codechicken.multipart.JNormalOcclusion; import codechicken.multipart.JNormalOcclusion;
import codechicken.multipart.TSlottedPart; import codechicken.multipart.TSlottedPart;

View file

@ -9,7 +9,6 @@ import net.minecraftforge.client.model.IModelCustom;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.grid.fluid.FluidPressureNode;
import calclavia.lib.render.RenderUtility; import calclavia.lib.render.RenderUtility;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;

View file

@ -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. * @return Gets the power of this node. Note that power by definition is energy per second.

View file

@ -1,5 +1,6 @@
package resonantinduction.mechanical.energy.grid; package resonantinduction.api;
import resonantinduction.mechanical.energy.grid.MechanicalNode;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
public interface IMechanicalNode extends IEnergyNode public interface IMechanicalNode extends IEnergyNode
@ -13,4 +14,6 @@ public interface IMechanicalNode extends IEnergyNode
public float getRatio(ForgeDirection dir, MechanicalNode with); public float getRatio(ForgeDirection dir, MechanicalNode with);
public boolean inverseRotation(ForgeDirection dir, MechanicalNode with); public boolean inverseRotation(ForgeDirection dir, MechanicalNode with);
public IMechanicalNode setLoad(double load);
} }

View file

@ -3,7 +3,6 @@ package resonantinduction.core;
import java.util.HashMap; import java.util.HashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
import calclavia.lib.configurable.ConfigHandler;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
@ -22,6 +21,7 @@ import resonantinduction.core.resource.ResourceGenerator;
import resonantinduction.core.resource.TileMaterial; import resonantinduction.core.resource.TileMaterial;
import resonantinduction.core.resource.fluid.ItemOreResourceBucket; import resonantinduction.core.resource.fluid.ItemOreResourceBucket;
import resonantinduction.core.resource.fluid.TileFluidMixture; import resonantinduction.core.resource.fluid.TileFluidMixture;
import calclavia.lib.configurable.ConfigHandler;
import calclavia.lib.content.ContentRegistry; import calclavia.lib.content.ContentRegistry;
import calclavia.lib.network.PacketAnnotation; import calclavia.lib.network.PacketAnnotation;
import calclavia.lib.network.PacketHandler; 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.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent; 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.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;

View file

@ -3,9 +3,9 @@ package resonantinduction.core;
import java.io.File; import java.io.File;
import java.util.Arrays; import java.util.Arrays;
import calclavia.lib.configurable.Config;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraftforge.common.Configuration; import net.minecraftforge.common.Configuration;
import calclavia.lib.configurable.Config;
import calclavia.lib.content.IDManager; import calclavia.lib.content.IDManager;
import calclavia.lib.utility.LanguageUtility; import calclavia.lib.utility.LanguageUtility;
import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLCommonHandler;

View file

@ -11,6 +11,7 @@ public class FluidColored extends Fluid
super(fluidName); super(fluidName);
} }
@Override
public int getColor() public int getColor()
{ {
return color; return color;

View file

@ -123,6 +123,7 @@ public abstract class FluidDistributionetwork extends NodeNetwork<FluidDistribut
return this.tank; return this.tank;
} }
@Override
public Class getConnectorClass() public Class getConnectorClass()
{ {
return IFluidDistribution.class; return IFluidDistribution.class;

View file

@ -6,9 +6,9 @@ import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTank; import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.FluidTankInfo;
import resonantinduction.core.grid.Node; import resonantinduction.core.grid.INode;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import resonantinduction.core.grid.fluid.FluidPressureNode; import resonantinduction.core.grid.fluid.FluidPressureNode;
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
import calclavia.lib.network.IPacketReceiverWithID; import calclavia.lib.network.IPacketReceiverWithID;
/** /**
@ -95,7 +95,7 @@ public abstract class TilePressureNode extends TileFluidNode implements IPressur
} }
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{ {
if (nodeType.isAssignableFrom(node.getClass())) if (nodeType.isAssignableFrom(node.getClass()))
return (N) node; return (N) node;

View file

@ -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);
}

View file

@ -14,5 +14,5 @@ public interface INodeProvider
* @param from - The direction. * @param from - The direction.
* @return Returns the node object. * @return Returns the node object.
*/ */
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from); public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from);
} }

View file

@ -6,7 +6,7 @@ import java.util.WeakHashMap;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
public abstract class Node<P extends INodeProvider, G extends Grid, N> public abstract class Node<P extends INodeProvider, G extends Grid, N> implements INode
{ {
public final P parent; public final P parent;
@ -54,9 +54,6 @@ public abstract class Node<P extends INodeProvider, G extends Grid, N>
} }
} }
/**
* This destroys the node, removing it from the grid and also destroying all references to it.
*/
public void deconstruct() public void deconstruct()
{ {
synchronized (connections) synchronized (connections)

View file

@ -17,13 +17,13 @@ public class NodeRegistry
INTERFACE_NODE_MAP.put(nodeInterface, nodeClass); INTERFACE_NODE_MAP.put(nodeInterface, nodeClass);
} }
public static <N> Class<? extends N> get(INodeProvider parent, Class<N> nodeInterface) public static <N extends INode> N get(INodeProvider parent, Class<N> nodeInterface)
{ {
Class nodeClass = INTERFACE_NODE_MAP.get(nodeInterface); Class nodeClass = INTERFACE_NODE_MAP.get(nodeInterface);
try try
{ {
return (Class<? extends N>) nodeClass.getConstructor(INodeProvider.class).newInstance(parent); return (N) nodeClass.getConstructor(INodeProvider.class).newInstance(parent);
} }
catch (Exception e) catch (Exception e)
{ {

View file

@ -1,7 +1,6 @@
package resonantinduction.core.grid; package resonantinduction.core.grid;
import universalelectricity.api.net.IUpdate; import universalelectricity.api.net.IUpdate;
import universalelectricity.core.net.NetworkTickHandler;
public class TickingGrid<N extends Node> extends NodeGrid<N> implements IUpdate public class TickingGrid<N extends Node> extends NodeGrid<N> implements IUpdate
{ {

View file

@ -53,7 +53,7 @@ public class TraitNodeProvider extends TileMultipart implements INodeProvider
} }
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{ {
TMultiPart part = this.partMap(from.ordinal()); TMultiPart part = this.partMap(from.ordinal());

View file

@ -202,6 +202,7 @@ public class FluidPressureNode extends Node<IPressureNodeProvider, TickingGrid,
/** /**
* Recache the connections. This is the default connection implementation. * Recache the connections. This is the default connection implementation.
*/ */
@Override
public void recache() public void recache()
{ {
synchronized (connections) synchronized (connections)

View file

@ -6,8 +6,6 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import calclavia.lib.utility.LanguageUtility;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
@ -20,6 +18,7 @@ import resonantinduction.api.recipe.RecipeResource.FluidStackResource;
import resonantinduction.api.recipe.RecipeResource.ItemStackResource; import resonantinduction.api.recipe.RecipeResource.ItemStackResource;
import resonantinduction.api.recipe.RecipeResource.OreDictResource; import resonantinduction.api.recipe.RecipeResource.OreDictResource;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import calclavia.lib.utility.LanguageUtility;
import codechicken.core.gui.GuiDraw; import codechicken.core.gui.GuiDraw;
import codechicken.nei.PositionedStack; import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.GuiRecipe; import codechicken.nei.recipe.GuiRecipe;
@ -115,7 +114,7 @@ public abstract class RITemplateRecipeHandler extends TemplateRecipeHandler
@Override @Override
public List<String> handleTooltip(GuiRecipe gui, List<String> currenttip, int recipeID) public List<String> handleTooltip(GuiRecipe gui, List<String> currenttip, int recipeID)
{ {
if(currenttip.size() == 0) if (currenttip.size() == 0)
{ {
Point offset = gui.getRecipePosition(recipeID); Point offset = gui.getRecipePosition(recipeID);
Point mouse = GuiDraw.getMousePosition(); Point mouse = GuiDraw.getMousePosition();

View file

@ -4,7 +4,6 @@ import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import net.minecraft.client.particle.EffectRenderer;
import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -24,8 +23,6 @@ import codechicken.lib.render.RenderUtils;
import codechicken.lib.vec.Cuboid6; import codechicken.lib.vec.Cuboid6;
import codechicken.lib.vec.Translation; import codechicken.lib.vec.Translation;
import codechicken.microblock.IHollowConnect; import codechicken.microblock.IHollowConnect;
import codechicken.multipart.IconHitEffects;
import codechicken.multipart.JIconHitEffects;
import codechicken.multipart.JNormalOcclusion; import codechicken.multipart.JNormalOcclusion;
import codechicken.multipart.NormalOcclusionTest; import codechicken.multipart.NormalOcclusionTest;
import codechicken.multipart.PartMap; import codechicken.multipart.PartMap;

View file

@ -8,14 +8,12 @@ import net.minecraft.client.particle.EffectRenderer;
import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon; import net.minecraft.util.Icon;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import resonantinduction.core.grid.INode;
import resonantinduction.core.grid.INodeProvider; import resonantinduction.core.grid.INodeProvider;
import resonantinduction.core.grid.Node; import resonantinduction.core.grid.Node;
import universalelectricity.api.vector.Vector3;
import universalelectricity.api.vector.VectorHelper;
import codechicken.lib.data.MCDataInput; import codechicken.lib.data.MCDataInput;
import codechicken.lib.data.MCDataOutput; import codechicken.lib.data.MCDataOutput;
import codechicken.lib.raytracer.IndexedCuboid6; import codechicken.lib.raytracer.IndexedCuboid6;
@ -192,7 +190,7 @@ public abstract class PartFramedNode<M extends Enum, N extends Node, T extends I
public byte getAllCurrentConnections() public byte getAllCurrentConnections()
{ {
return (byte) (currentConnections); return (currentConnections);
} }
public static boolean connectionMapContainsSide(byte connections, ForgeDirection side) public static boolean connectionMapContainsSide(byte connections, ForgeDirection side)
@ -282,7 +280,7 @@ public abstract class PartFramedNode<M extends Enum, N extends Node, T extends I
@SuppressWarnings("hiding") @SuppressWarnings("hiding")
@Override @Override
public <N extends Node> N getNode(Class<? super N> nodeType, ForgeDirection from) public <N extends INode> N getNode(Class<? super N> nodeType, ForgeDirection from)
{ {
if (nodeType.isAssignableFrom(node.getClass())) if (nodeType.isAssignableFrom(node.getClass()))
return (N) node; return (N) node;

View file

@ -12,7 +12,6 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import scala.annotation.meta.setter;
import calclavia.lib.prefab.block.BlockTile; import calclavia.lib.prefab.block.BlockTile;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -250,6 +249,7 @@ public class BlockDust extends BlockTile
return damageDropped(0); return damageDropped(0);
} }
@Override
public int damageDropped(int par1) public int damageDropped(int par1)
{ {
return nextDropMaterialID; return nextDropMaterialID;

View file

@ -160,30 +160,28 @@ public class ResourceGenerator implements IVirtualObject
ResonantInduction.blockMixtureFluids.put(getID(materialName), blockFluidMixture); ResonantInduction.blockMixtureFluids.put(getID(materialName), blockFluidMixture);
FluidContainerRegistry.registerFluidContainer(fluidMixture, ResonantInduction.itemBucketMixture.getStackFromMaterial(materialName)); 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) if (allowOreDictCompatibility)
{ {
OreDictionary.registerOre("dust" + nameCaps, ResonantInduction.itemDust.getStackFromMaterial(materialName)); OreDictionary.registerOre("dust" + nameCaps, ResonantInduction.itemDust.getStackFromMaterial(materialName));
OreDictionary.registerOre("rubble" + nameCaps, ResonantInduction.itemRubble.getStackFromMaterial(materialName)); OreDictionary.registerOre("rubble" + nameCaps, ResonantInduction.itemRubble.getStackFromMaterial(materialName));
OreDictionary.registerOre("dustRefined" + nameCaps, ResonantInduction.itemRefinedDust.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.GRINDER, "rubble" + nameCaps, dust, dust);
MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, "dust" + nameCaps, "dustRefined" + nameCaps); MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, "dust" + nameCaps, refinedDust);
MachineRecipes.INSTANCE.addRecipe(RecipeType.SMELTER, new FluidStack(fluidMolten, FluidContainerRegistry.BUCKET_VOLUME), "ingot" + nameCaps); MachineRecipes.INSTANCE.addRecipe(RecipeType.SMELTER, new FluidStack(fluidMolten, FluidContainerRegistry.BUCKET_VOLUME), "ingot" + nameCaps);
} }
else 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.GRINDER, rubble, dust, dust);
MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, dust, refinedDust); MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, dust, refinedDust);
MachineRecipes.INSTANCE.addRecipe(RecipeType.SMELTER, new FluidStack(fluidMolten, FluidContainerRegistry.BUCKET_VOLUME), "ingot" + nameCaps); 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); 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(); ItemStack smeltResult = OreDictionary.getOres("ingot" + nameCaps).get(0).copy();
FurnaceRecipes.smelting().addSmelting(refinedDust.itemID, refinedDust.getItemDamage(), smeltResult, 0.7f); FurnaceRecipes.smelting().addSmelting(refinedDust.itemID, refinedDust.getItemDamage(), smeltResult, 0.7f);

View file

@ -67,6 +67,7 @@ public class ItemOreResourceBucket extends Item
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack,
* world, entityPlayer * world, entityPlayer
*/ */
@Override
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityPlayer) public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityPlayer)
{ {
String materialName = ResourceGenerator.getName(itemStack.getItemDamage()); String materialName = ResourceGenerator.getName(itemStack.getItemDamage());