From 934c97c89fd9e93a06792397d37c0e8d138ab841 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 14 Jun 2022 22:29:49 +0800 Subject: [PATCH] Bump version to 7.0.0 and add support for mushroom biome tags --- .../lightoverlay/common/LightOverlayTicker.java | 7 ++++++- .../common/fabric/LightOverlayTickerImpl.java | 12 ++++++++++++ .../common/forge/LightOverlayTickerImpl.java | 17 +++++++++++++++++ gradle.properties | 2 +- 4 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 forge/src/main/java/me/shedaniel/lightoverlay/common/forge/LightOverlayTickerImpl.java diff --git a/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlayTicker.java b/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlayTicker.java index 24096b3..a2539ec 100644 --- a/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlayTicker.java +++ b/common/src/main/java/me/shedaniel/lightoverlay/common/LightOverlayTicker.java @@ -266,7 +266,7 @@ public class LightOverlayTicker { // Check block state allow spawning (excludes bedrock and barriers automatically) if (!blockBelowState.isValidSpawn(world, down, TESTING_ENTITY_TYPE.get())) return LightOverlay.CROSS_NONE; - if (!LightOverlay.mushroom && biome.is(Biomes.MUSHROOM_FIELDS)) + if (!LightOverlay.mushroom && isMushroom(biome)) return LightOverlay.CROSS_NONE; int blockLightLevel = block.getLightValue(pos); int skyLightLevel = sky.getLightValue(pos); @@ -278,6 +278,11 @@ public class LightOverlayTicker { LightOverlay.lowerCross : LightOverlay.CROSS_RED; } + @ExpectPlatform + private static boolean isMushroom(Holder biome) { + throw new AssertionError(); + } + public static int getCrossLevel(BlockPos pos, BlockPos down, BlockGetter world, LayerLightEventListener view, CollisionContext collisionContext) { BlockState blockBelowState = world.getBlockState(down); BlockState blockUpperState = world.getBlockState(pos); diff --git a/fabric/src/main/java/me/shedaniel/lightoverlay/common/fabric/LightOverlayTickerImpl.java b/fabric/src/main/java/me/shedaniel/lightoverlay/common/fabric/LightOverlayTickerImpl.java index adadbd6..4d037c3 100644 --- a/fabric/src/main/java/me/shedaniel/lightoverlay/common/fabric/LightOverlayTickerImpl.java +++ b/fabric/src/main/java/me/shedaniel/lightoverlay/common/fabric/LightOverlayTickerImpl.java @@ -1,16 +1,28 @@ package me.shedaniel.lightoverlay.common.fabric; import com.google.common.collect.ImmutableSet; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityDimensions; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biomes; public class LightOverlayTickerImpl { + private static final TagKey MUSHROOM = TagKey.create(Registry.BIOME_REGISTRY, new ResourceLocation("c", "mushroom")); + public static void populateEntityType(EntityType type) { type.factory = (entityType, level) -> null; type.category = MobCategory.MONSTER; type.immuneTo = ImmutableSet.of(); type.dimensions = EntityDimensions.fixed(0.0F, 0.0F); } + + public static boolean isMushroom(Holder biome) { + return biome.is(Biomes.MUSHROOM_FIELDS) || biome.is(MUSHROOM); + } } diff --git a/forge/src/main/java/me/shedaniel/lightoverlay/common/forge/LightOverlayTickerImpl.java b/forge/src/main/java/me/shedaniel/lightoverlay/common/forge/LightOverlayTickerImpl.java new file mode 100644 index 0000000..3bb038c --- /dev/null +++ b/forge/src/main/java/me/shedaniel/lightoverlay/common/forge/LightOverlayTickerImpl.java @@ -0,0 +1,17 @@ +package me.shedaniel.lightoverlay.common.forge; + +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.biome.Biomes; +import net.minecraftforge.common.data.ForgeBiomeTagsProvider; + +public class LightOverlayTickerImpl { + private static final TagKey MUSHROOM = TagKey.create(Registry.BIOME_REGISTRY, new ResourceLocation("forge", "is_mushroom")); + + public static boolean isMushroom(Holder biome) { + return biome.is(Biomes.MUSHROOM_FIELDS) || biome.is(MUSHROOM); + } +} diff --git a/gradle.properties b/gradle.properties index c39f236..7abff5d 100755 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -mod_version=6.1.0 +mod_version=7.0.0 minecraft_version=1.19 architectury_version=5.6.22 -- 2.44.0