Skip to content

Commit 4d0444b

Browse files
committed
Merge 1.19.2 into 1.20
2 parents ed74748 + f59aa5b commit 4d0444b

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

common/src/main/java/org/embeddedt/modernfix/dynamicresources/ItemOverrideBakedModel.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,31 @@
1111
import net.minecraft.world.level.block.state.BlockState;
1212
import org.jetbrains.annotations.Nullable;
1313

14+
import java.lang.ref.WeakReference;
1415
import java.util.List;
15-
import java.util.Map;
16-
import java.util.concurrent.ConcurrentHashMap;
1716

1817
/**
1918
* Delegate model that stores the location of an actual baked model, for use in ItemOverrides.
2019
*/
2120
public class ItemOverrideBakedModel implements BakedModel {
22-
private static final Map<ResourceLocation, ItemOverrideBakedModel> OVERRIDE_MODELS = new ConcurrentHashMap<>();
2321
public final ResourceLocation realLocation;
22+
private WeakReference<BakedModel> realModel = new WeakReference<>(null);
2423

2524
private ItemOverrideBakedModel(ResourceLocation realLocation) {
2625
this.realLocation = realLocation;
2726
}
2827

2928
public static ItemOverrideBakedModel of(ResourceLocation realLocation) {
30-
return OVERRIDE_MODELS.computeIfAbsent(realLocation, ItemOverrideBakedModel::new);
29+
return new ItemOverrideBakedModel(realLocation);
3130
}
3231

3332
public BakedModel getRealModel() {
34-
return DynamicBakedModelProvider.currentInstance.get(realLocation);
33+
BakedModel m = realModel.get();
34+
if(m == null) {
35+
m = DynamicBakedModelProvider.currentInstance.get(realLocation);
36+
realModel = new WeakReference<>(m);
37+
}
38+
return m;
3539
}
3640

3741
@Override

0 commit comments

Comments
 (0)