diff --git a/src/DotTiled/Serialization/Loader.cs b/src/DotTiled/Serialization/Loader.cs
index 8b4b9f0..7651c3e 100644
--- a/src/DotTiled/Serialization/Loader.cs
+++ b/src/DotTiled/Serialization/Loader.cs
@@ -32,11 +32,26 @@ public class Loader
}
///
- /// Creates a new instance of a with the default and .
+ /// Creates a new instance of a with the default and , and no available custom type definitions.
///
- /// An optional collection of custom type definitions that can be used to resolve custom types in Tiled resources.
/// A new instance of a .
- public static Loader Default(IEnumerable customTypeDefinitions = null) => new Loader(new FileSystemResourceReader(), new DefaultResourceCache(), customTypeDefinitions ?? []);
+ public static Loader Default() => new Loader(new FileSystemResourceReader(), new DefaultResourceCache(), []);
+
+ ///
+ /// Creates a new instance of a with the ability to override the default , , and custom type definitions.
+ ///
+ /// A reader that is able to read Tiled resources from a given path.
+ /// A cache that stores Tiled resources for faster retrieval and reuse.
+ /// A collection of custom type definitions that can be used to resolve custom types in Tiled resources.
+ ///
+ public static Loader DefaultWith(
+ IResourceReader resourceReader = null,
+ IResourceCache resourceCache = null,
+ IEnumerable customTypeDefinitions = null) =>
+ new Loader(
+ resourceReader ?? new FileSystemResourceReader(),
+ resourceCache ?? new DefaultResourceCache(),
+ customTypeDefinitions ?? Array.Empty());
///
/// Loads a map from the given .