From 280c3f1c0c26bca147f0341392972d7e13a96f4c Mon Sep 17 00:00:00 2001 From: "C. J. Howard" Date: Sun, 30 Aug 2020 22:23:32 -0700 Subject: [PATCH] Add container tool --- src/application.cpp | 15 ++++++++++++++- src/game/bootloader.cpp | 9 +++++++++ src/game/game-context.hpp | 1 + src/game/states/play-state.cpp | 3 +++ src/game/systems/control-system.cpp | 1 + src/game/systems/control-system.hpp | 8 ++++++++ 6 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/application.cpp b/src/application.cpp index 6733277..9162dd1 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -38,6 +38,8 @@ #include #include #include +#include +#include application::application(): closed(false), @@ -440,6 +442,17 @@ void application::update(double t, double dt) { update_callback(t, dt); } + + /* + static int frame = 0; + if (frame % 60 == 0) + { + std::cout << std::fixed; + std::cout << std::setprecision(2); + std::cout << performance_sampler->mean_frame_duration() * 1000.0 << "\n"; + } + ++frame; + */ } void application::render(double alpha) @@ -447,7 +460,7 @@ void application::render(double alpha) /* std::cout << std::fixed; std::cout << std::setprecision(2); - std::cout << performance_sampler.mean_frame_duration() * 1000.0 << std::endl; + std::cout << performance_sampler->mean_frame_duration() * 1000.0 << std::endl; */ if (render_callback) diff --git a/src/game/bootloader.cpp b/src/game/bootloader.cpp index 7e72018..c6d609c 100644 --- a/src/game/bootloader.cpp +++ b/src/game/bootloader.cpp @@ -769,6 +769,7 @@ void setup_entities(game_context* ctx) ctx->forceps_entity = ctx->ecs_registry->create(); ctx->lens_entity = ctx->ecs_registry->create(); ctx->marker_entity = ctx->ecs_registry->create(); + ctx->container_entity = ctx->ecs_registry->create(); ctx->focal_point_entity = ctx->ecs_registry->create(); } @@ -1013,6 +1014,7 @@ void setup_controls(game_context* ctx) ctx->input_event_router->add_mapping(key_mapping(ctx->control_system->get_equip_brush_control(), nullptr, scancode::two)); ctx->input_event_router->add_mapping(key_mapping(ctx->control_system->get_equip_lens_control(), nullptr, scancode::three)); ctx->input_event_router->add_mapping(key_mapping(ctx->control_system->get_equip_marker_control(), nullptr, scancode::four)); + ctx->input_event_router->add_mapping(key_mapping(ctx->control_system->get_equip_container_control(), nullptr, scancode::five)); ctx->input_event_router->add_mapping(mouse_button_mapping(ctx->control_system->get_use_tool_control(), nullptr, 1)); ctx->control_system->get_use_tool_control()->set_activated_callback @@ -1058,6 +1060,13 @@ void setup_controls(game_context* ctx) ctx->tool_system->set_active_tool(ctx->marker_entity); } ); + ctx->control_system->get_equip_container_control()->set_activated_callback + ( + [ctx]() + { + ctx->tool_system->set_active_tool(ctx->container_entity); + } + ); event_dispatcher->subscribe(ctx->control_system); event_dispatcher->subscribe(ctx->camera_system); diff --git a/src/game/game-context.hpp b/src/game/game-context.hpp index de57f61..ac29fae 100644 --- a/src/game/game-context.hpp +++ b/src/game/game-context.hpp @@ -213,6 +213,7 @@ struct game_context entt::entity forceps_entity; entt::entity lens_entity; entt::entity marker_entity; + entt::entity container_entity; entt::entity focal_point_entity; // Systems diff --git a/src/game/states/play-state.cpp b/src/game/states/play-state.cpp index a528853..2b381fa 100644 --- a/src/game/states/play-state.cpp +++ b/src/game/states/play-state.cpp @@ -81,6 +81,7 @@ void play_state_enter(game_context* ctx) ecs::archetype* lens_archetype = resource_manager->load("lens.ent"); ecs::archetype* brush_archetype = resource_manager->load("brush.ent"); ecs::archetype* marker_archetype = resource_manager->load("marker.ent"); + ecs::archetype* container_archetype = resource_manager->load("container.ent"); ecs::archetype* larva_archetype = resource_manager->load("larva.ent"); ecs::archetype* pebble_archetype = resource_manager->load("pebble.ent"); ecs::archetype* flashlight_archetype = resource_manager->load("flashlight.ent"); @@ -92,6 +93,7 @@ void play_state_enter(game_context* ctx) lens_archetype->assign(ecs_registry, ctx->lens_entity); brush_archetype->assign(ecs_registry, ctx->brush_entity); marker_archetype->assign(ecs_registry, ctx->marker_entity); + container_archetype->assign(ecs_registry, ctx->container_entity); // Create flashlight and light cone, set light cone parent to flashlight, and move both to underworld scene flashlight_archetype->assign(ecs_registry, ctx->flashlight_entity); @@ -118,6 +120,7 @@ void play_state_enter(game_context* ctx) ec::assign_render_layers(ecs_registry, ctx->brush_entity, 0); ec::assign_render_layers(ecs_registry, ctx->lens_entity, 0); ec::assign_render_layers(ecs_registry, ctx->marker_entity, 0); + ec::assign_render_layers(ecs_registry, ctx->container_entity, 0); // Activate lens tool ctx->tool_system->set_active_tool(ctx->lens_entity); diff --git a/src/game/systems/control-system.cpp b/src/game/systems/control-system.cpp index d86cab7..3896e29 100644 --- a/src/game/systems/control-system.cpp +++ b/src/game/systems/control-system.cpp @@ -55,6 +55,7 @@ control_system::control_system(entt::registry& registry): control_set.add_control(&equip_brush_control); control_set.add_control(&equip_forceps_control); control_set.add_control(&equip_marker_control); + control_set.add_control(&equip_container_control); control_set.add_control(&use_tool_control); // Set deadzone at 15% for all controls diff --git a/src/game/systems/control-system.hpp b/src/game/systems/control-system.hpp index a5d3049..6a9ed78 100644 --- a/src/game/systems/control-system.hpp +++ b/src/game/systems/control-system.hpp @@ -75,6 +75,7 @@ public: control* get_equip_brush_control(); control* get_equip_forceps_control(); control* get_equip_marker_control(); + control* get_equip_container_control(); control* get_use_tool_control(); private: @@ -101,6 +102,7 @@ private: control equip_brush_control; control equip_forceps_control; control equip_marker_control; + control equip_container_control; control use_tool_control; float zoom_speed; @@ -236,6 +238,12 @@ inline control* control_system::get_equip_marker_control() return &equip_marker_control; } +inline control* control_system::get_equip_container_control() +{ + return &equip_container_control; +} + + inline control* control_system::get_use_tool_control() { return &use_tool_control;