from .import celestial_components as cel_comp from .import render_components as render_comps from .import surface_mesh from .import universals from .utils import blackbody from .renderpipeline.rpcore import PointLight as DirectionalLight #TODO: Switch to the sun direction manager or as tobias for info #TODO: Reenable scattering #from .renderpipeline import Scattering from direct.directnotify.DirectNotify import DirectNotify log = DirectNotify().newCategory("SpaceDrive-OrbitSystem") log.setSeverity(3) is2d = False class OrbitSystem(sandbox.EntitySystem): """Positions and moves celestial bodies in orbit.""" def add_parent_pos(self, displacement, child_component): parent_node_path = child_component.node_path.get_parent() parent_entity = parent_node_path.get_python_tag('entity') if parent_entity: parent_component = parent_entity.get_component(cel_comp.CelestialComponent) if parent_component: displacement += self.add_parent_pos(displacement, parent_component) displacement += parent_component.true_pos return displacement