Skip to content

Commit

Permalink
Prevent blockstates from retaining models forever
Browse files Browse the repository at this point in the history
  • Loading branch information
embeddedt committed Jun 1, 2024
1 parent b0126d6 commit d9029c7
Showing 1 changed file with 10 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,25 @@
import org.embeddedt.vintagefix.dynamicresources.IModelHoldingBlockState;
import org.spongepowered.asm.mixin.Mixin;

import java.lang.ref.SoftReference;

@Mixin(BlockStateBase.class)
@ClientOnlyMixin
public class MixinBlockStateBase implements IModelHoldingBlockState {
private volatile IBakedModel vfix$model;
private volatile SoftReference<IBakedModel> vfix$model;

@Override
public IBakedModel vfix$getModel() {
return vfix$model;
SoftReference<IBakedModel> ref = vfix$model;
if (ref != null) {
return ref.get();
} else {
return null;
}
}

@Override
public void vfix$setModel(IBakedModel model) {
vfix$model = model;
vfix$model = model != null ? new SoftReference<>(model) : null;
}
}

0 comments on commit d9029c7

Please sign in to comment.