untangle-puzzlegame/Library/PackageCache/com.unity.2d.tilemap@91afae292a4e/Editor/GridPaintCreateTargetsDropdown.cs
2025-04-17 17:33:08 -04:00

96 lines
2.7 KiB
C#

using System;
namespace UnityEditor.Tilemaps
{
internal class GridPaintCreateTargetsDropdown : FlexibleMenu
{
public static bool IsOpen = false;
public GridPaintCreateTargetsDropdown(IFlexibleMenuItemProvider itemProvider, int selectionIndex, FlexibleMenuModifyItemUI modifyItemUi, Action<int, object> itemClickedCallback, float minWidth)
: base(itemProvider, selectionIndex, modifyItemUi, itemClickedCallback)
{
minTextWidth = minWidth;
}
public override void OnOpen()
{
base.OnOpen();
IsOpen = true;
}
public override void OnClose()
{
IsOpen = false;
base.OnClose();
}
internal class MenuItemProvider : IFlexibleMenuItemProvider
{
private bool m_HasTilePalette;
public MenuItemProvider(bool hasTilePalette)
{
m_HasTilePalette = hasTilePalette;
}
public int Count()
{
return GameObjectCreation.CreateTilemapTargetsNames.Length - (m_HasTilePalette ? 0 : 1);
}
public object GetItem(int index)
{
if (!m_HasTilePalette)
index += 1;
if (index < GameObjectCreation.CreateTilemapTargetsNames.Length)
return GameObjectCreation.CreateTilemapTargetsNames[index];
return null;
}
public int Add(object obj)
{
throw new NotImplementedException();
}
public void Replace(int index, object newPresetObject)
{
throw new NotImplementedException();
}
public void Remove(int index)
{
throw new NotImplementedException();
}
public object Create()
{
throw new NotImplementedException();
}
public void Move(int index, int destIndex, bool insertAfterDestIndex)
{
throw new NotImplementedException();
}
public string GetName(int index)
{
if (!m_HasTilePalette)
index += 1;
if (index < GameObjectCreation.CreateTilemapTargetsNames.Length)
return GameObjectCreation.CreateTilemapTargetsNames[index];
return "";
}
public bool IsModificationAllowed(int index)
{
return false;
}
public int[] GetSeperatorIndices()
{
return Array.Empty<int>();
}
}
}
}