static SheetBuilder CreateSheetBuilder() { var allocated = false; Func<Sheet> allocate = () => { if (allocated) throw new SheetOverflowException(""); allocated = true; return SheetBuilder.AllocateSheet(SheetType.Indexed, Game.Settings.Graphics.SheetSize); }; return new SheetBuilder(SheetType.Indexed, allocate); }