Fade in/out should now work with models and sprites

This commit is contained in:
Tleety
2016-03-13 02:03:49 +01:00
parent 13f44c2086
commit bbe61f300c
11 changed files with 71 additions and 45 deletions
+2 -1
View File
@@ -41,7 +41,7 @@
#include "Game/Systems/ServerListSystem.h"
#include "Game/Systems/StartSystem.h"
#include "Game/Systems/EndScreenSystem.h"
#include "Game/Systems/FadeOutSystem.h"
#include "Game/Systems/FadeSystem.h"
#include "Rendering/TextureSprite.h"
@@ -160,6 +160,7 @@ Game::Game(int argc, char* argv[])
m_SystemPipeline->AddSystem<ServerListSystem>(updateOrderLevel, m_Renderer);
m_SystemPipeline->AddSystem<StartSystem>(updateOrderLevel);
m_SystemPipeline->AddSystem<EndScreenSystem>(updateOrderLevel);
m_SystemPipeline->AddSystem<FadeSystem>(updateOrderLevel);
// Populate Octree with collidables
++updateOrderLevel;
m_SystemPipeline->AddSystem<FillOctreeSystem>(updateOrderLevel, m_OctreeCollision, "Collidable");
-19
View File
@@ -1,19 +0,0 @@
#include "Systems/FadeOutSystem.h"
void FadeOutSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cFadeOut, double dt)
{
//if (dt == 0.0) {
// return;
//}
//if (!entity.Valid()) {
// return;
//}
//double& lifetime = cLifetime["Lifetime"];
//lifetime -= dt;
//if (lifetime <= 0.0) {
// m_Deletions.push_back(entity);
//}
}
+37
View File
@@ -0,0 +1,37 @@
#include "Systems/FadeSystem.h"
void FadeSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cFade, double dt)
{
double dTime = dt;
if (dTime == 0.0) {
return;
}
if (!entity.Valid()) {
return;
}
if (!(bool)cFade["Out"]) {
dTime *= -1;
}
double fadeTime = cFade["FadeTime"];
double& currentTime = cFade["Time"];
currentTime += dTime;
if(currentTime > fadeTime) {
currentTime = 0.0;
}
if(currentTime < 0.0) {
currentTime = fadeTime;
}
double ratio = currentTime/fadeTime;
if(entity.HasComponent("Model")){
((glm::vec4&)entity["Model"]["Color"]).a = ratio;
}
if (entity.HasComponent("Sprite")) {
((glm::vec4&)entity["Sprite"]["Color"]).a = ratio;
}
}