#include "Component.h" #include "EngineFrame/Actor/Actor.h" Component::Component() { } Component::~Component() { } void Component::Init() { } void Component::HandleEvents(SDL_Event *e) { } void Component::Update(float deltaTime) { } void Component::Render(float deltaTime) { } void Component::Clear() { } void Component::SetName(std::string name) { m_Name = name; } void Component::OnAdded(Actor *actor) { this->Parent = actor; } int Component::GetRenderZOrder() { return this->RenderZOrder; } void Component::ReorderComponents() { if (Parent) { RefPtr me = this; Parent->m_Components.Remove(me); RefPtr sibling = Parent->m_Components.GetLast(); if (sibling && sibling->GetRenderZOrder() > RenderZOrder) { sibling = sibling->GetPrev(); while (sibling) { if (sibling->GetRenderZOrder() <= RenderZOrder) break; sibling = sibling->GetPrev(); } } if (sibling) { Parent->m_Components.InsertAfter(me, sibling); } else { Parent->m_Components.PushFront(me); } } } void Component::SetIterationPos(VecPos pos) { this->IterationPos = pos; } VecPos Component::GetIterationPos() { return this->IterationPos; } void Component::SetIterationScale(VecSize scale) { this->IterationScale = scale; } VecSize Component::GetIterationScale() { return this->IterationScale; } void Component::SetIterationAngle(float angle) { this->IterationAngle = angle; } float Component::GetIterationAngle() { return this->IterationAngle; } void Component::SetRenderZOrder(int zOrder) { if (zOrder != this->RenderZOrder) { this->RenderZOrder = zOrder; ReorderComponents(); } }