eb27ae4c24
Signed-off-by: Robear Selwans <robear.selwans@outlook.com>
67 lines
1.6 KiB
Lua
Executable File
67 lines
1.6 KiB
Lua
Executable File
this.on_init = function()
|
|
this.speed = 2.1
|
|
this.original_position = this.position
|
|
this.angles = Vec3:new()
|
|
this.mouse_sens = 0.01
|
|
this.cursor_locked = false
|
|
end
|
|
|
|
this.toggleCursor = function()
|
|
if this.cursor_locked then
|
|
Input.unlockCursor()
|
|
else
|
|
Input.lockCursor()
|
|
end
|
|
this.cursor_locked = not this.cursor_locked
|
|
end
|
|
|
|
this.on_update = function()
|
|
local deltaMouseMovement = Input.getDeltaMousePos()
|
|
this.angles.y = this.angles.y - deltaMouseMovement.x * this.mouse_sens
|
|
this.eulerAngles = this.angles
|
|
|
|
helper = this:getChild('RotationHelper')
|
|
|
|
if Input.getKeyJustPressed(Input.KeyCode.Enter) then
|
|
gotoScene('SideScene')
|
|
end
|
|
|
|
local pos = this.position
|
|
if Input.getKeyDown(Input.KeyCode.Up) then
|
|
pos = pos + helper.forward * this.speed
|
|
end
|
|
if Input.getKeyDown(Input.KeyCode.Down) then
|
|
pos = pos - helper.forward * this.speed
|
|
end
|
|
if Input.getKeyDown(Input.KeyCode.Right) then
|
|
pos = pos + helper.right * this.speed
|
|
end
|
|
if Input.getKeyDown(Input.KeyCode.Left) then
|
|
pos = pos - helper.right * this.speed
|
|
end
|
|
|
|
local mb0 = Input.getMouseButtonJustPressed(0)
|
|
local mb1 = Input.getMouseButtonJustPressed(1)
|
|
local mb2 = Input.getMouseButtonJustPressed(2)
|
|
|
|
if mb0 or mb1 then
|
|
hit = rayCast(this.worldPosition, helper.forward, 300)
|
|
if(hit.hasHit) then
|
|
local hitForce = 1000
|
|
rb = hit.object:getComponent(Rigidbody)
|
|
if mb0 then
|
|
rb:addForce(hit.hitNormal * -hitForce)
|
|
elseif mb1 then
|
|
rb:addForce(hit.hitNormal * hitForce)
|
|
end
|
|
end
|
|
end
|
|
|
|
if mb2 then
|
|
this.toggleCursor()
|
|
end
|
|
|
|
this.position = pos
|
|
end
|
|
|