Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / mapEditorTools / CustomObject.cs
@小李xl 小李xl on 17 Jul 1 KB 地牢编辑器移植完成
using Godot;
using UI.MapEditorObject;

namespace UI.MapEditorTools;

public partial class CustomObject : Area2D, IUiNodeScript
{
    public RoomObjectInfo Info;
    public Node2D Node;
    
    private MapEditorObjectPanel _objectPanel;
    
    private MapEditorTools.ObjectTemplate _uiNode;
    private static Rect2 _rect = new Rect2(-GameConfig.TileCellSizeVector2I / 2, GameConfig.TileCellSizeVector2I);
    
    public void SetUiNode(IUiNode uiNode)
    {
        _uiNode = (MapEditorTools.ObjectTemplate) uiNode;
        _uiNode.L_RectBrush.Instance.Draw += OnDraw;
        _objectPanel = _uiNode.UiPanel.MapEditorPanel.S_MapEditorObject.Instance;
    }

    public void OnDestroy()
    {
        
    }
    
    public void Init(RoomObjectInfo info, Node2D node)
    {
        Info = info;
        Node = node;
        
        _uiNode.L_Bar.AddChild(node);
    }

    public override void _Process(double delta)
    {
        _uiNode.L_RectBrush.Instance.QueueRedraw();
    }

    private void OnDraw()
    {
        if (_objectPanel.IsActiveTab) //选中页签才能绘制
        {
            if (_objectPanel.ObjectGrid.SelectData == Info) //判断是否选中
            {
                _uiNode.L_RectBrush.Instance.DrawRect(_rect, Colors.Green, false, 1f);
            }
            else
            {
                _uiNode.L_RectBrush.Instance.DrawRect(_rect, Colors.White, false, 1f);
            }
        }
    }
}