TileSet
This commit is contained in:
@ -19,8 +19,6 @@
|
||||
|
||||
namespace ia::iae
|
||||
{
|
||||
STATIC Vector<Handle> TileTextures;
|
||||
|
||||
TileMapComponent::TileMapComponent(IN Node2D *node) : TextureComponent(node)
|
||||
{
|
||||
}
|
||||
@ -45,30 +43,38 @@ namespace ia::iae
|
||||
TextureComponent::FixedUpdate();
|
||||
}
|
||||
|
||||
VOID TileMapComponent::BeginGridSetup(IN INT32 tileWidth, IN INT32 tileHeight, IN INT32 tileCountX,
|
||||
IN INT32 tileCountY)
|
||||
VOID TileMapComponent::Setup(IN InitializerList<TileEntryDesc> tileDescs, IN INT32 tileWidth, IN INT32 tileHeight,
|
||||
IN INT32 tileCountX, IN INT32 tileCountY)
|
||||
{
|
||||
Vector<Handle> textures;
|
||||
|
||||
m_tileWidth = tileWidth;
|
||||
m_tileHeight = tileHeight;
|
||||
m_tileCountX = tileCountX;
|
||||
m_tileCountY = tileCountY;
|
||||
TileTextures.resize(m_tileCountX * m_tileCountY);
|
||||
}
|
||||
|
||||
VOID TileMapComponent::SetupGridTile(IN INT32 index, IN Handle texture)
|
||||
{
|
||||
TileTextures[index] = texture;
|
||||
}
|
||||
m_tileEntries.reset();
|
||||
m_tileEntries.reserve(tileDescs.size());
|
||||
for (const auto &td : tileDescs)
|
||||
{
|
||||
const auto tileSet = (TileSet*)Engine::GetTileSet(td.TileSetName);
|
||||
textures.pushBack(tileSet->GetTileTexture(td.TileIndex));
|
||||
m_tileEntries.pushBack(TileEntry{.IsWalkable = td.IsWalkable});
|
||||
}
|
||||
|
||||
VOID TileMapComponent::SetupGridTile(IN INT32 x, IN INT32 y, IN Handle texture)
|
||||
{
|
||||
TileTextures[x + y * m_tileCountX] = texture;
|
||||
}
|
||||
|
||||
VOID TileMapComponent::EndGridSetup()
|
||||
{
|
||||
m_mapTexture = Engine::CombineImages(TileTextures, m_tileWidth, m_tileHeight, m_tileCountX, m_tileCountY);
|
||||
if(m_mapTexture != INVALID_HANDLE)
|
||||
Engine::DestroyImage(m_mapTexture);
|
||||
m_mapTexture = Engine::CombineImages(textures, m_tileWidth, m_tileHeight, m_tileCountX, m_tileCountY);
|
||||
SetTexture(m_mapTexture);
|
||||
TileTextures.reset();
|
||||
}
|
||||
|
||||
BOOL TileMapComponent::CanWalkX(IN Vec2 pixelPosition, IN FLOAT32 d)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOL TileMapComponent::CanWalkY(IN Vec2 pixelPosition, IN FLOAT32 d)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} // namespace ia::iae
|
||||
Reference in New Issue
Block a user