- using System.Linq;
- using Godot;
- using UI.TileSetEditor;
-
- namespace UI.MapEditorProject;
-
- public class RoomButtonCell : UiCell<MapEditorProject.RoomButton, DungeonRoomSplit>
- {
- public override void OnInit()
- {
- CellNode.L_SelectTexture.Instance.Visible = false;
- }
-
- public override void OnSetData(DungeonRoomSplit data)
- {
- CellNode.L_RoomName.Instance.Text = data.RoomInfo.RoomName;
- CellNode.L_RoomType.Instance.Text = DungeonManager.DungeonRoomTypeToDescribeString(data.RoomInfo.RoomType);
-
- //预览图
- CellNode.L_PreviewImage.Instance.Texture = data.PreviewImage;
-
- //提示
- var tipText = "权重: " + data.RoomInfo.Weight;
-
- //错误消息
- if (data.ErrorType == RoomErrorType.None)
- {
- CellNode.L_ErrorTexture.Instance.Visible = false;
- }
- else
- {
- CellNode.L_ErrorTexture.Instance.Visible = true;
- tipText += "\n错误: " + EditorTileMapManager.GetRoomErrorTypeMessage(data.ErrorType);
- }
-
- if (!string.IsNullOrEmpty(data.RoomInfo.Remark))
- {
- tipText += "\n备注: " + data.RoomInfo.Remark;
- }
- CellNode.Instance.TooltipText = tipText;
- }
-
- public override void OnDisable()
- {
- CellNode.L_PreviewImage.Instance.Texture = null;
- }
-
- public override void OnDoubleClick()
- {
- //加载TileSet
- var tileSetSplit = GameApplication.Instance.TileSetConfig[CellNode.UiPanel.GroupGrid.SelectData.TileSet];
- //判断tileSet是否可以使用
- if (string.IsNullOrEmpty(tileSetSplit.TileSetInfo.Sources[0].SourcePath))
- {
- EditorWindowManager.ShowConfirm("错误", "当前房间绑定的 TileSet 中 Main Source 未被赋予纹理数据!\n是否前往编辑 TileSet?", (v) =>
- {
- if (v)
- {
- //跳转编辑TileSet页面
- var tileSetEditorPanel = CellNode.UiPanel.ParentUi.OpenNextUi<TileSetEditorPanel>(UiManager.UiNames.TileSetEditor);
- tileSetEditorPanel.InitData(tileSetSplit);
- }
- });
- return;
- }
- CellNode.UiPanel.OpenSelectRoom(Data, tileSetSplit);
- }
-
- public override void OnSelect()
- {
- EditorTileMapManager.SetSelectRoom(Data);
- CellNode.L_SelectTexture.Instance.Visible = true;
- }
-
- public override void OnUnSelect()
- {
- CellNode.L_SelectTexture.Instance.Visible = false;
- }
- }