- using Godot;
-
- namespace UI.MapEditorMapTile;
-
- /// <summary>
- /// 地形笔刷页签
- /// </summary>
- public partial class TerrainTileTab : Control, IUiNodeScript
- {
- private MapEditorMapTile.Tab2 _uiNode;
-
- private UiGrid<MapEditorMapTile.TerrainItem, TerrainData> _uiGrid;
-
- public void SetUiNode(IUiNode uiNode)
- {
- _uiNode = (MapEditorMapTile.Tab2)uiNode;
- _uiGrid = _uiNode.UiPanel.CreateUiGrid<MapEditorMapTile.TerrainItem, TerrainData, TerrainCell>(_uiNode.L_ScrollContainer.L_TerrainItem);
- _uiGrid.SetColumns(1);
- _uiGrid.SetCellOffset(new Vector2I(0, 8));
- _uiGrid.SetHorizontalExpand(true);
- }
-
- public void OnDestroy()
- {
-
- }
-
- public void RefreshTerrain(TileSetSourceInfo sourceInfo)
- {
- _uiGrid.RemoveAll();
-
- var startSetIndex = 0;
- var panel = _uiNode.UiPanel;
- for (var i = 0; i < panel.SourceIndex; i++)
- {
- var source = panel.TileSetSplit.TileSetInfo.Sources[i];
- startSetIndex += source.Terrain.Count;
- }
-
- var start = panel.SourceIndex == 0 ? 1 : 0; //跳过 Main Source 中的 Main Terrain
- for (var i = start; i < sourceInfo.Terrain.Count; i++)
- {
- _uiGrid.Add(new TerrainData(i, sourceInfo.Terrain[i], startSetIndex + i));
- }
- }
- }