Skip to content

Commit 454256d

Browse files
committed
Deduplicate climate parameters
1 parent d155dac commit 454256d

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.embeddedt.modernfix.common.mixin.perf.deduplicate_climate_parameters;
2+
3+
import net.minecraft.world.level.biome.Climate;
4+
import org.embeddedt.modernfix.dedup.ClimateCache;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.Redirect;
8+
9+
@Mixin({ Climate.Parameter.class, Climate.ParameterPoint.class })
10+
public class ParameterMixin {
11+
@Redirect(method = "*", at = @At(value = "NEW", target = "net/minecraft/world/level/biome/Climate$Parameter"), require = 0)
12+
private static Climate.Parameter internParameterStatic(long min, long max) {
13+
return ClimateCache.MFIX_INTERNER.intern(new Climate.Parameter(min, max));
14+
}
15+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.embeddedt.modernfix.dedup;
2+
3+
import com.google.common.collect.Interner;
4+
import com.google.common.collect.Interners;
5+
import net.minecraft.world.level.biome.Climate;
6+
7+
public class ClimateCache {
8+
public static final Interner<Climate.Parameter> MFIX_INTERNER = Interners.newStrongInterner();
9+
}

0 commit comments

Comments
 (0)