Skip to content

Commit f586522

Browse files
committed
Do not drop models during initial load
1 parent 168ab8e commit f586522

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelBakeryMixin.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,21 @@ private void storeTextureGetterAndBakeMissing(ModelBakery.TextureGetter textureG
144144
this.bakedMissingModel = this.bakedTopLevelModels.get(MISSING_MODEL_VARIANT);
145145
}
146146

147+
private boolean inInitialLoad = true;
148+
149+
@Inject(method = "bakeModels", at = @At("RETURN"))
150+
private void onInitialBakeFinish(ModelBakery.TextureGetter textureGetter, CallbackInfo ci) {
151+
inInitialLoad = false;
152+
var permanentMRLs = new ObjectOpenHashSet<>(this.bakedTopLevelModels.keySet());
153+
((LRUMap<ModelResourceLocation, BakedModel>)this.bakedTopLevelModels).setPermanentEntries(permanentMRLs);
154+
ModernFix.LOGGER.info("Dynamic model bakery initial baking finished, with {} permanent top level baked models", this.bakedTopLevelModels.size());
155+
}
156+
147157
@Inject(method = "<init>", at = @At("RETURN"))
148158
private void onInitialLoadFinish(BlockColors blockColors, ProfilerFiller profilerFiller, Map map, Map map2, CallbackInfo ci) {
149159
var permanentMRLs = new ObjectOpenHashSet<>(this.topLevelModels.keySet());
150160
((LRUMap<ModelResourceLocation, UnbakedModel>)this.topLevelModels).setPermanentEntries(permanentMRLs);
151-
((LRUMap<ModelResourceLocation, BakedModel>)this.bakedTopLevelModels).setPermanentEntries(permanentMRLs);
152-
ModernFix.LOGGER.info("Dynamic model bakery initialized, with {} permanent top level models", this.topLevelModels.size());
161+
ModernFix.LOGGER.info("Dynamic model bakery loading finished, with {} permanent top level models", this.topLevelModels.size());
153162
}
154163

155164
@Unique
@@ -167,6 +176,9 @@ private void runCleanup() {
167176

168177
@Override
169178
public void mfix$tick() {
179+
if(inInitialLoad) {
180+
return;
181+
}
170182
tickCount++;
171183
if((tickCount % 200) == 0) {
172184
if(modelBakeryLock.tryLock()) {

common/src/main/java/org/embeddedt/modernfix/util/LRUMap.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public void setPermanentEntries(Set<K> permanentEntries) {
2828
}
2929

3030
public void dropEntriesToMeetSize(int size) {
31+
// Increase allowed size quota to include permanent entries
32+
size += permanentEntries.size();
3133
int prevSize = size();
3234
if(size() > size) {
3335
var iterator = entrySet().iterator();

0 commit comments

Comments
 (0)