From 8c30f38cbca2e82d340e26492ed479e18ba3fd99 Mon Sep 17 00:00:00 2001 From: Sollace Date: Mon, 9 Aug 2021 13:25:53 +0200 Subject: [PATCH] Wearing mob heads and pumpkins is an effective way for bat ponies to protect their eyes --- .../com/minelittlepony/unicopia/UTags.java | 2 ++ .../unicopia/client/UnicopiaClient.java | 2 +- .../effect/SunBlindnessStatusEffect.java | 17 +++++++++++++++++ .../resources/assets/unicopia/lang/en_us.json | 4 +++- .../textures/mob_effect/sun_blindness.png | Bin 0 -> 166 bytes .../data/unicopia/tags/items/shades.json | 12 ++++++++++++ 6 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/assets/unicopia/textures/mob_effect/sun_blindness.png create mode 100644 src/main/resources/data/unicopia/tags/items/shades.json diff --git a/src/main/java/com/minelittlepony/unicopia/UTags.java b/src/main/java/com/minelittlepony/unicopia/UTags.java index 6fada9ad..d6e838db 100644 --- a/src/main/java/com/minelittlepony/unicopia/UTags.java +++ b/src/main/java/com/minelittlepony/unicopia/UTags.java @@ -16,6 +16,8 @@ public interface UTags { Tag MAGIC_FEATHERS = item("magic_feathers"); + Tag SHADES = item("sun_blockers"); + Tag FRAGILE = block("fragile"); Tag INTERESTING = block("interesting"); diff --git a/src/main/java/com/minelittlepony/unicopia/client/UnicopiaClient.java b/src/main/java/com/minelittlepony/unicopia/client/UnicopiaClient.java index 80b788a4..63ff54e7 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/UnicopiaClient.java +++ b/src/main/java/com/minelittlepony/unicopia/client/UnicopiaClient.java @@ -49,7 +49,7 @@ public class UnicopiaClient implements ClientModInitializer { } public static float getWorldBrightness(float initial) { - return Math.min(1, initial + 0.6F); + return initial > 0 ? 3 : 2; } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/entity/effect/SunBlindnessStatusEffect.java b/src/main/java/com/minelittlepony/unicopia/entity/effect/SunBlindnessStatusEffect.java index 0c536dc7..fc31d4aa 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/effect/SunBlindnessStatusEffect.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/effect/SunBlindnessStatusEffect.java @@ -2,12 +2,17 @@ package com.minelittlepony.unicopia.entity.effect; import org.jetbrains.annotations.Nullable; +import com.minelittlepony.unicopia.EquinePredicates; +import com.minelittlepony.unicopia.UTags; + import net.minecraft.entity.Entity; +import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffectType; +import net.minecraft.entity.effect.StatusEffects; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import net.minecraft.world.LightType; @@ -51,6 +56,18 @@ public class SunBlindnessStatusEffect extends StatusEffect { } public static boolean hasSunExposure(LivingEntity entity) { + if (entity.hasStatusEffect(StatusEffects.BLINDNESS)) { + return false; + } + + if (EquinePredicates.PLAYER_BAT.test(entity) && entity.hasStatusEffect(StatusEffects.NIGHT_VISION)) { + return true; + } + + if (entity.getEquippedStack(EquipmentSlot.HEAD).isIn(UTags.SHADES)) { + return false; + } + if (entity.world.isClient) { entity.world.calculateAmbientDarkness(); } diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index a9d19ce5..1cecbfa7 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -67,7 +67,7 @@ "unicopia.effect.tribe.stage.initial": "It appears to have no effect.", "unicopia.effect.tribe.stage.crawling": "You feel the skin crawling on your back.", - "unicopia.effect.tribe.stage.determination": "As your bones realign you are filled determination.", + "unicopia.effect.tribe.stage.determination": "As your bones realign you are filled by determination.", "unicopia.effect.tribe.stage.resurection": "Knowing you will return to this world as a %s", "effect.food_poisoning": "Food Poisoning", @@ -76,6 +76,8 @@ "player.miningSpeed": "Mining Speed", "player.gravityModifier": "Gravity", + "effect.unicopia.sun_blindness": "Sun Blindness", + "effect.unicopia.change_race_earth": "Earth Pony Metamorphosis", "item.minecraft.potion.effect.unicopia.tribe_swap_earth": "Potion of Earth Pony Metamorphosis", "item.minecraft.splash_potion.effect.unicopia.tribe_swap_earth": "Splash Potion of Earth Pony Metamorphosis", diff --git a/src/main/resources/assets/unicopia/textures/mob_effect/sun_blindness.png b/src/main/resources/assets/unicopia/textures/mob_effect/sun_blindness.png new file mode 100644 index 0000000000000000000000000000000000000000..a42bc331c8150bc4a5eebb8a3fd5bdef60797e01 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`xt=bLAr_~TQyQ9L|4Vu><@E^6 znkaMjM4Q2+)sk!x6D-%Q<#CbRzI#@q;A%!55NM41QM&$q+ili@1ydVhKW}CIvA2Qi z%f%n!8&@SIEfC<@!&q_Xff6fQ0%z_cUWe{mdKI;Vst04lFLIsgCw literal 0 HcmV?d00001 diff --git a/src/main/resources/data/unicopia/tags/items/shades.json b/src/main/resources/data/unicopia/tags/items/shades.json new file mode 100644 index 00000000..75dc1e20 --- /dev/null +++ b/src/main/resources/data/unicopia/tags/items/shades.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "minecraft:carved_pumpkin", + "minecraft:skeleton_skull", + "minecraft:wither_skeleton_skull", + "minecraft:player_head", + "minecraft:zombie_head", + "minecraft:creeper_head", + "minecraft:dragon_head" + ] +}