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;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import resonantinduction.core.render.RenderItemOverlayTile;
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
|
|
@ -14,9 +14,6 @@ import calclavia.lib.utility.inventory.IExtendedStorage;
|
|||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
|
||||
/**
|
||||
* Basic single stack inventory.
|
||||
*
|
||||
|
|
|
@ -29,7 +29,6 @@ import resonantinduction.core.prefab.imprint.ItemImprint;
|
|||
import resonantinduction.core.render.RenderItemOverlayTile;
|
||||
import universalelectricity.api.vector.Vector2;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import universalelectricity.api.vector.VectorWorld;
|
||||
import calclavia.lib.content.module.TileRender;
|
||||
import calclavia.lib.content.module.prefab.TileInventory;
|
||||
import calclavia.lib.gui.ContainerDummy;
|
||||
|
@ -114,7 +113,7 @@ public class TileEngineeringTable extends TileInventory implements IPacketReceiv
|
|||
{
|
||||
if (this instanceof IInventory)
|
||||
{
|
||||
IInventory inventory = (IInventory) this;
|
||||
IInventory inventory = this;
|
||||
|
||||
// Don't drop the output, so subtract by one.
|
||||
for (int i = 0; i < inventory.getSizeInventory() - 1; ++i)
|
||||
|
|
|
@ -483,6 +483,7 @@ public class TileGrate extends TilePressureNode implements IRotatable
|
|||
this.iterations = iterations;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Object obj)
|
||||
{
|
||||
ComparableVector wr = (ComparableVector) obj;
|
||||
|
|
|
@ -1,12 +1,8 @@
|
|||
package resonantinduction.archaic.fluid.gutter;
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import resonantinduction.archaic.fluid.grate.TileGrate;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.core.grid.fluid.FluidPressureNode;
|
||||
import calclavia.lib.utility.WorldUtility;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
|
||||
public class FluidGravityNode extends FluidPressureNode
|
||||
{
|
||||
|
|
|
@ -24,14 +24,14 @@ import net.minecraftforge.fluids.IFluidTank;
|
|||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import resonantinduction.api.recipe.MachineRecipes;
|
||||
import resonantinduction.api.recipe.RecipeResource;
|
||||
import resonantinduction.api.recipe.MachineRecipes.RecipeType;
|
||||
import resonantinduction.api.recipe.RecipeResource;
|
||||
import resonantinduction.archaic.fluid.grate.TileGrate;
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.core.ResonantInduction;
|
||||
import resonantinduction.core.fluid.TilePressureNode;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.core.grid.fluid.FluidPressureNode;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import calclavia.lib.content.module.TileRender;
|
||||
import calclavia.lib.prefab.vector.Cuboid;
|
||||
|
@ -271,6 +271,7 @@ public class TileGutter extends TilePressureNode
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onWorldJoin()
|
||||
{
|
||||
onNeighborChanged();
|
||||
|
|
|
@ -9,8 +9,6 @@ import net.minecraftforge.fluids.FluidStack;
|
|||
import resonantinduction.core.fluid.FluidDistributionetwork;
|
||||
import resonantinduction.core.fluid.IFluidDistribution;
|
||||
import calclavia.lib.utility.FluidUtility;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
|
||||
/**
|
||||
* Network that handles connected tanks
|
||||
|
|
|
@ -29,6 +29,7 @@ public class TileTank extends TileFluidDistribution implements IComparatorInputO
|
|||
itemBlock = ItemBlockFluidContainer.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean use(EntityPlayer player, int side, Vector3 vector3)
|
||||
{
|
||||
if (!world().isRemote)
|
||||
|
|
|
@ -18,7 +18,6 @@ import resonantinduction.electrical.render.FXElectricBolt;
|
|||
import resonantinduction.electrical.tesla.RenderTesla;
|
||||
import resonantinduction.electrical.tesla.TileTesla;
|
||||
import resonantinduction.electrical.transformer.RenderTransformer;
|
||||
import resonantinduction.mechanical.energy.gear.RenderGear;
|
||||
import resonantinduction.quantum.gate.RenderQuantumGlyph;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import calclavia.lib.render.item.GlobalItemRenderer;
|
||||
|
|
|
@ -22,9 +22,11 @@ import calclavia.lib.utility.inventory.InventoryUtility;
|
|||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
/** A block that detects power.
|
||||
/**
|
||||
* A block that detects power.
|
||||
*
|
||||
* @author Calclavia */
|
||||
* @author Calclavia
|
||||
*/
|
||||
public class BlockBattery extends BlockSidedIO implements ITileEntityProvider
|
||||
{
|
||||
public BlockBattery(int id)
|
||||
|
|
|
@ -70,7 +70,7 @@ public class EnergyDistributionNetwork extends Network<EnergyDistributionNetwork
|
|||
/**
|
||||
* 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);
|
||||
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[][] 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.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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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
|
||||
|
|
|
@ -47,6 +47,7 @@ public class TileEnergyDistribution extends TileElectrical implements IConnector
|
|||
{
|
||||
return getNetwork().totalEnergy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getEnergyCapacity(ForgeDirection from)
|
||||
{
|
||||
|
@ -54,7 +55,6 @@ public class TileEnergyDistribution extends TileElectrical implements IConnector
|
|||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public long onReceiveEnergy(ForgeDirection from, long receive, boolean doReceive)
|
||||
{
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
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.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
|
|
@ -4,8 +4,10 @@ import java.util.EnumSet;
|
|||
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.api.IMechanicalNode;
|
||||
import resonantinduction.core.grid.INode;
|
||||
import resonantinduction.core.grid.INodeProvider;
|
||||
import resonantinduction.core.grid.Node;
|
||||
import resonantinduction.core.grid.NodeRegistry;
|
||||
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
||||
import universalelectricity.api.energy.EnergyStorageHandler;
|
||||
import calclavia.lib.prefab.tile.IRotatable;
|
||||
|
@ -18,15 +20,7 @@ import calclavia.lib.prefab.tile.TileElectrical;
|
|||
*/
|
||||
public class TileGenerator extends TileElectrical implements IRotatable, INodeProvider
|
||||
{
|
||||
protected MechanicalNode node = new MechanicalNode(this)
|
||||
{
|
||||
@Override
|
||||
public boolean canConnect(ForgeDirection from, Object source)
|
||||
{
|
||||
return from == getDirection() || from == getDirection().getOpposite();
|
||||
}
|
||||
|
||||
}.setLoad(0.5f);
|
||||
protected IMechanicalNode node;
|
||||
|
||||
/** Generator turns KE -> EE. Inverted one will turn EE -> KE. */
|
||||
public boolean isInversed = true;
|
||||
|
@ -35,6 +29,10 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
|
|||
public TileGenerator()
|
||||
{
|
||||
energy = new EnergyStorageHandler(1000000);
|
||||
node = NodeRegistry.get(this, IMechanicalNode.class);
|
||||
|
||||
if (node != null)
|
||||
node.setLoad(0.5);
|
||||
}
|
||||
|
||||
public byte toggleGearRatio()
|
||||
|
@ -61,6 +59,8 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
|
|||
{
|
||||
super.updateEntity();
|
||||
|
||||
if (node != null)
|
||||
{
|
||||
if (!isInversed)
|
||||
{
|
||||
receiveMechanical();
|
||||
|
@ -70,20 +70,19 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
|
|||
{
|
||||
produceMechanical();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void receiveMechanical()
|
||||
{
|
||||
double power = node.getEnergy();
|
||||
// System.out.println(power);
|
||||
|
||||
long receive = energy.receiveEnergy((long) power, true);
|
||||
|
||||
if (receive > 0)
|
||||
{
|
||||
double percentageUsed = (double) receive / (double) power;
|
||||
node.torque = (node.getTorque() - (node.getTorque() * percentageUsed));
|
||||
node.angularVelocity = (node.getAngularVelocity() - (node.getAngularVelocity() * percentageUsed));
|
||||
double percentageUsed = receive / power;
|
||||
node.apply(-node.getTorque() * percentageUsed, -node.getAngularVelocity() * percentageUsed);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,7 +98,7 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
|
|||
{
|
||||
final double maxAngularVelocity = extract / (float) torqueRatio;
|
||||
|
||||
final double maxTorque = ((double) extract) / maxAngularVelocity;
|
||||
final double maxTorque = (extract) / maxAngularVelocity;
|
||||
|
||||
double setAngularVelocity = maxAngularVelocity;
|
||||
double setTorque = maxTorque;
|
||||
|
@ -113,8 +112,7 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
|
|||
if (currentVelo != 0)
|
||||
setAngularVelocity = Math.min(+setAngularVelocity, maxAngularVelocity) * (node.getAngularVelocity() / currentVelo);
|
||||
|
||||
node.torque = setTorque;
|
||||
node.angularVelocity = setAngularVelocity;
|
||||
node.apply(setTorque - node.getTorque(), setAngularVelocity - node.getAngularVelocity());
|
||||
energy.extractEnergy((long) Math.abs(setTorque * setAngularVelocity), true);
|
||||
}
|
||||
}
|
||||
|
@ -165,10 +163,14 @@ public class TileGenerator extends TileElectrical implements IRotatable, INodePr
|
|||
}
|
||||
|
||||
@Override
|
||||
public <N 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()))
|
||||
return (N) node;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,8 +2,6 @@ package resonantinduction.electrical.multimeter;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
@ -11,11 +9,11 @@ import net.minecraft.tileentity.TileEntity;
|
|||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import resonantinduction.core.prefab.part.IHighlight;
|
||||
import resonantinduction.electrical.wire.EnumWireMaterial;
|
||||
import resonantinduction.mechanical.energy.gear.PartGearShaft;
|
||||
import universalelectricity.api.energy.UnitDisplay;
|
||||
import universalelectricity.api.energy.UnitDisplay.Unit;
|
||||
import calclavia.lib.render.EnumColor;
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
import codechicken.lib.vec.BlockCoord;
|
||||
|
|
|
@ -4,7 +4,6 @@ import java.util.ArrayList;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import universalelectricity.api.energy.UnitDisplay;
|
||||
|
@ -13,6 +12,7 @@ import universalelectricity.api.net.IUpdate;
|
|||
import universalelectricity.api.vector.Vector3;
|
||||
import universalelectricity.core.net.Network;
|
||||
import universalelectricity.core.net.NetworkTickHandler;
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
|
||||
public class MultimeterNetwork extends Network<MultimeterNetwork, PartMultimeter> implements IUpdate
|
||||
{
|
||||
|
|
|
@ -11,13 +11,13 @@ import net.minecraft.util.MovingObjectPosition;
|
|||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import resonantinduction.api.IMechanicalNode;
|
||||
import resonantinduction.core.ResonantInduction;
|
||||
import resonantinduction.core.grid.INodeProvider;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.core.grid.fluid.FluidPressureNode;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.core.prefab.part.PartFace;
|
||||
import resonantinduction.electrical.Electrical;
|
||||
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
||||
import universalelectricity.api.CompatibilityModule;
|
||||
import universalelectricity.api.electricity.IElectricalNetwork;
|
||||
import universalelectricity.api.energy.IConductor;
|
||||
|
@ -271,7 +271,7 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
|
|||
|
||||
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())
|
||||
{
|
||||
|
@ -280,7 +280,7 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
|
|||
break;
|
||||
}
|
||||
|
||||
instance = ((INodeProvider) tileEntity).getNode(MechanicalNode.class, dir);
|
||||
instance = ((INodeProvider) tileEntity).getNode(IMechanicalNode.class, dir);
|
||||
}
|
||||
|
||||
if (instance != null)
|
||||
|
@ -370,7 +370,9 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
|
|||
|
||||
public void read(MCDataInput packet, int packetID)
|
||||
{
|
||||
if (packetID == 0)
|
||||
switch (packetID)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
placementSide = ForgeDirection.getOrientation(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().isEnabled = packet.readBoolean();
|
||||
refresh();
|
||||
break;
|
||||
}
|
||||
else if (packetID == 1)
|
||||
case 1:
|
||||
{
|
||||
redstoneTriggerLimit = packet.readLong();
|
||||
break;
|
||||
}
|
||||
else if (packetID == 2)
|
||||
case 2:
|
||||
{
|
||||
isPrimary = packet.readBoolean();
|
||||
|
||||
if (isPrimary)
|
||||
getNetwork().load(packet.readNBTTagCompound());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -485,6 +491,7 @@ public class PartMultimeter extends PartFace implements IConnector<MultimeterNet
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ItemStack getItem()
|
||||
{
|
||||
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) */
|
||||
public byte multiplier = 2;
|
||||
|
||||
@Override
|
||||
public void preparePlacement(int side, int facing)
|
||||
{
|
||||
this.placementSide = ForgeDirection.getOrientation(side);
|
||||
|
@ -71,6 +72,7 @@ public class PartTransformer extends PartFace implements IVoltageOutput, IEnergy
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ItemStack getItem()
|
||||
{
|
||||
return new ItemStack(Electrical.itemTransformer);
|
||||
|
|
|
@ -8,14 +8,12 @@ import net.minecraft.creativetab.CreativeTabs;
|
|||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import resonantinduction.core.MultipartUtility;
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.core.Settings;
|
||||
import resonantinduction.core.TabRI;
|
||||
import resonantinduction.electrical.wire.flat.PartFlatWire;
|
||||
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.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
@ -21,13 +20,11 @@ import net.minecraftforge.common.MinecraftForge;
|
|||
import resonantinduction.core.prefab.part.PartFramedConnection;
|
||||
import resonantinduction.electrical.Electrical;
|
||||
import resonantinduction.electrical.wire.EnumWireMaterial;
|
||||
import resonantinduction.electrical.wire.PartAdvancedWire;
|
||||
import universalelectricity.api.CompatibilityModule;
|
||||
import universalelectricity.api.UniversalClass;
|
||||
import universalelectricity.api.energy.EnergyNetworkLoader;
|
||||
import universalelectricity.api.energy.IConductor;
|
||||
import universalelectricity.api.energy.IEnergyNetwork;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import codechicken.lib.lighting.LazyLightMatrix;
|
||||
import codechicken.lib.render.CCRenderState;
|
||||
import codechicken.lib.render.IconTransformation;
|
||||
|
@ -36,7 +33,6 @@ import codechicken.lib.vec.BlockCoord;
|
|||
import codechicken.lib.vec.Cuboid6;
|
||||
import codechicken.lib.vec.Translation;
|
||||
import codechicken.microblock.IHollowConnect;
|
||||
import codechicken.multipart.JIconHitEffects;
|
||||
import codechicken.multipart.JNormalOcclusion;
|
||||
import codechicken.multipart.MultiPartRegistry;
|
||||
import codechicken.multipart.PartMap;
|
||||
|
|
|
@ -5,7 +5,6 @@ import net.minecraft.entity.Entity;
|
|||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import calclavia.lib.utility.inventory.IExternalInventoryBox;
|
||||
|
||||
/**
|
||||
* Only TileEntities should implement this.
|
||||
|
|
|
@ -68,7 +68,7 @@ public class ItemQuantumGlyph extends JItemMultiPart implements IHighlight
|
|||
}
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
package resonantinduction.quantum.gate;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityList;
|
||||
|
@ -13,9 +8,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.world.Teleporter;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import universalelectricity.api.vector.VectorWorld;
|
||||
|
||||
public class QuantumGateManager
|
||||
|
@ -93,7 +86,7 @@ public class QuantumGateManager
|
|||
{
|
||||
ChunkCoordinates chunkcoordinates = worldserver1.getSpawnPoint();
|
||||
chunkcoordinates.posY = currentEntity.worldObj.getTopSolidOrLiquidBlock(chunkcoordinates.posX, chunkcoordinates.posZ);
|
||||
entity.setLocationAndAngles((double) chunkcoordinates.posX, (double) chunkcoordinates.posY, (double) chunkcoordinates.posZ, entity.rotationYaw, entity.rotationPitch);
|
||||
entity.setLocationAndAngles(chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, entity.rotationYaw, entity.rotationPitch);
|
||||
}
|
||||
|
||||
worldserver1.spawnEntityInWorld(entity);
|
||||
|
|
|
@ -3,19 +3,13 @@ package resonantinduction.quantum.gate;
|
|||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import codechicken.lib.vec.Cuboid6;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.electrical.Electrical;
|
||||
import calclavia.lib.render.RenderUtility;
|
||||
import calclavia.lib.render.item.ISimpleItemRenderer;
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import codechicken.lib.vec.Cuboid6;
|
||||
|
||||
public class RenderQuantumGlyph implements ISimpleItemRenderer
|
||||
{
|
||||
|
|
|
@ -1,24 +1,14 @@
|
|||
package resonantinduction.quantum.gate;
|
||||
|
||||
import icbm.api.IBlockFrequency;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import calclavia.lib.utility.inventory.IExternalInventoryBox;
|
||||
import mffs.api.fortron.FrequencyGrid;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import universalelectricity.api.vector.VectorWorld;
|
||||
import codechicken.multipart.TMultiPart;
|
||||
import codechicken.multipart.TileMultipart;
|
||||
|
||||
|
|
|
@ -6,14 +6,17 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||
import resonantinduction.api.IMechanicalNode;
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.core.ResonantInduction;
|
||||
import resonantinduction.core.Settings;
|
||||
import resonantinduction.core.TabRI;
|
||||
import resonantinduction.core.grid.NodeRegistry;
|
||||
import resonantinduction.mechanical.belt.BlockConveyorBelt;
|
||||
import resonantinduction.mechanical.belt.TileConveyorBelt;
|
||||
import resonantinduction.mechanical.energy.gear.ItemGear;
|
||||
import resonantinduction.mechanical.energy.gear.ItemGearShaft;
|
||||
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
||||
import resonantinduction.mechanical.energy.turbine.BlockWaterTurbine;
|
||||
import resonantinduction.mechanical.energy.turbine.BlockWindTurbine;
|
||||
import resonantinduction.mechanical.energy.turbine.SchematicWaterTurbine;
|
||||
|
@ -55,7 +58,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
|
|||
*
|
||||
* @author DarkCow, Calclavia
|
||||
*/
|
||||
@Mod(modid = Mechanical.ID, name = Mechanical.NAME, version = Reference.VERSION, dependencies = "before:ThermalExpansion;required-after:" + ResonantInduction.ID)
|
||||
@Mod(modid = Mechanical.ID, name = Mechanical.NAME, version = Reference.VERSION, dependencies = "before:ThermalExpansion;required-after:" + ResonantInduction.ID + ";after:ResonantInduction|Archaic")
|
||||
@NetworkMod(channels = Reference.CHANNEL, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class)
|
||||
public class Mechanical
|
||||
{
|
||||
|
@ -104,6 +107,8 @@ public class Mechanical
|
|||
MinecraftForge.EVENT_BUS.register(new MicroblockHighlightHandler());
|
||||
BlockCreativeBuilder.register(new SchematicWindTurbine());
|
||||
BlockCreativeBuilder.register(new SchematicWaterTurbine());
|
||||
NodeRegistry.register(IMechanicalNode.class, MechanicalNode.class);
|
||||
|
||||
Settings.CONFIGURATION.load();
|
||||
|
||||
itemGear = contentRegistry.createItem(ItemGear.class);
|
||||
|
|
|
@ -9,8 +9,8 @@ import org.lwjgl.opengl.GL11;
|
|||
import resonantinduction.core.prefab.part.IHighlight;
|
||||
import codechicken.lib.render.RenderUtils;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import codechicken.microblock.FacePlacementGrid$;
|
||||
import codechicken.microblock.CornerPlacementGrid$;
|
||||
import codechicken.microblock.FacePlacementGrid$;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@ import net.minecraft.util.MovingObjectPosition;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.core.grid.INode;
|
||||
import resonantinduction.core.grid.INodeProvider;
|
||||
import resonantinduction.core.grid.Node;
|
||||
import resonantinduction.core.resource.ItemHandCrank;
|
||||
import resonantinduction.mechanical.Mechanical;
|
||||
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
||||
|
@ -344,7 +344,7 @@ public class PartGear extends PartMechanical implements IMultiBlockStructure<Par
|
|||
{
|
||||
if (manualCrankTime > 0)
|
||||
{
|
||||
node.apply(isClockwiseCrank ? 2 : -2, isClockwiseCrank ? 0.02f : -0.02f);
|
||||
node.apply(isClockwiseCrank ? 5 : -5, isClockwiseCrank ? 0.025f : -0.025f);
|
||||
manualCrankTime--;
|
||||
}
|
||||
|
||||
|
@ -528,7 +528,7 @@ public class PartGear extends PartMechanical implements IMultiBlockStructure<Par
|
|||
}
|
||||
|
||||
@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()))
|
||||
return (N) getMultiBlock().get().node;
|
||||
|
|
|
@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.api.IMechanicalNode;
|
||||
import resonantinduction.core.ResonantInduction;
|
||||
import resonantinduction.core.grid.INodeProvider;
|
||||
import resonantinduction.core.grid.Node;
|
||||
|
@ -51,6 +52,7 @@ public class MechanicalNode extends Node<INodeProvider, TickingGrid, MechanicalN
|
|||
super(parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MechanicalNode setLoad(double 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.
|
||||
*/
|
||||
@Override
|
||||
public void recache()
|
||||
{
|
||||
synchronized (connections)
|
||||
|
|
|
@ -7,9 +7,8 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.core.grid.INode;
|
||||
import resonantinduction.core.grid.INodeProvider;
|
||||
import resonantinduction.core.grid.Node;
|
||||
import resonantinduction.mechanical.energy.turbine.TileMechanicalTurbine;
|
||||
import codechicken.lib.data.MCDataInput;
|
||||
import codechicken.lib.data.MCDataOutput;
|
||||
import codechicken.multipart.JCuboidPart;
|
||||
|
@ -71,7 +70,7 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
}
|
||||
|
||||
@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()))
|
||||
return (N) node;
|
||||
|
@ -95,18 +94,23 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
{
|
||||
if (world() != null && !world().isRemote)
|
||||
{
|
||||
sendDescUpdate();
|
||||
// TODO: Make packets more efficient.
|
||||
// getWriteStream().writeByte(1).writeFloat(angularVelocity);
|
||||
getWriteStream().writeByte(1).writeDouble(node.angularVelocity);
|
||||
}
|
||||
}
|
||||
|
||||
/** Packet Code. */
|
||||
@Override
|
||||
public void read(MCDataInput packet)
|
||||
{
|
||||
read(packet, packet.readUByte());
|
||||
}
|
||||
|
||||
public void read(MCDataInput packet, int packetID)
|
||||
{
|
||||
switch (packetID)
|
||||
{
|
||||
case 0:
|
||||
readDesc(packet);
|
||||
load(packet.readNBTTagCompound());
|
||||
break;
|
||||
case 1:
|
||||
node.angularVelocity = packet.readDouble();
|
||||
|
@ -114,29 +118,22 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu
|
|||
}
|
||||
}
|
||||
|
||||
/** Packet Code. */
|
||||
@Override
|
||||
public void readDesc(MCDataInput packet)
|
||||
{
|
||||
packet.readByte();
|
||||
load(packet.readNBTTagCompound());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeDesc(MCDataOutput packet)
|
||||
{
|
||||
// packet.writeByte(0);
|
||||
packet.writeByte(0);
|
||||
NBTTagCompound nbt = new NBTTagCompound();
|
||||
save(nbt);
|
||||
packet.writeNBTTagCompound(nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(MCDataInput packet)
|
||||
{
|
||||
super.read(packet);
|
||||
// read(packet, packet.readUByte());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int redstoneConductionMap()
|
||||
{
|
||||
|
|
|
@ -5,8 +5,8 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.core.ResonantInduction;
|
||||
import resonantinduction.core.grid.INode;
|
||||
import resonantinduction.core.grid.INodeProvider;
|
||||
import resonantinduction.core.grid.Node;
|
||||
import resonantinduction.mechanical.Mechanical;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import calclavia.lib.content.module.TileBase;
|
||||
|
@ -82,7 +82,7 @@ public abstract class TileMechanical extends TileBase implements INodeProvider,
|
|||
}
|
||||
|
||||
@Override
|
||||
public <N 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()))
|
||||
return (N) mechanicalNode;
|
||||
|
|
|
@ -48,7 +48,7 @@ public class RenderWaterTurbine extends TileEntitySpecialRenderer implements ISi
|
|||
public void renderInventoryItem(ItemStack itemStack)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef((float) 0.5f, (float) 0.5f, (float) 0.5f);
|
||||
GL11.glTranslatef(0.5f, 0.5f, 0.5f);
|
||||
renderWaterTurbine(itemStack.getItemDamage(), 1, false);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@ package resonantinduction.mechanical.energy.turbine;
|
|||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.core.grid.INode;
|
||||
import resonantinduction.core.grid.INodeProvider;
|
||||
import resonantinduction.core.grid.Node;
|
||||
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
||||
import universalelectricity.api.energy.EnergyStorageHandler;
|
||||
import calclavia.lib.network.Synced.SyncedInput;
|
||||
|
@ -77,7 +77,7 @@ public class TileMechanicalTurbine extends TileTurbine implements INodeProvider
|
|||
}
|
||||
|
||||
@Override
|
||||
public <N 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()))
|
||||
return (N) ((TileMechanicalTurbine) getMultiBlock().get()).mechanicalNode;
|
||||
|
|
|
@ -2,17 +2,17 @@ package resonantinduction.mechanical.fluid.pipe;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import resonantinduction.electrical.wire.EnumWireMaterial;
|
||||
import universalelectricity.api.energy.UnitDisplay;
|
||||
import universalelectricity.api.energy.UnitDisplay.Unit;
|
||||
import calclavia.lib.render.EnumColor;
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import universalelectricity.api.energy.UnitDisplay;
|
||||
import universalelectricity.api.energy.UnitDisplay.Unit;
|
||||
import calclavia.lib.render.EnumColor;
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
import codechicken.lib.vec.BlockCoord;
|
||||
import codechicken.lib.vec.Vector3;
|
||||
import codechicken.multipart.JItemMultiPart;
|
||||
|
|
|
@ -12,8 +12,8 @@ import net.minecraftforge.fluids.FluidTank;
|
|||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import resonantinduction.core.ResonantInduction;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.core.grid.fluid.FluidPressureNode;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.core.prefab.part.PartFramedNode;
|
||||
import resonantinduction.mechanical.Mechanical;
|
||||
import calclavia.lib.utility.WorldUtility;
|
||||
|
|
|
@ -19,6 +19,7 @@ public class RenderPump extends TileEntitySpecialRenderer
|
|||
public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "pump.tcn");
|
||||
public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.DOMAIN, Reference.MODEL_PATH + "pump.png");
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
|
||||
{
|
||||
TilePump tile = (TilePump) tileEntity;
|
||||
|
|
|
@ -7,10 +7,9 @@ import net.minecraftforge.fluids.FluidStack;
|
|||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.core.grid.Node;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.core.grid.INode;
|
||||
import resonantinduction.core.grid.fluid.FluidPressureNode;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.mechanical.energy.grid.TileMechanical;
|
||||
import universalelectricity.api.UniversalElectricity;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
|
@ -154,7 +153,7 @@ public class TilePump extends TileMechanical implements IPressureNodeProvider, I
|
|||
}
|
||||
|
||||
@Override
|
||||
public <N 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()))
|
||||
return (N) pressureNode;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package resonantinduction.mechanical.logistic.belt;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
|
@ -20,7 +19,6 @@ import net.minecraftforge.common.ForgeDirection;
|
|||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import resonantinduction.api.IFilterable;
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.core.prefab.imprint.ItemImprint;
|
||||
import universalelectricity.api.UniversalElectricity;
|
||||
|
@ -55,6 +53,7 @@ public class TileSorter extends TileInventory
|
|||
return interactCurrentItem(side, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean configure(EntityPlayer player, int side, Vector3 vector3)
|
||||
{
|
||||
isInverted = !isInverted;
|
||||
|
@ -134,7 +133,7 @@ public class TileSorter extends TileInventory
|
|||
int blockID = position().translate(dir).getBlockID(world());
|
||||
Block block = Block.blocksList[blockID];
|
||||
|
||||
if (block == null || !block.isNormalCube(blockID))
|
||||
if (block == null || !Block.isNormalCube(blockID))
|
||||
{
|
||||
possibleDirections.add(dir);
|
||||
}
|
||||
|
@ -152,7 +151,7 @@ public class TileSorter extends TileInventory
|
|||
int blockID = position().translate(dir).getBlockID(world());
|
||||
Block block = Block.blocksList[blockID];
|
||||
|
||||
if (block == null || !block.isNormalCube(blockID))
|
||||
if (block == null || !Block.isNormalCube(blockID))
|
||||
{
|
||||
possibleDirections.add(dir);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import resonantinduction.core.prefab.part.PartFramedConnection;
|
|||
import resonantinduction.mechanical.fluid.pipe.EnumPipeMaterial;
|
||||
import universalelectricity.api.net.INodeNetwork;
|
||||
import codechicken.microblock.IHollowConnect;
|
||||
import codechicken.multipart.JIconHitEffects;
|
||||
import codechicken.multipart.JNormalOcclusion;
|
||||
import codechicken.multipart.TSlottedPart;
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ import net.minecraftforge.client.model.IModelCustom;
|
|||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.core.grid.fluid.FluidPressureNode;
|
||||
import calclavia.lib.render.RenderUtility;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
|
|
@ -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.
|
|
@ -1,5 +1,6 @@
|
|||
package resonantinduction.mechanical.energy.grid;
|
||||
package resonantinduction.api;
|
||||
|
||||
import resonantinduction.mechanical.energy.grid.MechanicalNode;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
||||
public interface IMechanicalNode extends IEnergyNode
|
||||
|
@ -13,4 +14,6 @@ public interface IMechanicalNode extends IEnergyNode
|
|||
public float getRatio(ForgeDirection dir, MechanicalNode with);
|
||||
|
||||
public boolean inverseRotation(ForgeDirection dir, MechanicalNode with);
|
||||
|
||||
public IMechanicalNode setLoad(double load);
|
||||
}
|
|
@ -3,7 +3,6 @@ package resonantinduction.core;
|
|||
import java.util.HashMap;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import calclavia.lib.configurable.ConfigHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
@ -22,6 +21,7 @@ import resonantinduction.core.resource.ResourceGenerator;
|
|||
import resonantinduction.core.resource.TileMaterial;
|
||||
import resonantinduction.core.resource.fluid.ItemOreResourceBucket;
|
||||
import resonantinduction.core.resource.fluid.TileFluidMixture;
|
||||
import calclavia.lib.configurable.ConfigHandler;
|
||||
import calclavia.lib.content.ContentRegistry;
|
||||
import calclavia.lib.network.PacketAnnotation;
|
||||
import calclavia.lib.network.PacketHandler;
|
||||
|
@ -37,8 +37,6 @@ import cpw.mods.fml.common.SidedProxy;
|
|||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStartingEvent;
|
||||
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
|
||||
import cpw.mods.fml.common.network.NetworkMod;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
|
|
|
@ -3,9 +3,9 @@ package resonantinduction.core;
|
|||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
|
||||
import calclavia.lib.configurable.Config;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraftforge.common.Configuration;
|
||||
import calclavia.lib.configurable.Config;
|
||||
import calclavia.lib.content.IDManager;
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
|
|
|
@ -11,6 +11,7 @@ public class FluidColored extends Fluid
|
|||
super(fluidName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getColor()
|
||||
{
|
||||
return color;
|
||||
|
|
|
@ -123,6 +123,7 @@ public abstract class FluidDistributionetwork extends NodeNetwork<FluidDistribut
|
|||
return this.tank;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class getConnectorClass()
|
||||
{
|
||||
return IFluidDistribution.class;
|
||||
|
|
|
@ -6,9 +6,9 @@ import net.minecraftforge.fluids.FluidContainerRegistry;
|
|||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import resonantinduction.core.grid.Node;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import resonantinduction.core.grid.INode;
|
||||
import resonantinduction.core.grid.fluid.FluidPressureNode;
|
||||
import resonantinduction.core.grid.fluid.IPressureNodeProvider;
|
||||
import calclavia.lib.network.IPacketReceiverWithID;
|
||||
|
||||
/**
|
||||
|
@ -95,7 +95,7 @@ public abstract class TilePressureNode extends TileFluidNode implements IPressur
|
|||
}
|
||||
|
||||
@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()))
|
||||
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.
|
||||
* @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.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;
|
||||
|
||||
|
@ -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()
|
||||
{
|
||||
synchronized (connections)
|
||||
|
|
|
@ -17,13 +17,13 @@ public class NodeRegistry
|
|||
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);
|
||||
|
||||
try
|
||||
{
|
||||
return (Class<? extends N>) nodeClass.getConstructor(INodeProvider.class).newInstance(parent);
|
||||
return (N) nodeClass.getConstructor(INodeProvider.class).newInstance(parent);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package resonantinduction.core.grid;
|
||||
|
||||
import universalelectricity.api.net.IUpdate;
|
||||
import universalelectricity.core.net.NetworkTickHandler;
|
||||
|
||||
public class TickingGrid<N extends Node> extends NodeGrid<N> implements IUpdate
|
||||
{
|
||||
|
|
|
@ -53,7 +53,7 @@ public class TraitNodeProvider extends TileMultipart implements INodeProvider
|
|||
}
|
||||
|
||||
@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());
|
||||
|
||||
|
|
|
@ -202,6 +202,7 @@ public class FluidPressureNode extends Node<IPressureNodeProvider, TickingGrid,
|
|||
/**
|
||||
* Recache the connections. This is the default connection implementation.
|
||||
*/
|
||||
@Override
|
||||
public void recache()
|
||||
{
|
||||
synchronized (connections)
|
||||
|
|
|
@ -6,8 +6,6 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
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.OreDictResource;
|
||||
import resonantinduction.core.Reference;
|
||||
import calclavia.lib.utility.LanguageUtility;
|
||||
import codechicken.core.gui.GuiDraw;
|
||||
import codechicken.nei.PositionedStack;
|
||||
import codechicken.nei.recipe.GuiRecipe;
|
||||
|
@ -115,7 +114,7 @@ public abstract class RITemplateRecipeHandler extends TemplateRecipeHandler
|
|||
@Override
|
||||
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 mouse = GuiDraw.getMousePosition();
|
||||
|
|
|
@ -4,7 +4,6 @@ import java.util.Collection;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.client.particle.EffectRenderer;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
@ -24,8 +23,6 @@ import codechicken.lib.render.RenderUtils;
|
|||
import codechicken.lib.vec.Cuboid6;
|
||||
import codechicken.lib.vec.Translation;
|
||||
import codechicken.microblock.IHollowConnect;
|
||||
import codechicken.multipart.IconHitEffects;
|
||||
import codechicken.multipart.JIconHitEffects;
|
||||
import codechicken.multipart.JNormalOcclusion;
|
||||
import codechicken.multipart.NormalOcclusionTest;
|
||||
import codechicken.multipart.PartMap;
|
||||
|
|
|
@ -8,14 +8,12 @@ import net.minecraft.client.particle.EffectRenderer;
|
|||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import resonantinduction.core.grid.INode;
|
||||
import resonantinduction.core.grid.INodeProvider;
|
||||
import resonantinduction.core.grid.Node;
|
||||
import universalelectricity.api.vector.Vector3;
|
||||
import universalelectricity.api.vector.VectorHelper;
|
||||
import codechicken.lib.data.MCDataInput;
|
||||
import codechicken.lib.data.MCDataOutput;
|
||||
import codechicken.lib.raytracer.IndexedCuboid6;
|
||||
|
@ -192,7 +190,7 @@ public abstract class PartFramedNode<M extends Enum, N extends Node, T extends I
|
|||
|
||||
public byte getAllCurrentConnections()
|
||||
{
|
||||
return (byte) (currentConnections);
|
||||
return (currentConnections);
|
||||
}
|
||||
|
||||
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")
|
||||
@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()))
|
||||
return (N) node;
|
||||
|
|
|
@ -12,7 +12,6 @@ import net.minecraft.world.IBlockAccess;
|
|||
import net.minecraft.world.World;
|
||||
import resonantinduction.core.Reference;
|
||||
import resonantinduction.core.ResonantInduction;
|
||||
import scala.annotation.meta.setter;
|
||||
import calclavia.lib.prefab.block.BlockTile;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
@ -250,6 +249,7 @@ public class BlockDust extends BlockTile
|
|||
return damageDropped(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int damageDropped(int par1)
|
||||
{
|
||||
return nextDropMaterialID;
|
||||
|
|
|
@ -160,30 +160,28 @@ public class ResourceGenerator implements IVirtualObject
|
|||
ResonantInduction.blockMixtureFluids.put(getID(materialName), blockFluidMixture);
|
||||
FluidContainerRegistry.registerFluidContainer(fluidMixture, ResonantInduction.itemBucketMixture.getStackFromMaterial(materialName));
|
||||
|
||||
ItemStack dust = ResonantInduction.itemDust.getStackFromMaterial(materialName);
|
||||
ItemStack rubble = ResonantInduction.itemRubble.getStackFromMaterial(materialName);
|
||||
ItemStack refinedDust = ResonantInduction.itemRefinedDust.getStackFromMaterial(materialName);
|
||||
|
||||
if (allowOreDictCompatibility)
|
||||
{
|
||||
OreDictionary.registerOre("dust" + nameCaps, ResonantInduction.itemDust.getStackFromMaterial(materialName));
|
||||
OreDictionary.registerOre("rubble" + nameCaps, ResonantInduction.itemRubble.getStackFromMaterial(materialName));
|
||||
OreDictionary.registerOre("dustRefined" + nameCaps, ResonantInduction.itemRefinedDust.getStackFromMaterial(materialName));
|
||||
|
||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, "rubble" + nameCaps, "dust" + nameCaps, "dust" + nameCaps);
|
||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, "dust" + nameCaps, "dustRefined" + nameCaps);
|
||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, "rubble" + nameCaps, dust, dust);
|
||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, "dust" + nameCaps, refinedDust);
|
||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.SMELTER, new FluidStack(fluidMolten, FluidContainerRegistry.BUCKET_VOLUME), "ingot" + nameCaps);
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemStack dust = ResonantInduction.itemDust.getStackFromMaterial(materialName);
|
||||
ItemStack rubble = ResonantInduction.itemRubble.getStackFromMaterial(materialName);
|
||||
ItemStack refinedDust = ResonantInduction.itemRefinedDust.getStackFromMaterial(materialName);
|
||||
|
||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.GRINDER, rubble, dust, dust);
|
||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.MIXER, dust, refinedDust);
|
||||
MachineRecipes.INSTANCE.addRecipe(RecipeType.SMELTER, new FluidStack(fluidMolten, FluidContainerRegistry.BUCKET_VOLUME), "ingot" + nameCaps);
|
||||
}
|
||||
|
||||
ItemStack dust = ResonantInduction.itemDust.getStackFromMaterial(materialName);
|
||||
FurnaceRecipes.smelting().addSmelting(dust.itemID, dust.getItemDamage(), OreDictionary.getOres("ingot" + nameCaps).get(0).copy(), 0.7f);
|
||||
ItemStack refinedDust = ResonantInduction.itemRefinedDust.getStackFromMaterial(materialName);
|
||||
ItemStack smeltResult = OreDictionary.getOres("ingot" + nameCaps).get(0).copy();
|
||||
FurnaceRecipes.smelting().addSmelting(refinedDust.itemID, refinedDust.getItemDamage(), smeltResult, 0.7f);
|
||||
|
||||
|
|
|
@ -67,6 +67,7 @@ public class ItemOreResourceBucket extends Item
|
|||
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack,
|
||||
* world, entityPlayer
|
||||
*/
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityPlayer)
|
||||
{
|
||||
String materialName = ResourceGenerator.getName(itemStack.getItemDamage());
|
||||
|
|
Loading…
Reference in a new issue