working sockets
This commit is contained in:
@@ -113,6 +113,7 @@ namespace Game
|
||||
needReset |= Cubes.Setup(storagePtr, needReset);
|
||||
needReset |= Tests.Setup(storagePtr, needReset);
|
||||
needReset |= PuzzleTiles.Setup(storagePtr, needReset);
|
||||
needReset |= PuzzleTileCovers.Setup(storagePtr, needReset);
|
||||
needReset |= UIQuads.Setup(storagePtr, needReset);
|
||||
needReset |= LevelEntities.Setup(storagePtr, needReset);
|
||||
|
||||
@@ -179,6 +180,7 @@ namespace Game
|
||||
|
||||
UIQuads.Count = 0;
|
||||
PuzzleTiles.Count = 0;
|
||||
PuzzleTileCovers.Count = 0;
|
||||
for (int32_t i = 0; i < BX_COUNTOF(Puzzles); ++i)
|
||||
{
|
||||
if (Puzzles[i].Data.ID != UINT16_MAX)
|
||||
@@ -324,6 +326,7 @@ namespace Game
|
||||
Cubes.Render(models, materials, textures);
|
||||
Tests.Render(models, materials, textures);
|
||||
PuzzleTiles.Render(models, materials, textures);
|
||||
PuzzleTileCovers.Render(models, materials, textures);
|
||||
if (player.InteractionM == InteractionMode::ReadTablet)
|
||||
{
|
||||
UIQuads.Render(models, materials, textures);
|
||||
@@ -358,6 +361,14 @@ namespace Game
|
||||
auto& tile = level.PuzzleTiles.Get(TileHandles[i]);
|
||||
tile.EData.MaterialHandle = EMaterial::Default;
|
||||
|
||||
for (int32_t j = 0; j < Puzzle::Config::MaxCoversInTile; ++j)
|
||||
{
|
||||
int32_t idx = i * Puzzle::Config::MaxCoversInTile + j;
|
||||
CoverHandles[idx] = level.PuzzleTileCovers.New();
|
||||
auto& cover = level.PuzzleTileCovers.Get(CoverHandles[idx]);
|
||||
cover.EData.Visible = false;
|
||||
}
|
||||
|
||||
UIPlacedCards[i] = level.UIQuads.New();
|
||||
auto& quad = level.UIQuads.Get(UIPlacedCards[i]);
|
||||
quad.EData.ModelH = GameRendering::Get().GetModelHandleFromPath("models/plane.glb");
|
||||
@@ -518,11 +529,12 @@ namespace Game
|
||||
auto& quad = level.UIQuads.Get(UIPlacedCards[cardIdx]);
|
||||
|
||||
bool isValid = Puzzle::IsValid(card.RefCard);
|
||||
auto& staticCard = isValid ? staticCards[card.RefCard.Idx] : staticCards[0];
|
||||
|
||||
// World Tile
|
||||
tile.EData.Visible = IsActive;
|
||||
tile.EData.ModelH =
|
||||
isValid ? staticCards[card.RefCard.Idx].BaseModelHandle : staticCards[0].BaseModelHandle;
|
||||
tile.EData.ModelH = staticCard.BaseModelHandle;
|
||||
|
||||
tile.EData.DotColor = visuals.TileDotColor;
|
||||
tile.EData.BaseColor = visuals.TileBaseColor;
|
||||
|
||||
@@ -538,6 +550,22 @@ namespace Game
|
||||
tile.EData.Transform.Position = cardPos;
|
||||
bx::mtxRotateY(tile.EData.Transform.Rotation.M, card.Rotation * bx::kPi * 0.5f);
|
||||
|
||||
// Covers
|
||||
if (IsValid(staticCard.BaseModelHandle))
|
||||
{
|
||||
auto& model = GameRendering::Get().Models[staticCard.BaseModelHandle.ModelIdx];
|
||||
for (int32_t i = 0; i < model.SocketCount; ++i)
|
||||
{
|
||||
auto& cover =
|
||||
level.PuzzleTileCovers.Get(CoverHandles[cardIdx * Puzzle::Config::MaxCoversInTile + i]);
|
||||
cover.EData.Visible = true;
|
||||
cover.EData.ModelH = staticCard.Sockets[i].Model;
|
||||
cover.EData.Transform = tile.EData.Transform;
|
||||
Gen::TranslateLocal(cover.EData.Transform, model.Sockets[i].Pos);
|
||||
Gen::RotateLocal(cover.EData.Transform, Gen::EulerFromRotation(model.Sockets[i].Rot));
|
||||
}
|
||||
}
|
||||
|
||||
// UI Quad
|
||||
quad.EData.Visible = isValid && IsActive;
|
||||
quad.EData.TextureHandle =
|
||||
|
||||
Reference in New Issue
Block a user