Either create a new code object under TileShapes.cs called BottomHalf.cs (and delete the default code it puts in) or edit TileShapes.cs itself.
In it (at the bottom, if you edit TileShapes.cs), put this code:
public class BottomHalf : TileShape
{
private static BottomHalf m_Value = new BottomHalf();
public static BottomHalf Value
{
get
{
return m_Value;
}
}
public BottomHalf()
{
}
public override short GetTopSolidPixel(short width, short height, short min, short max)
{
return (short)(height / 2);
}
public override short GetBottomSolidPixel(short width, short height, short min, short max)
{
return (short)(height-1);
}
public override short GetLeftSolidPixel(short width, short height, short min, short max)
{
return (max > height / 2 ? 0 : short.MaxValue);
}
public override short GetRightSolidPixel(short width, short height, short min, short max)
{
return (max > height / 2 ? (short)(width-1) : short.MaxValue);
}
}
The advantage of editing TileShapes.cs is you don't have extra files. However, if you ever needed to reset the code in the project, this would disappear unless it were in a separate file.