From cfa36497b7905bc96f3e0212fcb0ce59a76cfe31 Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 7 Feb 2019 13:32:55 +0200 Subject: [PATCH] Spawning particles can now be done with an ICaster<> --- .../java/com/minelittlepony/unicopia/power/IPower.java | 6 ++---- .../minelittlepony/unicopia/power/PowerCloudBase.java | 4 ++-- .../com/minelittlepony/unicopia/power/PowerDisguise.java | 4 ++-- .../com/minelittlepony/unicopia/power/PowerFeed.java | 9 +-------- .../com/minelittlepony/unicopia/power/PowerGrow.java | 7 ++++--- .../com/minelittlepony/unicopia/power/PowerMagic.java | 4 ++-- .../com/minelittlepony/unicopia/power/PowerTeleport.java | 5 ++--- .../java/com/minelittlepony/unicopia/spell/ICaster.java | 5 +++++ src/main/java/com/minelittlepony/util/WorldEvent.java | 2 +- 9 files changed, 21 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/power/IPower.java b/src/main/java/com/minelittlepony/unicopia/power/IPower.java index 00a682a5..b4a9a235 100644 --- a/src/main/java/com/minelittlepony/unicopia/power/IPower.java +++ b/src/main/java/com/minelittlepony/unicopia/power/IPower.java @@ -9,6 +9,7 @@ import com.minelittlepony.unicopia.player.IPlayer; import com.minelittlepony.util.shape.IShape; import com.minelittlepony.util.shape.Sphere; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.DamageSource; import net.minecraft.util.math.Vec3d; @@ -41,10 +42,7 @@ public interface IPower extends IKeyBind { return player.posY + player.getEyeHeight() - 1; } - static void spawnParticles(int particleId, IPlayer player, int count) { - - EntityPlayer entity = player.getOwner(); - + static void spawnParticles(int particleId, Entity entity, int count) { double halfDist = entity.getEyeHeight() / 1.5; double middle = entity.getEntityBoundingBox().minY + halfDist; diff --git a/src/main/java/com/minelittlepony/unicopia/power/PowerCloudBase.java b/src/main/java/com/minelittlepony/unicopia/power/PowerCloudBase.java index 27e11b08..f7be6c32 100644 --- a/src/main/java/com/minelittlepony/unicopia/power/PowerCloudBase.java +++ b/src/main/java/com/minelittlepony/unicopia/power/PowerCloudBase.java @@ -80,11 +80,11 @@ public class PowerCloudBase implements IPower { @Override public void preApply(IPlayer player) { - IPower.spawnParticles(UParticles.UNICORN_MAGIC, player, 10); + player.spawnParticles(UParticles.UNICORN_MAGIC, 10); } @Override public void postApply(IPlayer player) { - IPower.spawnParticles(UParticles.RAIN_DROPS, player, 5); + player.spawnParticles(UParticles.RAIN_DROPS, 5); } } diff --git a/src/main/java/com/minelittlepony/unicopia/power/PowerDisguise.java b/src/main/java/com/minelittlepony/unicopia/power/PowerDisguise.java index 97e2bf2a..80a7c063 100644 --- a/src/main/java/com/minelittlepony/unicopia/power/PowerDisguise.java +++ b/src/main/java/com/minelittlepony/unicopia/power/PowerDisguise.java @@ -54,12 +54,12 @@ public class PowerDisguise extends PowerFeed { @Override public void preApply(IPlayer player) { player.addEnergy(2); - IPower.spawnParticles(UParticles.CHANGELING_MAGIC, player, 5); + player.spawnParticles(UParticles.CHANGELING_MAGIC, 5); } @Override public void postApply(IPlayer player) { player.setEnergy(0); - IPower.spawnParticles(UParticles.CHANGELING_MAGIC, player, 5); + player.spawnParticles(UParticles.CHANGELING_MAGIC, 5); } } diff --git a/src/main/java/com/minelittlepony/unicopia/power/PowerFeed.java b/src/main/java/com/minelittlepony/unicopia/power/PowerFeed.java index c2fab6e6..7f9600b2 100644 --- a/src/main/java/com/minelittlepony/unicopia/power/PowerFeed.java +++ b/src/main/java/com/minelittlepony/unicopia/power/PowerFeed.java @@ -7,7 +7,6 @@ import javax.annotation.Nullable; import org.lwjgl.input.Keyboard; import com.minelittlepony.unicopia.Race; -import com.minelittlepony.unicopia.particle.Particles; import com.minelittlepony.unicopia.player.IPlayer; import com.minelittlepony.unicopia.power.data.Hit; import com.minelittlepony.util.MagicalDamageSource; @@ -129,13 +128,7 @@ public class PowerFeed implements IPower { public void postApply(IPlayer player) { EntityPlayer entity = player.getOwner(); - for (int i = 0; i < 10; i++) { - Particles.instance().spawnParticle(EnumParticleTypes.HEART.getParticleID(), false, - entity.posX + entity.world.rand.nextFloat() * 2 - 1, - entity.posY + entity.world.rand.nextFloat() * 2 - 1, - entity.posZ + entity.world.rand.nextFloat() * 2 - 1, - 0, 0.25, 0); - } + IPower.spawnParticles(EnumParticleTypes.HEART.getParticleID(), entity, 10); } } diff --git a/src/main/java/com/minelittlepony/unicopia/power/PowerGrow.java b/src/main/java/com/minelittlepony/unicopia/power/PowerGrow.java index 85b6d63c..1b17d18e 100644 --- a/src/main/java/com/minelittlepony/unicopia/power/PowerGrow.java +++ b/src/main/java/com/minelittlepony/unicopia/power/PowerGrow.java @@ -6,6 +6,7 @@ import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.UParticles; import com.minelittlepony.unicopia.player.IPlayer; import com.minelittlepony.unicopia.power.data.Location; +import com.minelittlepony.util.WorldEvent; import com.minelittlepony.util.vector.VecHelper; import net.minecraft.block.BlockDoublePlant; @@ -85,10 +86,10 @@ public class PowerGrow implements IPower { if (g.canGrow(w, pos, state, w.isRemote) && g.canUseBonemeal(w, w.rand, pos, state)) { if (ItemDye.applyBonemeal(new ItemStack(Items.DYE, 1), w, pos)) { - w.playEvent(2005, pos, 0); + WorldEvent.BONEMEAL.play(w, pos, 0); if (g instanceof BlockDoublePlant) { - w.playEvent(2005, pos.up(), 0); + WorldEvent.BONEMEAL.play(w, pos.up(), 0); } } @@ -103,7 +104,7 @@ public class PowerGrow implements IPower { player.addExertion(3); if (player.getWorld().isRemote) { - IPower.spawnParticles(UParticles.UNICORN_MAGIC, player, 1); + player.spawnParticles(UParticles.UNICORN_MAGIC, 1); } } diff --git a/src/main/java/com/minelittlepony/unicopia/power/PowerMagic.java b/src/main/java/com/minelittlepony/unicopia/power/PowerMagic.java index b653bd37..a759539b 100644 --- a/src/main/java/com/minelittlepony/unicopia/power/PowerMagic.java +++ b/src/main/java/com/minelittlepony/unicopia/power/PowerMagic.java @@ -56,11 +56,11 @@ public class PowerMagic implements IPower { @Override public void preApply(IPlayer player) { - IPower.spawnParticles(UParticles.UNICORN_MAGIC, player, 5); + player.spawnParticles(UParticles.UNICORN_MAGIC, 5); } @Override public void postApply(IPlayer player) { - IPower.spawnParticles(UParticles.UNICORN_MAGIC, player, 5); + player.spawnParticles(UParticles.UNICORN_MAGIC, 5); } } diff --git a/src/main/java/com/minelittlepony/unicopia/power/PowerTeleport.java b/src/main/java/com/minelittlepony/unicopia/power/PowerTeleport.java index 8f24271b..1fe504da 100644 --- a/src/main/java/com/minelittlepony/unicopia/power/PowerTeleport.java +++ b/src/main/java/com/minelittlepony/unicopia/power/PowerTeleport.java @@ -159,12 +159,11 @@ public class PowerTeleport implements IPower { @Override public void preApply(IPlayer player) { player.addExertion(3); - - IPower.spawnParticles(UParticles.UNICORN_MAGIC, player, 5); + player.spawnParticles(UParticles.UNICORN_MAGIC, 5); } @Override public void postApply(IPlayer player) { - IPower.spawnParticles(UParticles.UNICORN_MAGIC, player, 5); + player.spawnParticles(UParticles.UNICORN_MAGIC, 5); } } diff --git a/src/main/java/com/minelittlepony/unicopia/spell/ICaster.java b/src/main/java/com/minelittlepony/unicopia/spell/ICaster.java index e33e9a49..712b99ef 100644 --- a/src/main/java/com/minelittlepony/unicopia/spell/ICaster.java +++ b/src/main/java/com/minelittlepony/unicopia/spell/ICaster.java @@ -8,6 +8,7 @@ import java.util.stream.Stream; import javax.annotation.Nullable; import com.minelittlepony.unicopia.player.IOwned; +import com.minelittlepony.unicopia.power.IPower; import com.minelittlepony.util.shape.IShape; import com.minelittlepony.util.vector.VecHelper; @@ -49,6 +50,10 @@ public interface ICaster extends IOwned, ILevelle return getEntity().getPositionVector(); } + default void spawnParticles(int particleId, int count) { + IPower.spawnParticles(particleId, getEntity(), count); + } + default void spawnParticles(IShape area, int count, Consumer particleSpawner) { Random rand = getWorld().rand; diff --git a/src/main/java/com/minelittlepony/util/WorldEvent.java b/src/main/java/com/minelittlepony/util/WorldEvent.java index d7d7290f..f7f9a337 100644 --- a/src/main/java/com/minelittlepony/util/WorldEvent.java +++ b/src/main/java/com/minelittlepony/util/WorldEvent.java @@ -54,7 +54,7 @@ public enum WorldEvent { XP_POP(2002), PROJECTILE_HIT(2002), EYE_OF_ENDER(2003), MOB_SPAWN(2004), - BONEMEAN(2005), + BONEMEAL(2005), DRAGON_BREATH(2006), POTION_INSTANT(2007), DRAGON_DEFEATED(3000),