public override CellsGroup GetArea(GridCell gCell) { CellsGroup cG = new CellsGroup(); // Debug.Log(gCell); if (!gCell) { return(cG); } switch (OData.bombType) { case BombDir.Vertical: cG.AddRange(gCell.GColumn.cells); //cG.AddRange(gCell.GColumn.GetDynamicArea()); break; case BombDir.Horizontal: cG.AddRange(gCell.GRow.cells); // cG.AddRange(gCell.GRow.GetDynamicArea()); break; case BombDir.Radial: List <GridCell> areaRad = MBoard.grid.GetAroundArea(gCell, 1).Cells; cG.Add(gCell); foreach (var item in areaRad) { cG.Add(item); // if (item.IsMatchable) } break; case BombDir.Color: cG.AddRange(MGrid.GetAllByID(OData.matchID).SortByDistanceTo(gCell)); break; } return(cG); }
public static async Task ImportFile <T>(MGrid <T> pGrid, Stream pFile) { using var doc = SpreadsheetDocument.Open(pFile, false); var worksheetPart = doc.WorkbookPart.WorksheetParts.FirstOrDefault(); var worksheet = worksheetPart.Worksheet; SharedStringTablePart sstpart = doc.WorkbookPart.GetPartsOfType <SharedStringTablePart>().FirstOrDefault(); SharedStringTable sst = sstpart?.SharedStringTable; var sheetdata = worksheet.OfType <SheetData>().FirstOrDefault(); var rows = sheetdata.OfType <Row>(); var firstValues = GetRow(doc, sst, rows.First()); var propInfo = GetPropertyInfos(pGrid.PropertyInfos, firstValues); if (!propInfo.Any()) { return; } foreach (var row in rows.Skip(1)) { var rowValues = GetRow(doc, sst, row); ProgressRow(propInfo, rowValues, (rowVal, pi) => { if (pi.GetCustomAttribute <RequiredAttribute>() != null && rowVal == null) { throw new UserMessageException($"Column {pi.Name} has an empty value!"); } }); } foreach (var row in rows.Skip(1)) { var rowValues = GetRow(doc, sst, row); T obj = pGrid.CreateNewT(); var proceeded = ProgressRow(propInfo, rowValues, (object rowVal, IMPropertyInfo pi) => { pi.SetValue(obj, rowVal); }); if (!proceeded) { continue; } pGrid.NewValue = obj; await pGrid.OnFormSubmit(new MFormSubmitArgs(null, new Dictionary <string, object>(), obj, true)); } }
public override CellsGroup GetArea(GridCell gCell) { CellsGroup cG = new CellsGroup(); if (!gCell) { return(cG); } cG.AddRange(MGrid.GetAllByID(OData.matchID).SortByDistanceTo(gCell)); return(cG); }
public static void Save(MGrid grid) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "/GridData.save"; FileStream stream = new FileStream(path, FileMode.Create); GridData data = new GridData { grid = grid.Tiles }; ; data.size = grid.Size; formatter.Serialize(stream, data); stream.Close(); }
public void Initialize() { this.grid = new MGrid(32); }
private void Awake() { requestManager = GetComponent <PathRequestManager>(); grid = GetComponent <MGrid>(); }
public void Save() { MGrid grid = this; GridSaveControler.Save(grid); }