public static bool Prefix(MapDrawer __instance, ref string __state) { if (Active) { CellRect visibleSections = __instance.VisibleSections; bool flag = false; foreach (IntVec3 intVec in visibleSections) { Section sect = __instance.sections[intVec.x, intVec.z]; if (__instance.TryUpdateSection(sect)) { Log.Warning("drew a section on screen"); flag = true; } } if (!flag) { for (int i = 0; i < __instance.SectionCount.x; i++) { for (int j = 0; j < __instance.SectionCount.z; j++) { if (__instance.TryUpdateSection(__instance.sections[i, j])) { Log.Warning("full loop"); return(false); } } } } return(false); } return(true); }