// Use this for initialization public void Init() { int width = LevelEditorInfo.Instance.BoardWidth; int height = LevelEditorInfo.Instance.BoardHeight; switch (boardType) { case BoardType.Hex: _coord = new CoordinationHex(width, height); break; default: break; } _board = new EditorBoard(width, height, LevelListScrollerController.instance.CurrentLevel); _board.onDataChanged += RefreshSingleCell; InitCellViews(_board); InitBoardCellColliders(); _comList = new UndoRedoList(); _comList.OnClean += _comList_OnClean; _comList.OnDirty += _comList_OnDirty; }
public ComBrushAt(EditorBoard board, BrushData brushData, int gridX, int gridY) { _board = board; _gridX = gridX; _gridY = gridY; _brushData = brushData; }
void InitCellViews(EditorBoard board) { //destroy old layers foreach (var layer in _viewLayers) { DestroyImmediate(layer.gameObject); } _viewLayers.Clear(); foreach (var item in board.Layers.Keys) { GameObject layer = Instantiate(prefabLayerContainer); _viewLayers.Add(layer); layer.name = item; layer.transform.SetParent(transform); RectTransform trans = layer.transform as RectTransform; trans.anchoredPosition = Vector2.zero; trans.localScale = new Vector3(1, 1, 1); _layers[item] = new List <BoardCellView>(); for (int i = 0; i < board.CellNum; i++) { if (LevelEditorInfo.Instance.InvisibleBoardIndex.Contains(i)) { _layers[item].Add(null); continue; } BoardCellView cell = Instantiate(prefabCellView); cell.name = item + "CellView" + i; cell.transform.SetParent(layer.transform); cell.transform.localPosition = _coord.PosFromIndex(i) * cellCoordScale; cell.transform.localScale = new Vector3(1, 1, 1); _layers[item].Add(cell); } } RefreshBoardView(); }