Files
factory-hole-core/include/Components/Chute.h
2026-02-09 00:53:38 +09:00

40 lines
714 B
C++

#pragma once
#include <deque>
#include "Types/Item.hpp"
#include "Util/SharedBuffer.h"
struct Chute
{
struct ChuteLink
{
int8_t RelativeX{};
int8_t RelativeY{};
uint16_t Tick{};
};
struct ChuteItem
{
Item Item{};
uint16_t ChuteEntered{};
};
struct ChuteData
{
std::deque<ChuteItem> ItemsInChute{};
};
public:
Chute() = default;
Chute(Vector2i position, const Vector<Vector2i>& chuteLinks)
: Data{static_cast<int>(chuteLinks.size()), ChuteData{}}
{
for (int i{}; i < chuteLinks.size(); ++i)
{
Data.GetData()[i].RelativeX = position.x - chuteLinks[i].x;
Data.GetData()[i].RelativeY = position.y - chuteLinks[i].y;
}
}
public:
SharedBuffer<ChuteLink, ChuteData> Data{};
};