This mod is not known to work with the latest version of Kerbal Space Program 2. Proceed with caution.
[DISABLED VFX] [VFX will return in v0.1.4.2]
Opacity Calculation: - Adjusted the opacity calculation for the fuel tanks, ensuring a linear relationship between fuel level and opacity. The opacity now gradually decreases as the fuel level decreases from 1 to 0.95.
Fuel Percentage Conversion:
- Modified the fuelPercentage
value to be within the range of 0 to 1 by dividing by 100, aligning it with the expected input for the opacity calculation.
Module Consolidation:
- Integrated Module_TriggerVFX
into Module_VentValve
, streamlining the control of visual effects and improving maintainability.
Singleton Pattern: - Replaced dependency injection in all classes with the Singleton pattern to manage instances. This change streamlines instance management, ensuring that only one instance of a class is instantiated and accessed globally.
Event-Driven Logic: - Refactored event handlers and delegates to establish an event-driven architecture, particularly for module activation and data refreshes.
Performance Improvement:
- Expanded the RefreshVesselData
method, reducing calculations and optimizing performance through more efficient update processes and conditional animations.
ASL and AGL Curve Update:
- Updated the VFXASLCurve
and VFXAGLCurve
with new keyframes to reflect a linear relationship with the altitude values. Set the curves to match points (0, 0) and (1, 1), ensuring a direct and linear mapping between altitude and the visual effects.
Added Additional Curves:
- Vertical Velocity, Horizontal Velocity, Dynamic Pressure, Static Pressure, Atmospheric Temperature, External Temperature, and other environmental factors have been added to make the VFX react to the environment.
Cooling VFX Control:
- Replaced multiple conditions for controlling Cooling VFX with a single Boolean parameter. This change simplifies the logic for turning the Cooling VFX on and off based on various factors like altitude and fuel level.
Module Refactoring:
- Extensively refactored every class to better align with modern software design principles and to simplify the codebase.
- Eliminated the use of CurrentModule
in favor of a more dynamic and extensible approach.
Interface Introduction:
- Introduced ILoadModule
interface to standardize module loading operations, enhancing the maintainability and flexibility of the system.
Dynamic Module Identification:
- Overhauled ModuleController
to provide more dynamic module identification. Instead of relying on static properties, it now employs methods that can adapt as the system grows and changes.
Utility Class Initialization:
- Ensured that the Utility
class is properly initialized within the FFTPlugin
to enable its functionality throughout the application.
If you encounter any issues or have suggestions, please feel free to contribute or open an issue on GitHub.
Preliminary Condition Assessment:
ConditionsManager
meticulously evaluates the prevailing system conditions to determine the appropriate course of action.Conditional Module Initialization:
ConditionsManager
seamlessly delegates the task to the Manager
, instructing it to engage the requisite module via the LoadModule
mechanism.Integrity Verification:
Manager
seeks affirmation from the ConditionsManager
, ensuring alignment of the initialized module with the anticipated operations. The ConditionsManager
, in turn, ascertains the accuracy of the loaded module.Module Operationalization:
ConditionsManager
authorizes the Manager
to activate the selected module utilizing the StartModule
protocol.Operational Acknowledgment:
Manager
conveys, "Initiating the specified module."Raw stats are from the beginning of time until now. Each follower and download entry represents one hour of data. Uneventful hours are omitted.