Better Abstraction from internal FAPI (#2, FabricMC/fabric#2369)

This commit is contained in:
Frank 2022-06-30 13:53:19 +02:00
parent 185453b0c4
commit 59756e6dca
4 changed files with 45 additions and 74 deletions

View file

@ -2,7 +2,6 @@ package org.betterx.bclib.mixin.common;
import org.betterx.bclib.interfaces.TheEndBiomeDataAccessor;
import net.minecraft.core.Holder;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.level.biome.Biome;
@ -13,45 +12,29 @@ import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import javax.annotation.Nullable;
import java.util.Map;
@Mixin(value = TheEndBiomeData.Overrides.class, remap = false)
@Mixin(value = TheEndBiomeData.class, remap = false)
public class TheEndBiomeDataMixin implements TheEndBiomeDataAccessor {
@Shadow
@Final
@Nullable
private Map<Holder<Biome>, WeightedPicker<Holder<Biome>>> endBiomesMap;
private static Map<ResourceKey<Biome>, WeightedPicker<ResourceKey<Biome>>> END_BIOMES_MAP;
@Shadow
@Final
@Nullable
private Map<Holder<Biome>, WeightedPicker<Holder<Biome>>> endMidlandsMap;
private static Map<ResourceKey<Biome>, WeightedPicker<ResourceKey<Biome>>> END_MIDLANDS_MAP;
@Shadow
@Final
@Nullable
private Map<Holder<Biome>, WeightedPicker<Holder<Biome>>> endBarrensMap;
private static Map<ResourceKey<Biome>, WeightedPicker<ResourceKey<Biome>>> END_BARRENS_MAP;
public boolean bcl_canGenerateAsEndBiome(ResourceKey<Biome> key) {
return endBiomesMap != null && endBiomesMap
.keySet()
.stream()
.map(h->h.unwrapKey().orElse(null))
.anyMatch(k->k!=null && k.equals(key));
return END_BIOMES_MAP != null && END_BIOMES_MAP.containsKey(key);
}
public boolean bcl_canGenerateAsEndMidlandBiome(ResourceKey<Biome> key) {
return endMidlandsMap != null && endMidlandsMap
.keySet()
.stream()
.map(h->h.unwrapKey().orElse(null))
.anyMatch(k->k!=null && k.equals(key));
return END_MIDLANDS_MAP != null && END_MIDLANDS_MAP.containsKey(key);
}
public boolean bcl_canGenerateAsEndBarrensBiome(ResourceKey<Biome> key) {
return endBarrensMap != null && endBarrensMap
.keySet()
.stream()
.map(h->h.unwrapKey().orElse(null))
.anyMatch(k->k!=null && k.equals(key));
return END_BARRENS_MAP != null && END_BARRENS_MAP.containsKey(key);
}
}