Skip to content

Commit 2eb4f63

Browse files
committed
Pass type of what we remap
1 parent 075f3e9 commit 2eb4f63

File tree

4 files changed

+20
-13
lines changed

4 files changed

+20
-13
lines changed

core/src/main/java/de/bluecolored/bluemap/core/resources/pack/ResourcePool.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,15 @@ public class ResourcePool<T> {
4040
private final Map<Key, T> pool = new HashMap<>();
4141
private final Map<Key, ResourcePath<T>> paths = new HashMap<>();
4242
private final ResourcePoolMapper mapper;
43+
private final Class<T> clazz;
4344

4445
public ResourcePool() {
46+
this.clazz = null;
4547
this.mapper = null;
4648
}
4749

48-
public ResourcePool(ResourcePoolMapper mapper) {
50+
public ResourcePool(Class<T> clazz, ResourcePoolMapper mapper) {
51+
this.clazz = clazz;
4952
this.mapper = mapper;
5053
}
5154

@@ -80,7 +83,7 @@ public Collection<T> values() {
8083

8184
public boolean contains(Key path) {
8285
if (mapper != null) {
83-
path = mapper.remapResource(path);
86+
path = mapper.remapResource(clazz, path);
8487
}
8588
return paths.containsKey(path);
8689
}
@@ -101,7 +104,7 @@ public synchronized void remove(Key path) {
101104

102105
public @Nullable ResourcePath<T> getPath(Key path) {
103106
if (mapper != null) {
104-
path = mapper.remapResource(path);
107+
path = mapper.remapResource(clazz, path);
105108
}
106109
return paths.get(path);
107110
}

core/src/main/java/de/bluecolored/bluemap/core/resources/pack/ResourcePoolMapper.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import de.bluecolored.bluemap.core.util.Key;
44

5+
import java.lang.reflect.Type;
6+
57
public interface ResourcePoolMapper {
6-
Key remapResource(Key src);
8+
Key remapResource(Type type, Key src);
79
}

core/src/main/java/de/bluecolored/bluemap/core/resources/pack/resourcepack/ResourcePack.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import java.io.BufferedReader;
5555
import java.io.IOException;
5656
import java.io.InputStream;
57+
import java.lang.reflect.Type;
5758
import java.nio.file.Files;
5859
import java.nio.file.Path;
5960
import java.util.HashMap;
@@ -95,12 +96,12 @@ public interface Extension<T extends ResourcePackExtension> extends Keyed {
9596
public ResourcePack(PackVersion packVersion) {
9697
super(packVersion);
9798

98-
this.atlases = new ResourcePool<>(this);
99-
this.blockStates = new ResourcePool<>(this);
100-
this.entityStates = new ResourcePool<>(this);
101-
this.models = new ResourcePool<>(this);
102-
this.textures = new ResourcePool<>(this);
103-
this.colormaps = new ResourcePool<>(this);
99+
this.atlases = new ResourcePool<>(Atlas.class, this);
100+
this.blockStates = new ResourcePool<>(BlockState.class, this);
101+
this.entityStates = new ResourcePool<>(EntityState.class, this);
102+
this.models = new ResourcePool<>(Model.class, this);
103+
this.textures = new ResourcePool<>(Texture.class, this);
104+
this.colormaps = new ResourcePool<>(BufferedImage.class, this);
104105

105106
this.colorCalculatorFactory = new BlockColorCalculatorFactory();
106107
this.blockPropertiesConfig = new BlockPropertiesConfig();
@@ -117,9 +118,9 @@ public ResourcePack(PackVersion packVersion) {
117118
}
118119

119120
@Override
120-
public Key remapResource(Key src) {
121+
public Key remapResource(Type type, Key src) {
121122
for (ResourcePackExtension extension : extensions.values()) {
122-
src = extension.remapResource(src);
123+
src = extension.remapResource(type, src);
123124
}
124125
return src;
125126
}

core/src/main/java/de/bluecolored/bluemap/core/resources/pack/resourcepack/ResourcePackExtension.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import de.bluecolored.bluemap.core.resources.pack.PackExtension;
2828
import de.bluecolored.bluemap.core.util.Key;
2929

30+
import java.lang.reflect.Type;
3031
import java.util.Set;
3132

3233
public interface ResourcePackExtension extends PackExtension {
@@ -35,7 +36,7 @@ default Set<Key> collectUsedTextureKeys() {
3536
return Set.of();
3637
}
3738

38-
default Key remapResource(Key src) {
39+
default Key remapResource(Type type, Key src) {
3940
return src;
4041
}
4142
}

0 commit comments

Comments
 (0)