public void Add(IMsbPart item) { switch (item) { case Part.MapPiece m: MapPieces.Add(m); break; case Part.Object m: Objects.Add(m); break; case Part.Collision m: Collisions.Add(m); break; case Part.Navmesh m: Navmeshes.Add(m); break; case Part.ConnectCollision m: ConnectCollisions.Add(m); break; default: throw new ArgumentException( message: "Item is not recognized", paramName: nameof(item)); } }
IMsbPart IMsbParam <IMsbPart> .Add(IMsbPart item) => Add((Part)item);