Files
axyz/src/Game/Systems/FadeSystem.cpp
T
2016-03-13 17:33:12 +01:00

49 lines
1.1 KiB
C++

#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;
}
if((bool)cFade["Reverse"]) {
dTime *= 2;
}
double fadeTime = cFade["FadeTime"];
Field<double> currentTime = cFade["Time"];
currentTime += dTime;
if(currentTime > fadeTime) {
currentTime = 0.0;
if ((bool)cFade["Reverse"]) {
(Field<bool>)cFade["Out"] = !(bool)cFade["Out"];
currentTime = fadeTime;
}
}
if(currentTime < 0.0) {
currentTime = fadeTime;
if ((bool)cFade["Reverse"]) {
(Field<bool>)cFade["Out"] = !(bool)cFade["Out"];
currentTime = 0.0;
}
}
double ratio = currentTime/fadeTime;
if(entity.HasComponent("Model")){
((Field<glm::vec4>)entity["Model"]["Color"]).w(ratio);
}
if (entity.HasComponent("Sprite")) {
((Field<glm::vec4>)entity["Sprite"]["Color"]).w(ratio);
}
}