| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
- //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
- #pragma once
- #include "BsEditorPrerequisites.h"
- #include "BsIReflectable.h"
- namespace BansheeEngine
- {
- /** @addtogroup Settings
- * @{
- */
- /** Contains a serializable set of generic key-value pairs. */
- class BS_ED_EXPORT Settings : public IReflectable
- {
- public:
- Settings();
- /** Adds or updates a property key/value pair with a floating point value. */
- void setFloat(const String& name, float value);
- /** Adds or updates a property key/value pair with a signed integer value. */
- void setInt(const String& name, INT32 value);
- /** Adds or updates a property key/value pair with a boolean value. */
- void setBool(const String& name, bool value);
- /** Adds or updates a property key/value pair with a string value. */
- void setString(const String& name, const WString& value);
- /** Returns the floating point value of the specified key, or the default value if such key cannot be found. */
- float getFloat(const String& name, float defaultValue = 0.0f);
- /** Returns the integer point value of the specified key, or the default value if such key cannot be found. */
- INT32 getInt(const String& name, INT32 defaultValue = 0);
- /** Returns the boolean point value of the specified key, or the default value if such key cannot be found. */
- bool getBool(const String& name, bool defaultValue = false);
- /** Returns the string point value of the specified key, or the default value if such key cannot be found. */
- WString getString(const String& name, const WString& defaultValue = StringUtil::WBLANK);
- /** Returns true if the key with the specified name exists. */
- bool hasKey(const String& name);
- /** Deletes a key with the specified name. */
- void deleteKey(const String& name);
- /** Deletes all key/value pairs. */
- void deleteAllKeys();
- /** Returns a hash value that may be used for checking if any internal settings were modified. */
- UINT32 getHash() const { return mHash; }
- protected:
- /** Marks the object as dirty so that outside objects know when to update. */
- void markAsDirty() const { mHash++; }
- UnorderedMap<String, float> mFloatProperties;
- UnorderedMap<String, INT32> mIntProperties;
- UnorderedMap<String, bool> mBoolProperties;
- UnorderedMap<String, WString> mStringProperties;
- mutable UINT32 mHash;
- /************************************************************************/
- /* RTTI */
- /************************************************************************/
- public:
- friend class SettingsRTTI;
- static RTTITypeBase* getRTTIStatic();
- RTTITypeBase* getRTTI() const override;
- };
- /** @} */
- }
|