1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
extends Node2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
get_node("Node2D/Polygon2D").setIt(moon_phase())
func moon_phase():
# https://www.subsystems.us/uploads/9/8/9/4/98948044/moonphase.pdf
var y = 2019.0
var m = 12.0
var d = 26.0
var a = y/100.0
var b = a/4.0
var c = 2.0-a+b
var e = 365.25 * (y + 4716.0)
var f = 30.6001 * (m+1.0)
var jd = c+d+e+f-1524.5
var daysSince = jd - 2451549.5
var cycles = daysSince / 29.53
# 0.25 is local format offset
var offset = 0.5
var currentCycle = cycles - offset - floor(cycles - offset)
return currentCycle