Refactor game settings to support using API bindings
This commit is contained in:
6
.gitmodules
vendored
6
.gitmodules
vendored
@@ -0,0 +1,6 @@
|
||||
[submodule "Source/Platforms/PS4"]
|
||||
path = Source/Platforms/PS4
|
||||
url = https://gitlab.flaxengine.com/flax/flaxengine-ps4.git
|
||||
[submodule "Source/Platforms/XboxScarlett"]
|
||||
path = Source/Platforms/XboxScarlett
|
||||
url = https://gitlab.flaxengine.com/flax/flaxengine-xboxscarlett.git
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
/// <summary>
|
||||
/// Audio settings container.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{AudioSettings}" />
|
||||
class AudioSettings : public Settings<AudioSettings>
|
||||
/// <seealso cref="SettingsBase{AudioSettings}" />
|
||||
class AudioSettings : public SettingsBase<AudioSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() final override
|
||||
{
|
||||
DisableAudio = false;
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
/// <summary>
|
||||
/// The game building rendering settings.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{BuildSettings}" />
|
||||
class BuildSettings : public Settings<BuildSettings>
|
||||
class BuildSettings : public SettingsBase<BuildSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -62,7 +61,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() final override
|
||||
{
|
||||
MaxAssetsPerPackage = 1024;
|
||||
|
||||
@@ -28,7 +28,7 @@ bool GameSettings::NoSplashScreen = false;
|
||||
Guid GameSettings::SplashScreen;
|
||||
Dictionary<String, Guid> GameSettings::CustomSettings;
|
||||
|
||||
Array<SettingsBase*> SettingsBase::Containers(32);
|
||||
Array<Settings*> Settings::Containers(32);
|
||||
|
||||
#if USE_EDITOR
|
||||
extern void LoadPlatformSettingsEditor(ISerializable::DeserializeStream& data);
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
/// <summary>
|
||||
/// Graphics rendering settings.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{GraphicsSettings}" />
|
||||
class GraphicsSettings : public Settings<GraphicsSettings>
|
||||
class GraphicsSettings : public SettingsBase<GraphicsSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -56,7 +55,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void Apply() override;
|
||||
|
||||
void RestoreDefault() final override
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
/// <summary>
|
||||
/// Layers and objects tags settings.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{LayersAndTagsSettings}" />
|
||||
class LayersAndTagsSettings : public Settings<LayersAndTagsSettings>
|
||||
class LayersAndTagsSettings : public SettingsBase<LayersAndTagsSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -54,7 +53,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() override
|
||||
{
|
||||
Tags.Clear();
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
#include "Engine/Serialization/ISerializable.h"
|
||||
|
||||
/// <summary>
|
||||
/// Base class for all global settings containers for the engine. Helps to apply, store and expose properties to c#.
|
||||
/// Base class for all global settings containers for the engine. Helps to apply, store and expose properties to engine/game.
|
||||
/// </summary>
|
||||
class SettingsBase
|
||||
class FLAXENGINE_API Settings
|
||||
{
|
||||
public:
|
||||
|
||||
/// <summary>
|
||||
/// The settings containers.
|
||||
/// </summary>
|
||||
static Array<SettingsBase*> Containers;
|
||||
static Array<Settings*> Containers;
|
||||
|
||||
/// <summary>
|
||||
/// Restores the default settings for all the registered containers.
|
||||
@@ -30,19 +30,19 @@ public:
|
||||
private:
|
||||
|
||||
// Disable copy/move
|
||||
SettingsBase(const SettingsBase&) = delete;
|
||||
SettingsBase& operator=(const SettingsBase&) = delete;
|
||||
Settings(const Settings&) = delete;
|
||||
Settings& operator=(const Settings&) = delete;
|
||||
|
||||
protected:
|
||||
|
||||
SettingsBase()
|
||||
Settings()
|
||||
{
|
||||
Containers.Add(this);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
virtual ~SettingsBase() = default;
|
||||
virtual ~Settings() = default;
|
||||
|
||||
public:
|
||||
|
||||
@@ -69,14 +69,14 @@ public:
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Base class for all global settings containers for the engine. Helps to apply, store and expose properties to c#.
|
||||
/// Base class for all global settings containers for the engine. Helps to apply, store and expose properties to engine/game.
|
||||
/// </summary>
|
||||
template<class T>
|
||||
class Settings : public SettingsBase, public Singleton<T>
|
||||
class SettingsBase : public Settings, public Singleton<T>
|
||||
{
|
||||
protected:
|
||||
|
||||
Settings()
|
||||
SettingsBase()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
/// <summary>
|
||||
/// Time and game simulation settings container.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{TimeSettings}" />
|
||||
class TimeSettings : public Settings<TimeSettings>
|
||||
class TimeSettings : public SettingsBase<TimeSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -40,7 +39,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void Apply() override;
|
||||
|
||||
void RestoreDefault() override
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
/// <summary>
|
||||
/// Input settings container.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{InputSettings}" />
|
||||
class InputSettings : public Settings<InputSettings>
|
||||
/// <seealso cref="SettingsBase{InputSettings}" />
|
||||
class InputSettings : public SettingsBase<InputSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -27,7 +27,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void Apply() override
|
||||
{
|
||||
Input::ActionMappings = ActionMappings;
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() final override
|
||||
{
|
||||
CellHeight = 10.0f;
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
/// <summary>
|
||||
/// Physics simulation settings container.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{PhysicsSettings}" />
|
||||
class PhysicsSettings : public Settings<PhysicsSettings>
|
||||
/// <seealso cref="SettingsBase{PhysicsSettings}" />
|
||||
class PhysicsSettings : public SettingsBase<PhysicsSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void Apply() override;
|
||||
void RestoreDefault() override;
|
||||
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
/// <summary>
|
||||
/// Android platform settings.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{AndroidPlatformSettings}" />
|
||||
class AndroidPlatformSettings : public Settings<AndroidPlatformSettings>
|
||||
/// <seealso cref="SettingsBase{AndroidPlatformSettings}" />
|
||||
class AndroidPlatformSettings : public SettingsBase<AndroidPlatformSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -36,7 +36,7 @@ public:
|
||||
RestoreDefault();
|
||||
}
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() final override
|
||||
{
|
||||
PackageName = TEXT("com.${COMPANY_NAME}.${PROJECT_NAME}");
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
/// <summary>
|
||||
/// Linux platform settings.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{LinuxPlatformSettings}" />
|
||||
class LinuxPlatformSettings : public Settings<LinuxPlatformSettings>
|
||||
/// <seealso cref="SettingsBase{LinuxPlatformSettings}" />
|
||||
class LinuxPlatformSettings : public SettingsBase<LinuxPlatformSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() final override
|
||||
{
|
||||
WindowMode = GameWindowMode::Windowed;
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
/// <summary>
|
||||
/// Universal Windows Platform settings.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{UWPPlatformSettings}" />
|
||||
class UWPPlatformSettings : public Settings<UWPPlatformSettings>
|
||||
/// <seealso cref="SettingsBase{UWPPlatformSettings}" />
|
||||
class UWPPlatformSettings : public SettingsBase<UWPPlatformSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -95,7 +95,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() final override
|
||||
{
|
||||
PreferredLaunchWindowingMode = WindowMode::FullScreen;
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
/// <summary>
|
||||
/// Windows platform settings.
|
||||
/// </summary>
|
||||
/// <seealso cref="Settings{WindowsPlatformSettings}" />
|
||||
class WindowsPlatformSettings : public Settings<WindowsPlatformSettings>
|
||||
/// <seealso cref="SettingsBase{WindowsPlatformSettings}" />
|
||||
class WindowsPlatformSettings : public SettingsBase<WindowsPlatformSettings>
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
// [Settings]
|
||||
// [SettingsBase]
|
||||
void RestoreDefault() final override
|
||||
{
|
||||
WindowMode = GameWindowMode::Windowed;
|
||||
|
||||
1
Source/Platforms/PS4
Submodule
1
Source/Platforms/PS4
Submodule
Submodule Source/Platforms/PS4 added at b9e29ede69
1
Source/Platforms/XboxScarlett
Submodule
1
Source/Platforms/XboxScarlett
Submodule
Submodule Source/Platforms/XboxScarlett added at 7691bbaf2a
Reference in New Issue
Block a user