namespace InfiniteWorld.Editor
{
    internal static class WorldAutotileEditorLabels
    {
        public static string GetShapeLabel(AutoTileShape shape)
        {
            switch (shape)
            {
                case AutoTileShape.Center:
                    return "Center";
                case AutoTileShape.Top:
                    return "Top";
                case AutoTileShape.Right:
                    return "Right";
                case AutoTileShape.Bottom:
                    return "Bottom";
                case AutoTileShape.Left:
                    return "Left";
                case AutoTileShape.OuterTopLeft:
                    return "Outer Top Left";
                case AutoTileShape.OuterTopRight:
                    return "Outer Top Right";
                case AutoTileShape.OuterBottomRight:
                    return "Outer Bottom Right";
                case AutoTileShape.OuterBottomLeft:
                    return "Outer Bottom Left";
                case AutoTileShape.InnerTopLeft:
                    return "Inner Top Left";
                case AutoTileShape.InnerTopRight:
                    return "Inner Top Right";
                case AutoTileShape.InnerBottomRight:
                    return "Inner Bottom Right";
                case AutoTileShape.InnerBottomLeft:
                    return "Inner Bottom Left";
                default:
                    return shape.ToString();
            }
        }

        public static string GetPropertyName(AutoTileShape shape)
        {
            switch (shape)
            {
                case AutoTileShape.Center:
                    return "center";
                case AutoTileShape.Top:
                    return "top";
                case AutoTileShape.Right:
                    return "right";
                case AutoTileShape.Bottom:
                    return "bottom";
                case AutoTileShape.Left:
                    return "left";
                case AutoTileShape.OuterTopLeft:
                    return "outerTopLeft";
                case AutoTileShape.OuterTopRight:
                    return "outerTopRight";
                case AutoTileShape.OuterBottomRight:
                    return "outerBottomRight";
                case AutoTileShape.OuterBottomLeft:
                    return "outerBottomLeft";
                case AutoTileShape.InnerTopLeft:
                    return "innerTopLeft";
                case AutoTileShape.InnerTopRight:
                    return "innerTopRight";
                case AutoTileShape.InnerBottomRight:
                    return "innerBottomRight";
                case AutoTileShape.InnerBottomLeft:
                    return "innerBottomLeft";
                default:
                    return string.Empty;
            }
        }
    }
}
