Patreon Weekly Build: 0.3.2 out!
While I work on the new facility generation on a separate git branch, I'm continuing my improvement of the game's systems. This new build saves and loads settings externally, to a .ini file! This was made possible through the import of SharpConfig, an open-source library for saving and loading to .ini and other files in C#. In addition, the way that I handle settings is much improved; I should be able to add the main menu options menu as well as quite a few more new settings, coming soon. Like maybe even mappable input keys.
Check it out!
Changelog
Code: Select all
v0.3.2
Settings are now persistent and stored in a .ini file for external modification!
Added SharpConfig as a submodule
Removed SettingsController. Settings has a new, better workflow
SettingsLoader loads settings from a file at startup, or creates it if it does not exist or is broken
SettingsLoader uses a cache to store references to ingame elements, and different groups of SettingsData to separate and wrap settings: videoSettings, inputSettings, etc.
OptionsScreens edit those settings directly, so that they can be changed immediately. They are then saved to a file if the user clicks 'Save', or reloaded from the file should the user wish to discard the settings.
Added an invert mouse option to the mouse, which actually works now!
Moved input controllers to be a subset of the engine, on the game object PlayerInput
Better behavior for post processing and cameras. Profile and info stored on SettingsCache, grabbed by PlayerCamera at start and injected into PlayerCamera should values change at runtime
Player's inventory scripts now on sub-gameobject with linking variables in player, for better organization and to avoid GetComponent<> each time an item is picked / dropped / etc
Moved game services (audio, event, etc) off of Engine and into their own script, GameServices