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 { class camera final {
public: public:
class input final {};
class gizmos final {}; class gizmos final {};
public: public:
ENUM_HPP_CLASS_DECL(modes, u8, ENUM_HPP_CLASS_DECL(modes, u8,
@@ -77,6 +78,20 @@ namespace e2d
const collect_context& ctx) const; 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 <> template <>
class factory_loader<camera::gizmos> final : factory_loader<> { class factory_loader<camera::gizmos> final : factory_loader<> {
public: public:

View File

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

View File

@@ -6,12 +6,7 @@
} }
}, },
"children" : [{ "children" : [{
"prototype" : "../prefabs/camera_prefab.json", "prototype" : "../prefabs/camera_prefab.json"
"components" : {
"named" : {
"name" : "camera"
}
}
},{ },{
"prototype" : "../prefabs/ship_prefab.json", "prototype" : "../prefabs/ship_prefab.json",
"components" : { "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 namespace e2d
{ {
const char* factory_loader<camera::gizmos>::schema_source = R"json({ const char* factory_loader<camera::gizmos>::schema_source = R"json({
@@ -159,6 +185,18 @@ namespace e2d
const char* component_inspector<camera>::title = "camera"; const char* component_inspector<camera>::title = "camera";
void component_inspector<camera>::operator()(gcomponent<camera>& c) const { 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(); if ( bool gizmos = c.owner().component<camera::gizmos>().exists();
ImGui::Checkbox("gizmos", &gizmos) ) ImGui::Checkbox("gizmos", &gizmos) )
{ {

View File

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