Fixed single junctions creating potential difference
This commit is contained in:
parent
21504bb3e4
commit
7ae34a9204
|
@ -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._
|
||||||
|
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue