mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-15 00:11:55 +07:00
new named component
This commit is contained in:
@@ -35,6 +35,7 @@
|
||||
#include "components/flipbook_player.hpp"
|
||||
#include "components/label.hpp"
|
||||
#include "components/model_renderer.hpp"
|
||||
#include "components/named.hpp"
|
||||
#include "components/renderer.hpp"
|
||||
#include "components/scene.hpp"
|
||||
#include "components/spine_player.hpp"
|
||||
|
||||
@@ -51,6 +51,7 @@ namespace e2d
|
||||
class flipbook_player;
|
||||
class label;
|
||||
class model_renderer;
|
||||
class named;
|
||||
class renderer;
|
||||
class scene;
|
||||
class spine_player;
|
||||
|
||||
56
headers/enduro2d/high/components/named.hpp
Normal file
56
headers/enduro2d/high/components/named.hpp
Normal file
@@ -0,0 +1,56 @@
|
||||
/*******************************************************************************
|
||||
* This file is part of the "Enduro2D"
|
||||
* For conditions of distribution and use, see copyright notice in LICENSE.md
|
||||
* Copyright (C) 2018-2019, by Matvey Cherevko (blackmatov@gmail.com)
|
||||
******************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../_high.hpp"
|
||||
|
||||
#include "../factory.hpp"
|
||||
|
||||
namespace e2d
|
||||
{
|
||||
class named final {
|
||||
public:
|
||||
named() = default;
|
||||
|
||||
named& name(str value) noexcept;
|
||||
|
||||
[[nodiscard]] str& name() noexcept;
|
||||
[[nodiscard]] const str& name() const noexcept;
|
||||
private:
|
||||
str name_;
|
||||
};
|
||||
|
||||
template <>
|
||||
class factory_loader<named> final : factory_loader<> {
|
||||
public:
|
||||
static const char* schema_source;
|
||||
|
||||
bool operator()(
|
||||
named& component,
|
||||
const fill_context& ctx) const;
|
||||
|
||||
bool operator()(
|
||||
asset_dependencies& dependencies,
|
||||
const collect_context& ctx) const;
|
||||
};
|
||||
}
|
||||
|
||||
namespace e2d
|
||||
{
|
||||
inline named& named::name(str value) noexcept {
|
||||
name_ = std::move(value);
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline str& named::name() noexcept {
|
||||
return name_;
|
||||
}
|
||||
|
||||
inline const str& named::name() const noexcept {
|
||||
return name_;
|
||||
}
|
||||
}
|
||||
@@ -200,4 +200,16 @@ namespace e2d::utils
|
||||
return self_id;
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// overloaded
|
||||
//
|
||||
|
||||
template < typename... Ts >
|
||||
struct overloaded : Ts... {
|
||||
using Ts::operator()...;
|
||||
};
|
||||
|
||||
template < typename... Ts >
|
||||
overloaded(Ts...) -> overloaded<Ts...>;
|
||||
}
|
||||
|
||||
43
sources/enduro2d/high/components/named.cpp
Normal file
43
sources/enduro2d/high/components/named.cpp
Normal file
@@ -0,0 +1,43 @@
|
||||
/*******************************************************************************
|
||||
* This file is part of the "Enduro2D"
|
||||
* For conditions of distribution and use, see copyright notice in LICENSE.md
|
||||
* Copyright (C) 2018-2019, by Matvey Cherevko (blackmatov@gmail.com)
|
||||
******************************************************************************/
|
||||
|
||||
#include <enduro2d/high/components/named.hpp>
|
||||
|
||||
namespace e2d
|
||||
{
|
||||
const char* factory_loader<named>::schema_source = R"json({
|
||||
"type" : "object",
|
||||
"required" : [],
|
||||
"additionalProperties" : false,
|
||||
"properties" : {
|
||||
"name" : { "$ref": "#/common_definitions/name" }
|
||||
}
|
||||
})json";
|
||||
|
||||
bool factory_loader<named>::operator()(
|
||||
named& component,
|
||||
const fill_context& ctx) const
|
||||
{
|
||||
if ( ctx.root.HasMember("name") ) {
|
||||
str name = component.name();
|
||||
if ( !json_utils::try_parse_value(ctx.root["name"], name) ) {
|
||||
the<debug>().error("NAMED: Incorrect formatting of 'name' property");
|
||||
return false;
|
||||
}
|
||||
component.name(name);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool factory_loader<named>::operator()(
|
||||
asset_dependencies& dependencies,
|
||||
const collect_context& ctx) const
|
||||
{
|
||||
E2D_UNUSED(dependencies, ctx);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <enduro2d/high/components/flipbook_player.hpp>
|
||||
#include <enduro2d/high/components/label.hpp>
|
||||
#include <enduro2d/high/components/model_renderer.hpp>
|
||||
#include <enduro2d/high/components/named.hpp>
|
||||
#include <enduro2d/high/components/renderer.hpp>
|
||||
#include <enduro2d/high/components/scene.hpp>
|
||||
#include <enduro2d/high/components/spine_player.hpp>
|
||||
@@ -183,6 +184,7 @@ namespace e2d
|
||||
.register_component<label>("label")
|
||||
.register_component<label::dirty>("label.dirty")
|
||||
.register_component<model_renderer>("model_renderer")
|
||||
.register_component<named>("named")
|
||||
.register_component<renderer>("renderer")
|
||||
.register_component<scene>("scene")
|
||||
.register_component<spine_player>("spine_player")
|
||||
|
||||
Reference in New Issue
Block a user