public override IGrid <TCell, TPoint> MakeGrid <TCell, TPoint>() { if (typeof(TPoint) == typeof(RectPoint)) { var grid = RectGrid <TCell> .BeginShape() .ChainMail() //You can now chain the newly defined method to BeginShape .EndShape(); return((IGrid <TCell, TPoint>)grid); } Debug.LogError("<color=blue><b>" + GetType() + "</b></color> does not support grids for points of type " + typeof(TPoint)); return(null); }