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>
|
/// <summary>
|
||||||
/// Audio settings container.
|
/// Audio settings container.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{AudioSettings}" />
|
/// <seealso cref="SettingsBase{AudioSettings}" />
|
||||||
class AudioSettings : public Settings<AudioSettings>
|
class AudioSettings : public SettingsBase<AudioSettings>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void RestoreDefault() final override
|
void RestoreDefault() final override
|
||||||
{
|
{
|
||||||
DisableAudio = false;
|
DisableAudio = false;
|
||||||
|
|||||||
@@ -10,8 +10,7 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The game building rendering settings.
|
/// The game building rendering settings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{BuildSettings}" />
|
class BuildSettings : public SettingsBase<BuildSettings>
|
||||||
class BuildSettings : public Settings<BuildSettings>
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -62,7 +61,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void RestoreDefault() final override
|
void RestoreDefault() final override
|
||||||
{
|
{
|
||||||
MaxAssetsPerPackage = 1024;
|
MaxAssetsPerPackage = 1024;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ bool GameSettings::NoSplashScreen = false;
|
|||||||
Guid GameSettings::SplashScreen;
|
Guid GameSettings::SplashScreen;
|
||||||
Dictionary<String, Guid> GameSettings::CustomSettings;
|
Dictionary<String, Guid> GameSettings::CustomSettings;
|
||||||
|
|
||||||
Array<SettingsBase*> SettingsBase::Containers(32);
|
Array<Settings*> Settings::Containers(32);
|
||||||
|
|
||||||
#if USE_EDITOR
|
#if USE_EDITOR
|
||||||
extern void LoadPlatformSettingsEditor(ISerializable::DeserializeStream& data);
|
extern void LoadPlatformSettingsEditor(ISerializable::DeserializeStream& data);
|
||||||
|
|||||||
@@ -9,8 +9,7 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Graphics rendering settings.
|
/// Graphics rendering settings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{GraphicsSettings}" />
|
class GraphicsSettings : public SettingsBase<GraphicsSettings>
|
||||||
class GraphicsSettings : public Settings<GraphicsSettings>
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -56,7 +55,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void Apply() override;
|
void Apply() override;
|
||||||
|
|
||||||
void RestoreDefault() final override
|
void RestoreDefault() final override
|
||||||
|
|||||||
@@ -7,8 +7,7 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Layers and objects tags settings.
|
/// Layers and objects tags settings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{LayersAndTagsSettings}" />
|
class LayersAndTagsSettings : public SettingsBase<LayersAndTagsSettings>
|
||||||
class LayersAndTagsSettings : public Settings<LayersAndTagsSettings>
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -54,7 +53,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void RestoreDefault() override
|
void RestoreDefault() override
|
||||||
{
|
{
|
||||||
Tags.Clear();
|
Tags.Clear();
|
||||||
|
|||||||
@@ -7,16 +7,16 @@
|
|||||||
#include "Engine/Serialization/ISerializable.h"
|
#include "Engine/Serialization/ISerializable.h"
|
||||||
|
|
||||||
/// <summary>
|
/// <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>
|
/// </summary>
|
||||||
class SettingsBase
|
class FLAXENGINE_API Settings
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The settings containers.
|
/// The settings containers.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
static Array<SettingsBase*> Containers;
|
static Array<Settings*> Containers;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Restores the default settings for all the registered containers.
|
/// Restores the default settings for all the registered containers.
|
||||||
@@ -30,19 +30,19 @@ public:
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
// Disable copy/move
|
// Disable copy/move
|
||||||
SettingsBase(const SettingsBase&) = delete;
|
Settings(const Settings&) = delete;
|
||||||
SettingsBase& operator=(const SettingsBase&) = delete;
|
Settings& operator=(const Settings&) = delete;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
SettingsBase()
|
Settings()
|
||||||
{
|
{
|
||||||
Containers.Add(this);
|
Containers.Add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual ~SettingsBase() = default;
|
virtual ~Settings() = default;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -69,14 +69,14 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <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>
|
/// </summary>
|
||||||
template<class T>
|
template<class T>
|
||||||
class Settings : public SettingsBase, public Singleton<T>
|
class SettingsBase : public Settings, public Singleton<T>
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
Settings()
|
SettingsBase()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Time and game simulation settings container.
|
/// Time and game simulation settings container.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{TimeSettings}" />
|
class TimeSettings : public SettingsBase<TimeSettings>
|
||||||
class TimeSettings : public Settings<TimeSettings>
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -40,7 +39,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void Apply() override;
|
void Apply() override;
|
||||||
|
|
||||||
void RestoreDefault() override
|
void RestoreDefault() override
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Input settings container.
|
/// Input settings container.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{InputSettings}" />
|
/// <seealso cref="SettingsBase{InputSettings}" />
|
||||||
class InputSettings : public Settings<InputSettings>
|
class InputSettings : public SettingsBase<InputSettings>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void Apply() override
|
void Apply() override
|
||||||
{
|
{
|
||||||
Input::ActionMappings = ActionMappings;
|
Input::ActionMappings = ActionMappings;
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void RestoreDefault() final override
|
void RestoreDefault() final override
|
||||||
{
|
{
|
||||||
CellHeight = 10.0f;
|
CellHeight = 10.0f;
|
||||||
|
|||||||
@@ -25,8 +25,8 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Physics simulation settings container.
|
/// Physics simulation settings container.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{PhysicsSettings}" />
|
/// <seealso cref="SettingsBase{PhysicsSettings}" />
|
||||||
class PhysicsSettings : public Settings<PhysicsSettings>
|
class PhysicsSettings : public SettingsBase<PhysicsSettings>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void Apply() override;
|
void Apply() override;
|
||||||
void RestoreDefault() override;
|
void RestoreDefault() override;
|
||||||
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
|
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) final override;
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Android platform settings.
|
/// Android platform settings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{AndroidPlatformSettings}" />
|
/// <seealso cref="SettingsBase{AndroidPlatformSettings}" />
|
||||||
class AndroidPlatformSettings : public Settings<AndroidPlatformSettings>
|
class AndroidPlatformSettings : public SettingsBase<AndroidPlatformSettings>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ public:
|
|||||||
RestoreDefault();
|
RestoreDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void RestoreDefault() final override
|
void RestoreDefault() final override
|
||||||
{
|
{
|
||||||
PackageName = TEXT("com.${COMPANY_NAME}.${PROJECT_NAME}");
|
PackageName = TEXT("com.${COMPANY_NAME}.${PROJECT_NAME}");
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Linux platform settings.
|
/// Linux platform settings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{LinuxPlatformSettings}" />
|
/// <seealso cref="SettingsBase{LinuxPlatformSettings}" />
|
||||||
class LinuxPlatformSettings : public Settings<LinuxPlatformSettings>
|
class LinuxPlatformSettings : public SettingsBase<LinuxPlatformSettings>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void RestoreDefault() final override
|
void RestoreDefault() final override
|
||||||
{
|
{
|
||||||
WindowMode = GameWindowMode::Windowed;
|
WindowMode = GameWindowMode::Windowed;
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Universal Windows Platform settings.
|
/// Universal Windows Platform settings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{UWPPlatformSettings}" />
|
/// <seealso cref="SettingsBase{UWPPlatformSettings}" />
|
||||||
class UWPPlatformSettings : public Settings<UWPPlatformSettings>
|
class UWPPlatformSettings : public SettingsBase<UWPPlatformSettings>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void RestoreDefault() final override
|
void RestoreDefault() final override
|
||||||
{
|
{
|
||||||
PreferredLaunchWindowingMode = WindowMode::FullScreen;
|
PreferredLaunchWindowingMode = WindowMode::FullScreen;
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Windows platform settings.
|
/// Windows platform settings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <seealso cref="Settings{WindowsPlatformSettings}" />
|
/// <seealso cref="SettingsBase{WindowsPlatformSettings}" />
|
||||||
class WindowsPlatformSettings : public Settings<WindowsPlatformSettings>
|
class WindowsPlatformSettings : public SettingsBase<WindowsPlatformSettings>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// [Settings]
|
// [SettingsBase]
|
||||||
void RestoreDefault() final override
|
void RestoreDefault() final override
|
||||||
{
|
{
|
||||||
WindowMode = GameWindowMode::Windowed;
|
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