dummy camera.input flag

This commit is contained in:
2020-01-30 08:46:21 +07:00
parent abf7bb81fd
commit 698a3fb419
5 changed files with 57 additions and 6 deletions

View File

@@ -16,6 +16,7 @@ namespace e2d
{
class camera final {
public:
class input final {};
class gizmos final {};
public:
ENUM_HPP_CLASS_DECL(modes, u8,
@@ -77,6 +78,20 @@ namespace e2d
const collect_context& ctx) const;
};
template <>
class factory_loader<camera::input> final : factory_loader<> {
public:
static const char* schema_source;
bool operator()(
camera::input& component,
const fill_context& ctx) const;
bool operator()(
asset_dependencies& dependencies,
const collect_context& ctx) const;
};
template <>
class factory_loader<camera::gizmos> final : factory_loader<> {
public:

View File

@@ -6,6 +6,7 @@
"camera" : {
"background" : [1.0, 0.4, 0.0, 1.0]
},
"camera.input" : {},
"camera.gizmos" : {}
}
}

View File

@@ -6,12 +6,7 @@
}
},
"children" : [{
"prototype" : "../prefabs/camera_prefab.json",
"components" : {
"named" : {
"name" : "camera"
}
}
"prototype" : "../prefabs/camera_prefab.json"
},{
"prototype" : "../prefabs/ship_prefab.json",
"components" : {

View File

@@ -128,6 +128,32 @@ namespace e2d
}
}
namespace e2d
{
const char* factory_loader<camera::input>::schema_source = R"json({
"type" : "object",
"required" : [],
"additionalProperties" : false,
"properties" : {}
})json";
bool factory_loader<camera::input>::operator()(
camera::input& component,
const fill_context& ctx) const
{
E2D_UNUSED(component, ctx);
return true;
}
bool factory_loader<camera::input>::operator()(
asset_dependencies& dependencies,
const collect_context& ctx) const
{
E2D_UNUSED(dependencies, ctx);
return true;
}
}
namespace e2d
{
const char* factory_loader<camera::gizmos>::schema_source = R"json({
@@ -159,6 +185,18 @@ namespace e2d
const char* component_inspector<camera>::title = "camera";
void component_inspector<camera>::operator()(gcomponent<camera>& c) const {
if ( bool input = c.owner().component<camera::input>().exists();
ImGui::Checkbox("input", &input) )
{
if ( input ) {
c.owner().component<camera::input>().ensure();
} else {
c.owner().component<camera::input>().remove();
}
}
ImGui::SameLine();
if ( bool gizmos = c.owner().component<camera::gizmos>().exists();
ImGui::Checkbox("gizmos", &gizmos) )
{

View File

@@ -243,6 +243,7 @@ namespace e2d
.register_component<actor>("actor")
.register_component<behaviour>("behaviour")
.register_component<camera>("camera")
.register_component<camera::input>("camera.input")
.register_component<camera::gizmos>("camera.gizmos")
.register_component<rect_collider>("rect_collider")
.register_component<circle_collider>("circle_collider")
@@ -265,6 +266,7 @@ namespace e2d
.register_component<actor>("actor")
.register_component<behaviour>("behaviour")
.register_component<camera>("camera")
//.register_component<camera::gizmos>("camera.input")
//.register_component<camera::gizmos>("camera.gizmos")
.register_component<rect_collider>("rect_collider")
.register_component<circle_collider>("circle_collider")