SpielBackupAlt/scripts/LightLevel.gd

28 lines
738 B
GDScript
Executable File

extends Spatial
## NOTE: LightLevel Detector is on Layer 20. Keep this layer hidden from main camera
var lightLevel : float
func _process(_delta):
var o = global_transform.origin
$Viewport/Camera.global_transform.origin = Vector3(o.x, o.y + 0.5, o.z)
var image : Image = $Viewport.get_texture().get_data()
var floats : Array = []
image.lock()
for y in range(0, image.get_height()):
for x in range(0, image.get_width()):
var pixel = image.get_pixel(x,y)
var lightVal = (pixel.r + pixel.g + pixel.b) / 3
floats.append(lightVal)
lightLevel = average(floats)
image.unlock()
func average(numbers : Array) -> float:
var sum = 0.0
for n in numbers:
sum += n
return sum / numbers.size()