Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / mapEditor / tabView / layerTab / LayerButtonCell.cs
namespace UI.MapEditor;

public class LayerButtonCell : UiCell<MapEditor.LayerButton, EditorLayerBar.LayerButtonData>
{
    private bool _visible;
    
    public override void OnInit()
    {
        CellNode.L_VisibleButton.Instance.Pressed += OnVisibleButtonClick;
    }

    public override void OnSetData(EditorLayerBar.LayerButtonData data)
    {
        if (data.IsLock)
        {
            CellNode.Instance.Icon = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_mapEditorTools_Lock_png);
        }
        else
        {
            CellNode.Instance.Icon = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_mapEditorTools_Unlock_png);
        }

        CellNode.Instance.Text = data.Title;
        var panel = (MapEditorPanel)CellNode.UiPanel;
        _visible = panel.S_TileMap.Instance.IsLayerEnabled(data.Layer);
        SetVisibleIcon(_visible);
    }

    private void OnVisibleButtonClick()
    {
        var panel = (MapEditorPanel)CellNode.UiPanel;
        _visible = !_visible;
        panel.S_TileMap.Instance.SetLayerEnabled(Data.Layer, _visible);
        SetVisibleIcon(_visible);
    }

    private void SetVisibleIcon(bool visible)
    {
        if (visible)
        {
            CellNode.L_VisibleButton.Instance.TextureNormal = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_mapEditorTools_Visible_png);
        }
        else
        {
            CellNode.L_VisibleButton.Instance.TextureNormal = ResourceManager.LoadTexture2D(ResourcePath.resource_sprite_ui_mapEditorTools_Hide_png);
        }
    }
}