2025-09-15 11:28:54 +08:00
|
|
|
#include "Component.h"
|
2025-09-18 15:21:43 +08:00
|
|
|
#include "EngineFrame/Actor/Actor.h"
|
2025-09-15 11:28:54 +08:00
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
2025-09-18 15:21:43 +08:00
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
}
|