Polyphase Game Engine
Loading...
Searching...
No Matches
DataAsset.h
Go to the documentation of this file.
1#pragma once
2
3#include "Asset.h"
4#include "Property.h"
5#include <vector>
6#include <string>
7
9{
10public:
11
13
14 DataAsset();
15 virtual ~DataAsset();
16
17 virtual void Create() override;
18 virtual void Destroy() override;
19
20 // Asset overrides
21 virtual void LoadStream(Stream& stream, Platform platform) override;
22 virtual void SaveStream(Stream& stream, Platform platform) override;
23 virtual void GatherProperties(std::vector<Property>& outProps) override;
24 virtual glm::vec4 GetTypeColor() override;
25 virtual const char* GetTypeName() override;
26 virtual bool ShouldSnapshotForPie() const override { return true; }
27
28 // Lua script file that defines properties
29 void SetScriptFile(const std::string& path);
30 const std::string& GetScriptFile() const { return mScriptFile; }
31
32 // Get property value by name (for Lua access)
33 Datum* GetPropertyValue(const std::string& name);
34 bool SetPropertyValue(const std::string& name, const Datum& value);
35
36 // Get all dynamic properties
37 const std::vector<Property>& GetDataProperties() const { return mProperties; }
38 std::vector<Property>& GetDataProperties() { return mProperties; }
39
40 // Reload properties from Lua script
41 void ReloadPropertiesFromScript();
42
43protected:
44
45 static bool HandlePropChange(Datum* datum, uint32_t index, const void* newValue);
46
47 std::string mScriptFile; // Path to .lua defining properties
48 std::vector<Property> mProperties; // Dynamic properties from Lua
49 bool mPropertiesLoaded = false;
50
51 void LoadPropertiesFromLua();
52 void SyncPropertyStorage();
53};
Platform
Definition EngineTypes.h:31
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition Asset.h:113
virtual void Create()
Definition Asset.cpp:77
virtual void SaveStream(Stream &stream, Platform platform)
Definition Asset.cpp:236
virtual glm::vec4 GetTypeColor()
Definition Asset.cpp:254
virtual const char * GetTypeName()
Definition Asset.cpp:259
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Asset.cpp:249
virtual void LoadStream(Stream &stream, Platform platform)
Definition Asset.cpp:222
virtual void Destroy()
Definition Asset.cpp:87
Definition DataAsset.h:9
DECLARE_ASSET(DataAsset, Asset)
virtual bool ShouldSnapshotForPie() const override
Definition DataAsset.h:26
std::vector< Property > & GetDataProperties()
Definition DataAsset.h:38
std::string mScriptFile
Definition DataAsset.h:47
const std::vector< Property > & GetDataProperties() const
Definition DataAsset.h:37
std::vector< Property > mProperties
Definition DataAsset.h:48
const std::string & GetScriptFile() const
Definition DataAsset.h:30
Definition Datum.h:164
Definition Stream.h:21