Updated more scene item coponents to state system
This commit is contained in:
@ -19,24 +19,20 @@ SceneItem * ExampleSpin::create(Scene *scene) {
|
||||
CubeMesh::buffer(mr->mesh, glm::vec3(-0.5f, -0.5f, -0.5f), glm::vec3(1, 1, 1), 0, 0);
|
||||
auto mat = item->addComponent<SimpleTexturedMaterial>();
|
||||
item->addComponent<ExampleSpin>();
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
ExampleSpin::ExampleSpin(SceneItem *item) :
|
||||
SceneItemComponent(item)
|
||||
{
|
||||
getScene()->eventSceneUnpausedUpdate.addListener(this, &ExampleSpin::onUnpausedUpdate);
|
||||
}
|
||||
|
||||
void ExampleSpin::onUnpausedUpdate() {
|
||||
auto quat = this->transform->getLocalRotation();
|
||||
quat = glm::rotate(quat, getGame()->timeManager.delta, glm::vec3(0, 1, 0));
|
||||
quat = glm::rotate(quat, getGame()->timeManager.delta / 2.0f, glm::vec3(1, 0, 0));
|
||||
quat = glm::rotate(quat, getGame()->timeManager.delta / 4.0f, glm::vec3(0, 0, 1));
|
||||
this->transform->setLocalRotation(quat);
|
||||
}
|
||||
|
||||
void ExampleSpin::onDispose() {
|
||||
getScene()->eventSceneUnpausedUpdate.removeListener(this, &ExampleSpin::onUnpausedUpdate);
|
||||
void ExampleSpin::onStart() {
|
||||
useEventLegacy([&]{
|
||||
auto quat = this->transform->getLocalRotation();
|
||||
quat = glm::rotate(quat, getGame()->timeManager.delta, glm::vec3(0, 1, 0));
|
||||
quat = glm::rotate(quat, getGame()->timeManager.delta / 2.0f, glm::vec3(1, 0, 0));
|
||||
quat = glm::rotate(quat, getGame()->timeManager.delta / 4.0f, glm::vec3(0, 0, 1));
|
||||
this->transform->setLocalRotation(quat);
|
||||
}, getScene()->eventSceneUnpausedUpdate);
|
||||
}
|
@ -1,19 +1,18 @@
|
||||
// Copyright (c) 2022 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#pragma once
|
||||
#include "scene/SceneItemComponent.hpp"
|
||||
#include "display/shader/Shader.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class ExampleSpin : public SceneItemComponent {
|
||||
public:
|
||||
static SceneItem * create(Scene *scene);
|
||||
|
||||
ExampleSpin(SceneItem *item);
|
||||
void onUnpausedUpdate();
|
||||
void onDispose() override;
|
||||
};
|
||||
// Copyright (c) 2022 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#pragma once
|
||||
#include "scene/SceneItemComponent.hpp"
|
||||
#include "display/shader/Shader.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class ExampleSpin : public SceneItemComponent {
|
||||
public:
|
||||
static SceneItem * create(Scene *scene);
|
||||
|
||||
ExampleSpin(SceneItem *item);
|
||||
void onStart() override;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user