PlaceWithRelatedModule requirement, finish Puzzle D

This commit is contained in:
2022-12-03 22:35:00 +01:00
parent 655f495804
commit 9b262ce4c9
31 changed files with 402 additions and 811 deletions

View File

@@ -1,6 +1,6 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using EscapeRoomEngine.Engine.Runtime.Utilities;
using NaughtyAttributes;
using UnityEngine;
@@ -14,6 +14,13 @@ namespace EscapeRoomEngine.Engine.Runtime
SW, S, SE
}
[Serializable]
public struct TilePrefab
{
public TileLocation location;
public GameObject prefab;
}
public class SpaceTile : MonoBehaviour
{
public static HashSet<TileLocation> EveryTileLocation => new(new[]
@@ -24,7 +31,7 @@ namespace EscapeRoomEngine.Engine.Runtime
});
[BoxGroup("Style Prefabs")] [SerializeField]
private UDictionary<TileLocation, GameObject> tilePrefabs;
private List<TilePrefab> tilePrefabs;
[BoxGroup("Style Prefabs")] [SerializeField]
private Material material;
@@ -53,9 +60,13 @@ namespace EscapeRoomEngine.Engine.Runtime
Destroy(_tile);
}
_tile = Instantiate(tilePrefabs[showTile], transform);
_tile = Instantiate(tilePrefabs.Find(tilePrefab => tilePrefab.location == showTile).prefab, transform);
_tile.isStatic = true;
_tile.GetComponent<MeshRenderer>().material = material;
var tileCollider = _tile.AddComponent<MeshCollider>();
tileCollider.convex = true;
tileCollider.sharedMesh = _tile.GetComponent<MeshFilter>().sharedMesh;
_showTile = showTile;
}