Before adding new layer popping mechanisms
This commit is contained in:
73
application/src/control_layer.cpp
Normal file
73
application/src/control_layer.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
#include "open_engine/core.hpp"
|
||||
#include <sandbox2d.hpp>
|
||||
#include <sandbox.hpp>
|
||||
#include <control_layer.hpp>
|
||||
|
||||
ControlLayer::ControlLayer(OpenEngine::Ref<OpenEngine::Layer> layer)
|
||||
: active_layer(layer), OpenEngine::Layer("control_layer")
|
||||
{
|
||||
}
|
||||
|
||||
void ControlLayer::OnUpdate()
|
||||
{
|
||||
}
|
||||
|
||||
bool ControlLayer::SwitchLayer(OpenEngine::KeyPressedEvent& event)
|
||||
{
|
||||
auto& app = OpenEngine::Application::Get();
|
||||
OpenEngine::Ref<Layer> layer;
|
||||
|
||||
if (event.GetKeyCode() == OE_KEY_1) {
|
||||
OE_DEBUG("Sandbox2D Layer");
|
||||
layer = OpenEngine::CreateRef<Sandbox2DLayer>();
|
||||
|
||||
app.PushLayer(layer);
|
||||
app.PopLayer(active_layer);
|
||||
active_layer = layer;
|
||||
|
||||
return true;
|
||||
} else if (event.GetKeyCode() == OE_KEY_2) {
|
||||
OE_DEBUG("Sandbox Layer");
|
||||
layer = OpenEngine::CreateRef<SandboxLayer>();
|
||||
|
||||
app.PushLayer(layer);
|
||||
app.PopLayer(active_layer);
|
||||
active_layer = layer;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ControlLayer::StopRunning(OpenEngine::KeyPressedEvent& event)
|
||||
{
|
||||
if (event.GetKeyCode() == OE_KEY_ESCAPE) {
|
||||
OpenEngine::Application::Get().StopRunning();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void ControlLayer::OnEvent(OpenEngine::Event& event)
|
||||
{
|
||||
OpenEngine::EventDispatcher dispatcher(event);
|
||||
|
||||
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(ControlLayer::SwitchLayer));
|
||||
dispatcher.Dispatch<OpenEngine::KeyPressedEvent>(BIND_EVENT_FN(ControlLayer::StopRunning));
|
||||
}
|
||||
|
||||
void ControlLayer::OnImGuiRender()
|
||||
{
|
||||
}
|
||||
|
||||
void ControlLayer::OnAttach()
|
||||
{
|
||||
}
|
||||
|
||||
void ControlLayer::OnDetach()
|
||||
{
|
||||
}
|
||||
Reference in New Issue
Block a user