root/3d/orbiter.gd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
extends Spatial

export(float) var eccentricity = 0
export(float) var apoapsis = 0.0 # far
export(float) var periapsis = 0.0 # close
export(float) var orbit_period = 0.0
export(float) var rotation_period = 0.0
export(float) var inclination = 0.0
export(float) var semi_major = 2.67070
var progress = 0.0

func _ready():
	inclination = deg2rad(self.inclination)

func _physics_process(delta):
	self.progress += delta/orbit_period
	var x = sin(progress)*semi_major 
	var y = cos(progress)*semi_major
	var z = cos(progress)*(semi_major*inclination)
	rotate(Vector3(0, 1, 0), delta)
	transform.origin = Vector3(x,z,-y)