- using Godot;
-
- namespace UI.TileSetEditorCombination;
-
- public class TileCell : UiCell<TileSetEditorCombination.CellButton, Vector2I>
- {
- private Image _image;
- private ImageTexture _previewTexture;
-
- public override void OnInit()
- {
- CellNode.L_SelectTexture.Instance.Visible = false;
- _image = Image.Create(GameConfig.TileCellSize, GameConfig.TileCellSize, false, Image.Format.Rgba8);
- _previewTexture = ImageTexture.CreateFromImage(_image);
- CellNode.L_PreviewImage.Instance.Texture = _previewTexture;
- }
-
-
- public override void OnSetData(Vector2I data)
- {
- var image = CellNode.UiPanel.EditorPanel.TextureImage;
- _image.BlitRect(image, new Rect2I(data * GameConfig.TileCellSizeVector2I, GameConfig.TileCellSizeVector2I), Vector2I.Zero);
- _previewTexture.Update(_image);
- CellNode.L_CellId.Instance.Text = data.ToString();
- }
-
- public override void OnDoubleClick()
- {
- //双击移除Cell数据
- //EventManager.EmitEvent(EventEnum.OnRemoveTileCell, Data);
- }
-
- public override void OnDestroy()
- {
- _previewTexture.Dispose();
- }
-
- public override void OnSelect()
- {
- CellNode.L_SelectTexture.Instance.Visible = true;
- }
-
- public override void OnUnSelect()
- {
- CellNode.L_SelectTexture.Instance.Visible = false;
- }
-
- public override int OnSort(UiCell<TileSetEditorCombination.CellButton, Vector2I> other)
- {
- if (Data.Y != other.Data.Y)
- {
- return Data.Y - other.Data.Y;
- }
- return Data.X - other.Data.X;
- }
- }