This commit is contained in:
Till Wübbers
2025-03-16 21:03:41 +01:00
parent ebf29b058a
commit 93bb1553be
6 changed files with 38 additions and 54 deletions

View File

@@ -76,6 +76,10 @@ namespace Game
needReset |= PuzzleTiles.Setup(storagePtr, needReset);
needReset |= UIQuads.Setup(storagePtr, needReset);
UIQuads.IsEnabled = false;
Tests.IsEnabled = false;
Cubes.IsEnabled = false;
Puzzle::Setup();
bx::Error err;
@@ -148,14 +152,13 @@ namespace Game
{
Tests.Get(Tests.New()).Setup();
}
if (PuzzleTiles.Count == 0)
for (int32_t i = 0; i < BX_COUNTOF(Puzzles); ++i)
{
for (uint32_t puzI = 0; puzI < BX_COUNTOF(Puzzles); ++puzI)
if (Puzzles[i].Data.ID != UINT16_MAX && !Puzzles[i].IsSetup)
{
Puzzles[puzI].Setup();
Puzzles[i].Setup();
}
}
UpdatePlayerInputMode();
}
@@ -301,32 +304,11 @@ namespace Game
void WorldPuzzle::Setup()
{
Data.PlacedCardCount = 16;
for (int32_t i = 0; i < 16; ++i)
auto& level = GetInstance().GameLevel;
for (int32_t i = 0; i < Puzzle::Config::MaxCardsInPuzzle; ++i)
{
Data.PlacedCards[i].RefCard = {0};
Data.PlacedCards[i].Position = {int8_t(i % 4), int8_t(i / 4)};
}
for (uint32_t cardI = 0; cardI < Data.PlacedCardCount; ++cardI)
{
const Generated::PlacedPuzzleCard& card = Data.PlacedCards[cardI];
Level& level = GetInstance().GameLevel;
TileHandles[cardI] = level.PuzzleTiles.New();
UIPlacedCards[cardI] = level.UIQuads.New();
bx::Vec3 Pos = {
WorldPosition.x + card.Position.X * WorldCardSize.x,
WorldPosition.y,
WorldPosition.z + card.Position.Y * WorldCardSize.y,
};
PuzzleTileEntity& tile = level.PuzzleTiles.Get(TileHandles[cardI]);
tile.EData.Transform.Position = Pos;
tile.EData.MaterialHandle = 0;
UIQuadEntity& quad = level.UIQuads.Get(UIPlacedCards[cardI]);
quad.EData.MaterialHandle = 0;
quad.EData.ModelHandle = GameRendering::Get().GetModelHandleFromPath("models/plane.glb");
TileHandles[i] = level.PuzzleTiles.New();
UIPlacedCards[i] = level.UIQuads.New();
}
}
@@ -336,18 +318,23 @@ namespace Game
Vec3 cameraPos = camTransform.GetPosition() * -1;
Level& level = GetInstance().GameLevel;
for (int32_t cardI = 0; cardI < Data.PlacedCardCount; ++cardI)
for (int8_t y = 0; y < Data.WidthTiles / Puzzle::Config::CardSize; ++y)
{
Generated::PlacedPuzzleCard& card = Data.PlacedCards[cardI];
if (!Puzzle::IsValid(card.RefCard)) continue;
const Generated::StaticPuzzleCard& cData = Puzzle::GetCard(card.RefCard);
level.PuzzleTiles.Get(TileHandles[cardI]).EData.ModelHandle = cData.ModelHandle;
for (int8_t x = 0; x < Data.WidthTiles / Puzzle::Config::CardSize; ++x)
{
Generated::PlacedPuzzleCard& card = Data.PlacedCards[y * Puzzle::Config::MaxPuzzleSizeCards + x];
if (!Puzzle::IsValid(card.RefCard))
const Generated::StaticPuzzleCard& cData = Puzzle::GetCard(card.RefCard);
auto& tile = level.PuzzleTiles.Get(TileHandles[y * Puzzle::Config::MaxPuzzleSizeCards + x]);
tile.EData.ModelHandle = Puzzle::GetStaticPuzzleData().Cards[card.RefCard.Idx].ModelHandle;
tile.EData.Transform.SetPosition({(float)card.Position.X, (float)card.Position.Y, 0.0f});
auto& quad = level.UIQuads.Get(UIPlacedCards[cardI]);
Vec3 fw = {0, -1, 0};
// quad.EData.Transform.SetPosition(cameraPos + Vec3{0, -2, 0});
quad.EData.Transform.SetPosition({});
quad.EData.Transform.Rotation = camTransform.Rotation;
auto& quad = level.UIQuads.Get(UIPlacedCards[y * Puzzle::Config::MaxPuzzleSizeCards + x]);
Vec3 fw = {0, -1, 0};
// quad.EData.Transform.SetPosition(cameraPos + Vec3{0, -2, 0});
quad.EData.Transform.SetPosition({});
quad.EData.Transform.Rotation = camTransform.Rotation;
}
}
}
} // namespace Game