# Project "Millimeters of Aluminium" Development Log ## Overview The project is undergoing a major architectural refactor to move from a monolithic Spaceship class to a fully modular, component-based system. The foundation for this new architecture, centered around Module, Component, and Station classes, is now in place. The next steps involve migrating legacy systems into this new paradigm. ## I. Fully Implemented & Stable Systems Custom Physics Core: All physical objects now inherit from a custom OrbitalBody2D class, which handles mass aggregation and force integration. The physics loop is correctly disabled in the editor to prevent errors. Modular Ship Construction: Module as Root: The Module class now serves as the root for ship assemblies, managing its own list of structural pieces and components without needing container nodes. Builder Plugin: The editor plugin is updated to work with this new architecture, allowing the placement of StructuralPiece nodes directly onto Module nodes. Character & Interaction Foundation: Zero-G Movement: The PilotBall character has a state machine for handling movement inside ship interiors, including sluggish zero-G floating and direct control on ladders. Generic Station Component: A StationComponent class has been implemented. It serves as a generic hardware terminal that characters can interact with. Data-Driven UI Architecture: Databank Resource: A Databank Resource class has been created. It acts as "software," holding a reference to a UI scene that can be loaded by a station. ## II. Work-In-Progress (WIP) and Planned Systems This list details systems we have designed but are not yet fully implemented in the code. System Migration to Databanks: Helm/Flight Controls: The logic from the old ThrusterController.gd needs to be moved into a HelmUI.tscn scene and driven by a HelmDatabank. Navigation Computer: The UI has been moved, but the extensive planning and calculation logic from NavigationComputer.gd needs to be transferred to NavUI.gd. Fuel and Life Support: The FuelSystem and LifeSupport nodes are still part of the old Spaceship.tscn. They need to be fully redesigned as Component classes (e.g., FuelTank, AtmosphereProcessor). Component Wiring System: Signal/Socket Advertising: Components and Databanks need to be updated with get_input_sockets() and get_output_signals() functions. Wiring Data Storage: The Module class needs a wiring_data array to store the connections made in the builder. Builder UI: A visual wiring interface needs to be added to the module builder plugin. Orbital Stability Test: Ghost Simulator: A GhostSimulator class needs to be created to run predictive, in-memory physics calculations. Test Runner: An orbital_stability_test.tscn scene and script are needed to orchestrate the test, compare live vs. ghost results, and generate a report. Full Spaceship Class Retirement: The final step will be to delete Spaceship.tscn and Spaceship.gd once all their logic and systems have been successfully migrated to the new modular architecture.