mirror of
https://github.com/zoriya/Bomberman.git
synced 2026-05-27 08:13:18 +00:00
it's better
This commit is contained in:
@@ -5,6 +5,9 @@
|
||||
#include "AnimationsSystem.hpp"
|
||||
#include "Component/Animation/AnimationsComponent.hpp"
|
||||
#include "Model/Model.hpp"
|
||||
#include <iostream>
|
||||
#include "Component/Tag/TagComponent.hpp"
|
||||
#include "Component/Position/PositionComponent.hpp"
|
||||
#include "Component/Renderer/Drawable3DComponent.hpp"
|
||||
|
||||
namespace BBM
|
||||
@@ -14,20 +17,29 @@ namespace BBM
|
||||
: System(wal)
|
||||
{}
|
||||
|
||||
void AnimationsSystem::onFixedUpdate(WAL::ViewEntity<Drawable3DComponent, AnimationsComponent> &entity)
|
||||
void AnimationsSystem::onUpdate(WAL::ViewEntity<Drawable3DComponent, AnimationsComponent> &entity, std::chrono::nanoseconds)
|
||||
{
|
||||
auto &model = entity.get<Drawable3DComponent>();
|
||||
auto &anim = entity.get<AnimationsComponent>();
|
||||
|
||||
if (anim.isAnimDisabled())
|
||||
return;
|
||||
auto modelPtr = std::dynamic_pointer_cast<RAY::Drawables::Drawables3D::Model>(model.drawable);
|
||||
if (modelPtr) {
|
||||
modelPtr->setAnimation(anim.getCurrentModelAnim());
|
||||
anim.incCurrentAnimFrameCounter();
|
||||
anim.incCurrentAnimFrameCounter();
|
||||
anim.incCurrentAnimFrameCounter();
|
||||
anim.incCurrentAnimFrameCounter();
|
||||
anim.incCurrentAnimFrameCounter();
|
||||
anim.incCurrentAnimFrameCounter();
|
||||
if (this->animsToSkip <= 0) {
|
||||
auto &model = entity.get<Drawable3DComponent>();
|
||||
auto modelPtr = std::dynamic_pointer_cast<RAY::Drawables::Drawables3D::Model>(model.drawable);
|
||||
if (modelPtr) {
|
||||
modelPtr->setAnimation(anim.getCurrentModelAnim());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AnimationsSystem::onSelfUpdate(std::chrono::nanoseconds)
|
||||
{
|
||||
this->maxAnimsToSkip = this->_wal.getScene()->view<AnimationsComponent, TagComponent<Player>, PositionComponent>().size() - 1;
|
||||
if (this->animsToSkip <= 0) {
|
||||
this->animsToSkip = this->maxAnimsToSkip + 1;
|
||||
}
|
||||
this->animsToSkip--;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user