summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2023-05-09 20:21:25 -0500
committersanine <sanine.not@pm.me>2023-05-09 20:21:25 -0500
commit26bfc10ad0e8a355e9b02946dd31642f49a6ec60 (patch)
tree2c2a92cf81b680f6fb3c705059f15801d9f0224c /scripts
parent78d8efa4ac61bc7fd4d1e5bfb41193e9dece5c03 (diff)
fix camera resizing and move all scripts into separate files
Diffstat (limited to 'scripts')
-rw-r--r--scripts/cameraHandleResize.lua1
-rw-r--r--scripts/cameraPivot.lua21
2 files changed, 22 insertions, 0 deletions
diff --git a/scripts/cameraHandleResize.lua b/scripts/cameraHandleResize.lua
index 7d1713d..97974f5 100644
--- a/scripts/cameraHandleResize.lua
+++ b/scripts/cameraHandleResize.lua
@@ -1,6 +1,7 @@
return function(entities, id, data)
local camera = entities:getComponent(id, "camera")
if camera then
+ print("resize camera!")
camera.projection:perspectiveResize(data.width/data.height)
end
end
diff --git a/scripts/cameraPivot.lua b/scripts/cameraPivot.lua
new file mode 100644
index 0000000..d2fad59
--- /dev/null
+++ b/scripts/cameraPivot.lua
@@ -0,0 +1,21 @@
+local prevx, prevy
+return function(entities, id, data)
+ if not prevx then
+ prevx, prevy = data.xpos, data.ypos
+ end
+ local dx = data.xpos - prevx
+ local dy = data.ypos - prevy
+ prevx, prevy = data.xpos, data.ypos
+
+ local node = entities:getComponent(id, "node")
+ local py = entities:getComponent(id, "pitchyaw")
+ py.pitch = py.pitch - dy
+ py.yaw = py.yaw - dx
+ if py.pitch > 89.9 then py.pitch = 89.9 end
+ if py.pitch < -89.9 then py.pitch = -89.9 end
+
+ node.matrix
+ :identity()
+ :rotateY(math.rad(py.yaw))
+ :rotateX(math.rad(py.pitch))
+end