thorium-nova
thorium-nova copied to clipboard
Starmap Editor
Needed Tasks
- [x] #173
- [x] #174
- [x] #175
- [x] #176
- [ ] #177
- [x] #178
- [x] #179
- [x] #180
- [x] #181
- [x] #182
- [x] #183
- [x] #184
- [ ] #185
- [x] #186
- [x] #187
- [x] #188
- [x] #189
- [x] #190
- [x] #191
- [x] #192
- [x] #193
- [x] #194
- [x] #195
- [x] #196
- [ ] #197
- [x] #211
- [x] #212
- [ ] #213
- [x] #214
- [ ] #215
- [x] #282
Discussed in https://github.com/Thorium-Sim/thorium-nova/discussions/159
Originally posted by alexanderson1993 December 31, 2021 Okay, I think the first feature that absolutely needs to be added should be the star map editor. I really liked what I did for Thorium Nova Prime in 2020, so I'll replicate most of that behavior and copy a good portion of the code from that. Check the blog entries to get an idea for how that worked.
Here's the rough outline for how it will work.
- The star map is built into plugins. When you run a flight with multiple plugins activated, the star map entities are all created and combined together.
- Ultimately, the star map consists of solar systems (or interstellar points of interest - areas that can be visited in interstellar space that have no star), stars, planets, moons, and permanent ships like starbases.
- In the future, but not now, there will also be comets, asteroid belts, nebulas, and other stellar phenomena
- There will be a stage for interstellar objects (just solar systems) and a stage for all the objects within a solar system. The user experience involves selecting a solar system, entering it to see all of its contents, and then clicking a "Back" button to return to the interstellar stage.
- Both stages (interstellar and solar) will have a 2D top-down view (the default view) and a 3D view. The goal is to encourage a flat XZ plane of solar systems and planets, with the ability to add some Y (height) variation.
- In the interstellar 2D view, entities are added to the Y=0 plane and can be configured to have a different Y position manually. Dragging entities changes their position on the XZ plane.
- In the interstellar 3D view, entities are added some distance in front of the cameras view based on the current zoom level. Dragging entities changes their position along a plane perpendicular to the direction the camera is facing.
- Stars, planets, and moons are positioned entirely based on their orbital properties. For stars, they are placed in the center of the system with the appropriate distance from their binary partners, if any. For planets, they are placed based on their orbit radius, eccentricity (how squashed the ellipse is), the orbit period (how far along the orbit the planet is) and the inclination (vertical tilt). Moons are the same as planets, except their origin is the center of their parent planet.
- Both views will have really nice zooming, panning, and rotating in the case of the 3D view.
- Entities can be selected. A panel (either an overlay palette or a slide out panel, I can't decide which is better) will allow the properties of the selected entity to be edited.
- Multiple entities can be selected and moved simultaneously. Cut/Copy/Paste keyboard shortcuts should be available.
I think that's enough to start. Anybody have any thoughts?