Node now uses INode interface

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

View file

@ -1,10 +1,11 @@
package resonantinduction.archaic.crate;
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;

View file

@ -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.
*

View file

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

View file

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

View file

@ -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
{

View file

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

View file

@ -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

View file

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

View file

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

View file

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

View file

@ -70,7 +70,10 @@ public class RenderBattery extends TileEntitySpecialRenderer implements ISimpleI
{
final String[][] partToDisable = new String[][] { new String[] { "bottom" }, new String[] { "top" }, new String[] { "frame1", "frame2" }, new String[] { "frame3", "frame4" }, new String[] { "frame4", "frame1" }, new String[] { "frame2", "frame3" } };
final String[][] 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);

View file

@ -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

View file

@ -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)
{

View file

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

View file

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

View file

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

View file

@ -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
{

View file

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

View file

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

View file

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

View file

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

View file

@ -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.

View file

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

View file

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

View file

@ -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
{

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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()
{

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -19,6 +19,7 @@ public class RenderPump extends TileEntitySpecialRenderer
public static final IModelCustom MODEL = AdvancedModelLoader.loadModel(Reference.MODEL_DIRECTORY + "pump.tcn");
public static final 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;

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,8 @@
package resonantinduction.mechanical.energy.grid;
package resonantinduction.api;
public interface IEnergyNode
import resonantinduction.core.grid.INode;
public interface IEnergyNode extends INode
{
/**
* @return Gets the power of this node. Note that power by definition is energy per second.

View file

@ -1,5 +1,6 @@
package resonantinduction.mechanical.energy.grid;
package resonantinduction.api;
import resonantinduction.mechanical.energy.grid.MechanicalNode;
import net.minecraftforge.common.ForgeDirection;
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);
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,26 @@
package resonantinduction.core.grid;
public interface INode
{
/**
* Called to reconstruct and reset all connections for this node/
*/
public void reconstruct();
/**
* This destroys the node, removing it from the grid and also destroying all references to it.
*/
public void deconstruct();
/**
* Clears all the node's cache.
*/
public void recache();
/**
* Called to update the node.
*
* @param deltaTime - Time in seconds that has passed compared to the last update time.
*/
public void update(float deltaTime);
}

View file

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

View file

@ -6,7 +6,7 @@ import java.util.WeakHashMap;
import net.minecraft.nbt.NBTTagCompound;
import net.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)

View file

@ -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)
{

View file

@ -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
{

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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