Here it is in text format.
var latestX : float = 0.0
var latestY : float = 0.0
var GetNextShake = func():
while true:
var X = randf_range(min, max) * [-1, 1].pick_random()
var Y = randf_range(min, max) * [-1, 1].pick_random()
if X != latestX and Y != latestY:
latestX = X
latestY = Y
print(latestX, ", ", latestY)
break
var SingleShake = func():
print("New tween", ", pos = ", latestX, ", ", latestY)
GetNextShake.call()
#Tween camera position to new coordinate
await physics.tween({"object" : camera, "property" : "position", "final" : originalCameraPos + Vector3(latestX, latestY, 0), "time" : 1.0 / speed})
if index: #Make sure index exists
if data["mode"] is int: #This means shake has a time limit on it (Should end after x seconds)
pass
elif data["mode"] is bool: #This means shake is on toggle mode (Most likely a suttle and long shake like elevator scene)
if data["mode"] == true: #Starting a shake
print("true loop")
while index["mode"] == true:
await SingleShake.call()
camera.position = originalCameraPos