In my previous devlog I mentioned how differences in the ship movement systems required different implementations for the engine. That solution was fast and effective for meeting deadlines, however it posed issues for future development and iteration.
I began by refactoring how I was calculating RPM and Load to eliminate redundant conditions and variables. But the more significant problem was the duplicated methods in both ship classes. To solve this, I abstracted all methods to a separate class, which I then referenced from within the two ship movement classes.
This abstraction drastically reduced the amount of audio related code inside of the ship classes, reducing the frequency and complexity of future merges when I need to iterate or expand my ship audio implementation.
After this refactor and abstraction, the above is the extent of audio related code within the Orbit Ship class; Opposed to multiple method definitions, variables and method executions. This will allow me to create new implementation logic for future ship related audio events, without the need to modify the Actor classes unnecessarily.