Rename the thingie
This commit is contained in:
@@ -31,7 +31,7 @@ private:
|
||||
|
||||
ShaderProgram* m_BasicForwardProgram;
|
||||
|
||||
ShaderProgram* m_CoolDeathAnimProgram;
|
||||
ShaderProgram* m_ExplosionEffectProgram;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -64,7 +64,7 @@ struct ModelJob : RenderJob
|
||||
};
|
||||
|
||||
// Cool Death Animation
|
||||
struct CoolDeathAnimationJob : ModelJob
|
||||
struct ExplosionEffectJob : ModelJob
|
||||
{
|
||||
glm::vec3 ExplosionOrigin;
|
||||
double TimeSinceDeath = 0.f; //Seconds
|
||||
|
||||
@@ -25,7 +25,7 @@ private:
|
||||
void FillModels(World* world, RenderQueue* renderQueue);
|
||||
void FillLights(World* world, RenderQueue* renderQueue);
|
||||
|
||||
void FillCoolDeathAnim(World* world, RenderQueue* renderQueue);
|
||||
void FillExplosionEffect(World* world, RenderQueue* renderQueue);
|
||||
|
||||
glm::mat4 ModelMatrix(World* world, EntityID entity);
|
||||
};
|
||||
|
||||
@@ -119,7 +119,7 @@ private:
|
||||
ShaderProgram* m_CalculateFrustumProgram;
|
||||
ShaderProgram* m_LightCullProgram;
|
||||
|
||||
ShaderProgram* m_CoolDeathAnimProgram;
|
||||
ShaderProgram* m_ExplosionEffectProgram;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
#include "Common.h"
|
||||
#include "Core/System.h"
|
||||
|
||||
class CoolDeathAnimationSystem : public PureSystem
|
||||
class ExplosionEffectSystem : public PureSystem
|
||||
{
|
||||
public:
|
||||
CoolDeathAnimationSystem(EventBroker* eventBroker)
|
||||
: PureSystem(eventBroker, "CoolDeathAnim")
|
||||
ExplosionEffectSystem(EventBroker* eventBroker)
|
||||
: PureSystem(eventBroker, "ExplosionEffect")
|
||||
{ }
|
||||
|
||||
virtual void UpdateComponent(World* world, ComponentWrapper& object, double dt) override
|
||||
{
|
||||
ComponentWrapper& Component = world->GetComponent(object.EntityID, "CoolDeathAnim");
|
||||
ComponentWrapper& Component = world->GetComponent(object.EntityID, "ExplosionEffect");
|
||||
|
||||
if ((double)Component["TimeSinceDeath"] > (double)Component["ExplosionDuration"]) {
|
||||
(double)Component["TimeSinceDeath"] = 0.f;
|
||||
+1
-1
@@ -16,7 +16,7 @@
|
||||
#include "Core/EntityXMLFile.h"
|
||||
#include "Core/SystemPipeline.h"
|
||||
#include "RaptorCopterSystem.h"
|
||||
#include "CoolDeathAnimationSystem.h"
|
||||
#include "ExplosionEffectSystem.h"
|
||||
#include "PlayerSystem.h"
|
||||
#include "Editor/EditorSystem.h"
|
||||
|
||||
|
||||
@@ -8,5 +8,5 @@
|
||||
<xs:include schemaLocation="Components/Player.xsd"/>
|
||||
<xs:include schemaLocation="Components/AABB.xsd"/>
|
||||
<xs:include schemaLocation="Components/Trigger.xsd"/>
|
||||
<xs:include schemaLocation="Components/CoolDeathAnim.xsd"/>
|
||||
<xs:include schemaLocation="Components/ExplosionEffect.xsd"/>
|
||||
</xs:schema>
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
<c:CoolDeathAnim>
|
||||
<c:ExplosionEffect>
|
||||
<ExplosionOrigin X="0" Y="0" Z="0"/>
|
||||
<TimeSinceDeath>0</TimeSinceDeath>
|
||||
<ExplosionDuration>2</ExplosionDuration>
|
||||
@@ -13,4 +13,4 @@
|
||||
<!--<ReverseAnimation>0</ReverseAnimation>-->
|
||||
<!--<Wireframe>0</Wireframe>-->
|
||||
<ExponentialAccelaration>0</ExponentialAccelaration>
|
||||
</c:CoolDeathAnim>
|
||||
</c:ExplosionEffect>
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
||||
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
||||
|
||||
<xs:element name="CoolDeathAnim">
|
||||
<xs:element name="ExplosionEffect">
|
||||
<xs:annotation>
|
||||
<xs:documentation>A component that trigger the death effect</xs:documentation>
|
||||
</xs:annotation>
|
||||
@@ -72,7 +72,7 @@
|
||||
<Resource>Models/Core/UnitRaptor.obj</Resource>
|
||||
<Color R="1" G="0.4" B="0.8"/>
|
||||
</c:Model>
|
||||
<c:CoolDeathAnim>
|
||||
<c:ExplosionEffect>
|
||||
<ExplosionOrigin X="0" Y="0" Z="0"/>
|
||||
<TimeSinceDeath>0</TimeSinceDeath>
|
||||
<ExplosionDuration>2</ExplosionDuration>
|
||||
@@ -87,7 +87,7 @@
|
||||
<!--<ReverseAnimation>0</ReverseAnimation>-->
|
||||
<!--<Wireframe>0</Wireframe>-->
|
||||
<ExponentialAccelaration>0</ExponentialAccelaration>
|
||||
</c:CoolDeathAnim>
|
||||
</c:ExplosionEffect>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
|
||||
@@ -21,12 +21,12 @@ void DrawScenePass::InitializeShaderPrograms()
|
||||
m_BasicForwardProgram->Compile();
|
||||
m_BasicForwardProgram->Link();
|
||||
|
||||
m_CoolDeathAnimProgram = ResourceManager::Load<ShaderProgram>("#CoolDeathAnimProgram");
|
||||
m_CoolDeathAnimProgram->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/CoolDeathAnim.vert.glsl")));
|
||||
m_CoolDeathAnimProgram->AddShader(std::shared_ptr<Shader>(new GeometryShader("Shaders/CoolDeathAnim.geom.glsl")));
|
||||
m_CoolDeathAnimProgram->AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/CoolDeathAnim.frag.glsl")));
|
||||
m_CoolDeathAnimProgram->Compile();
|
||||
m_CoolDeathAnimProgram->Link();
|
||||
m_ExplosionEffectProgram = ResourceManager::Load<ShaderProgram>("#ExplosionEffectProgram");
|
||||
m_ExplosionEffectProgram->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/ExplosionEffect.vert.glsl")));
|
||||
m_ExplosionEffectProgram->AddShader(std::shared_ptr<Shader>(new GeometryShader("Shaders/ExplosionEffect.geom.glsl")));
|
||||
m_ExplosionEffectProgram->AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/ExplosionEffect.frag.glsl")));
|
||||
m_ExplosionEffectProgram->Compile();
|
||||
m_ExplosionEffectProgram->Link();
|
||||
|
||||
}
|
||||
|
||||
@@ -41,46 +41,46 @@ void DrawScenePass::Draw(RenderQueueCollection& rq)
|
||||
|
||||
//TODO: Render: Add code for more jobs than modeljobs.
|
||||
for (auto &job : rq.Forward) {
|
||||
auto coolDeathAnimationJob = std::dynamic_pointer_cast<CoolDeathAnimationJob>(job);
|
||||
if (coolDeathAnimationJob) {
|
||||
GLuint ShaderHandle = m_CoolDeathAnimProgram->GetHandle(); //---
|
||||
auto explosionEffectJob = std::dynamic_pointer_cast<ExplosionEffectJob>(job);
|
||||
if (explosionEffectJob) {
|
||||
GLuint ShaderHandle = m_ExplosionEffectProgram->GetHandle(); //---
|
||||
|
||||
m_CoolDeathAnimProgram->Bind();
|
||||
m_ExplosionEffectProgram->Bind();
|
||||
//TODO: Kolla upp "header/include/common" shader saken så man slipper skicka in asmycket uniforms
|
||||
glUniformMatrix4fv(glGetUniformLocation(ShaderHandle, "M"), 1, GL_FALSE, glm::value_ptr(coolDeathAnimationJob->ModelMatrix));
|
||||
glUniformMatrix4fv(glGetUniformLocation(ShaderHandle, "M"), 1, GL_FALSE, glm::value_ptr(explosionEffectJob->ModelMatrix));
|
||||
glUniformMatrix4fv(glGetUniformLocation(ShaderHandle, "V"), 1, GL_FALSE, glm::value_ptr(m_Renderer->Camera()->ViewMatrix()));
|
||||
glUniformMatrix4fv(glGetUniformLocation(ShaderHandle, "P"), 1, GL_FALSE, glm::value_ptr(m_Renderer->Camera()->ProjectionMatrix()));
|
||||
glUniform4fv(glGetUniformLocation(ShaderHandle, "Color"), 1, glm::value_ptr(coolDeathAnimationJob->Color));
|
||||
glUniform3fv(glGetUniformLocation(ShaderHandle, "ExplosionOrigin"), 1, glm::value_ptr(coolDeathAnimationJob->ExplosionOrigin));
|
||||
glUniform1f(glGetUniformLocation(ShaderHandle, "TimeSinceDeath"), coolDeathAnimationJob->TimeSinceDeath);
|
||||
glUniform1f(glGetUniformLocation(ShaderHandle, "ExplosionDuration"), coolDeathAnimationJob->ExplosionDuration);
|
||||
//glUniform1i(glGetUniformLocation(ShaderHandle, "Gravity"), coolDeathAnimationJob->Gravity);
|
||||
//glUniform1f(glGetUniformLocation(ShaderHandle, "GravityForce"), coolDeathAnimationJob->GravityForce);
|
||||
//glUniform1f(glGetUniformLocation(ShaderHandle, "ObjectRadius"), coolDeathAnimationJob->ObjectRadius);
|
||||
glUniform4fv(glGetUniformLocation(ShaderHandle, "EndColor"), 1, glm::value_ptr(coolDeathAnimationJob->EndColor));
|
||||
glUniform1i(glGetUniformLocation(ShaderHandle, "Randomness"), coolDeathAnimationJob->Randomness);
|
||||
glUniform1fv(glGetUniformLocation(ShaderHandle, "RandomNumbers"), 20, coolDeathAnimationJob->RandomNumbers.data());
|
||||
glUniform1f(glGetUniformLocation(ShaderHandle, "RandomnessScalar"), coolDeathAnimationJob->RandomnessScalar);
|
||||
glUniform2fv(glGetUniformLocation(ShaderHandle, "Velocity"), 1, glm::value_ptr(coolDeathAnimationJob->Velocity));
|
||||
glUniform1i(glGetUniformLocation(ShaderHandle, "ColorByDistance"), coolDeathAnimationJob->ColorByDistance);
|
||||
//glUniform1i(glGetUniformLocation(ShaderHandle, "ReverseAnimation"), coolDeathAnimationJob->ReverseAnimation);
|
||||
//glUniform1i(glGetUniformLocation(ShaderHandle, "Wireframe"), coolDeathAnimationJob->Wireframe);
|
||||
glUniform1i(glGetUniformLocation(ShaderHandle, "ExponentialAccelaration"), coolDeathAnimationJob->ExponentialAccelaration);
|
||||
glUniform4fv(glGetUniformLocation(ShaderHandle, "Color"), 1, glm::value_ptr(explosionEffectJob->Color));
|
||||
glUniform3fv(glGetUniformLocation(ShaderHandle, "ExplosionOrigin"), 1, glm::value_ptr(explosionEffectJob->ExplosionOrigin));
|
||||
glUniform1f(glGetUniformLocation(ShaderHandle, "TimeSinceDeath"), explosionEffectJob->TimeSinceDeath);
|
||||
glUniform1f(glGetUniformLocation(ShaderHandle, "ExplosionDuration"), explosionEffectJob->ExplosionDuration);
|
||||
//glUniform1i(glGetUniformLocation(ShaderHandle, "Gravity"), explosionEffectJob->Gravity);
|
||||
//glUniform1f(glGetUniformLocation(ShaderHandle, "GravityForce"), explosionEffectJob->GravityForce);
|
||||
//glUniform1f(glGetUniformLocation(ShaderHandle, "ObjectRadius"), explosionEffectJob->ObjectRadius);
|
||||
glUniform4fv(glGetUniformLocation(ShaderHandle, "EndColor"), 1, glm::value_ptr(explosionEffectJob->EndColor));
|
||||
glUniform1i(glGetUniformLocation(ShaderHandle, "Randomness"), explosionEffectJob->Randomness);
|
||||
glUniform1fv(glGetUniformLocation(ShaderHandle, "RandomNumbers"), 20, explosionEffectJob->RandomNumbers.data());
|
||||
glUniform1f(glGetUniformLocation(ShaderHandle, "RandomnessScalar"), explosionEffectJob->RandomnessScalar);
|
||||
glUniform2fv(glGetUniformLocation(ShaderHandle, "Velocity"), 1, glm::value_ptr(explosionEffectJob->Velocity));
|
||||
glUniform1i(glGetUniformLocation(ShaderHandle, "ColorByDistance"), explosionEffectJob->ColorByDistance);
|
||||
//glUniform1i(glGetUniformLocation(ShaderHandle, "ReverseAnimation"), explosionEffectJob->ReverseAnimation);
|
||||
//glUniform1i(glGetUniformLocation(ShaderHandle, "Wireframe"), explosionEffectJob->Wireframe);
|
||||
glUniform1i(glGetUniformLocation(ShaderHandle, "ExponentialAccelaration"), explosionEffectJob->ExponentialAccelaration);
|
||||
|
||||
|
||||
|
||||
|
||||
//TODO: Renderer: bättre textur felhantering samt fler texturer stöd
|
||||
if (coolDeathAnimationJob->DiffuseTexture != nullptr) {
|
||||
if (explosionEffectJob->DiffuseTexture != nullptr) {
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glBindTexture(GL_TEXTURE_2D, coolDeathAnimationJob->DiffuseTexture->m_Texture);
|
||||
glBindTexture(GL_TEXTURE_2D, explosionEffectJob->DiffuseTexture->m_Texture);
|
||||
} else {
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glBindTexture(GL_TEXTURE_2D, m_WhiteTexture->m_Texture);
|
||||
}
|
||||
glBindVertexArray(coolDeathAnimationJob->Model->VAO);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, coolDeathAnimationJob->Model->ElementBuffer);
|
||||
glDrawElementsBaseVertex(GL_TRIANGLES, coolDeathAnimationJob->EndIndex - coolDeathAnimationJob->StartIndex + 1, GL_UNSIGNED_INT, 0, coolDeathAnimationJob->StartIndex);
|
||||
glBindVertexArray(explosionEffectJob->Model->VAO);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, explosionEffectJob->Model->ElementBuffer);
|
||||
glDrawElementsBaseVertex(GL_TRIANGLES, explosionEffectJob->EndIndex - explosionEffectJob->StartIndex + 1, GL_UNSIGNED_INT, 0, explosionEffectJob->StartIndex);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ void RenderQueueFactory::FillModels(World* world, RenderQueue* renderQueue)
|
||||
}
|
||||
|
||||
for (auto texGroup : model->TextureGroups) {
|
||||
bool hasDeathComp = world->HasComponent(modelC.EntityID, "CoolDeathAnim");
|
||||
bool hasDeathComp = world->HasComponent(modelC.EntityID, "ExplosionEffect");
|
||||
if (!hasDeathComp) {
|
||||
ModelJob job;
|
||||
|
||||
@@ -110,9 +110,9 @@ void RenderQueueFactory::FillModels(World* world, RenderQueue* renderQueue)
|
||||
renderQueue->Add(job);
|
||||
}
|
||||
else {
|
||||
CoolDeathAnimationJob job;
|
||||
ExplosionEffectJob job;
|
||||
|
||||
auto deathComp = world->GetComponent(modelC.EntityID, "CoolDeathAnim");
|
||||
auto deathComp = world->GetComponent(modelC.EntityID, "ExplosionEffect");
|
||||
|
||||
job.ExplosionOrigin = (glm::vec3)deathComp["ExplosionOrigin"];
|
||||
job.TimeSinceDeath = (double)deathComp["TimeSinceDeath"];
|
||||
|
||||
@@ -76,12 +76,12 @@ void Renderer::InitializeShaders()
|
||||
m_DrawScreenQuadProgram->Compile();
|
||||
m_DrawScreenQuadProgram->Link();
|
||||
|
||||
m_CoolDeathAnimProgram = ResourceManager::Load<ShaderProgram>("#CoolDeathAnimProgram");
|
||||
//m_CoolDeathAnimProgram->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/CoolDeathAnim.vert.glsl")));
|
||||
//m_CoolDeathAnimProgram->AddShader(std::shared_ptr<Shader>(new GeometryShader("Shaders/CoolDeathAnim.geom.glsl")));
|
||||
//m_CoolDeathAnimProgram->AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/CoolDeathAnim.frag.glsl")));
|
||||
//m_CoolDeathAnimProgram->Compile();
|
||||
//m_CoolDeathAnimProgram->Link();
|
||||
m_ExplosionEffectProgram = ResourceManager::Load<ShaderProgram>("#ExplosionEffectProgram");
|
||||
//m_ExplosionEffectProgram->AddShader(std::shared_ptr<Shader>(new VertexShader("Shaders/ExplosionEffect.vert.glsl")));
|
||||
//m_ExplosionEffectProgram->AddShader(std::shared_ptr<Shader>(new GeometryShader("Shaders/ExplosionEffect.geom.glsl")));
|
||||
//m_ExplosionEffectProgram->AddShader(std::shared_ptr<Shader>(new FragmentShader("Shaders/ExplosionEffect.frag.glsl")));
|
||||
//m_ExplosionEffectProgram->Compile();
|
||||
//m_ExplosionEffectProgram->Link();
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ Game::Game(int argc, char* argv[])
|
||||
m_SystemPipeline->AddSystem<EditorSystem>(m_Renderer);
|
||||
m_SystemPipeline->AddSystem<CollisionSystem>();
|
||||
m_SystemPipeline->AddSystem<TriggerSystem>();
|
||||
m_SystemPipeline->AddSystem<CoolDeathAnimationSystem>();
|
||||
m_SystemPipeline->AddSystem<ExplosionEffectSystem>();
|
||||
|
||||
// Invoke network
|
||||
if (m_Config->Get<bool>("Networking.StartNetwork", false)) {
|
||||
|
||||
Reference in New Issue
Block a user