using System; using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame.Beatmap; namespace Ichni.RhythmGame { public partial class VariablesContainer : GameElement { #region [变量存储字典] Values Dictionary public Dictionary originalVariables; public Dictionary currentVariables; #endregion #region [生命周期] Lifecycle & Factory public static VariablesContainer GenerateElement(string elementName, Guid id, List tags, bool isFirstGenerated, GameElement parentElement, Dictionary variables) { VariablesContainer variablesContainer = Instantiate(GameManager.Instance.basePrefabs.emptyObject).AddComponent(); GameManager.Instance.variablesContainer = variablesContainer; variablesContainer.Initialize(elementName, id, tags, isFirstGenerated, parentElement); variablesContainer.originalVariables = new Dictionary(variables); variablesContainer.currentVariables = new Dictionary(variables); return variablesContainer; } #endregion #region [变量交互接口] Variable Interactions public void SetVariable(string variableName, int value) { currentVariables[variableName] = value; } public int GetVariable(string variableName) { return currentVariables[variableName]; } public void RevertVariable(string variableName) { currentVariables[variableName] = originalVariables[variableName]; } public void RevertAllVariables() { currentVariables = new Dictionary(originalVariables); } #endregion } }