using System; using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame.Beatmap; namespace Ichni.RhythmGame { public partial class GameCameraExtension : GameElement { public GameCamera gameCamera; public float farClipRange = 1000f; public static GameCameraExtension GenerateElement(string elementName, Guid id, List tags, bool isFirstGenerated, GameElement parentElement, float farClipRange) { GameCameraExtension gameCameraExtension = Instantiate(GameManager.instance.basePrefabs.emptyObject).AddComponent(); gameCameraExtension.Initialize(elementName, id, tags, isFirstGenerated, parentElement); gameCameraExtension.gameCamera = parentElement as GameCamera; gameCameraExtension.farClipRange = farClipRange; gameCameraExtension.ApplyExtension(); return gameCameraExtension; } public void ApplyExtension() { gameCamera.cam.farClipPlane = farClipRange; } } public partial class GameCameraExtension { public override void SaveBM() { matchedBM = new GameCameraExtension_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM, farClipRange); } } namespace Beatmap { public class GameCameraExtension_BM : GameElement_BM { public float farClipRange; public GameCameraExtension_BM() { } public GameCameraExtension_BM(string elementName, Guid elementGuid, List tags, GameElement_BM attachedElement, float farClipRange) : base(elementName, elementGuid, tags, attachedElement) { this.farClipRange = farClipRange; } public override void ExecuteBM() { matchedElement = GameCameraExtension.GenerateElement(elementName, elementGuid, tags, false, GetElement(attachedElementGuid), farClipRange); } } } }