Added dynamic terminal field
This commit is contained in:
parent
f555eb9506
commit
6183c03fd1
3 changed files with 34 additions and 28 deletions
|
@ -25,8 +25,6 @@ object Settings
|
||||||
var SHINY_SILVER = true
|
var SHINY_SILVER = true
|
||||||
@Config var allowTurbineStacking: Boolean = true
|
@Config var allowTurbineStacking: Boolean = true
|
||||||
// Power Settings
|
// Power Settings
|
||||||
@Config(category = "Power", key = "SolorPanel")
|
|
||||||
var solarPower: Int = 50
|
|
||||||
@Config(category = "Power")
|
@Config(category = "Power")
|
||||||
var fulminationOutputMultiplier: Double = 1
|
var fulminationOutputMultiplier: Double = 1
|
||||||
@Config(category = "Power", key = "WindTubineRatio")
|
@Config(category = "Power", key = "WindTubineRatio")
|
||||||
|
|
|
@ -67,18 +67,6 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
|
||||||
updateConnectionMask()
|
updateConnectionMask()
|
||||||
}
|
}
|
||||||
|
|
||||||
def updateConnectionMask()
|
|
||||||
{
|
|
||||||
electricNode.connectionMask = ForgeDirection.VALID_DIRECTIONS.filter(getIO(_) > 0).map(d => 1 << d.ordinal()).foldLeft(0)(_ | _)
|
|
||||||
electricNode.positiveTerminals.clear()
|
|
||||||
electricNode.negativeTerminals.clear()
|
|
||||||
electricNode.positiveTerminals.addAll(getInputDirections())
|
|
||||||
electricNode.negativeTerminals.addAll(getOutputDirections())
|
|
||||||
electricNode.reconstruct()
|
|
||||||
markUpdate()
|
|
||||||
notifyChange()
|
|
||||||
}
|
|
||||||
|
|
||||||
override def update()
|
override def update()
|
||||||
{
|
{
|
||||||
super.update()
|
super.update()
|
||||||
|
@ -95,15 +83,16 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
|
||||||
val dissipatedEnergy = electricNode.power / 20
|
val dissipatedEnergy = electricNode.power / 20
|
||||||
energy -= dissipatedEnergy
|
energy -= dissipatedEnergy
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
//Recharge battery when current is flowing negative direction
|
|
||||||
energy += electricNode.power / 20
|
|
||||||
}
|
|
||||||
|
|
||||||
if (energy.prev != energy.value)
|
|
||||||
markUpdate()
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Recharge battery when current is flowing negative direction
|
||||||
|
energy += electricNode.power / 20
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (energy.prev != energy.value)
|
||||||
|
markUpdate()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update packet when energy level changes.
|
* Update packet when energy level changes.
|
||||||
|
@ -141,6 +130,18 @@ class TileBattery extends SpatialTile(Material.iron) with TIO with TElectric wit
|
||||||
updateConnectionMask()
|
updateConnectionMask()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def updateConnectionMask()
|
||||||
|
{
|
||||||
|
electricNode.connectionMask = ForgeDirection.VALID_DIRECTIONS.filter(getIO(_) > 0).map(d => 1 << d.ordinal()).foldLeft(0)(_ | _)
|
||||||
|
electricNode.positiveTerminals.clear()
|
||||||
|
electricNode.negativeTerminals.clear()
|
||||||
|
electricNode.positiveTerminals.addAll(getInputDirections())
|
||||||
|
electricNode.negativeTerminals.addAll(getOutputDirections())
|
||||||
|
electricNode.reconstruct()
|
||||||
|
markUpdate()
|
||||||
|
notifyChange()
|
||||||
|
}
|
||||||
|
|
||||||
override def onPlaced(entityLiving: EntityLivingBase, itemStack: ItemStack)
|
override def onPlaced(entityLiving: EntityLivingBase, itemStack: ItemStack)
|
||||||
{
|
{
|
||||||
if (!world.isRemote && itemStack.getItem.isInstanceOf[ItemBlockBattery])
|
if (!world.isRemote && itemStack.getItem.isInstanceOf[ItemBlockBattery])
|
||||||
|
|
|
@ -1,24 +1,31 @@
|
||||||
package edx.electrical.generator
|
package edx.electrical.generator
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||||
import edx.core.{Reference, Settings}
|
import edx.core.Reference
|
||||||
import net.minecraft.block.material.Material
|
import net.minecraft.block.material.Material
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister
|
import net.minecraft.client.renderer.texture.IIconRegister
|
||||||
import net.minecraft.util.IIcon
|
import net.minecraft.util.IIcon
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection
|
||||||
import resonant.lib.content.prefab.TIO
|
import resonant.lib.content.prefab.TIO
|
||||||
import resonant.lib.prefab.tile.mixed.TileElectric
|
import resonant.lib.grid.core.TSpatialNodeProvider
|
||||||
import resonant.lib.prefab.tile.spatial.SpatialBlock
|
import resonant.lib.prefab.tile.spatial.{SpatialBlock, SpatialTile}
|
||||||
|
import resonant.lib.prefab.tile.traits.TElectric
|
||||||
import resonant.lib.render.block.RenderConnectedTexture
|
import resonant.lib.render.block.RenderConnectedTexture
|
||||||
import resonant.lib.transform.region.Cuboid
|
import resonant.lib.transform.region.Cuboid
|
||||||
|
|
||||||
class TileSolarPanel extends TileElectric(Material.iron) with TIO with RenderConnectedTexture
|
import scala.collection.convert.wrapAll._
|
||||||
|
|
||||||
|
class TileSolarPanel extends SpatialTile(Material.iron) with TElectric with TSpatialNodeProvider with TIO with RenderConnectedTexture
|
||||||
{
|
{
|
||||||
ioMap = 728
|
ioMap = 728
|
||||||
textureName = "solarPanel_top"
|
textureName = "solarPanel_top"
|
||||||
bounds = new Cuboid(0, 0, 0, 1, 0.3f, 1)
|
bounds = new Cuboid(0, 0, 0, 1, 0.3f, 1)
|
||||||
isOpaqueCube = false
|
isOpaqueCube = false
|
||||||
|
|
||||||
edgeTexture = Reference.prefix + "tankEdge"
|
edgeTexture = Reference.prefix + "tankEdge"
|
||||||
|
electricNode.dynamicTerminals
|
||||||
|
electricNode.positiveTerminals.addAll(Seq(ForgeDirection.NORTH, ForgeDirection.EAST))
|
||||||
|
electricNode.negativeTerminals.addAll(Seq(ForgeDirection.SOUTH, ForgeDirection.WEST))
|
||||||
|
nodes.add(electricNode)
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
override def registerIcons(iconReg: IIconRegister)
|
override def registerIcons(iconReg: IIconRegister)
|
||||||
|
@ -51,7 +58,7 @@ class TileSolarPanel extends TileElectric(Material.iron) with TIO with RenderCon
|
||||||
{
|
{
|
||||||
if (!(world.isThundering || world.isRaining))
|
if (!(world.isThundering || world.isRaining))
|
||||||
{
|
{
|
||||||
electricNode.generateVoltage(Settings.solarPower / 20)
|
electricNode.generateVoltage(15)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue