Working on time and input

This commit is contained in:
2022-10-27 23:38:04 -07:00
parent 942de96e16
commit 37eaa706b7
16 changed files with 196 additions and 18 deletions

View File

@ -0,0 +1,10 @@
# Copyright (c) 2022 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# Sources
target_sources(${DAWN_TARGET_NAME}
PRIVATE
TimeManager.cpp
)

View File

@ -0,0 +1,32 @@
// Copyright (c) 2022 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#include "TimeManager.hpp"
using namespace Dawn;
TimeManager::TimeManager() {
}
void TimeManager::update(float_t delta) {
this->delta = delta;
this->time += delta;
if(!this->isPaused) {
this->unpausedTime += delta;
}
}
void TimeManager::pause() {
if(this->isPaused) return;
this->isPaused = true;
this->eventTimePaused.invoke();
}
void TimeManager::resume() {
if(!this->isPaused) return;
this->isPaused = false;
this->eventTimeResumed.invoke();
}

View File

@ -0,0 +1,43 @@
// Copyright (c) 2022 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#pragma once
#include "dawnlibs.hpp"
#include "event/Event.hpp"
namespace Dawn {
class TimeManager {
public:
float_t time = 0.0f;
float_t unpausedTime = 0.0f;
float_t delta = 0.016f;
bool_t isPaused = false;
Event<> eventTimePaused;
Event<> eventTimeResumed;
/**
* Constructor for the Time Manager.
*/
TimeManager();
/**
* Updates / Ticks the time manager instance.
*
* @param delta Time in seconds to tick the instance by.
*/
void update(float_t delta);
/**
* Pauses the game.
*/
void pause();
/**
* Resumes the game.
*/
void resume();
};
}