Node now uses INode interface
This commit is contained in:
parent
ab9de9b555
commit
747c851a8c
68 changed files with 357 additions and 360 deletions
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
*
|
*
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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()]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -68,7 +68,7 @@ public class ItemQuantumGlyph extends JItemMultiPart implements IHighlight
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//pos.offset(side);
|
// pos.offset(side);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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.
|
|
@ -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);
|
||||||
}
|
}
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -11,6 +11,7 @@ public class FluidColored extends Fluid
|
||||||
super(fluidName);
|
super(fluidName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public int getColor()
|
public int getColor()
|
||||||
{
|
{
|
||||||
return color;
|
return color;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
26
src/main/java/resonantinduction/core/grid/INode.java
Normal file
26
src/main/java/resonantinduction/core/grid/INode.java
Normal 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);
|
||||||
|
}
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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());
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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());
|
||||||
|
|
Loading…
Reference in a new issue