From c30ef7e9c10a431ce3259e388a5bec395f201c2d Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 6 Feb 2024 15:44:12 +0000 Subject: [PATCH] Give spikes their own damage type --- .../java/com/minelittlepony/unicopia/block/SpikesBlock.java | 6 ++++-- .../java/com/minelittlepony/unicopia/entity/Living.java | 1 + .../{util => entity/damage}/MagicalDamageSource.java | 2 +- .../unicopia/entity/damage/UDamageSources.java | 1 - .../minelittlepony/unicopia/entity/damage/UDamageTypes.java | 1 + src/main/resources/assets/unicopia/lang/en_us.json | 2 ++ 6 files changed, 9 insertions(+), 4 deletions(-) rename src/main/java/com/minelittlepony/unicopia/{util => entity/damage}/MagicalDamageSource.java (98%) diff --git a/src/main/java/com/minelittlepony/unicopia/block/SpikesBlock.java b/src/main/java/com/minelittlepony/unicopia/block/SpikesBlock.java index c24062c1..536f4b2c 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/SpikesBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/SpikesBlock.java @@ -2,6 +2,8 @@ package com.minelittlepony.unicopia.block; import org.joml.Vector3f; +import com.minelittlepony.unicopia.entity.damage.UDamageTypes; + import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.SideShapeType; @@ -37,7 +39,7 @@ public class SpikesBlock extends OrientedBlock { if ((normVel.x + normVel.y + normVel.z) < -0.08F) { float damage = (float)vel.lengthSquared() * 26; - entity.damage(world.getDamageSources().cactus(), damage); + entity.damage(world.getDamageSources().create(UDamageTypes.SPIKES), damage); } } } @@ -50,7 +52,7 @@ public class SpikesBlock extends OrientedBlock { if (!(e instanceof LivingEntity) || e.getType() == EntityType.FOX || e.getType() == EntityType.BEE) { continue; } - e.damage(world.getDamageSources().cactus(), 6); + e.damage(world.getDamageSources().create(UDamageTypes.SPIKES), 6); } } } diff --git a/src/main/java/com/minelittlepony/unicopia/entity/Living.java b/src/main/java/com/minelittlepony/unicopia/entity/Living.java index 0b721be2..f83c07d9 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/Living.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/Living.java @@ -19,6 +19,7 @@ import com.minelittlepony.unicopia.advancement.UCriteria; import com.minelittlepony.unicopia.compat.trinkets.TrinketsDelegate; import com.minelittlepony.unicopia.entity.behaviour.EntityAppearance; import com.minelittlepony.unicopia.entity.collision.MultiBoundingBoxEntity; +import com.minelittlepony.unicopia.entity.damage.MagicalDamageSource; import com.minelittlepony.unicopia.entity.duck.LivingEntityDuck; import com.minelittlepony.unicopia.entity.effect.EffectUtils; import com.minelittlepony.unicopia.entity.effect.UEffects; diff --git a/src/main/java/com/minelittlepony/unicopia/util/MagicalDamageSource.java b/src/main/java/com/minelittlepony/unicopia/entity/damage/MagicalDamageSource.java similarity index 98% rename from src/main/java/com/minelittlepony/unicopia/util/MagicalDamageSource.java rename to src/main/java/com/minelittlepony/unicopia/entity/damage/MagicalDamageSource.java index a683004a..fe12570a 100644 --- a/src/main/java/com/minelittlepony/unicopia/util/MagicalDamageSource.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/damage/MagicalDamageSource.java @@ -1,4 +1,4 @@ -package com.minelittlepony.unicopia.util; +package com.minelittlepony.unicopia.entity.damage; import java.util.*; diff --git a/src/main/java/com/minelittlepony/unicopia/entity/damage/UDamageSources.java b/src/main/java/com/minelittlepony/unicopia/entity/damage/UDamageSources.java index 743dedbc..759a6aa4 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/damage/UDamageSources.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/damage/UDamageSources.java @@ -5,7 +5,6 @@ import org.jetbrains.annotations.Nullable; import com.minelittlepony.unicopia.WorldConvertable; import com.minelittlepony.unicopia.ability.magic.Caster; -import com.minelittlepony.unicopia.util.MagicalDamageSource; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageType; diff --git a/src/main/java/com/minelittlepony/unicopia/entity/damage/UDamageTypes.java b/src/main/java/com/minelittlepony/unicopia/entity/damage/UDamageTypes.java index b28faeea..eae9bb47 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/damage/UDamageTypes.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/damage/UDamageTypes.java @@ -31,6 +31,7 @@ public interface UDamageTypes { RegistryKey PETRIFIED = register("petrified"); RegistryKey ROCK = register("rock"); RegistryKey HORSESHOE = register("horseshoe"); + RegistryKey SPIKES = register("spikes"); private static RegistryKey register(String name) { var key = RegistryKey.of(RegistryKeys.DAMAGE_TYPE, Unicopia.id(name)); diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 5320797e..80b11c0b 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -1447,6 +1447,8 @@ "death.attack.unicopia.horseshoe.self": "%1$s dinged himself", "death.attack.unicopia.horseshoe.item": "%1$s was dinged by %2$s using %3$s", "death.attack.unicopia.horseshoe.player": "%1$s was dinged by %2$s", + "death.attack.unicopia.spikes": "%1$s was pricked to death", + "death.attack.unicopia.spikes.player": "%1$s fell into some spikes whilst trying to escape %2$s", "death.fell.accident.ladder.pegasus": "%1$s forgot they could fly and fell off a ladder", "death.fell.accident.vines.pegasus": "%1$s forgot they could fly and fell off some vines",