public static MagicCubeSaveData CreateSaveData(MagicCubeManager manager) { MagicCubeSaveData savedata = new MagicCubeSaveData(); //deep copies to be safe. foreach (var cubeTile in manager.GetCubeTileListReference()) { savedata.positions.Add(Vector3Serializable.CreateVector3Serializable(cubeTile.transform.position)); savedata.rotations.Add(QuaternionSerializable.CreateQuaternionSerializable(cubeTile.transform.rotation)); savedata.cubeTileIDs.Add(cubeTile.GetComponent <CubeTileInfo>().GetID()); } foreach (var action in manager.GetUndoListReference()) { savedata.undoActions.Add(ActionSaveData.CreateSaveData(action)); } savedata.magicCubeSize = manager.GetMagicCubeSize(); savedata.time = manager.GetTimePassed(); return(savedata); }
public static ActionSaveData CreateSaveData(CubeAction cubeAction) { ActionSaveData savedata = new ActionSaveData(); if (cubeAction.GetType() == typeof(ActionRotateZXClockWise)) { savedata.action = (int)ActionType.ZXClock; } else if (cubeAction.GetType() == typeof(ActionRotateZXCounterClockWise)) { savedata.action = (int)ActionType.ZXCounterClock; } else if (cubeAction.GetType() == typeof(ActionRotateZYClockWise)) { savedata.action = (int)ActionType.ZYClock; } else if (cubeAction.GetType() == typeof(ActionRotateZYCounterClockWise)) { savedata.action = (int)ActionType.ZYCounterClock; } else if (cubeAction.GetType() == typeof(ActionRotateYXClockWise)) { savedata.action = (int)ActionType.YXClock; } else if (cubeAction.GetType() == typeof(ActionRotateYXCounterClockWise)) { savedata.action = (int)ActionType.YXCounterClock; } foreach (var cubeTile in cubeAction.GetCubeTileListReference()) { savedata.cubeCollection.Add(cubeTile.GetComponent <CubeTileInfo>().GetID()); } return(savedata); }
//セーブデータからの再構築 public Action(ActionSaveData save, Dictionary <string, Unitdata> dic) { unit = dic[string.Format("{0},{1}", save.unit.x, save.unit.y)]; prev_pos = save.prev_pos; follow_pos = save.follow_pos; }