mirror of
https://github.com/architectury/architectury-api.git
synced 2026-03-28 03:56:59 -05:00
Implement hasTag onto BiomeContext (#272)
* Implement hasTag onto BiomeContext
* Improve optional handling
[norelease] to allow for version bumping and reformatting before release
(cherry picked from commit 16a7d23602)
This commit is contained in:
@@ -22,7 +22,10 @@ package dev.architectury.registry.level.biome;
|
|||||||
import com.google.common.base.Predicates;
|
import com.google.common.base.Predicates;
|
||||||
import dev.architectury.hooks.level.biome.BiomeProperties;
|
import dev.architectury.hooks.level.biome.BiomeProperties;
|
||||||
import dev.architectury.injectables.annotations.ExpectPlatform;
|
import dev.architectury.injectables.annotations.ExpectPlatform;
|
||||||
|
import net.minecraft.core.Holder;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.tags.TagKey;
|
||||||
|
import net.minecraft.world.level.biome.Biome;
|
||||||
|
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
@@ -89,5 +92,7 @@ public final class BiomeModifications {
|
|||||||
ResourceLocation getKey();
|
ResourceLocation getKey();
|
||||||
|
|
||||||
BiomeProperties getProperties();
|
BiomeProperties getProperties();
|
||||||
|
|
||||||
|
boolean hasTag(TagKey<Biome> tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,11 +23,7 @@ import dev.architectury.event.events.client.ClientGuiEvent;
|
|||||||
import dev.architectury.event.events.client.ClientLifecycleEvent;
|
import dev.architectury.event.events.client.ClientLifecycleEvent;
|
||||||
import dev.architectury.event.events.client.ClientTickEvent;
|
import dev.architectury.event.events.client.ClientTickEvent;
|
||||||
import dev.architectury.event.events.client.ClientTooltipEvent;
|
import dev.architectury.event.events.client.ClientTooltipEvent;
|
||||||
import dev.architectury.event.events.common.CommandRegistrationEvent;
|
import dev.architectury.event.events.common.*;
|
||||||
import dev.architectury.event.events.common.InteractionEvent;
|
|
||||||
import dev.architectury.event.events.common.LifecycleEvent;
|
|
||||||
import dev.architectury.event.events.common.LootEvent;
|
|
||||||
import dev.architectury.event.events.common.TickEvent;
|
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
|
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
|
||||||
@@ -41,8 +37,8 @@ import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents;
|
|||||||
import net.fabricmc.fabric.api.event.player.AttackBlockCallback;
|
import net.fabricmc.fabric.api.event.player.AttackBlockCallback;
|
||||||
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
|
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
|
||||||
import net.fabricmc.fabric.api.event.player.UseItemCallback;
|
import net.fabricmc.fabric.api.event.player.UseItemCallback;
|
||||||
import net.minecraft.commands.Commands;
|
|
||||||
import net.fabricmc.fabric.api.loot.v2.LootTableEvents;
|
import net.fabricmc.fabric.api.loot.v2.LootTableEvents;
|
||||||
|
import net.minecraft.commands.Commands;
|
||||||
|
|
||||||
public class EventHandlerImpl {
|
public class EventHandlerImpl {
|
||||||
@Environment(EnvType.CLIENT)
|
@Environment(EnvType.CLIENT)
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import net.minecraft.resources.ResourceKey;
|
|||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.sounds.Music;
|
import net.minecraft.sounds.Music;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
|
import net.minecraft.tags.TagKey;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.MobCategory;
|
import net.minecraft.world.entity.MobCategory;
|
||||||
import net.minecraft.world.level.biome.*;
|
import net.minecraft.world.level.biome.*;
|
||||||
@@ -110,6 +111,11 @@ public class BiomeModificationsImpl {
|
|||||||
public BiomeProperties getProperties() {
|
public BiomeProperties getProperties() {
|
||||||
return properties;
|
return properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasTag(TagKey<Biome> tag) {
|
||||||
|
return context.hasTag(tag);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
"depends": {
|
"depends": {
|
||||||
"minecraft": "~1.18.2-",
|
"minecraft": "~1.18.2-",
|
||||||
"fabricloader": ">=0.13.0",
|
"fabricloader": ">=0.13.0",
|
||||||
"fabric": ">=0.50.0"
|
"fabric": ">=0.54.0"
|
||||||
},
|
},
|
||||||
"breaks": {
|
"breaks": {
|
||||||
"optifabric": "<1.13.0"
|
"optifabric": "<1.13.0"
|
||||||
|
|||||||
@@ -23,9 +23,15 @@ import com.google.common.collect.Lists;
|
|||||||
import dev.architectury.forge.ArchitecturyForge;
|
import dev.architectury.forge.ArchitecturyForge;
|
||||||
import dev.architectury.hooks.level.biome.*;
|
import dev.architectury.hooks.level.biome.*;
|
||||||
import dev.architectury.registry.level.biome.BiomeModifications.BiomeContext;
|
import dev.architectury.registry.level.biome.BiomeModifications.BiomeContext;
|
||||||
|
import dev.architectury.utils.GameInstance;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
|
import net.minecraft.core.Registry;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
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.EntityType;
|
||||||
import net.minecraft.world.entity.MobCategory;
|
import net.minecraft.world.entity.MobCategory;
|
||||||
import net.minecraft.world.level.biome.Biome;
|
import net.minecraft.world.level.biome.Biome;
|
||||||
@@ -43,6 +49,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.BiPredicate;
|
import java.util.function.BiPredicate;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
@@ -83,6 +90,21 @@ public class BiomeModificationsImpl {
|
|||||||
public BiomeProperties getProperties() {
|
public BiomeProperties getProperties() {
|
||||||
return properties;
|
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(ResourceKey.create(Registry.BIOME_REGISTRY, event.getName()));
|
||||||
|
if (holder.isPresent()) {
|
||||||
|
return holder.get().is(tag);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ base_version=4.5
|
|||||||
maven_group=dev.architectury
|
maven_group=dev.architectury
|
||||||
|
|
||||||
fabric_loader_version=0.13.3
|
fabric_loader_version=0.13.3
|
||||||
fabric_api_version=0.50.0+1.18.2
|
fabric_api_version=0.58.0+1.18.2
|
||||||
mod_menu_version=3.0.0
|
mod_menu_version=3.0.0
|
||||||
|
|
||||||
forge_version=40.1.14
|
forge_version=40.1.14
|
||||||
|
|||||||
Reference in New Issue
Block a user