public static CellRect Inside(this CellRect a, CellRect b) { if (a.maxX > b.maxX) { a = a.MovedBy(new IntVec2(b.maxX - a.maxX, 0)); } if (a.maxZ > b.maxZ) { a = a.MovedBy(new IntVec2(0, b.maxZ - a.maxZ)); } if (a.minX < b.minX) { a = a.MovedBy(new IntVec2(b.minX - a.minX, 0)); } if (a.minZ < b.minZ) { a = a.MovedBy(new IntVec2(0, b.minZ - a.minZ)); } return(a); }