using System.Collections; using System.Collections.Generic; //using System.Drawing.Printing; using UnityEngine; public class UniversalModifyCommand : ICommand { int _objectNumber; string[] _beforeData; string[] _afterData; string _command; bool _firstExecute = true; public UniversalModifyCommand(string command, int objectNumber, string[] beforeData, string[] afterData) { _command = command; _objectNumber = objectNumber; _beforeData = beforeData; _afterData = afterData; } public void Execute() { if (_firstExecute) { _firstExecute = false; return; } for (int i = 0; i < _G.OBJs[_objectNumber].Length; i++) { _G.OBJs[_objectNumber][i] = CommandHandler.CopyString(_afterData[i]); } OnModificationDone(); } public void Undo() { if(_beforeData.Length==0){ int SelctedIndexObject=Get.GetObjectIndex(SceneModeManager.SelectedName); _beforeData = CommandHandler.CopyObjectData(_G.OBJs[SelctedIndexObject]); } for (int i = 0; i < _G.OBJs[_objectNumber].Length; i++) { Debug.Log("i==="+i); if(_G.OBJs[_objectNumber][i]!=null)_G.OBJs[_objectNumber][i] = CommandHandler.CopyString(_beforeData[i]); } OnModificationDone(); } void OnModificationDone() { CommandHandler.Instance.BeforeDataTemp = null; //DOIT.REDOCAB(_objectNumber); string objName = _G.OBJs[_objectNumber][0]; GameObject obj = GameObject.Find(objName); //GameObject.Destroy(obj); //obj.SetActive(false); GameObject.DestroyImmediate(obj); ConstructObject.Reconstruct(_objectNumber, objName); CommandHandler.Instance.UpdateCommands(); string cO = objName[..4]; if (cO == "wind" || cO == "door" || cO == "pati" || cO == "open") { HOLE.wall(_G.OBJs[_objectNumber][22]); } DOIT.CloseALLPNL(); _MOL.SetMolding(); PRICE.Calprice(); TopControl.ShowMesure(); //CieblinkAPIHandler.Instance.GenerateJSON(); } public void UpdateCommand() { string objName = _G.OBJs[_objectNumber][0]; Transform gameObject = SceneModeManager.GetObjectInScene(objName); if (gameObject == null) { return; } //gameObject.GetComponent().WaitForPlacement = false; } public string GetAction() { if(_beforeData.Length!=0)return $"{_command} {_beforeData[0]}"; return null; } }