using MagnetismHeroes.UnityRuntime.StageAssets; using UnityEngine; namespace MagnetismHeroes.UnityRuntime.Presentation { public sealed class BoardEnvironment : MonoBehaviour { private int _stageId; public string Theme { get; private set; } public void Apply(StageAsset stage) { if (_stageId == stage.StageId) return; foreach (Transform child in transform) { child.gameObject.SetActive(false); Destroy(child.gameObject); } foreach (var placement in stage.Decorations) { if (placement.prefab.name == "Island" && transform.parent.Find("PlaygroundIsland") != null) continue; var prop = Instantiate(placement.prefab, transform); prop.transform.localPosition = placement.position; prop.transform.localRotation = Quaternion.Euler(placement.eulerAngles); prop.transform.localScale = placement.scale; } _stageId = stage.StageId; Theme = stage.Theme; } } }