Fixed a few parts implementing getType on their own, and make getType final to prevent this in the future
This commit is contained in:
parent
d7bee7f649
commit
453903bbee
5 changed files with 33 additions and 73 deletions
|
@ -71,5 +71,5 @@ abstract class PartAbstract extends TMultiPart with TraitTicker
|
|||
|
||||
override def toString: String = "[" + getClass.getSimpleName + "]" + x + "x " + y + "y " + z + "z"
|
||||
|
||||
override def getType: String = ResonantPartFactory.prefix + getClass.getSimpleName
|
||||
final override def getType: String = ResonantPartFactory.prefix + getClass.getSimpleName
|
||||
}
|
|
@ -11,18 +11,18 @@ import net.minecraft.nbt.NBTTagCompound
|
|||
import net.minecraft.util.MovingObjectPosition
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
import resonant.engine.ResonantEngine
|
||||
import resonantinduction.core.prefab.part.connector.PartAbstract
|
||||
import universalelectricity.api.core.grid.{INode, INodeProvider}
|
||||
import universalelectricity.core.transform.vector.VectorWorld
|
||||
|
||||
/** We assume all the force acting on the gear is 90 degrees.
|
||||
*
|
||||
* @author Calclavia */
|
||||
abstract class PartMechanical extends JCuboidPart with JNormalOcclusion with TFacePart with INodeProvider
|
||||
abstract class PartMechanical extends PartAbstract with JNormalOcclusion with TFacePart with INodeProvider
|
||||
{
|
||||
/** Node that handles resonantinduction.mechanical action of the machine */
|
||||
var node: MechanicalNode = null
|
||||
protected var prevAngularVelocity: Double = .0
|
||||
private[mech] var ticks: Int = 0
|
||||
/** Packets */
|
||||
private[mech] var markPacketUpdate: Boolean = false
|
||||
/** Simple debug external GUI */
|
||||
|
@ -54,11 +54,6 @@ abstract class PartMechanical extends JCuboidPart with JNormalOcclusion with TFa
|
|||
|
||||
override def update
|
||||
{
|
||||
ticks += 1
|
||||
if (ticks >= java.lang.Long.MAX_VALUE)
|
||||
{
|
||||
ticks = 0
|
||||
}
|
||||
this.node.update
|
||||
if (!world.isRemote)
|
||||
{
|
||||
|
@ -145,7 +140,7 @@ abstract class PartMechanical extends JCuboidPart with JNormalOcclusion with TFa
|
|||
read(packet, packet.readUByte)
|
||||
}
|
||||
|
||||
def read(packet: MCDataInput, packetID: Int)
|
||||
override def read(packet: MCDataInput, packetID: Int)
|
||||
{
|
||||
if (packetID == 0)
|
||||
{
|
||||
|
|
|
@ -1,17 +1,14 @@
|
|||
package resonantinduction.mechanical.mech.gear
|
||||
|
||||
import codechicken.lib.vec.Rotation
|
||||
import codechicken.multipart.TMultiPart
|
||||
import codechicken.multipart.TileMultipart
|
||||
import codechicken.multipart.{TMultiPart, TileMultipart}
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
import resonantinduction.core.interfaces.IMechanicalNode
|
||||
import resonantinduction.mechanical.mech.MechanicalNode
|
||||
import resonantinduction.mechanical.mech.gearshaft.PartGearShaft
|
||||
import universalelectricity.api.core.grid.INodeProvider
|
||||
import universalelectricity.core.transform.vector.IVectorWorld
|
||||
import universalelectricity.core.transform.vector.VectorWorld
|
||||
import universalelectricity.core.transform.vector.Vector3
|
||||
import universalelectricity.core.transform.vector.{IVectorWorld, Vector3, VectorWorld}
|
||||
|
||||
/**
|
||||
* Node for the gear
|
||||
|
@ -73,29 +70,21 @@ class GearNode(parent: PartGear) extends MechanicalNode(parent: PartGear)
|
|||
addConnection(instance, gear.placementSide)
|
||||
}
|
||||
}
|
||||
for (i <- 0 until 6)
|
||||
{
|
||||
var i: Int = 0
|
||||
while (i < 6)
|
||||
val checkDir: ForgeDirection = ForgeDirection.getOrientation(i)
|
||||
var tile: TileEntity = gear.tile
|
||||
if (gear.getMultiBlock.isConstructed && checkDir != gear.placementSide && checkDir != gear.placementSide.getOpposite)
|
||||
{
|
||||
tile = new Vector3(gear.tile).add(checkDir).getTileEntity(world)
|
||||
}
|
||||
if (tile.isInstanceOf[INodeProvider])
|
||||
{
|
||||
val instance: MechanicalNode = (tile.asInstanceOf[INodeProvider]).getNode(classOf[MechanicalNode], if (checkDir eq gear.placementSide.getOpposite) ForgeDirection.UNKNOWN else checkDir).asInstanceOf[MechanicalNode]
|
||||
if (!connections.containsValue(checkDir) && instance != this && checkDir != gear.placementSide && instance != null && instance.canConnect(checkDir.getOpposite, this))
|
||||
{
|
||||
val checkDir: ForgeDirection = ForgeDirection.getOrientation(i)
|
||||
var tile: TileEntity = gear.tile
|
||||
if (gear.getMultiBlock.isConstructed && checkDir != gear.placementSide && checkDir != gear.placementSide.getOpposite)
|
||||
{
|
||||
tile = new Vector3(gear.tile).add(checkDir).getTileEntity(world)
|
||||
}
|
||||
if (tile.isInstanceOf[INodeProvider])
|
||||
{
|
||||
val instance: MechanicalNode = (tile.asInstanceOf[INodeProvider]).getNode(classOf[MechanicalNode], if (checkDir eq gear.placementSide.getOpposite) ForgeDirection.UNKNOWN else checkDir).asInstanceOf[MechanicalNode]
|
||||
if (!connections.containsValue(checkDir) && instance != this && checkDir != gear.placementSide && instance != null && instance.canConnect(checkDir.getOpposite, this))
|
||||
{
|
||||
addConnection(instance, checkDir)
|
||||
}
|
||||
}
|
||||
addConnection(instance, checkDir)
|
||||
}
|
||||
({
|
||||
i += 1; i - 1
|
||||
})
|
||||
}
|
||||
}
|
||||
var displaceCheck: Int = 1
|
||||
|
@ -103,25 +92,17 @@ class GearNode(parent: PartGear) extends MechanicalNode(parent: PartGear)
|
|||
{
|
||||
displaceCheck = 2
|
||||
}
|
||||
for (i <- 0 until 4)
|
||||
{
|
||||
var i: Int = 0
|
||||
while (i < 4)
|
||||
val checkDir: ForgeDirection = ForgeDirection.getOrientation(Rotation.rotateSide(gear.placementSide.ordinal, i))
|
||||
val checkTile: TileEntity = new Vector3(gear.tile).add(checkDir).getTileEntity(world)
|
||||
if (!connections.containsValue(checkDir) && checkTile.isInstanceOf[INodeProvider])
|
||||
{
|
||||
val instance: MechanicalNode = (checkTile.asInstanceOf[INodeProvider]).getNode(classOf[MechanicalNode], gear.placementSide).asInstanceOf[MechanicalNode]
|
||||
if (instance != null && instance != this && instance.canConnect(checkDir.getOpposite, this) && !(instance.getParent.isInstanceOf[PartGearShaft]))
|
||||
{
|
||||
val checkDir: ForgeDirection = ForgeDirection.getOrientation(Rotation.rotateSide(gear.placementSide.ordinal, i))
|
||||
val checkTile: TileEntity = new Vector3(gear.tile).add(checkDir).getTileEntity(world)
|
||||
if (!connections.containsValue(checkDir) && checkTile.isInstanceOf[INodeProvider])
|
||||
{
|
||||
val instance: MechanicalNode = (checkTile.asInstanceOf[INodeProvider]).getNode(classOf[MechanicalNode], gear.placementSide).asInstanceOf[MechanicalNode]
|
||||
if (instance != null && instance != this && instance.canConnect(checkDir.getOpposite, this) && !(instance.getParent.isInstanceOf[PartGearShaft]))
|
||||
{
|
||||
addConnection(instance, checkDir)
|
||||
}
|
||||
}
|
||||
addConnection(instance, checkDir)
|
||||
}
|
||||
({
|
||||
i += 1; i - 1
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,19 +29,13 @@ object PartGear
|
|||
|
||||
oBoxes(0)(0) = new Cuboid6(1 / 8D, 0, 0, 7 / 8D, 1 / 8D, 1)
|
||||
oBoxes(0)(1) = new Cuboid6(0, 0, 1 / 8D, 1, 1 / 8D, 7 / 8D)
|
||||
|
||||
for(s <- 1 until 6)
|
||||
{
|
||||
var s: Int = 1
|
||||
while (s < 6)
|
||||
{
|
||||
{
|
||||
val t: Transformation = Rotation.sideRotations(s).at(Vector3.center)
|
||||
oBoxes(s)(0) = oBoxes(0)(0).copy.apply(t)
|
||||
oBoxes(s)(1) = oBoxes(0)(1).copy.apply(t)
|
||||
}
|
||||
({
|
||||
s += 1; s - 1
|
||||
})
|
||||
}
|
||||
val t: Transformation = Rotation.sideRotations(s).at(Vector3.center)
|
||||
oBoxes(s)(0) = oBoxes(0)(0).copy.apply(t)
|
||||
oBoxes(s)(1) = oBoxes(0)(1).copy.apply(t)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -109,7 +103,7 @@ class PartGear extends PartMechanical with IMultiBlockStructure[PartGear]
|
|||
/** Is this gear block the one in the center-edge of the multiblock that can interact with other
|
||||
* gears?
|
||||
*
|
||||
* @return*/
|
||||
* @return */
|
||||
def isCenterMultiBlock: Boolean =
|
||||
{
|
||||
if (!getMultiBlock.isConstructed)
|
||||
|
@ -145,11 +139,6 @@ class PartGear extends PartMechanical with IMultiBlockStructure[PartGear]
|
|||
}
|
||||
}
|
||||
|
||||
def getType: String =
|
||||
{
|
||||
return "resonant_induction_gear"
|
||||
}
|
||||
|
||||
override def load(nbt: NBTTagCompound)
|
||||
{
|
||||
super.load(nbt)
|
||||
|
@ -165,7 +154,7 @@ class PartGear extends PartMechanical with IMultiBlockStructure[PartGear]
|
|||
override def getMultiBlockVectors: java.util.List[universalelectricity.core.transform.vector.Vector3] =
|
||||
{
|
||||
val vec = new universalelectricity.core.transform.vector.Vector3(this.x, this.y, this.z)
|
||||
var array : java.util.List[universalelectricity.core.transform.vector.Vector3] = vec.getAround(this.world, placementSide, 1)
|
||||
var array: java.util.List[universalelectricity.core.transform.vector.Vector3] = vec.getAround(this.world, placementSide, 1)
|
||||
return array
|
||||
}
|
||||
|
||||
|
@ -202,7 +191,7 @@ class PartGear extends PartMechanical with IMultiBlockStructure[PartGear]
|
|||
def getOcclusionBoxes: java.lang.Iterable[Cuboid6] =
|
||||
{
|
||||
val list: java.util.List[Cuboid6] = new util.ArrayList[Cuboid6];
|
||||
for(v <- PartGear.oBoxes(this.placementSide.ordinal))
|
||||
for (v <- PartGear.oBoxes(this.placementSide.ordinal))
|
||||
{
|
||||
list.add(v)
|
||||
}
|
||||
|
|
|
@ -58,11 +58,6 @@ class PartGearShaft extends PartMechanical
|
|||
}
|
||||
}
|
||||
|
||||
def getType: String =
|
||||
{
|
||||
return "resonant_induction_gear_shaft"
|
||||
}
|
||||
|
||||
/**
|
||||
* Multipart Bounds
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue