diff --git a/src/main/scala/resonantinduction/compatibility/nei/NEIResonantInductionConfig.java b/src/main/scala/resonantinduction/compatibility/nei/NEIResonantInductionConfig.java index e4505b675..6e266a733 100644 --- a/src/main/scala/resonantinduction/compatibility/nei/NEIResonantInductionConfig.java +++ b/src/main/scala/resonantinduction/compatibility/nei/NEIResonantInductionConfig.java @@ -1,6 +1,8 @@ package resonantinduction.compatibility.nei; import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import resonantinduction.core.CoreContent; import resonantinduction.core.ResonantInduction; import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; @@ -26,14 +28,14 @@ public class NEIResonantInductionConfig implements IConfigureNEI API.registerRecipeHandler(new RISmelterRecipeHandler()); API.registerUsageHandler(new RISmelterRecipeHandler()); - for (Block block : ResonantInduction.blockMixtureFluids.values()) - API.hideItem(block.blockID); + for (Block block : CoreContent.blockMixtureFluids().values()) + API.hideItem(new ItemStack(block)); - for (Block block : ResonantInduction.blockMoltenFluid.values()) - API.hideItem(block.blockID); + for (Block block : CoreContent.blockMoltenFluid().values()) + API.hideItem(new ItemStack(block)); - API.hideItem(ResonantInduction.blockDust.blockID); - API.hideItem(ResonantInduction.blockRefinedDust.blockID); + API.hideItem(new ItemStack(CoreContent.blockDust())); + API.hideItem(new ItemStack(CoreContent.blockRefinedDust())); } @Override diff --git a/src/main/scala/resonantinduction/compatibility/nei/RICrusherRecipeHandler.java b/src/main/scala/resonantinduction/compatibility/nei/RICrusherRecipeHandler.java index 743389a45..354f3e221 100644 --- a/src/main/scala/resonantinduction/compatibility/nei/RICrusherRecipeHandler.java +++ b/src/main/scala/resonantinduction/compatibility/nei/RICrusherRecipeHandler.java @@ -1,7 +1,7 @@ package resonantinduction.compatibility.nei; import resonant.lib.utility.LanguageUtility; -import resonantinduction.core.ResonantInduction.RecipeType; +import resonantinduction.core.RecipeType; public class RICrusherRecipeHandler extends RITemplateRecipeHandler { diff --git a/src/main/scala/resonantinduction/compatibility/nei/RIGrinderRecipeHandler.java b/src/main/scala/resonantinduction/compatibility/nei/RIGrinderRecipeHandler.java index 3235b185a..c83ccb0f7 100644 --- a/src/main/scala/resonantinduction/compatibility/nei/RIGrinderRecipeHandler.java +++ b/src/main/scala/resonantinduction/compatibility/nei/RIGrinderRecipeHandler.java @@ -1,7 +1,7 @@ package resonantinduction.compatibility.nei; import resonant.lib.utility.LanguageUtility; -import resonantinduction.core.ResonantInduction.RecipeType; +import resonantinduction.core.RecipeType; public class RIGrinderRecipeHandler extends RITemplateRecipeHandler { diff --git a/src/main/scala/resonantinduction/compatibility/nei/RIMixerRecipeHandler.java b/src/main/scala/resonantinduction/compatibility/nei/RIMixerRecipeHandler.java index 5e3525bf3..ba71b126b 100644 --- a/src/main/scala/resonantinduction/compatibility/nei/RIMixerRecipeHandler.java +++ b/src/main/scala/resonantinduction/compatibility/nei/RIMixerRecipeHandler.java @@ -1,7 +1,7 @@ package resonantinduction.compatibility.nei; import resonant.lib.utility.LanguageUtility; -import resonantinduction.core.ResonantInduction.RecipeType; +import resonantinduction.core.RecipeType; public class RIMixerRecipeHandler extends RITemplateRecipeHandler { diff --git a/src/main/scala/resonantinduction/compatibility/nei/RISawmillRecipeHandler.java b/src/main/scala/resonantinduction/compatibility/nei/RISawmillRecipeHandler.java index dc5ec9e1f..f919eb820 100644 --- a/src/main/scala/resonantinduction/compatibility/nei/RISawmillRecipeHandler.java +++ b/src/main/scala/resonantinduction/compatibility/nei/RISawmillRecipeHandler.java @@ -1,7 +1,7 @@ package resonantinduction.compatibility.nei; import resonant.lib.utility.LanguageUtility; -import resonantinduction.core.ResonantInduction.RecipeType; +import resonantinduction.core.RecipeType; public class RISawmillRecipeHandler extends RITemplateRecipeHandler { diff --git a/src/main/scala/resonantinduction/compatibility/nei/RISmelterRecipeHandler.java b/src/main/scala/resonantinduction/compatibility/nei/RISmelterRecipeHandler.java index 1448b00c6..cfad2f243 100644 --- a/src/main/scala/resonantinduction/compatibility/nei/RISmelterRecipeHandler.java +++ b/src/main/scala/resonantinduction/compatibility/nei/RISmelterRecipeHandler.java @@ -1,7 +1,7 @@ package resonantinduction.compatibility.nei; import resonant.lib.utility.LanguageUtility; -import resonantinduction.core.ResonantInduction.RecipeType; +import resonantinduction.core.RecipeType; public class RISmelterRecipeHandler extends RITemplateRecipeHandler { diff --git a/src/main/scala/resonantinduction/compatibility/nei/RITemplateRecipeHandler.java b/src/main/scala/resonantinduction/compatibility/nei/RITemplateRecipeHandler.java index 315a429fb..ea476cfa3 100644 --- a/src/main/scala/resonantinduction/compatibility/nei/RITemplateRecipeHandler.java +++ b/src/main/scala/resonantinduction/compatibility/nei/RITemplateRecipeHandler.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import codechicken.lib.gui.GuiDraw; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.inventory.GuiContainer; @@ -18,9 +19,8 @@ import resonant.api.recipe.RecipeResource.FluidStackResource; import resonant.api.recipe.RecipeResource.ItemStackResource; import resonant.api.recipe.RecipeResource.OreDictResource; import resonant.lib.utility.LanguageUtility; +import resonantinduction.core.RecipeType; import resonantinduction.core.Reference; -import resonantinduction.core.ResonantInduction.RecipeType; -import codechicken.core.gui.GuiDraw; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.GuiRecipe; import codechicken.nei.recipe.TemplateRecipeHandler; @@ -56,7 +56,7 @@ public abstract class RITemplateRecipeHandler extends TemplateRecipeHandler @Override public String getGuiTexture() { - return Reference.PREFIX + Reference.GUI_DIRECTORY + "gui_machine.png"; + return Reference.prefix() + Reference.guiDirectory() + "gui_machine.png"; } @Override diff --git a/src/main/scala/resonantinduction/core/RecipeType.java b/src/main/scala/resonantinduction/core/RecipeType.java new file mode 100644 index 000000000..18ca15409 --- /dev/null +++ b/src/main/scala/resonantinduction/core/RecipeType.java @@ -0,0 +1,8 @@ +package resonantinduction.core; + +/** + * Created by robert on 8/11/2014. + */ +public enum RecipeType { + CRUSHER, GRINDER, MIXER, SMELTER, SAWMILL +} diff --git a/src/main/scala/resonantinduction/core/ResonantInduction.scala b/src/main/scala/resonantinduction/core/ResonantInduction.scala index 01c62e9bc..2ec99d7fb 100644 --- a/src/main/scala/resonantinduction/core/ResonantInduction.scala +++ b/src/main/scala/resonantinduction/core/ResonantInduction.scala @@ -28,17 +28,6 @@ object ResonantInduction @SidedProxy(clientSide = "resonantinduction.core.ClientProxy", serverSide = "resonantinduction.core.CommonProxy") var proxy: CommonProxy = _ - /** Recipe Types */ - final object RecipeType extends Enumeration - { - final val CRUSHER, GRINDER, MIXER, SMELTER, SAWMILL = Value - - implicit class ExtendedValue(value: Value) - { - def name = value.toString - } - } - @EventHandler def preInit(evt: FMLPreInitializationEvent) { diff --git a/src/main/scala/resonantinduction/core/grid/fluid/TileTankNode.scala b/src/main/scala/resonantinduction/core/grid/fluid/TileTankNode.scala index 1787d88ef..06ac4a256 100644 --- a/src/main/scala/resonantinduction/core/grid/fluid/TileTankNode.scala +++ b/src/main/scala/resonantinduction/core/grid/fluid/TileTankNode.scala @@ -171,7 +171,6 @@ class TileTankNode(material: Material) extends TileAdvanced(material) with INode override def getTankInfo(from: ForgeDirection): Array[FluidTankInfo] = tankNode.getTankInfo(from) - tankNode.onChange = () => sendRenderUpdate override def initiate() { diff --git a/src/main/scala/resonantinduction/core/grid/fluid/distribution/FluidDistributionGrid.scala b/src/main/scala/resonantinduction/core/grid/fluid/distribution/FluidDistributionGrid.scala index bab95df11..a181f8758 100644 --- a/src/main/scala/resonantinduction/core/grid/fluid/distribution/FluidDistributionGrid.scala +++ b/src/main/scala/resonantinduction/core/grid/fluid/distribution/FluidDistributionGrid.scala @@ -2,6 +2,7 @@ package resonantinduction.core.grid.fluid.distribution import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.fluids._ +import resonantinduction.core.grid.fluid.TileTankNode import universalelectricity.core.grid.{TickingGrid, UpdateTicker} /** @@ -35,7 +36,7 @@ abstract class FluidDistributionGrid extends TickingGrid[TankNode] with IFluidHa override def reconstructNode(node: TankNode) { - val connectorTank: FluidTank = node.genericParent.getTank + val connectorTank: FluidTank = node.getParent.asInstanceOf[TileTankNode].getTank if (connectorTank != null) { diff --git a/src/main/scala/resonantinduction/core/grid/fluid/distribution/TankGrid.scala b/src/main/scala/resonantinduction/core/grid/fluid/distribution/TankGrid.scala index b273776d7..0336a2a73 100644 --- a/src/main/scala/resonantinduction/core/grid/fluid/distribution/TankGrid.scala +++ b/src/main/scala/resonantinduction/core/grid/fluid/distribution/TankGrid.scala @@ -35,7 +35,7 @@ class TankGrid extends FluidDistributionGrid } }) - heightPriorityQueue ++= (getNodes() map (_.genericParent)) + heightPriorityQueue ++= (getNodes() map (_.getParent.asInstanceOf[TileTankNode])) var didChange = false diff --git a/src/main/scala/resonantinduction/core/grid/fluid/distribution/TankNode.scala b/src/main/scala/resonantinduction/core/grid/fluid/distribution/TankNode.scala index 609982110..96d4c6a5f 100644 --- a/src/main/scala/resonantinduction/core/grid/fluid/distribution/TankNode.scala +++ b/src/main/scala/resonantinduction/core/grid/fluid/distribution/TankNode.scala @@ -5,9 +5,9 @@ import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.fluids.{Fluid, FluidStack, FluidTankInfo, IFluidHandler} import resonant.lib.utility.WorldUtility import resonantinduction.core.grid.MultipartNode -import resonantinduction.core.grid.fluid.TileTankNode +import universalelectricity.api.core.grid.INodeProvider -class TankNode(parent: TileTankNode) extends MultipartNode[TankNode](parent) with IFluidHandler +class TankNode(parent: INodeProvider) extends MultipartNode[Any](parent) with IFluidHandler { var maxFlowRate: Int = 20 var maxPressure: Int = 100 @@ -16,10 +16,6 @@ class TankNode(parent: TileTankNode) extends MultipartNode[TankNode](parent) wit private var pressure: Int = 0 var connectedSides: Byte = 0 - var onChange: () => Unit = null - - def genericParent = parent.asInstanceOf[TileTankNode] - def getMaxFlowRate: Int = { return maxFlowRate @@ -58,9 +54,9 @@ class TankNode(parent: TileTankNode) extends MultipartNode[TankNode](parent) wit { val tile = (position + dir).getTileEntity - if (tile.isInstanceOf[TileTankNode]) + if (tile.isInstanceOf[INodeProvider] && tile.asInstanceOf[INodeProvider].getNode(classOf[TankNode], dir.getOpposite).isInstanceOf[TankNode]) { - connections.put(tile.asInstanceOf[TileTankNode].getNode(classOf[TankNode], dir.getOpposite).asInstanceOf[TankNode], dir) + connections.put(tile.asInstanceOf[INodeProvider].getNode(classOf[TankNode], dir.getOpposite).asInstanceOf[TankNode], dir) connectedSides = WorldUtility.setEnableSide(connectedSides, dir, true) } } @@ -69,7 +65,7 @@ class TankNode(parent: TileTankNode) extends MultipartNode[TankNode](parent) wit { //TODO: Check and fix getGrid.reconstruct() - onChange.apply() + //onChange.apply() } } } diff --git a/src/main/scala/resonantinduction/core/grid/fluid/pressure/FluidPressureNode.scala b/src/main/scala/resonantinduction/core/grid/fluid/pressure/FluidPressureNode.scala index 0474967c9..10327cd0c 100644 --- a/src/main/scala/resonantinduction/core/grid/fluid/pressure/FluidPressureNode.scala +++ b/src/main/scala/resonantinduction/core/grid/fluid/pressure/FluidPressureNode.scala @@ -1,8 +1,6 @@ package resonantinduction.core.grid.fluid.pressure import net.minecraftforge.common.util.ForgeDirection -import net.minecraftforge.fluids.{FluidStack, FluidTank, IFluidHandler} -import resonantinduction.core.grid.fluid.TileTankNode import resonantinduction.core.grid.fluid.distribution.TankNode import universalelectricity.api.core.grid.INodeProvider @@ -73,6 +71,7 @@ class FluidPressureNode(parent: INodeProvider) extends TankNode(parent) def distribute { + /** connections.foreach { case (obj: AnyRef, dir: ForgeDirection) => @@ -145,7 +144,7 @@ class FluidPressureNode(parent: INodeProvider) extends TankNode(parent) } } } - } + } */ } /** diff --git a/src/main/scala/resonantinduction/core/prefab/part/PartFramedNode.scala b/src/main/scala/resonantinduction/core/prefab/part/PartFramedNode.scala index 6b5afcf8f..fae9598f3 100644 --- a/src/main/scala/resonantinduction/core/prefab/part/PartFramedNode.scala +++ b/src/main/scala/resonantinduction/core/prefab/part/PartFramedNode.scala @@ -29,7 +29,7 @@ object PartFramedNode { abstract class PartFramedNode[M](insulationType: Item) extends PartColorableMaterial[M](insulationType: Item) with INodeProvider with TSlottedPart with JNormalOcclusion with JIconHitEffects { protected var connections: Array[AnyRef] = new Array[AnyRef](6) - protected var node: INode + protected var node: INode = null /** Bitmask connections */ var currentConnections: Byte = 0x00 /** Client Side */ @@ -191,4 +191,8 @@ abstract class PartFramedNode[M](insulationType: Item) extends PartColorableMate override def toString: String = { return this.getClass.getSimpleName + this.hashCode } + + def getNode : INode = node + + def setNode(n : INode) { node = n} } \ No newline at end of file diff --git a/src/main/scala/resonantinduction/core/resource/ResourceGenerator.scala b/src/main/scala/resonantinduction/core/resource/ResourceGenerator.scala index 4d8a43c52..55e49d145 100644 --- a/src/main/scala/resonantinduction/core/resource/ResourceGenerator.scala +++ b/src/main/scala/resonantinduction/core/resource/ResourceGenerator.scala @@ -21,10 +21,9 @@ import resonant.lib.recipe.Recipes import resonant.lib.utility.LanguageUtility import resonant.lib.utility.nbt.NBTUtility import resonant.lib.wrapper.StringWrapper._ -import resonantinduction.core.ResonantInduction.RecipeType import resonantinduction.core.prefab.FluidColored import resonantinduction.core.resource.fluid.{BlockFluidMaterial, BlockFluidMixture} -import resonantinduction.core.{CoreContent, Reference, Settings} +import resonantinduction.core.{RecipeType, CoreContent, Reference, Settings} import scala.collection.JavaConversions._ import scala.collection.mutable diff --git a/src/main/scala/resonantinduction/core/resource/fluid/BlockFluidMixture.scala b/src/main/scala/resonantinduction/core/resource/fluid/BlockFluidMixture.scala index 755541e84..a2235e80d 100644 --- a/src/main/scala/resonantinduction/core/resource/fluid/BlockFluidMixture.scala +++ b/src/main/scala/resonantinduction/core/resource/fluid/BlockFluidMixture.scala @@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack import net.minecraft.world.{IBlockAccess, World} import net.minecraftforge.fluids.{BlockFluidFinite, Fluid, FluidContainerRegistry, FluidStack} import resonant.api.recipe.MachineRecipes -import resonantinduction.core.ResonantInduction.RecipeType +import resonantinduction.core.RecipeType import resonantinduction.core.resource.ResourceGenerator /** diff --git a/src/main/scala/resonantinduction/mechanical/fluid/pipe/PartPipe.java b/src/main/scala/resonantinduction/mechanical/fluid/pipe/PartPipe.java index e0a4e9d68..13ba0c6ec 100644 --- a/src/main/scala/resonantinduction/mechanical/fluid/pipe/PartPipe.java +++ b/src/main/scala/resonantinduction/mechanical/fluid/pipe/PartPipe.java @@ -1,6 +1,5 @@ package resonantinduction.mechanical.fluid.pipe; -import codechicken.lib.render.uv.IconTransformation; import codechicken.lib.vec.Cuboid6; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.item.ItemStack; @@ -8,13 +7,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.*; import resonant.lib.type.EvictingList; -import resonantinduction.core.ResonantInduction; import resonantinduction.core.prefab.part.PartFramedNode; import resonantinduction.mechanical.Mechanical; import codechicken.lib.data.MCDataInput; import codechicken.lib.render.CCRenderState; -import codechicken.lib.render.RenderUtils; -import codechicken.lib.vec.Translation; import codechicken.multipart.JNormalOcclusion; import codechicken.multipart.TSlottedPart; import cpw.mods.fml.relauncher.Side; @@ -32,14 +28,13 @@ public class PartPipe extends PartFramedNode implements TSlott /** Computes the average fluid for client to render. */ private EvictingList averageTankData = new EvictingList(20); private boolean markPacket = true; - private PipePressureNode node = null; public PartPipe() { super(null); setMaterial(0); this.setRequiresInsulation(false); - node = new PipePressureNode(this); + setNode((INode) new PipePressureNode(this)); } @Override @@ -58,9 +53,9 @@ public class PartPipe extends PartFramedNode implements TSlott public void setMaterial(EnumPipeMaterial material) { super.setMaterial(material); - node.setMaxFlowRate(getMaterial().maxFlowRate); - node.setMaxPressure(getMaterial().maxPressure); - tank.setCapacity(node.maxFlowRate()); + ((PipePressureNode)getNode()).setMaxFlowRate(getMaterial().maxFlowRate); + ((PipePressureNode)getNode()).setMaxPressure(getMaterial().maxPressure); + tank.setCapacity(((PipePressureNode)getNode()).maxFlowRate()); } @Override @@ -204,8 +199,8 @@ public class PartPipe extends PartFramedNode implements TSlott { super.load(nbt); tank.readFromNBT(nbt); - node().setMaxFlowRate(getMaterial().maxFlowRate); - node().setMaxPressure(getMaterial().maxPressure); + ((PipePressureNode)getNode()).setMaxFlowRate(getMaterial().maxFlowRate); + ((PipePressureNode)getNode()).setMaxPressure(getMaterial().maxPressure); } @Override @@ -217,15 +212,4 @@ public class PartPipe extends PartFramedNode implements TSlott public int getSlotMask() { return 0; } - - @Override - public INode node() { - return node; - } - - @Override - public void node_$eq(INode node) { - if(node instanceof PipePressureNode) - this.node = (PipePresureNode)node; - } } \ No newline at end of file diff --git a/src/main/scala/resonantinduction/mechanical/fluid/pipe/PipePressureNode.java b/src/main/scala/resonantinduction/mechanical/fluid/pipe/PipePressureNode.java index 4ca0c30db..19f5ec39b 100644 --- a/src/main/scala/resonantinduction/mechanical/fluid/pipe/PipePressureNode.java +++ b/src/main/scala/resonantinduction/mechanical/fluid/pipe/PipePressureNode.java @@ -32,7 +32,7 @@ public class PipePressureNode extends FluidPressureNode if (world() != null) { byte previousConnections = pipe().getAllCurrentConnections(); - pipe().currentConnections(0); + pipe().currentConnections_$eq((byte)0); for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { @@ -55,20 +55,20 @@ public class PipePressureNode extends FluidPressureNode if (check != null && check instanceof FluidPressureNode && canConnect(dir, check) && ((FluidPressureNode) check).canConnect(dir.getOpposite(), this)) { - pipe().currentConnections = WorldUtility.setEnableSide(pipe().currentConnections, dir, true); - connections().put(check, dir); + pipe().currentConnections_$eq(WorldUtility.setEnableSide(pipe().currentConnections(), dir, true)); + connections().put((resonantinduction.core.grid.fluid.distribution.TankNode) check, dir); } } else if (canConnect(dir, tile)) { - pipe().currentConnections = WorldUtility.setEnableSide(pipe().currentConnections, dir, true); - connections().put(tile, dir); + pipe().currentConnections_$eq(WorldUtility.setEnableSide(pipe().currentConnections(), dir, true)); + connections().put((IFluidHandler) tile, dir); } } } /** Only send packet updates if visuallyConnected changed. */ - if (!world().isRemote && previousConnections != pipe().currentConnections) + if (!world().isRemote && previousConnections != pipe().currentConnections()) { pipe().sendConnectionUpdate(); } diff --git a/src/main/scala/resonantinduction/mechanical/fluid/pipe/RenderPipe.java b/src/main/scala/resonantinduction/mechanical/fluid/pipe/RenderPipe.java index f18f3f407..573279feb 100644 --- a/src/main/scala/resonantinduction/mechanical/fluid/pipe/RenderPipe.java +++ b/src/main/scala/resonantinduction/mechanical/fluid/pipe/RenderPipe.java @@ -41,7 +41,7 @@ public class RenderPipe implements ISimpleItemRenderer FluidStack fluid = part.tank.getFluid(); int capacity = part.tank.getCapacity(); byte renderSides = part.getAllCurrentConnections(); - + /** if (fluid != null && fluid.amount > 0) { double filledPercentage = Math.min((double) fluid.amount / (double) capacity, 1); @@ -107,7 +107,7 @@ public class RenderPipe implements ISimpleItemRenderer GL11.glPopMatrix(); } } - } + }*/ GL11.glPopMatrix(); }