rendered paste body#Global Hooks
$Simulation:
[
if camerainit == nil then
blankOri = mn.Ships[1].Orientation
blankOri["p"] = 0
blankOri["b"] = 0
blankOri["h"] = 0
cCameraPos = ba.createVector(0,0,-20)
cCameraOri = blankOri
chaseCamera = ts.createCamera("chaseCamera1",cCameraPos, cCameraOri)
ts.setCamera(chaseCamera)
camerainit = 42
end
me = hv.Player
if me:isValid() then
if lastOri == nil then
lastOri = me.Orientation
end
--Get Position and Orientation
currentOri = me.Orientation
currentPos = me.Position
currentSpeed = me.Physics.Velocity["z"]
--Get where the Camera is supposed to be
cCameraPos["x"] = (0.1*currentPos["x"])
cCameraPos["y"] = (0.1*currentPos["y"])
cCameraPos["z"] = ((currentPos["z"] - 20) - (0.33 * currentSpeed))
chaseCamera:setPosition(cCameraPos)
--Angle Limit
if math.sqrt(math.pow(currentOri["p"],2) + math.pow(currentOri["h"],2)) > 0.524 then
currentOri = lastOri
end
--Horizontal Position Limit
if currentPos["x"] > 30 then
currentPos["x"] = 30
elseif currentPos["x"] < -30 then
currentPos["x"] = -30
end
--Vertical Position Limit
if currentPos["y"] > 22.5 then
currentPos["y"] = 22.5
elseif currentPos["y"] < -22.5 then
currentPos["y"] = -22.5
end
--Update Player Position and Orientation
me.Position = currentPos
me.Orientation = currentOri
--Reference Orientation for next frame
lastOri = me.Orientation
end --Player Validity Check
]
$HUD:
[
gr.setColor(255,255,255)
gr.drawString(currentOri["h"], 100,100)
gr.drawString(currentOri["p"], 100,110)
gr.drawString(currentOri["b"], 100,120)
gr.drawString(currentPos["x"],100,140)
gr.drawString(currentPos["y"],100,150)
gr.drawString(currentPos["z"],100,160)
gr.drawString(cCameraPos["x"],100,180)
gr.drawString(cCameraPos["y"],100,190)
gr.drawString(cCameraPos["z"],100,200)
]
#End