Fixed single junctions creating potential difference

This commit is contained in:
Calclavia 2015-01-21 19:26:38 +08:00
parent 21504bb3e4
commit 7ae34a9204
4 changed files with 20 additions and 20 deletions

View file

@ -18,12 +18,13 @@ import net.minecraft.util.IIcon
import net.minecraftforge.common.MinecraftForge import net.minecraftforge.common.MinecraftForge
import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.common.util.ForgeDirection
import net.minecraftforge.fluids._ import net.minecraftforge.fluids._
import resonant.lib.content.prefab.{TElectric, TIO, TInventory} import resonant.lib.content.prefab.{TIO, TInventory}
import resonant.lib.grid.energy.EnergyStorage import resonant.lib.grid.energy.EnergyStorage
import resonant.lib.grid.thermal.{BoilEvent, ThermalPhysics} import resonant.lib.grid.thermal.{BoilEvent, ThermalPhysics}
import resonant.lib.network.discriminator.PacketType import resonant.lib.network.discriminator.PacketType
import resonant.lib.network.handle.{TPacketReceiver, TPacketSender} import resonant.lib.network.handle.{TPacketReceiver, TPacketSender}
import resonant.lib.prefab.tile.spatial.{SpatialBlock, SpatialTile} import resonant.lib.prefab.tile.spatial.{SpatialBlock, SpatialTile}
import resonant.lib.prefab.tile.traits.TElectric
import resonant.lib.transform.vector.Vector3 import resonant.lib.transform.vector.Vector3
import resonant.lib.utility.FluidUtility import resonant.lib.utility.FluidUtility
import resonant.lib.wrapper.ByteBufWrapper._ import resonant.lib.wrapper.ByteBufWrapper._

View file

@ -16,13 +16,13 @@ import net.minecraftforge.client.model.AdvancedModelLoader
import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.common.util.ForgeDirection
import org.lwjgl.opengl.GL11._ import org.lwjgl.opengl.GL11._
import resonant.api.items.ISimpleItemRenderer import resonant.api.items.ISimpleItemRenderer
import resonant.lib.content.prefab.{TElectric, TIO} import resonant.lib.content.prefab.TIO
import resonant.lib.grid.core.TSpatialNodeProvider import resonant.lib.grid.core.TSpatialNodeProvider
import resonant.lib.grid.energy.EnergyStorage import resonant.lib.grid.energy.EnergyStorage
import resonant.lib.network.discriminator.PacketType import resonant.lib.network.discriminator.PacketType
import resonant.lib.network.handle.{TPacketReceiver, TPacketSender} import resonant.lib.network.handle.{TPacketReceiver, TPacketSender}
import resonant.lib.prefab.tile.spatial.SpatialTile import resonant.lib.prefab.tile.spatial.SpatialTile
import resonant.lib.prefab.tile.traits.TEnergyProvider import resonant.lib.prefab.tile.traits.{TElectric, TEnergyProvider}
import resonant.lib.render.RenderUtility import resonant.lib.render.RenderUtility
import resonant.lib.transform.vector.Vector3 import resonant.lib.transform.vector.Vector3
import resonant.lib.utility.science.UnitDisplay import resonant.lib.utility.science.UnitDisplay
@ -51,7 +51,7 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
{ {
var energyRenderLevel = 0 var energyRenderLevel = 0
nodes.add(dcNode) nodes.add(electricNode)
energy = new EnergyStorage energy = new EnergyStorage
textureName = "material_metal_side" textureName = "material_metal_side"
ioMap = 0 ioMap = 0
@ -59,7 +59,7 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
normalRender = false normalRender = false
isOpaqueCube = false isOpaqueCube = false
itemBlock = classOf[ItemBlockBattery] itemBlock = classOf[ItemBlockBattery]
dcNode.resistance = 10 electricNode.resistance = 10
override def start() override def start()
{ {
@ -69,9 +69,9 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
def updateConnectionMask() def updateConnectionMask()
{ {
dcNode.connectionMask = ForgeDirection.VALID_DIRECTIONS.filter(getIO(_) > 0).map(d => 1 << d.ordinal()).foldLeft(0)(_ | _) electricNode.connectionMask = ForgeDirection.VALID_DIRECTIONS.filter(getIO(_) > 0).map(d => 1 << d.ordinal()).foldLeft(0)(_ | _)
dcNode.positiveTerminals.addAll(getInputDirections()) electricNode.positiveTerminals.addAll(getInputDirections())
dcNode.negativeTerminals.addAll(getOutputDirections()) electricNode.negativeTerminals.addAll(getOutputDirections())
notifyChange() notifyChange()
} }
@ -86,8 +86,8 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
if (energy > 0) if (energy > 0)
{ {
//TODO: Allow player to set the power output //TODO: Allow player to set the power output
dcNode.generatePower(100000) electricNode.generatePower(100000)
val dissipatedEnergy = dcNode.power / 20 val dissipatedEnergy = electricNode.power / 20
energy -= dissipatedEnergy energy -= dissipatedEnergy
markUpdate() markUpdate()
} }
@ -127,7 +127,7 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
{ {
super.setIO(dir, packet) super.setIO(dir, packet)
updateConnectionMask() updateConnectionMask()
dcNode.reconstruct() electricNode.reconstruct()
markUpdate() markUpdate()
} }

View file

@ -12,10 +12,9 @@ import net.minecraft.util.{ChatComponentText, ResourceLocation}
import net.minecraftforge.client.model.AdvancedModelLoader import net.minecraftforge.client.model.AdvancedModelLoader
import net.minecraftforge.common.util.ForgeDirection import net.minecraftforge.common.util.ForgeDirection
import org.lwjgl.opengl.GL11 import org.lwjgl.opengl.GL11
import resonant.lib.content.prefab.TElectric
import resonant.lib.grid.core.TSpatialNodeProvider import resonant.lib.grid.core.TSpatialNodeProvider
import resonant.lib.prefab.tile.spatial.SpatialTile import resonant.lib.prefab.tile.spatial.SpatialTile
import resonant.lib.prefab.tile.traits.TRotatable import resonant.lib.prefab.tile.traits.{TElectric, TRotatable}
import resonant.lib.render.RenderUtility import resonant.lib.render.RenderUtility
import resonant.lib.transform.vector.Vector3 import resonant.lib.transform.vector.Vector3
@ -50,12 +49,12 @@ class TileMotor extends SpatialTile(Material.iron) with TElectric with TSpatialN
textureName = "material_wood_surface" textureName = "material_wood_surface"
normalRender = false normalRender = false
isOpaqueCube = false isOpaqueCube = false
nodes.add(dcNode) nodes.add(electricNode)
nodes.add(mechNode) nodes.add(mechNode)
dcNode.resistance = 100 electricNode.resistance = 100
dcNode.positiveTerminals.addAll(Seq(ForgeDirection.UP, ForgeDirection.SOUTH, ForgeDirection.EAST)) electricNode.positiveTerminals.addAll(Seq(ForgeDirection.UP, ForgeDirection.SOUTH, ForgeDirection.EAST))
dcNode.negativeTerminals.addAll(Seq(ForgeDirection.DOWN, ForgeDirection.NORTH, ForgeDirection.WEST)) electricNode.negativeTerminals.addAll(Seq(ForgeDirection.DOWN, ForgeDirection.NORTH, ForgeDirection.WEST))
def toggleGearRatio() = (gearRatio + 1) % 3 def toggleGearRatio() = (gearRatio + 1) % 3
@ -89,8 +88,8 @@ class TileMotor extends SpatialTile(Material.iron) with TElectric with TSpatialN
{ {
//Produce mechanical energy //Produce mechanical energy
val mechRatio = Math.pow(10, gearRatio) val mechRatio = Math.pow(10, gearRatio)
val power = dcNode.power val power = electricNode.power
val negate = if (dcNode.voltage > 0) 1 else -1 val negate = if (electricNode.voltage > 0) 1 else -1
mechNode.rotate(negate * power * mechRatio, negate * power / mechRatio) mechNode.rotate(negate * power * mechRatio, negate * power / mechRatio)
//TODO: Resist DC energy //TODO: Resist DC energy
} }

View file

@ -51,7 +51,7 @@ class TileSolarPanel extends TileElectric(Material.iron) with TIO with RenderCon
{ {
if (!(world.isThundering || world.isRaining)) if (!(world.isThundering || world.isRaining))
{ {
dcNode.generateVoltage(Settings.solarPower / 20) electricNode.generateVoltage(Settings.solarPower / 20)
} }
} }
} }