//! //! add an action to the action stack (capture scene state) //! public void addAction() { return; ArrayList actionList = new ArrayList(); foreach (Transform obj in editableObjects) { actionList.Add(new Action(obj, Action.Type.translation, obj.position, serverAdapter)); actionList.Add(new Action(obj, obj.rotation, serverAdapter)); if (!obj.GetComponent <Light>()) { actionList.Add(new Action(obj, Action.Type.scale, obj.localScale, serverAdapter)); } else { if (obj.GetComponent <Light>().type == LightType.Directional) { actionList.Add(new Action(obj, obj.GetComponent <Light>().color, serverAdapter)); actionList.Add(new Action(obj, Action.Type.lightIntensity, obj.GetComponent <Light>().intensity, serverAdapter)); } else if (obj.GetComponent <Light>().type == LightType.Point) { actionList.Add(new Action(obj, obj.GetComponent <Light>().color, serverAdapter)); actionList.Add(new Action(obj, Action.Type.lightIntensity, obj.GetComponent <Light>().intensity, serverAdapter)); actionList.Add(new Action(obj, Action.Type.lightRange, obj.GetComponent <Light>().range, serverAdapter)); } else if (obj.GetComponent <Light>().type == LightType.Spot) { actionList.Add(new Action(obj, obj.GetComponent <Light>().color, serverAdapter)); actionList.Add(new Action(obj, Action.Type.lightIntensity, obj.GetComponent <Light>().intensity, serverAdapter)); actionList.Add(new Action(obj, Action.Type.lightRange, obj.GetComponent <Light>().range, serverAdapter)); actionList.Add(new Action(obj, Action.Type.lightAngle, obj.GetComponent <Light>().spotAngle, serverAdapter)); } } } //add action to Stack undoActionStack.Add(actionList); //dump redo Stack redoActionStack = new ArrayList(); if (undoActionStack.Count > 1) { mainController.activateUndoButton(); mainController.deactivateRedoButton(); } }