86 lines
1.8 KiB
C#
86 lines
1.8 KiB
C#
|
|
using Godot;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Rokojori
|
|
{
|
|
public class IconElement
|
|
{
|
|
}
|
|
|
|
public class MissingIconElement:IconElement
|
|
{
|
|
|
|
}
|
|
|
|
public enum TextureIconOverlayAlignment
|
|
{
|
|
None,
|
|
Left,
|
|
Center,
|
|
Right
|
|
}
|
|
|
|
public class TextureIconElement:IconElement
|
|
{
|
|
public Texture2D texture;
|
|
|
|
public float borderLeft;
|
|
public float borderRight;
|
|
public float borderTop;
|
|
public float borderBottom;
|
|
|
|
public float widthScale = 1;
|
|
|
|
public float rotation = 0;
|
|
|
|
public TextureIconOverlayAlignment alignment = TextureIconOverlayAlignment.None;
|
|
|
|
public static TextureIconElement Create( Texture2D texture, float widthScale = 1, TextureIconOverlayAlignment alignment = TextureIconOverlayAlignment.None )
|
|
{
|
|
var tie = new TextureIconElement();
|
|
tie.texture = texture;
|
|
tie.widthScale = widthScale;
|
|
tie.alignment = alignment;
|
|
return tie;
|
|
}
|
|
|
|
public void SetBorders( DefaultInputIconDefinition definition )
|
|
{
|
|
borderLeft = definition.borderLeft;
|
|
borderRight = definition.borderRight;
|
|
borderTop = definition.borderTop;
|
|
borderBottom = definition.borderBottom;
|
|
}
|
|
|
|
public bool hasBorders
|
|
{
|
|
get
|
|
{
|
|
return ( borderLeft + borderRight + borderTop + borderBottom ) > 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
public class LabelIconElement:IconElement
|
|
{
|
|
public LocalizedString locale;
|
|
|
|
public float fontScale = 1;
|
|
public bool fontIsUpperCase = true;
|
|
|
|
public static LabelIconElement Create( LocalizedString locale, float fontScale = 1, bool upperCase = true )
|
|
{
|
|
var tie = new LabelIconElement();
|
|
tie.locale = locale;
|
|
tie.fontScale = fontScale;
|
|
tie.fontIsUpperCase = upperCase;
|
|
return tie;
|
|
}
|
|
}
|
|
|
|
} |