Gears now properly render
This commit is contained in:
parent
3d8f2551c7
commit
f039d282e1
|
@ -53,7 +53,7 @@ import resonantinduction.mechanical.mech.turbine._
|
|||
override def init()
|
||||
{
|
||||
//Mech content TODO no-load if mech content is not loaded
|
||||
ItemRenderHandler.register(MechanicalContent.itemGear, RenderGear.INSTANCE)
|
||||
ItemRenderHandler.register(MechanicalContent.itemGear, RenderGear)
|
||||
ItemRenderHandler.register(MechanicalContent.itemGearShaft, RenderGearShaft.INSTANCE)
|
||||
ItemRenderHandler.register(MechanicalContent.itemPipe, RenderPipe)
|
||||
ItemRenderHandler.register(Item.getItemFromBlock(MechanicalContent.blockWaterTurbine), new RenderWaterTurbine)
|
||||
|
|
|
@ -17,6 +17,8 @@ import resonantinduction.mechanical.mech.grid.MechanicalNode
|
|||
*/
|
||||
class GearNode(parent: PartGear) extends MechanicalNode(parent: PartGear)
|
||||
{
|
||||
teethDisplacement = 0.01D
|
||||
|
||||
protected def gear: PartGear = getParent.asInstanceOf[PartGear]
|
||||
|
||||
/*
|
||||
|
|
|
@ -7,11 +7,12 @@ import net.minecraftforge.client.IItemRenderer
|
|||
import net.minecraftforge.client.model.{AdvancedModelLoader, IModelCustom}
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
import org.lwjgl.opengl.GL11
|
||||
import resonant.content.prefab.scal.render.ISimpleItemRenderer
|
||||
import resonant.lib.render.RenderUtility
|
||||
import resonantinduction.core.Reference
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
object RenderGear
|
||||
object RenderGear extends ISimpleItemRenderer
|
||||
{
|
||||
final val model: IModelCustom = AdvancedModelLoader.loadModel(new ResourceLocation(Reference.domain, Reference.modelPath + "gears.obj"))
|
||||
|
||||
|
@ -65,5 +66,4 @@ object RenderGear
|
|||
GL11.glRotatef(90, 1, 0, 0)
|
||||
renderGear(-1, itemStack.getItemDamage, false, 0)
|
||||
}
|
||||
|
||||
}
|
|
@ -17,7 +17,7 @@ class MechanicalGrid extends GridNode[MechanicalNode](classOf[MechanicalNode]) w
|
|||
* A map marking out the relative spin directions of each node.
|
||||
* Updated upon recache
|
||||
*/
|
||||
private val spinMap = mutable.WeakHashMap.empty[MechanicalNode, Boolean]
|
||||
protected[grid] val spinMap = mutable.WeakHashMap.empty[MechanicalNode, Boolean]
|
||||
|
||||
/**
|
||||
* The power of the mechanical grid
|
||||
|
|
|
@ -26,15 +26,19 @@ class MechanicalNode(parent: INodeProvider) extends NodeGrid[MechanicalNode](par
|
|||
|
||||
var load = 0.2
|
||||
|
||||
/**
|
||||
* Angle calculations
|
||||
*/
|
||||
private var prevTime = 0L
|
||||
private var prevAngle = 0D
|
||||
protected var teethDisplacement = 0D
|
||||
|
||||
/**
|
||||
* Events
|
||||
*/
|
||||
var onTorqueChanged: () => Unit = () => ()
|
||||
var onVelocityChanged: () => Unit = () => ()
|
||||
|
||||
private var prevTime = 0L
|
||||
private var prevAngle = 0D
|
||||
|
||||
/**
|
||||
* An arbitrary angle value computed based on velocity
|
||||
* @return The angle in radians
|
||||
|
@ -44,19 +48,18 @@ class MechanicalNode(parent: INodeProvider) extends NodeGrid[MechanicalNode](par
|
|||
val deltaTime = (System.currentTimeMillis() - prevTime) / 1000D
|
||||
prevTime = System.currentTimeMillis()
|
||||
prevAngle = (prevAngle + deltaTime * angularVelocity) % (2 * Math.PI)
|
||||
return prevAngle
|
||||
return prevAngle + (if (getMechanicalGrid != null && getMechanicalGrid.spinMap(this)) teethDisplacement else 0D)
|
||||
}
|
||||
|
||||
override def getRadius(dir: ForgeDirection, `with`: TMechanicalNode): Double = 0.5
|
||||
|
||||
/**
|
||||
* Called when one revolution is made.
|
||||
*/
|
||||
@deprecated
|
||||
protected def revolve()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@deprecated
|
||||
override def getRadius(dir: ForgeDirection, `with`: TMechanicalNode): Double = 0.5
|
||||
|
||||
override def rotate(from: AnyRef, torque: Double, angle: Double)
|
||||
{
|
||||
bufferTorque += torque
|
||||
|
|
Loading…
Reference in a new issue