public static IEdgePortalModel CreateOppositePortal(this IGraphModel self, IEdgePortalModel edgePortalModel, SpawnFlags spawnFlags = SpawnFlags.Default) { var offset = Vector2.zero; switch (edgePortalModel) { case IEdgePortalEntryModel _: offset = k_PortalOffset; break; case IEdgePortalExitModel _: offset = -k_PortalOffset; break; } var currentPos = edgePortalModel.Position; return(self.CreateOppositePortal(edgePortalModel, currentPos + offset, spawnFlags)); }