A game about forced loneliness, made by TACStudios
at master 81 lines 3.1 kB view raw
1using System; 2using UnityEngine; 3using UnityEngine.UIElements; 4 5namespace UnityEditor.Tilemaps 6{ 7 [UxmlElement] 8 public partial class TilePaletteClipboardFirstUserElement : VisualElement 9 { 10 private static readonly string ussClassName = "unity-tilepalette-clipboard-firstuser-element"; 11 private static readonly string k_Name = L10n.Tr("Tile Palette Clipboard First User Element"); 12 13 static class Styles 14 { 15 public static readonly string emptyProjectTopInfo = L10n.Tr("Drag Tile, Sprite, Texture (Sprite type) asset/s here to"); 16 public static readonly string emptyProjectLeftInfo = L10n.Tr("create a new "); 17 public static readonly string emptyProjectRightInfo = L10n.Tr(" Tile Palette"); 18 19 public static readonly string whiteboxDropdownInfo = L10n.Tr("Create a new Whitebox Tile Palette"); 20 public static readonly string whiteboxAlternateInfo = L10n.Tr("Alternatively, get started quickly with a Whitebox Tile Palette"); 21 public static readonly string whiteboxButtonInfo = L10n.Tr("Create"); 22 } 23 24 private GridPaletteUtility.GridPaletteType m_FirstUserPaletteType = GridPaletteUtility.GridPaletteType.Rectangle; 25 internal GridPaletteUtility.GridPaletteType firstUserPaletteType 26 { 27 get => m_FirstUserPaletteType; 28 set 29 { 30 m_FirstUserPaletteType = value; 31 m_PaletteTypeField.SetValueWithoutNotify(m_FirstUserPaletteType); 32 } 33 } 34 35 private EnumField m_PaletteTypeField; 36 37 internal event Action<GridPaletteUtility.GridPaletteType> onFirstUserPaletteTypeChanged; 38 39 public TilePaletteClipboardFirstUserElement() 40 { 41 AddToClassList(ussClassName); 42 43 name = k_Name; 44 TilePaletteOverlayUtility.SetStyleSheet(this); 45 46 var ve = new VisualElement(); 47 ve.style.flexDirection = FlexDirection.Column; 48 ve.style.alignItems = Align.Center; 49 50 var he1 = new Label(); 51 he1.style.flexDirection = FlexDirection.Row; 52 he1.text = Styles.emptyProjectTopInfo; 53 54 var he2 = new VisualElement(); 55 he2.style.flexDirection = FlexDirection.Row; 56 57 var left = new Label(); 58 left.text = Styles.emptyProjectLeftInfo; 59 60 m_PaletteTypeField = new EnumField(m_FirstUserPaletteType); 61 m_PaletteTypeField.RegisterValueChangedCallback(OnFirstUserPaletteTypeChanged); 62 63 var right = new Label(); 64 right.text = Styles.emptyProjectRightInfo; 65 66 he2.Add(left); 67 he2.Add(m_PaletteTypeField); 68 he2.Add(right); 69 70 ve.Add(he1); 71 ve.Add(he2); 72 Add(ve); 73 } 74 75 private void OnFirstUserPaletteTypeChanged(ChangeEvent<Enum> evt) 76 { 77 m_FirstUserPaletteType = (GridPaletteUtility.GridPaletteType)evt.newValue; 78 onFirstUserPaletteTypeChanged?.Invoke(m_FirstUserPaletteType); 79 } 80 } 81}