Implement hasTag onto BiomeContext (#272)

* Implement hasTag onto BiomeContext
* Improve optional handling

[norelease] to allow for version bumping and reformatting before release
This commit is contained in:
itsmeow
2022-06-09 13:47:34 -04:00
committed by GitHub
parent 7e69108b79
commit 16a7d23602
3 changed files with 30 additions and 0 deletions

View File

@@ -22,7 +22,10 @@ package dev.architectury.registry.level.biome;
import com.google.common.base.Predicates;
import dev.architectury.hooks.level.biome.BiomeProperties;
import dev.architectury.injectables.annotations.ExpectPlatform;
import net.minecraft.core.Holder;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.TagKey;
import net.minecraft.world.level.biome.Biome;
import java.util.Optional;
import java.util.function.BiConsumer;
@@ -90,5 +93,7 @@ public final class BiomeModifications {
Optional<ResourceLocation> getKey();
BiomeProperties getProperties();
boolean hasTag(TagKey<Biome> tag);
}
}

View File

@@ -33,6 +33,7 @@ import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.Music;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.level.biome.*;
@@ -109,6 +110,11 @@ public class BiomeModificationsImpl {
public BiomeProperties getProperties() {
return properties;
}
@Override
public boolean hasTag(TagKey<Biome> tag) {
return context.hasTag(tag);
}
};
}

View File

@@ -25,11 +25,15 @@ import dev.architectury.forge.ArchitecturyForge;
import dev.architectury.hooks.level.biome.*;
import dev.architectury.platform.forge.EventBuses;
import dev.architectury.registry.level.biome.BiomeModifications.BiomeContext;
import dev.architectury.utils.GameInstance;
import net.minecraft.core.Holder;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.sounds.Music;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.level.biome.*;
@@ -136,6 +140,21 @@ public class BiomeModificationsImpl {
public BiomeProperties getProperties() {
return properties;
}
@Override
public boolean hasTag(TagKey<Biome> tag) {
MinecraftServer server = GameInstance.getServer();
if(server != null) {
Optional<? extends Registry<Biome>> registry = server.registryAccess().registry(Registry.BIOME_REGISTRY);
if(registry.isPresent()) {
Optional<Holder<Biome>> holder = registry.get().getHolder(biomeResourceKey.get());
if(holder.isPresent()) {
return holder.get().is(tag);
}
}
}
return false;
}
};
}