SwitchGame/source/EngineFrame/Component/Component.cpp

81 lines
1.4 KiB
C++

#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<Component> me = this;
Parent->m_Components.Remove(me);
RefPtr<Component> 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::SetRenderZOrder(int zOrder)
{
if (zOrder != this->RenderZOrder)
{
this->RenderZOrder = zOrder;
ReorderComponents();
}
}