Skip to content

Commit

Permalink
docs(assets): use reflection system
Browse files Browse the repository at this point in the history
  • Loading branch information
roby2014 committed Nov 18, 2023
1 parent 9954b2e commit 220fc06
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 1 deletion.
5 changes: 4 additions & 1 deletion engine/samples/assets/bridge/main.cpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
#include <cubos/core/reflection/external/string.hpp>
#include <cubos/core/reflection/reflect.hpp>

#include <cubos/engine/assets/bridges/file.hpp>
#include <cubos/engine/assets/plugin.hpp>
#include <cubos/engine/settings/settings.hpp>
Expand All @@ -15,7 +18,7 @@ class TextBridge : public FileBridge
{
public:
TextBridge()
: FileBridge(typeid(std::string))
: FileBridge(cubos::core::reflection::reflect<std::string>())
{
}
/// [TextBridge]
Expand Down
13 changes: 13 additions & 0 deletions engine/samples/assets/json/main.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
#include <vector>

#include <cubos/core/data/fs/file_system.hpp>
#include <cubos/core/reflection/external/string.hpp>
#include <cubos/core/reflection/external/vector.hpp>
#include <cubos/core/reflection/reflect.hpp>
#include <cubos/core/reflection/traits/fields.hpp>
#include <cubos/core/reflection/type.hpp>

#include <cubos/engine/assets/bridges/json.hpp>
#include <cubos/engine/assets/plugin.hpp>
Expand All @@ -12,15 +17,23 @@ using cubos::core::data::old::Serializer;
using cubos::core::ecs::Read;
using cubos::core::ecs::Write;
using cubos::core::memory::Stream;
using cubos::core::reflection::FieldsTrait;
using cubos::core::reflection::Type;

using namespace cubos::engine;

/// [Asset type]
/// A simple serializable type which we will be saving and loading.
struct Strings
{
CUBOS_REFLECT;
std::vector<std::string> strings;
};

CUBOS_REFLECT_IMPL(Strings)
{
return Type::create("Strings").with(FieldsTrait{}.withField("strings", &Strings::strings));
}
/// [Asset type]

/// [Serialization definition]
Expand Down
13 changes: 13 additions & 0 deletions engine/samples/assets/saving/main.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
#include <cubos/core/data/fs/file_system.hpp>
#include <cubos/core/reflection/external/primitives.hpp>
#include <cubos/core/reflection/reflect.hpp>
#include <cubos/core/reflection/traits/fields.hpp>
#include <cubos/core/reflection/type.hpp>

#include <cubos/engine/assets/bridges/json.hpp>
#include <cubos/engine/assets/plugin.hpp>
Expand All @@ -10,13 +14,22 @@ using cubos::core::data::old::Serializer;
using cubos::core::ecs::Read;
using cubos::core::ecs::Write;
using cubos::core::memory::Stream;
using cubos::core::reflection::FieldsTrait;
using cubos::core::reflection::Type;

using namespace cubos::engine;

/// [Asset type]
struct IntegerAsset
{
CUBOS_REFLECT;
int value;
};

CUBOS_REFLECT_IMPL(IntegerAsset)
{
return Type::create("IntegerAsset").with(FieldsTrait{}.withField("value", &IntegerAsset::value));
}
/// [Asset type]

template <>
Expand Down

0 comments on commit 220fc06

Please sign in to comment.