Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / common / editor / toolBtn / EditorObjectPen.cs
@小李xl 小李xl on 17 Jul 1 KB 地牢编辑器移植完成

using Godot;
using UI.MapEditor;

public class EditorObjectPen : EditorToolBase
{
    private bool _isPressed;
    
    public EditorObjectPen(EditorTileMap editorTileMap) : base(
        ResourcePath.resource_sprite_ui_commonIcon_PenTool_png, "绘制物体", true, editorTileMap, EditorToolEnum.ObjectPen)
    {
    }
    
    public override void OnMapInputEvent(InputEvent @event)
    {
        if (@event is InputEventMouseButton mouseButton)
        {
            if (mouseButton.ButtonIndex == MouseButton.Left)
            {
                _isPressed = mouseButton.Pressed;
                if (_isPressed)
                {
                    DoPutObject();
                }
            }
        }
    }

    private void DoPutObject()
    {
        var config = EditorTileMap.MapEditorPanel.S_MapEditorConfigObject.Instance.GetSelectConfig();
        if (config != null)
        {
            var pos = EditorTileMap.GetLocalMousePosition().AsVector2I();
            EventManager.EmitEvent(EventEnum.OnPutObject, new RoomObjectInfo()
            {
                Id = config.Id,
                X = pos.X,
                Y = pos.Y
            });
            EventManager.EmitEvent(EventEnum.OnTileMapDirty);
        }
        else
        {
            EditorWindowManager.ShowTips("提示", "请先在左侧面板选择一个物体!");
        }
    }
    
}