From d91a3e056a4b88f41b212c2c162ff68c7d5b8b4b Mon Sep 17 00:00:00 2001
From: Electroblob <35599699+Electroblob77@users.noreply.github.com>
Date: Tue, 5 Jun 2018 21:13:41 +0100
Subject: [PATCH] The great particle refactoring part 1: Introducing
ParticleBuilder! Adds ParticleBuilder to replace the particle spawning
methods in the proxies, and changes all particle spawning to use the builder
except for in the spell classes, which are to be reorganised first.
---
.../electroblob/wizardry/CommonProxy.java | 74 ++-----------
.../java/electroblob/wizardry/Wizardry.java | 1 +
.../wizardry/WizardryEventHandler.java | 10 +-
.../wizardry/block/BlockCrystalFlower.java | 12 +-
.../wizardry/block/BlockSpectral.java | 24 ++--
.../wizardry/client/ClientProxy.java | 103 ++++++++----------
.../client/particle/ParticleBlizzard.java | 19 +---
.../particle/ParticleCustomTexture.java | 95 +---------------
.../client/particle/ParticleDarkMagic.java | 19 +---
.../client/particle/ParticleDust.java | 31 ++----
.../wizardry/client/particle/ParticleIce.java | 26 ++---
.../client/particle/ParticleLeaf.java | 14 +--
.../client/particle/ParticleMagicFlame.java | 31 +++---
.../client/particle/ParticlePath.java | 24 +---
.../particle/ParticleRotatingSparkle.java | 15 ++-
.../client/particle/ParticleSnow.java | 16 +--
.../client/particle/ParticleSpark.java | 12 +-
.../client/particle/ParticleSparkle.java | 80 +++++---------
.../entity/construct/EntityBlizzard.java | 29 +++--
.../entity/construct/EntityDecay.java | 13 ++-
.../entity/construct/EntityForcefield.java | 17 +--
.../entity/construct/EntityFrostSigil.java | 10 +-
.../entity/construct/EntityHammer.java | 22 ++--
.../entity/construct/EntityHealAura.java | 15 ++-
.../construct/EntityLightningSigil.java | 22 ++--
.../entity/construct/EntityTornado.java | 33 +++---
.../wizardry/entity/living/EntityDecoy.java | 15 ++-
.../entity/living/EntityEvilWizard.java | 18 +--
.../entity/living/EntityIceGiant.java | 19 ++--
.../entity/living/EntityIceWraith.java | 14 ++-
.../entity/living/EntityLightningWraith.java | 18 +--
.../entity/living/EntityShadowWraith.java | 35 +++---
.../entity/living/EntitySilverfishMinion.java | 10 +-
.../entity/living/EntitySpiderMinion.java | 10 +-
.../entity/living/EntitySpiritHorse.java | 51 +++++----
.../entity/living/EntitySpiritWolf.java | 40 ++++---
.../entity/living/EntityStormElemental.java | 21 ++--
.../wizardry/entity/living/EntityWizard.java | 18 +--
.../entity/living/ISummonedCreature.java | 10 +-
.../entity/projectile/EntityDarknessOrb.java | 21 ++--
.../entity/projectile/EntityDart.java | 8 +-
.../entity/projectile/EntityFirebomb.java | 30 ++---
.../entity/projectile/EntityForceOrb.java | 11 +-
.../entity/projectile/EntityIceCharge.java | 19 ++--
.../entity/projectile/EntityIceLance.java | 11 +-
.../entity/projectile/EntityIceShard.java | 11 +-
.../projectile/EntityLightningArrow.java | 16 +--
.../projectile/EntityLightningDisc.java | 19 ++--
.../entity/projectile/EntityMagicMissile.java | 16 +--
.../entity/projectile/EntityPoisonBomb.java | 20 ++--
.../entity/projectile/EntitySmokeBomb.java | 13 +--
.../entity/projectile/EntitySpark.java | 11 +-
.../entity/projectile/EntitySparkBomb.java | 19 ++--
.../entity/projectile/EntityThunderbolt.java | 8 +-
.../wizardry/potion/PotionFrost.java | 6 +-
.../wizardry/registry/WizardryPotions.java | 14 +--
.../electroblob/wizardry/spell/Agility.java | 17 +--
.../java/electroblob/wizardry/spell/Arc.java | 6 +-
.../wizardry/spell/ArcaneJammer.java | 6 +-
.../electroblob/wizardry/spell/Banish.java | 6 +-
.../electroblob/wizardry/spell/Bubble.java | 6 +-
.../wizardry/spell/ChainLightning.java | 8 +-
.../wizardry/spell/Clairvoyance.java | 6 +-
.../wizardry/spell/ConjureArmour.java | 4 +-
.../wizardry/spell/ConjureBow.java | 4 +-
.../wizardry/spell/ConjurePickaxe.java | 4 +-
.../wizardry/spell/ConjureSword.java | 4 +-
.../wizardry/spell/CureEffects.java | 6 +-
.../wizardry/spell/CurseOfSoulbinding.java | 8 +-
.../wizardry/spell/Darkvision.java | 4 +-
.../wizardry/spell/Diamondflesh.java | 6 +-
.../wizardry/spell/Entrapment.java | 6 +-
.../wizardry/spell/FireResistance.java | 6 +-
.../electroblob/wizardry/spell/Firestorm.java | 6 +-
.../electroblob/wizardry/spell/FlameRay.java | 10 +-
.../wizardry/spell/FlamingWeapon.java | 4 +-
.../electroblob/wizardry/spell/Flight.java | 6 +-
.../wizardry/spell/FontOfMana.java | 4 +-
.../wizardry/spell/FontOfVitality.java | 6 +-
.../wizardry/spell/ForestsCurse.java | 8 +-
.../electroblob/wizardry/spell/Freeze.java | 14 +--
.../wizardry/spell/FreezingWeapon.java | 4 +-
.../electroblob/wizardry/spell/FrostAxe.java | 4 +-
.../electroblob/wizardry/spell/FrostRay.java | 10 +-
.../electroblob/wizardry/spell/Glide.java | 6 +-
.../wizardry/spell/GreaterHeal.java | 6 +-
.../electroblob/wizardry/spell/GroupHeal.java | 6 +-
.../java/electroblob/wizardry/spell/Heal.java | 9 +-
.../electroblob/wizardry/spell/HealAlly.java | 4 +-
.../electroblob/wizardry/spell/IceStatue.java | 6 +-
.../wizardry/spell/ImbueWeapon.java | 4 +-
.../wizardry/spell/Intimidate.java | 4 +-
.../wizardry/spell/InvigoratingPresence.java | 4 +-
.../wizardry/spell/Invisibility.java | 6 +-
.../wizardry/spell/InvokeWeather.java | 4 +-
.../electroblob/wizardry/spell/Ironflesh.java | 6 +-
.../wizardry/spell/Levitation.java | 4 +-
.../electroblob/wizardry/spell/LifeDrain.java | 10 +-
.../wizardry/spell/LightningRay.java | 6 +-
.../wizardry/spell/LightningWeb.java | 8 +-
.../wizardry/spell/Metamorphosis.java | 6 +-
.../wizardry/spell/MindControl.java | 10 +-
.../electroblob/wizardry/spell/MindTrick.java | 6 +-
.../electroblob/wizardry/spell/Oakflesh.java | 6 +-
.../electroblob/wizardry/spell/Petrify.java | 6 +-
.../wizardry/spell/PlagueOfDarkness.java | 6 +-
.../electroblob/wizardry/spell/Poison.java | 10 +-
.../wizardry/spell/ReplenishHunger.java | 4 +-
.../electroblob/wizardry/spell/Shockwave.java | 6 +-
.../electroblob/wizardry/spell/Slime.java | 6 +-
.../electroblob/wizardry/spell/Snare.java | 6 +-
.../wizardry/spell/SummonIceGiant.java | 4 +-
.../wizardry/spell/SummonIronGolem.java | 4 +-
.../wizardry/spell/SummonSnowGolem.java | 4 +-
.../wizardry/spell/Thunderstorm.java | 6 +-
.../wizardry/spell/WallOfFrost.java | 6 +-
.../wizardry/spell/WaterBreathing.java | 4 +-
.../electroblob/wizardry/spell/Wither.java | 10 +-
.../wizardry/util/WizardryParticleType.java | 9 --
119 files changed, 722 insertions(+), 972 deletions(-)
delete mode 100644 src/main/java/electroblob/wizardry/util/WizardryParticleType.java
diff --git a/src/main/java/electroblob/wizardry/CommonProxy.java b/src/main/java/electroblob/wizardry/CommonProxy.java
index acaf16ed..b8ef9d67 100644
--- a/src/main/java/electroblob/wizardry/CommonProxy.java
+++ b/src/main/java/electroblob/wizardry/CommonProxy.java
@@ -1,5 +1,6 @@
package electroblob.wizardry;
+import electroblob.wizardry.client.particle.ParticleWizardry;
import electroblob.wizardry.item.ItemSpectralBow;
import electroblob.wizardry.packet.PacketCastContinuousSpell;
import electroblob.wizardry.packet.PacketCastSpell;
@@ -11,7 +12,7 @@ import electroblob.wizardry.packet.PacketTransportation;
import electroblob.wizardry.registry.Spells;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.spell.Spell;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
@@ -56,75 +57,20 @@ public class CommonProxy {
// SECTION Particles
// ===============================================================================================================
- /**
- * Spawns a custom particle of the specified type.
- *
- * @param type EnumParticleType of the particle
- * @param world Reference to the World object
- * @param x Particle x position
- * @param y Particle y position
- * @param z Particle z position
- * @param velX Particle x velocity
- * @param velY Particle y velocity
- * @param velZ Particle z velocity
- * @param maxAge Lifetime of the particle in ticks
- * @param r Red component of particle colour; will be clamped to between 0 and 1
- * @param g Red component of particle colour; will be clamped to between 0 and 1
- * @param b Red component of particle colour; will be clamped to between 0 and 1
- * @param doGravity Whether the particle is affected by gravity (only affects SPARKLE at the moment)
- * @param radius The radius of the particle's motion, for cirular motion particles
- */
- public void spawnParticle(WizardryParticleType type, World world, double x, double y, double z, double velX,
- double velY, double velZ, int maxAge, float r, float g, float b, boolean doGravity, double radius){
- // Does nothing since particles are client-side only
- }
+ /** Called from init() in the main mod class to initialise the particle factories. */
+ public void initParticleFactories(){} // Does nothing since particles are client-side only
- /**
- * Spawns a custom particle of the specified type. doGravity defaults to false and radius defaults to 0. Note that
- * some of these settings may not affect the particle; some particles are always affected by gravity, for instance.
- *
- * @param type EnumParticleType of the particle
- * @param world Reference to the World object
- * @param x Particle x position
- * @param y Particle y position
- * @param z Particle z position
- * @param velX Particle x velocity
- * @param velY Particle y velocity
- * @param velZ Particle z velocity
- * @param maxAge Lifetime of the particle in ticks
- * @param r Red component of particle colour; will be clamped to between 0 and 1 (unless this is a MAGIC_FIRE
- * particle, in which case this is the scale)
- * @param g Red component of particle colour; will be clamped to between 0 and 1
- * @param b Red component of particle colour; will be clamped to between 0 and 1
- */
- public void spawnParticle(WizardryParticleType type, World world, double x, double y, double z, double velX,
- double velY, double velZ, int maxAge, float r, float g, float b){
- this.spawnParticle(type, world, x, y, z, velX, velY, velZ, maxAge, r, g, b, false, 0);
- }
-
- /**
- * Spawns a custom particle of the specified type. Colour defaults to white, doGravity defaults to false and radius
- * defaults to 0. Note that some of these settings may not affect the particle; some particles are always affected
- * by gravity, for instance.
- *
- * @param type EnumParticleType of the particle
- * @param world Reference to the World object
- * @param x Particle x position
- * @param y Particle y position
- * @param z Particle z position
- * @param velX Particle x velocity
- * @param velY Particle y velocity
- * @param velZ Particle z velocity
- * @param maxAge Lifetime of the particle in ticks
- */
- public void spawnParticle(WizardryParticleType type, World world, double x, double y, double z, double velX,
- double velY, double velZ, int maxAge){
- this.spawnParticle(type, world, x, y, z, velX, velY, velZ, maxAge, 1, 1, 1, false, 0);
+ /** Creates a new particle of the specified type from the appropriate particle factory. Does not actually spawn the
+ * particle; use {@link electroblob.wizardry.util.ParticleBuilder ParticleBuilder} to spawn particles. */
+ public ParticleWizardry createParticle(Type type, World world, double x, double y, double z){
+ return null;
}
public void spawnTornadoParticle(World world, double x, double y, double z, double velX, double velZ, double radius,
int maxAge, IBlockState block, BlockPos pos){
}
+
+ public void spawnEntityParticle(World world, Entity entity, int maxAge, float r, float g, float b){}
// SECTION Items
// ===============================================================================================================
diff --git a/src/main/java/electroblob/wizardry/Wizardry.java b/src/main/java/electroblob/wizardry/Wizardry.java
index 99f2766f..996258b9 100644
--- a/src/main/java/electroblob/wizardry/Wizardry.java
+++ b/src/main/java/electroblob/wizardry/Wizardry.java
@@ -156,6 +156,7 @@ public class Wizardry {
WizardryPacketHandler.initPackets();
proxy.initGuiBits();
+ proxy.initParticleFactories();
}
@EventHandler
diff --git a/src/main/java/electroblob/wizardry/WizardryEventHandler.java b/src/main/java/electroblob/wizardry/WizardryEventHandler.java
index b3799275..a46d2730 100644
--- a/src/main/java/electroblob/wizardry/WizardryEventHandler.java
+++ b/src/main/java/electroblob/wizardry/WizardryEventHandler.java
@@ -20,9 +20,10 @@ import electroblob.wizardry.spell.Spell;
import electroblob.wizardry.util.IElementalDamage;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
+import electroblob.wizardry.util.ParticleBuilder;
import electroblob.wizardry.util.SpellModifiers;
import electroblob.wizardry.util.WandHelper;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.EntityLiving;
@@ -213,10 +214,9 @@ public final class WizardryEventHandler {
world.spawnEntity(arc);
}else{
for(int i = 0; i < 8; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
- attacker.posX + world.rand.nextFloat() - 0.5, attacker.getEntityBoundingBox().minY
- + attacker.height / 2 + world.rand.nextFloat() * 2 - 1,
- attacker.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
+ ParticleBuilder.create(Type.SPARK).pos(attacker.posX + world.rand.nextFloat() - 0.5,
+ attacker.getEntityBoundingBox().minY + attacker.height / 2 + world.rand.nextFloat() * 2 - 1,
+ attacker.posZ + world.rand.nextFloat() - 0.5).spawn(world);
world.spawnParticle(EnumParticleTypes.SMOKE_LARGE, attacker.posX + world.rand.nextFloat() - 0.5,
attacker.getEntityBoundingBox().minY + attacker.height / 2 + world.rand.nextFloat() * 2
- 1,
diff --git a/src/main/java/electroblob/wizardry/block/BlockCrystalFlower.java b/src/main/java/electroblob/wizardry/block/BlockCrystalFlower.java
index 1ca537ea..27bc7046 100644
--- a/src/main/java/electroblob/wizardry/block/BlockCrystalFlower.java
+++ b/src/main/java/electroblob/wizardry/block/BlockCrystalFlower.java
@@ -2,9 +2,9 @@ package electroblob.wizardry.block;
import java.util.Random;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryBlocks;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.block.BlockBush;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
@@ -41,10 +41,10 @@ public class BlockCrystalFlower extends BlockBush {
@Override
public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random random){
if(world.isRemote && random.nextBoolean()){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, pos.getX() + random.nextDouble(),
- pos.getY() + random.nextDouble() / 2 + 0.5, pos.getZ() + random.nextDouble(), 0d, 0.01, 0d,
- 20 + random.nextInt(10), 0.5f + (random.nextFloat() / 2), 0.5f + (random.nextFloat() / 2),
- 0.5f + (random.nextFloat() / 2));
+ ParticleBuilder.create(Type.SPARKLE)
+ .pos(pos.getX() + random.nextDouble(), pos.getY() + random.nextDouble() / 2 + 0.5, pos.getZ() + random.nextDouble()).vel(0, 0.01, 0)
+ .lifetime(20 + random.nextInt(10)).colour(0.5f + (random.nextFloat() / 2), 0.5f + (random.nextFloat() / 2),
+ 0.5f + (random.nextFloat() / 2)).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/block/BlockSpectral.java b/src/main/java/electroblob/wizardry/block/BlockSpectral.java
index d4c91f1a..99d1ee17 100644
--- a/src/main/java/electroblob/wizardry/block/BlockSpectral.java
+++ b/src/main/java/electroblob/wizardry/block/BlockSpectral.java
@@ -61,18 +61,22 @@ public class BlockSpectral extends BlockContainer {
@Override
public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random random){
+
// Middle of block
- Wizardry.proxy.spawnParticle(WizardryParticleType.DUST, world, pos.getX() + random.nextDouble(),
- pos.getY() + random.nextDouble(), pos.getZ() + random.nextDouble(), 0, 0, 0,
- (int)(16.0D / (Math.random() * 0.8D + 0.2D)), 0.4f + random.nextFloat() * 0.2f,
- 0.6f + random.nextFloat() * 0.4f, 0.6f + random.nextFloat() * 0.4f);
+ ParticleBuilder.create(Type.DUST)
+ .pos(pos.getX() + random.nextDouble(), pos.getY() + random.nextDouble(), pos.getZ() + random.nextDouble())
+ .lifetime((int)(16.0D / (Math.random() * 0.8D + 0.2D)))
+ .colour(0.4f + random.nextFloat() * 0.2f, 0.6f + random.nextFloat() * 0.4f, 0.6f + random.nextFloat() * 0.4f)
+ .shaded(true).spawn(world);
+
// Top surface
- Wizardry.proxy.spawnParticle(WizardryParticleType.DUST, world, pos.getX() + random.nextDouble(), pos.getY() + 1,
- pos.getZ() + random.nextDouble(), 0, 0, 0, (int)(16.0D / (Math.random() * 0.8D + 0.2D)),
- 0.4f + random.nextFloat() * 0.2f, 0.6f + random.nextFloat() * 0.4f, 0.6f + random.nextFloat() * 0.4f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DUST, world, pos.getX() + random.nextDouble(), pos.getY() + 1,
- pos.getZ() + random.nextDouble(), 0, 0, 0, (int)(16.0D / (Math.random() * 0.8D + 0.2D)),
- 0.4f + random.nextFloat() * 0.2f, 0.6f + random.nextFloat() * 0.4f, 0.6f + random.nextFloat() * 0.4f);
+ for(int i=0; i<2; i++){
+ ParticleBuilder.create(Type.DUST)
+ .pos(pos.getX() + random.nextDouble(), pos.getY() + 1, pos.getZ() + random.nextDouble())
+ .lifetime((int)(16.0D / (Math.random() * 0.8D + 0.2D)))
+ .colour(0.4f + random.nextFloat() * 0.2f, 0.6f + random.nextFloat() * 0.4f, 0.6f + random.nextFloat() * 0.4f)
+ .shaded(true).spawn(world);
+ }
}
// Overriden to make the block always look full brightness despite not emitting
diff --git a/src/main/java/electroblob/wizardry/client/ClientProxy.java b/src/main/java/electroblob/wizardry/client/ClientProxy.java
index 4adcb7ac..411fdc59 100644
--- a/src/main/java/electroblob/wizardry/client/ClientProxy.java
+++ b/src/main/java/electroblob/wizardry/client/ClientProxy.java
@@ -2,6 +2,7 @@ package electroblob.wizardry.client;
import java.lang.ref.WeakReference;
import java.util.HashMap;
+import java.util.Map;
import org.lwjgl.input.Keyboard;
@@ -11,11 +12,13 @@ import electroblob.wizardry.WizardData;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.client.model.ModelWizardArmour;
import electroblob.wizardry.client.particle.ParticleBlizzard;
+import electroblob.wizardry.client.particle.ParticleBuff;
import electroblob.wizardry.client.particle.ParticleDarkMagic;
import electroblob.wizardry.client.particle.ParticleDust;
-import electroblob.wizardry.client.particle.ParticleGiantBubble;
+import electroblob.wizardry.client.particle.ParticleFlash;
import electroblob.wizardry.client.particle.ParticleIce;
import electroblob.wizardry.client.particle.ParticleLeaf;
+import electroblob.wizardry.client.particle.ParticleMagicBubble;
import electroblob.wizardry.client.particle.ParticleMagicFlame;
import electroblob.wizardry.client.particle.ParticlePath;
import electroblob.wizardry.client.particle.ParticleRotatingSparkle;
@@ -23,6 +26,8 @@ import electroblob.wizardry.client.particle.ParticleSnow;
import electroblob.wizardry.client.particle.ParticleSpark;
import electroblob.wizardry.client.particle.ParticleSparkle;
import electroblob.wizardry.client.particle.ParticleTornado;
+import electroblob.wizardry.client.particle.ParticleWizardry;
+import electroblob.wizardry.client.particle.ParticleWizardry.IWizardryParticleFactory;
import electroblob.wizardry.client.renderer.LayerStone;
import electroblob.wizardry.client.renderer.RenderArc;
import electroblob.wizardry.client.renderer.RenderArcaneWorkbench;
@@ -114,8 +119,9 @@ import electroblob.wizardry.spell.Spell;
import electroblob.wizardry.tileentity.TileEntityArcaneWorkbench;
import electroblob.wizardry.tileentity.TileEntityMagicLight;
import electroblob.wizardry.tileentity.TileEntityStatue;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WandHelper;
-import electroblob.wizardry.util.WizardryParticleType;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
@@ -135,7 +141,6 @@ import net.minecraft.util.EnumParticleTypes;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.BlockPos;
-import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Property;
@@ -154,6 +159,9 @@ public class ClientProxy extends CommonProxy {
/** Static instance of the mixed font renderer */
public static MixedFontRenderer mixedFontRenderer;
+ /** Static particle factory map */
+ private static Map factories;
+
// Key Bindings
public static final KeyBinding NEXT_SPELL = new KeyBinding("key." + Wizardry.MODID + ".next_spell", Keyboard.KEY_N, "key.categories." + Wizardry.MODID);
public static final KeyBinding PREVIOUS_SPELL = new KeyBinding("key." + Wizardry.MODID + ".previous_spell", Keyboard.KEY_B, "key.categories." + Wizardry.MODID);
@@ -265,67 +273,44 @@ public class ClientProxy extends CommonProxy {
// ===============================================================================================================
@Override
- public void spawnParticle(WizardryParticleType type, World world, double x, double y, double z, double velX, double velY, double velZ, int maxAge,
- float r, float g, float b, boolean doGravity, double radius){
+ public void initParticleFactories(){
- // Colour values are now automatically clamped to between 0 and 1, as values outside this range seem to
- // cause strange effects in 1.10 (or more specifically, particles that are bright pink!)
- // TODO: This is a terrible dirty fix, but it'll do for now. Find a nicer way in future.
- if(type != WizardryParticleType.MAGIC_FIRE) r = MathHelper.clamp(r, 0, 1);
- g = MathHelper.clamp(g, 0, 1);
- b = MathHelper.clamp(b, 0, 1);
-
- switch(type){
-
- case BLIZZARD:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleBlizzard(world, maxAge, x, z, radius, y));
- break;
- case BRIGHT_DUST:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDust(world, x, y, z, velX, velY, velZ, r, g, b, false));
- break;
- case DARK_MAGIC:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDarkMagic(world, x, y, z, velX, velY, velZ, r, g, b));
- break;
- case DUST:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDust(world, x, y, z, velX, velY, velZ, r, g, b, true));
- break;
- case ICE:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleIce(world, x, y, z, velX, velY, velZ, maxAge));
- break;
- case LEAF:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleLeaf(world, x, y, z, velX, velY, velZ, maxAge));
- break;
- case MAGIC_BUBBLE:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleGiantBubble(world, x, y, z, velX, velY, velZ));
- break;
- case MAGIC_FIRE:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleMagicFlame(world, x, y, z, velX, velY, velZ, maxAge, r == 0 ? 1 + world.rand.nextFloat() : r));
- break;
- case PATH:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticlePath(world, x, y, z, velX, velY, velZ, r, g, b, maxAge));
- break;
- case SNOW:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleSnow(world, x, y, z, velX, velY, velZ));
- break;
- case SPARK:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleSpark(world, x, y, z, velX, velY, velZ));
- break;
- case SPARKLE:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleSparkle(world, x, y, z, velX, velY, velZ, r, g, b, maxAge, doGravity));
- break;
- case SPARKLE_ROTATING:
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleRotatingSparkle(world, maxAge, x, z, radius, y, r, g, b));
- break;
- default:
- break;
+ factories = new HashMap<>();
+
+ factories.put(Type.BLIZZARD, (world, x, y, z) -> new ParticleBlizzard(world, x, y, z));
+ factories.put(Type.DARK_MAGIC, (world, x, y, z) -> new ParticleDarkMagic(world, x, y, z));
+ factories.put(Type.DUST, (world, x, y, z) -> new ParticleDust(world, x, y, z));
+ factories.put(Type.FLASH, (world, x, y, z) -> new ParticleFlash(world, x, y, z));
+ factories.put(Type.ICE, (world, x, y, z) -> new ParticleIce(world, x, y, z));
+ factories.put(Type.LEAF, (world, x, y, z) -> new ParticleLeaf(world, x, y, z));
+ factories.put(Type.MAGIC_BUBBLE, (world, x, y, z) -> new ParticleMagicBubble(world, x, y, z));
+ factories.put(Type.MAGIC_FIRE, (world, x, y, z) -> new ParticleMagicFlame(world, x, y, z));
+ factories.put(Type.PATH, (world, x, y, z) -> new ParticlePath(world, x, y, z));
+ factories.put(Type.SNOW, (world, x, y, z) -> new ParticleSnow(world, x, y, z));
+ factories.put(Type.SPARK, (world, x, y, z) -> new ParticleSpark(world, x, y, z));
+ factories.put(Type.SPARKLE, (world, x, y, z) -> new ParticleSparkle(world, x, y, z));
+ factories.put(Type.SPARKLE_ROTATING, (world, x, y, z) -> new ParticleRotatingSparkle(world, x, y, z));
+ }
+
+ @Override
+ public ParticleWizardry createParticle(Type type, World world, double x, double y, double z){
+ IWizardryParticleFactory factory = factories.get(type);
+ if(factory == null){
+ Wizardry.logger.warn("Unrecognised particle type %s! Ensure the particle is properly registered.", type);
+ return null;
}
+ return factory.createParticle(world, x, y, z);
}
@Override
public void spawnTornadoParticle(World world, double x, double y, double z, double velX, double velZ, double radius, int maxAge,
IBlockState block, BlockPos pos){
- Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleTornado(world, maxAge, x, z, radius, y, velX, velZ, block).setBlockPos(pos));// ,
- // world.rand.nextInt(6)));
+ Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleTornado(world, maxAge, x, z, radius, y, velX, velZ, block).setBlockPos(pos));// , world.rand.nextInt(6)));
+ }
+
+ @Override
+ public void spawnEntityParticle(World world, Entity entity, int maxAge, float r, float g, float b){
+ Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleBuff(world, entity, maxAge, r, g, b, world.rand.nextBoolean()));
}
// SECTION Packet Handlers
@@ -431,8 +416,8 @@ public class ClientProxy extends CommonProxy {
double x = caster.posX + radius * Math.cos(angle);
double y = caster.getEntityBoundingBox().minY + world.rand.nextDouble() * 2;
double z = caster.posZ + radius * Math.sin(angle);
- Minecraft.getMinecraft().effectRenderer
- .addEffect(new ParticleSparkle(world, x, y, z, 0, 0.02, 0, 0.6f, 1.0f, 0.6f, 80 + world.rand.nextInt(10)));
+ ParticleBuilder.create(Type.SPARKLE).pos(x, y, z).vel(0, 0.02, 0).colour(0.6f, 1, 0.6f)
+ .lifetime(80 + world.rand.nextInt(10)).spawn(world);
}
for(int i = 0; i < 20; i++){
double radius = 1;
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleBlizzard.java b/src/main/java/electroblob/wizardry/client/particle/ParticleBlizzard.java
index 58e84e48..9f7c2828 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleBlizzard.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleBlizzard.java
@@ -11,15 +11,14 @@ public class ParticleBlizzard extends ParticleSnow {
private double radius;
private double speed;
- public ParticleBlizzard(World world, int maxAge, double originX, double originZ, double radius, double yPos){
- super(world, 0, 0, 0, 0, 0, 0, maxAge);
+ public ParticleBlizzard(World world, double ox, double y, double oz){
+ super(world, ox, y, oz);
this.angle = this.rand.nextDouble() * Math.PI * 2;
- double x = originX - Math.cos(angle) * radius;
- double z = originZ + radius * Math.sin(angle);
- this.radius = radius;
- this.setPosition(x, yPos, z);
+ double x = ox - Math.cos(angle) * radius;
+ double z = oz + radius * Math.sin(angle);
+ this.setPosition(x, y, z);
this.prevPosX = x;
- this.prevPosY = yPos;
+ this.prevPosY = y;
this.prevPosZ = z;
if(rand.nextBoolean()){
speed = rand.nextDouble() * 2 + 1;
@@ -29,12 +28,6 @@ public class ParticleBlizzard extends ParticleSnow {
this.multipleParticleScaleBy(1.5f);
}
- @Override
- public void init(){
- super.init();
- this.fullBrightness = true;
- }
-
// @Override
// public void renderParticle(VertexBuffer buffer, Entity entity, float partialTicks, float rotationX, float
// rotationZ, float rotationYZ, float rotationXY, float rotationXZ){
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleCustomTexture.java b/src/main/java/electroblob/wizardry/client/particle/ParticleCustomTexture.java
index 090ea7c9..46f33ad4 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleCustomTexture.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleCustomTexture.java
@@ -13,43 +13,14 @@ import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
-import net.minecraftforge.fml.relauncher.Side;
-import net.minecraftforge.fml.relauncher.SideOnly;
-/**
- * Abstract superclass for all particles that use custom textures. This is intended to centralise as much code as
- * possible; all subclasses need to do is to define the texture to use, how the frames are arranged (and which to
- * choose), and any properties like gravity and collisions.
- *
- * @author Electroblob
- * @since Wizardry 1.2
- */
-@SideOnly(Side.CLIENT)
-public abstract class ParticleCustomTexture extends Particle {
+@Deprecated
+public abstract class ParticleCustomTexture extends ParticleWizardry {
- /** True if the particle always renders at full brightness. Defaults to false. */
- protected boolean fullBrightness = false;
-
- public ParticleCustomTexture(World world, double x, double y, double z, double vx, double vy, double vz){
- super(world, x, y, z, vx, vy, vz);
- this.motionX = vx;
- this.motionY = vy;
- this.motionZ = vz;
- this.init();
+ public ParticleCustomTexture(World world, double x, double y, double z){
+ super(world, x, y, z);
}
- public ParticleCustomTexture(World world, double x, double y, double z, double vx, double vy, double vz,
- int maxAge){
- this(world, x, y, z, vx, vy, vz);
- this.particleMaxAge = maxAge;
- }
-
- /**
- * Called from both constructors to set constants, avoiding duplicate code. Common fields to set here include:
- * particleScale, particleGravity, canCollide, fullBrightness and setting the texture index.
- */
- public abstract void init();
-
/**
* Returns a ResourceLocation for the particle's texture sheet. Do not create a new ResourceLocation in this method,
* only return a constant.
@@ -83,59 +54,6 @@ public abstract class ParticleCustomTexture extends Particle {
this.particleTextureIndexY = index / getYFrames();
}
- // Overridden to fix the bug with vanilla that makes particles frictionless. (y != y... seriously, Mojang?)
- // TESTME: Probably no longer necessary.
- // @Override
- // public void move(double x, double y, double z){
- //
- // double d0 = y;
- //
- // if (this.canCollide)
- // {
- // List list = this.world.getCollisionBoxes((Entity)null, this.getBoundingBox().addCoord(x, y, z));
- //
- // for (AxisAlignedBB axisalignedbb : list)
- // {
- // y = axisalignedbb.calculateYOffset(this.getBoundingBox(), y);
- // }
- //
- // this.setBoundingBox(this.getBoundingBox().offset(0.0D, y, 0.0D));
- //
- // for (AxisAlignedBB axisalignedbb1 : list)
- // {
- // x = axisalignedbb1.calculateXOffset(this.getBoundingBox(), x);
- // }
- //
- // this.setBoundingBox(this.getBoundingBox().offset(x, 0.0D, 0.0D));
- //
- // for (AxisAlignedBB axisalignedbb2 : list)
- // {
- // z = axisalignedbb2.calculateZOffset(this.getBoundingBox(), z);
- // }
- //
- // this.setBoundingBox(this.getBoundingBox().offset(0.0D, 0.0D, z));
- // }
- // else
- // {
- // this.setBoundingBox(this.getBoundingBox().offset(x, y, z));
- // }
- //
- // this.resetPositionToBB();
- // this.onGround = d0 != y && d0 < 0.0D;
- //
- // /* Can never be true! - But this doesn't seem to make any difference anyway.
- // if (x != x)
- // {
- // this.motionX = 0.0D;
- // }
- //
- // if (z != z)
- // {
- // this.motionZ = 0.0D;
- // }
- // */
- // }
-
// Overridden to bind the new texture. I think this can be done with TextureAtlasSprite, but this works as it is
// so I'm not changing it for the time being.
@Override
@@ -211,9 +129,4 @@ public abstract class ParticleCustomTexture extends Particle {
*/
public void undoGLStateChanges(){
}
-
- @Override
- public int getBrightnessForRender(float partialTick){
- return fullBrightness ? 15728880 : super.getBrightnessForRender(partialTick);
- }
}
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleDarkMagic.java b/src/main/java/electroblob/wizardry/client/particle/ParticleDarkMagic.java
index 9c962a00..b4bc8710 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleDarkMagic.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleDarkMagic.java
@@ -1,6 +1,5 @@
package electroblob.wizardry.client.particle;
-import net.minecraft.client.particle.Particle;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;
@@ -8,20 +7,16 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
-public class ParticleDarkMagic extends Particle {
+public class ParticleDarkMagic extends ParticleWizardry {
/** Base spell texture index */
private int baseSpellTextureIndex = 128;
- public ParticleDarkMagic(World par1World, double par2, double par4, double par6, double par8, double par10,
- double par12, float r, float g, float b){
- super(par1World, par2, par4, par6, par8, par10, par12);
+ public ParticleDarkMagic(World world, double x, double y, double z){
+ super(world, x, y, z);
+
this.motionY *= 0.20000000298023224D;
-
- this.particleRed = r;
- this.particleGreen = g;
- this.particleBlue = b;
-
+ this.setRBGColorF(1, 1, 1);
this.particleScale *= 0.75F;
this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D));
this.canCollide = true;
@@ -43,9 +38,7 @@ public class ParticleDarkMagic extends Particle {
super.renderParticle(buffer, entity, partialTicks, rotationX, rotationZ, rotationYZ, rotationXY, rotationXZ);
}
- /**
- * Called to update the entity's position/logic.
- */
+ @Override
public void onUpdate(){
this.prevPosX = this.posX;
this.prevPosY = this.posY;
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleDust.java b/src/main/java/electroblob/wizardry/client/particle/ParticleDust.java
index c37dbb51..3a7f70fd 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleDust.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleDust.java
@@ -1,34 +1,25 @@
package electroblob.wizardry.client.particle;
-import net.minecraft.client.particle.Particle;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
-public class ParticleDust extends Particle {
+public class ParticleDust extends ParticleWizardry {
- private final boolean shaded;
-
- public ParticleDust(World par1World, double x, double y, double z, double par8, double par10, double par12, float r,
- float g, float b, boolean shaded){
- super(par1World, x, y, z, par8, par10, par12);
- this.particleRed = r;
- this.particleGreen = g;
- this.particleBlue = b;
+ public ParticleDust(World world, double x, double y, double z){
+ super(world, x, y, z);
+
this.setParticleTextureIndex(0);
this.setSize(0.01F, 0.01F);
+
+ // Defaults
this.particleScale *= this.rand.nextFloat() + 0.2F;
- this.motionX = par8;
- this.motionY = par10;
- this.motionZ = par12;
this.particleMaxAge = (int)(16.0D / (Math.random() * 0.8D + 0.2D));
- this.shaded = shaded;
+ this.setRBGColorF(1, 1, 1);
}
- /**
- * Called to update the entity's position/logic.
- */
+ @Override
public void onUpdate(){
this.prevPosX = this.posX;
this.prevPosY = this.posY;
@@ -39,10 +30,4 @@ public class ParticleDust extends Particle {
this.setExpired();
}
}
-
- @Override
- public int getBrightnessForRender(float par1){
- return shaded ? super.getBrightnessForRender(par1) : 15728880;
- }
- /* @Override public float getBrightness(float par1) { return shaded ? super.getBrightness(par1) : 1.0F; } */
}
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleIce.java b/src/main/java/electroblob/wizardry/client/particle/ParticleIce.java
index dd548900..7c703f7c 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleIce.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleIce.java
@@ -9,26 +9,20 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class ParticleIce extends ParticleCustomTexture {
- private static final ResourceLocation TEXTURE = new ResourceLocation(Wizardry.MODID,
- "textures/particle/ice_particles.png");
+ private static final ResourceLocation TEXTURE = new ResourceLocation(Wizardry.MODID, "textures/particle/ice_particles.png");
- public ParticleIce(World world, double x, double y, double z, double vx, double vy, double vz){
- super(world, x, y, z, vx, vy, vz);
- }
-
- public ParticleIce(World world, double x, double y, double z, double vx, double vy, double vz, int maxAge){
- super(world, x, y, z, vx, vy, vz, maxAge);
- }
-
- @Override
- public void init(){
+ public ParticleIce(World world, double x, double y, double z){
+ super(world, x, y, z);
+
this.setParticleTextureIndex(rand.nextInt(8));
- this.particleScale *= 0.75f;
- this.particleGravity = 1;
this.canCollide = true;
- this.fullBrightness = true;
+
+ // Defaults
+ this.particleScale *= 0.75f;
+ this.setGravity(true);
+ this.shaded = false;
}
-
+
@Override
public ResourceLocation getTexture(){
return TEXTURE;
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleLeaf.java b/src/main/java/electroblob/wizardry/client/particle/ParticleLeaf.java
index e2610a3d..11efd7bb 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleLeaf.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleLeaf.java
@@ -12,16 +12,10 @@ public class ParticleLeaf extends ParticleCustomTexture {
private static final ResourceLocation TEXTURE = new ResourceLocation(Wizardry.MODID,
"textures/particle/leaf_particles.png");
- public ParticleLeaf(World world, double x, double y, double z, double vx, double vy, double vz){
- super(world, x, y, z, vx, vy, vz);
- }
-
- public ParticleLeaf(World world, double x, double y, double z, double vx, double vy, double vz, int maxAge){
- super(world, x, y, z, vx, vy, vz, maxAge);
- }
-
- @Override
- public void init(){
+ public ParticleLeaf(World world, double x, double y, double z){
+ super(world, x, y, z);
+ this.setVelocity(0, -0.03, 0);
+ this.setLifetime(10 + rand.nextInt(5));
this.setParticleTextureIndex(rand.nextInt(16));
this.particleScale *= 1.4f;
this.particleGravity = 0;
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleMagicFlame.java b/src/main/java/electroblob/wizardry/client/particle/ParticleMagicFlame.java
index d16a53b3..8a1051e0 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleMagicFlame.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleMagicFlame.java
@@ -8,24 +8,21 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
-public class ParticleMagicFlame extends Particle {
+public class ParticleMagicFlame extends ParticleWizardry {
/** The scale of the flame particle */
private float flameScale;
- public ParticleMagicFlame(World par1World, double par2, double par4, double par6, double par8, double par10,
- double par12, int maxAge, float scale){
- super(par1World, par2, par4, par6, par8, par10, par12);
- this.motionX = this.motionX * 0.009999999776482582D + par8;
- this.motionY = this.motionY * 0.009999999776482582D + par10;
- this.motionZ = this.motionZ * 0.009999999776482582D + par12;
- this.flameScale = scale;
- this.particleRed = this.particleGreen = this.particleBlue = 1.0F;
- if(maxAge == 0){
- this.particleMaxAge = (int)(2.0D / (Math.random() * 0.8D + 0.2D));
- }else{
- this.particleMaxAge = maxAge;
- }
+ public ParticleMagicFlame(World world, double x, double y, double z){
+ super(world, x, y, z);
+ // Not sure what these did but they sure as heck won't do anything now...
+ // TESTME: If it looks the same as before, delete these.
+// this.motionX = this.motionX * 0.009999999776482582D + par8;
+// this.motionY = this.motionY * 0.009999999776482582D + par10;
+// this.motionZ = this.motionZ * 0.009999999776482582D + par12;
+ this.flameScale = 1 + world.rand.nextFloat();
+ this.setRBGColorF(1, 1, 1);
+ this.particleMaxAge = (int)(2.0D / (Math.random() * 0.8D + 0.2D));
// IDEA: Make the particles for ray spells collide properly and not spawn on the other side of stuff.
this.canCollide = false;
this.setParticleTextureIndex(48);
@@ -43,4 +40,10 @@ public class ParticleMagicFlame extends Particle {
public int getBrightnessForRender(float par1){
return 256;
}
+
+ @Override
+ public Particle multipleParticleScaleBy(float scale){
+ this.flameScale *= scale;
+ return super.multipleParticleScaleBy(scale);
+ }
}
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticlePath.java b/src/main/java/electroblob/wizardry/client/particle/ParticlePath.java
index 4db78d66..189cb962 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticlePath.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticlePath.java
@@ -19,32 +19,20 @@ public class ParticlePath extends ParticleCustomTexture {
private final double originX, originY, originZ;
- public ParticlePath(World world, double x, double y, double z, double vx, double vy, double vz, float r, float g,
- float b){
- super(world, x, y, z, vx, vy, vz);
- this.setRBGColorF(r, g, b);
+ public ParticlePath(World world, double x, double y, double z){
+ super(world, x, y, z);
+
this.originX = x;
this.originY = y;
this.originZ = z;
- }
-
- public ParticlePath(World world, double x, double y, double z, double vx, double vy, double vz, float r, float g,
- float b, int maxAge){
- super(world, x, y, z, vx, vy, vz, maxAge);
- this.setRBGColorF(r, g, b);
- this.originX = x;
- this.originY = y;
- this.originZ = z;
- }
-
- @Override
- public void init(){
+
this.setParticleTextureIndex(0);
// Set to a constant to remove the randomness from Particle.
this.particleScale = 1.25f;
this.particleGravity = 0;
- this.fullBrightness = true;
+ this.shaded = false;
this.canCollide = false;
+ this.setRBGColorF(1, 1, 1);
}
@Override
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleRotatingSparkle.java b/src/main/java/electroblob/wizardry/client/particle/ParticleRotatingSparkle.java
index 498bb038..ba804d58 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleRotatingSparkle.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleRotatingSparkle.java
@@ -11,16 +11,15 @@ public class ParticleRotatingSparkle extends ParticleSparkle {
private double radius;
private double speed;
- public ParticleRotatingSparkle(World world, int maxAge, double originX, double originZ, double radius, double yPos,
- float r, float g, float b){
- super(world, 0, 0, 0, 0, 0, 0, r, g, b, maxAge);
+ public ParticleRotatingSparkle(World world, double ox, double y, double oz){
+ super(world, ox, y, oz);
this.angle = this.rand.nextDouble() * Math.PI * 2;
- double x = originX - Math.cos(angle) * radius;
- double z = originZ + radius * Math.sin(angle);
- this.radius = radius;
- this.setPosition(x, yPos, z);
+ double x = ox - Math.cos(angle) * radius;
+ double z = oz + radius * Math.sin(angle);
+ this.radius = 1; // TODO: Find a suitable default value
+ this.setPosition(x, y, z);
this.prevPosX = x;
- this.prevPosY = yPos;
+ this.prevPosY = y;
this.prevPosZ = z;
if(rand.nextBoolean()){
speed = rand.nextDouble() * 2 + 1;
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleSnow.java b/src/main/java/electroblob/wizardry/client/particle/ParticleSnow.java
index e0d5250d..a18ff4d9 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleSnow.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleSnow.java
@@ -12,22 +12,16 @@ public class ParticleSnow extends ParticleCustomTexture {
private static final ResourceLocation TEXTURE = new ResourceLocation(Wizardry.MODID,
"textures/particle/snow_particles.png");
- public ParticleSnow(World world, double x, double y, double z, double vx, double vy, double vz){
- super(world, x, y, z, vx, vy, vz);
- }
-
- public ParticleSnow(World world, double x, double y, double z, double vx, double vy, double vz, int maxAge){
- super(world, x, y, z, vx, vy, vz, maxAge);
- }
-
- @Override
- public void init(){
+ public ParticleSnow(World world, double x, double y, double z){
+ super(world, x, y, z);
this.setParticleTextureIndex(rand.nextInt(8));
+ this.setVelocity(0, -0.02, 0);
this.particleScale *= 0.6f;
this.particleGravity = 0;
this.canCollide = true;
+ this.setLifetime(40 + rand.nextInt(10));
}
-
+
@Override
public ResourceLocation getTexture(){
return TEXTURE;
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleSpark.java b/src/main/java/electroblob/wizardry/client/particle/ParticleSpark.java
index 201d2373..a94103f1 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleSpark.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleSpark.java
@@ -16,18 +16,14 @@ public class ParticleSpark extends ParticleCustomTexture {
private static final ResourceLocation TEXTURE = new ResourceLocation(Wizardry.MODID,
"textures/particle/lightning_particles.png");
- public ParticleSpark(World world, double x, double y, double z, double vx, double vy, double vz){
- // Max age is always 3.
- super(world, x, y, z, vx, vy, vz, 3);
- }
-
- @Override
- public void init(){
+ public ParticleSpark(World world, double x, double y, double z){
+ super(world, x, y, z);
// Multiplied by 4 because the index works slightly differently for spark particles.
this.setParticleTextureIndex(rand.nextInt(8) * 4);
this.particleScale *= 1.4f;
- this.fullBrightness = true;
+ this.shaded = false;
this.canCollide = false;
+ this.setLifetime(3); // Lifetime defaults to 3 (and is very unlikely to be changed)
}
@Override
diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleSparkle.java b/src/main/java/electroblob/wizardry/client/particle/ParticleSparkle.java
index fdbd553c..f63bfcfb 100644
--- a/src/main/java/electroblob/wizardry/client/particle/ParticleSparkle.java
+++ b/src/main/java/electroblob/wizardry/client/particle/ParticleSparkle.java
@@ -9,66 +9,33 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class ParticleSparkle extends ParticleCustomTexture {
- /* I have now figured out what particle factories are for: they separate out the individual uses of the varargs
- * parameter in spawnParticle so they are kept with the particle class. For my purposes, it would be easier to do
- * that in the particle spawning method itself. */
-
private static final ResourceLocation TEXTURE = new ResourceLocation(Wizardry.MODID,
"textures/particle/sparkle_particles.png");
- // NOTE: Uncomment once 2.1.0 is released
- // private final float initialRed;
- // private final float initialGreen;
- // private final float initialBlue;
+ // Implementation of colour fading (perhaps these belong in ParticleWizardry?)
+ private float initialRed;
+ private float initialGreen;
+ private float initialBlue;
- // TODO: Assign these via the constructors, as part of the refactoring for particle parameters.
- // NOTE: Uncomment once 2.1.0 is released
- // private final float fadeRed = 1;
- // private final float fadeGreen = 1;
- // private final float fadeBlue = 0;
-
- public ParticleSparkle(World world, double x, double y, double z, double vx, double vy, double vz, float r, float g,
- float b){
- super(world, x, y, z, vx, vy, vz);
- this.setRBGColorF(r, g, b);
- // NOTE: Uncomment once 2.1.0 is released
- // initialRed = r;
- // initialGreen = g;
- // initialBlue = b;
+ public ParticleSparkle(World world, double x, double y, double z){
+ super(world, x, y, z);
+ this.setRBGColorF(1, 1, 1);
this.particleMaxAge = 48 + this.rand.nextInt(12);
- }
-
- public ParticleSparkle(World world, double x, double y, double z, double vx, double vy, double vz, float r, float g,
- float b, int maxAge){
- super(world, x, y, z, vx, vy, vz, maxAge);
- this.setRBGColorF(r, g, b);
- // NOTE: Uncomment once 2.1.0 is released
- // initialRed = r;
- // initialGreen = g;
- // initialBlue = b;
- }
-
- public ParticleSparkle(World world, double x, double y, double z, double vx, double vy, double vz, float r, float g,
- float b, boolean doGravity){
- this(world, x, y, z, vx, vy, vz, r, g, b);
- this.particleGravity = doGravity ? 1 : 0;
- }
-
- public ParticleSparkle(World world, double x, double y, double z, double vx, double vy, double vz, float r, float g,
- float b, int maxAge, boolean doGravity){
- this(world, x, y, z, vx, vy, vz, r, g, b, maxAge);
- this.particleGravity = doGravity ? 1 : 0;
- }
-
- @Override
- public void init(){
- this.setParticleTextureIndex(rand.nextInt(16));
this.particleScale *= 0.75f;
this.particleGravity = 0;
this.canCollide = false;
- this.fullBrightness = true;
+ this.shaded = false;
}
+ // Overridden to set the initial colour values
+ @Override
+ public void setRBGColorF(float r, float g, float b){
+ super.setRBGColorF(r, g, b);
+ initialRed = r;
+ initialGreen = g;
+ initialBlue = b;
+ }
+
@Override
public ResourceLocation getTexture(){
return TEXTURE;
@@ -88,17 +55,20 @@ public class ParticleSparkle extends ParticleCustomTexture {
public void onUpdate(){
super.onUpdate();
+
// Fading
if(this.particleAge > this.particleMaxAge / 2){
this.setAlphaF(
1.0F - ((float)this.particleAge - (float)(this.particleMaxAge / 2)) / (float)this.particleMaxAge);
}
- // Colour fading TODO Uncomment once 2.1.0 is released
- // float ageFraction = (float)this.particleAge / (float)this.particleMaxAge;
- // this.setRBGColorF(this.initialRed + (this.fadeRed - this.initialRed)*ageFraction,
- // this.initialGreen + (this.fadeGreen - this.initialGreen)*ageFraction,
- // this.initialBlue + (this.fadeBlue - this.initialBlue)*ageFraction);
+ // Colour fading
+ float ageFraction = (float)this.particleAge / (float)this.particleMaxAge;
+ // No longer uses setRBGColorF because that method now also sets the initial values
+ this.particleRed = this.initialRed + (this.fadeRed - this.initialRed)*ageFraction;
+ this.particleGreen = this.initialGreen + (this.fadeGreen - this.initialGreen)*ageFraction;
+ this.particleBlue = this.initialBlue + (this.fadeBlue - this.initialBlue)*ageFraction;
+
this.setParticleTextureIndex((this.particleAge * 11)/this.particleMaxAge);
}
diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityBlizzard.java b/src/main/java/electroblob/wizardry/entity/construct/EntityBlizzard.java
index 50ecabd4..358eb4a6 100644
--- a/src/main/java/electroblob/wizardry/entity/construct/EntityBlizzard.java
+++ b/src/main/java/electroblob/wizardry/entity/construct/EntityBlizzard.java
@@ -2,12 +2,12 @@ package electroblob.wizardry.entity.construct;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.potion.PotionEffect;
@@ -61,16 +61,23 @@ public class EntityBlizzard extends EntityMagicConstruct {
target.addPotionEffect(new PotionEffect(WizardryPotions.frost, 20, 0));
}
}else{
- // For some reason this number of particles now causes the game to lag significantly, despite it being fine
- // in 1.7.10. I thought particles were supposed to be LESS laggy now...
- for(int i = 1; i < 6; i++){
+ for(int i=1; i<6; i++){
+
float brightness = 0.5f + (rand.nextFloat() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.BLIZZARD, world, this.posX,
- this.posY + rand.nextDouble() * 3, this.posZ, 0, 0, 0, 100, brightness, brightness + 0.1f, 1.0f,
- false, rand.nextDouble() * 2.5d + 0.5d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.BLIZZARD, world, this.posX,
- this.posY + rand.nextDouble() * 3, this.posZ, 0, 0, 0, 100, 1.0f, 1.0f, 1.0f, false,
- rand.nextDouble() * 2.5d + 0.5d);
+
+ ParticleBuilder.create(Type.BLIZZARD)
+ .pos(this.posX, this.posY + rand.nextDouble() * 3, this.posZ)
+ .lifetime(100)
+ .colour(brightness, brightness + 0.1f, 1.0f)
+ .radius(rand.nextDouble() * 2.5d + 0.5d)
+ .spawn(world);
+
+ ParticleBuilder.create(Type.BLIZZARD)
+ .pos(this.posX, this.posY + rand.nextDouble() * 3, this.posZ)
+ .lifetime(100)
+ .colour(1, 1, 1)
+ .radius(rand.nextDouble() * 2.5d + 0.5d)
+ .spawn(world);
}
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityDecay.java b/src/main/java/electroblob/wizardry/entity/construct/EntityDecay.java
index a2835764..19b150d6 100644
--- a/src/main/java/electroblob/wizardry/entity/construct/EntityDecay.java
+++ b/src/main/java/electroblob/wizardry/entity/construct/EntityDecay.java
@@ -2,9 +2,9 @@ package electroblob.wizardry.entity.construct;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryPotions;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.SoundEvents;
@@ -53,12 +53,17 @@ public class EntityDecay extends EntityMagicConstruct {
target.addPotionEffect(new PotionEffect(WizardryPotions.decay, LIFETIME, 0));
}
}
+
}else if(this.rand.nextInt(15) == 0){
+
double radius = rand.nextDouble() * 0.8;
double angle = rand.nextDouble() * Math.PI * 2;
float brightness = rand.nextFloat() * 0.4f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, this.posX + radius * Math.cos(angle),
- this.posY, this.posZ + radius * Math.sin(angle), 0, 0, 0, 0, brightness, 0, brightness + 0.1f);
+
+ ParticleBuilder.create(Type.DARK_MAGIC)
+ .pos(this.posX + radius * Math.cos(angle), this.posY, this.posZ + radius * Math.sin(angle))
+ .colour(brightness, 0, brightness + 0.1f)
+ .spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityForcefield.java b/src/main/java/electroblob/wizardry/entity/construct/EntityForcefield.java
index f26c8a95..8717ccaa 100644
--- a/src/main/java/electroblob/wizardry/entity/construct/EntityForcefield.java
+++ b/src/main/java/electroblob/wizardry/entity/construct/EntityForcefield.java
@@ -2,9 +2,9 @@ package electroblob.wizardry.entity.construct;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardrySounds;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -62,15 +62,18 @@ public class EntityForcefield extends EntityMagicConstruct {
}
}else{
for(int i = 1; i < 40; i++){
+
+ // Generates a spherical pattern of particles
float brightness = 0.5f + (rand.nextFloat() * 0.5f);
double radius = 3;
double yaw = rand.nextDouble() * Math.PI * 2;
double pitch = (rand.nextDouble() - 0.5) * Math.PI;
- // Generates a spherical pattern of particles
- Wizardry.proxy.spawnParticle(WizardryParticleType.BRIGHT_DUST, world,
- this.posX + radius * Math.cos(yaw) * Math.cos(pitch), this.posY + 3 + radius * Math.sin(pitch),
- this.posZ + radius * Math.sin(yaw) * Math.cos(pitch), 0, 0, 0, 48 + this.rand.nextInt(12),
- brightness, brightness, 1.0f);
+
+ ParticleBuilder.create(Type.DUST)
+ .pos(this.posX + radius * Math.cos(yaw) * Math.cos(pitch), this.posY + 3 + radius * Math.sin(pitch),
+ this.posZ + radius * Math.sin(yaw) * Math.cos(pitch))
+ .lifetime(48 + this.rand.nextInt(12))
+ .colour(brightness, brightness, 1.0f);
}
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityFrostSigil.java b/src/main/java/electroblob/wizardry/entity/construct/EntityFrostSigil.java
index 7812ca96..cb29f67e 100644
--- a/src/main/java/electroblob/wizardry/entity/construct/EntityFrostSigil.java
+++ b/src/main/java/electroblob/wizardry/entity/construct/EntityFrostSigil.java
@@ -2,12 +2,12 @@ package electroblob.wizardry.entity.construct;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.potion.PotionEffect;
@@ -74,8 +74,10 @@ public class EntityFrostSigil extends EntityMagicConstruct {
}else if(this.rand.nextInt(15) == 0){
double radius = 0.5 + rand.nextDouble() * 0.3;
double angle = rand.nextDouble() * Math.PI * 2;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, world, this.posX + radius * Math.cos(angle),
- this.posY + 0.1, this.posZ + radius * Math.sin(angle), 0, 0, 0, 40 + rand.nextInt(10));
+ ParticleBuilder.create(Type.SNOW)
+ .pos(this.posX + radius * Math.cos(angle), this.posY + 0.1, this.posZ + radius * Math.sin(angle))
+ .vel(0, 0, 0) // Required since default for snow is not stationary
+ .spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityHammer.java b/src/main/java/electroblob/wizardry/entity/construct/EntityHammer.java
index 13225ca7..a66fb43c 100644
--- a/src/main/java/electroblob/wizardry/entity/construct/EntityHammer.java
+++ b/src/main/java/electroblob/wizardry/entity/construct/EntityHammer.java
@@ -7,7 +7,8 @@ import electroblob.wizardry.entity.EntityArc;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
@@ -69,8 +70,9 @@ public class EntityHammer extends EntityMagicConstruct {
}
if(this.world.isRemote && this.ticksExisted % 3 == 0){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, this.posX - 0.5d + rand.nextDouble(),
- this.posY + 2 * rand.nextDouble(), this.posZ - 0.5d + rand.nextDouble(), 0, 0, 0, 3);
+ ParticleBuilder.create(Type.SPARK)
+ .pos(this.posX - 0.5d + rand.nextDouble(), this.posY + 2 * rand.nextDouble(), this.posZ - 0.5d + rand.nextDouble())
+ .spawn(world);
}
if(!this.world.isRemote){
@@ -109,12 +111,14 @@ public class EntityHammer extends EntityMagicConstruct {
target.posY + target.height / 2, target.posZ);
world.spawnEntity(arc);
}else{
- for(int j = 0; j < 8; j++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
- target.posX + world.rand.nextFloat() - 0.5,
- target.getEntityBoundingBox().minY + target.height / 2
- + world.rand.nextFloat() * 2 - 1,
- target.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
+ // TODO: Move all the arc particle (and sound?) stuff into a method in WizardryUtilities
+ for(int j=0; j<8; j++){
+ ParticleBuilder.create(Type.SPARK)
+ .pos(target.posX + world.rand.nextFloat() - 0.5,
+ target.getEntityBoundingBox().minY + target.height / 2 + world.rand.nextFloat() * 2 - 1,
+ target.posZ + world.rand.nextFloat() - 0.5)
+ .spawn(world);
+
world.spawnParticle(EnumParticleTypes.SMOKE_LARGE, target.posX + rand.nextFloat(),
target.getEntityBoundingBox().minY + target.height / 2 + rand.nextFloat(),
target.posZ + rand.nextFloat(), 0, 0, 0);
diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityHealAura.java b/src/main/java/electroblob/wizardry/entity/construct/EntityHealAura.java
index 25f93849..8ca40faa 100644
--- a/src/main/java/electroblob/wizardry/entity/construct/EntityHealAura.java
+++ b/src/main/java/electroblob/wizardry/entity/construct/EntityHealAura.java
@@ -2,11 +2,11 @@ package electroblob.wizardry.entity.construct;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.DamageSource;
@@ -69,13 +69,16 @@ public class EntityHealAura extends EntityMagicConstruct {
}
}
}else{
- for(int i = 1; i < 3; i++){
+ for(int i=1; i<3; i++){
float brightness = 0.5f + (rand.nextFloat() * 0.5f);
double radius = rand.nextDouble() * 2.0;
double angle = rand.nextDouble() * Math.PI * 2;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, this.posX + radius * Math.cos(angle),
- this.posY, this.posZ + radius * Math.sin(angle), 0, 0.05f, 0, 48 + this.rand.nextInt(12), 1.0f,
- 1.0f, brightness);
+ ParticleBuilder.create(Type.SPARKLE)
+ .pos(this.posX + radius * Math.cos(angle), this.posY, this.posZ + radius * Math.sin(angle))
+ .vel(0, 0.05, 0)
+ .lifetime(48 + this.rand.nextInt(12))
+ .colour(1.0f, 1.0f, brightness)
+ .spawn(world);
}
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityLightningSigil.java b/src/main/java/electroblob/wizardry/entity/construct/EntityLightningSigil.java
index 7e427637..0c2bb112 100644
--- a/src/main/java/electroblob/wizardry/entity/construct/EntityLightningSigil.java
+++ b/src/main/java/electroblob/wizardry/entity/construct/EntityLightningSigil.java
@@ -2,12 +2,12 @@ package electroblob.wizardry.entity.construct;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.entity.EntityArc;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.DamageSource;
@@ -44,8 +44,6 @@ public class EntityLightningSigil extends EntityMagicConstruct {
this.setDead();
}
- // if(!this.world.isRemote){
-
List targets = WizardryUtilities.getEntitiesWithinRadius(1.0d, this.posX, this.posY,
this.posZ, this.world);
@@ -90,11 +88,11 @@ public class EntityLightningSigil extends EntityMagicConstruct {
world.spawnEntity(arc);
}else{
for(int k = 0; k < 8; k++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
- secondaryTarget.posX + world.rand.nextFloat() - 0.5,
- secondaryTarget.getEntityBoundingBox().minY + secondaryTarget.height / 2
- + world.rand.nextFloat() * 2 - 1,
- secondaryTarget.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
+ ParticleBuilder.create(Type.SPARK)
+ .pos(secondaryTarget.posX + world.rand.nextFloat() - 0.5,
+ secondaryTarget.getEntityBoundingBox().minY + secondaryTarget.height / 2 + world.rand.nextFloat() * 2 - 1,
+ secondaryTarget.posZ + world.rand.nextFloat() - 0.5)
+ .spawn(world);
world.spawnParticle(EnumParticleTypes.SMOKE_LARGE,
secondaryTarget.posX + world.rand.nextFloat() - 0.5,
secondaryTarget.getEntityBoundingBox().minY + secondaryTarget.height / 2
@@ -116,13 +114,13 @@ public class EntityLightningSigil extends EntityMagicConstruct {
}
}
}
- // }
if(this.world.isRemote && this.rand.nextInt(15) == 0){
double radius = 0.5 + rand.nextDouble() * 0.3;
double angle = rand.nextDouble() * Math.PI * 2;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, this.posX + radius * Math.cos(angle),
- this.posY + 0.1, this.posZ + radius * Math.sin(angle), 0, 0, 0, 3);
+ ParticleBuilder.create(Type.SPARK)
+ .pos(this.posX + radius * Math.cos(angle), this.posY + 0.1, this.posZ + radius * Math.sin(angle))
+ .spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityTornado.java b/src/main/java/electroblob/wizardry/entity/construct/EntityTornado.java
index 5f8abcb0..908ac574 100644
--- a/src/main/java/electroblob/wizardry/entity/construct/EntityTornado.java
+++ b/src/main/java/electroblob/wizardry/entity/construct/EntityTornado.java
@@ -7,7 +7,8 @@ import electroblob.wizardry.registry.WizardryAdvancementTriggers;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import io.netty.buffer.ByteBuf;
import net.minecraft.block.material.Material;
@@ -133,24 +134,22 @@ public class EntityTornado extends EntityMagicConstruct {
yPos / 3 + 0.5d, 100, block, pos1);
Wizardry.proxy.spawnTornadoParticle(world, this.posX, this.posY + yPos, this.posZ, this.velX, this.velZ,
yPos / 3 + 0.5d, 100, block, pos1);
+
+ // Sometimes spawns leaf particles if the block is leaves, or snow particles if the block is snow
+ if(this.rand.nextInt(3) == 0){
- // Sometimes spawns leaf particles if the block is leaves
- if(block.getMaterial() == Material.LEAVES && this.rand.nextInt(3) == 0){
+ Type type = null;
+
+ if(block.getMaterial() == Material.LEAVES) type = Type.LEAF;
+ if(block.getMaterial() == Material.SNOW || block.getMaterial() == Material.CRAFTED_SNOW)
+ type = Type.SNOW;
+
double yPos1 = rand.nextDouble() * 8;
- Wizardry.proxy.spawnParticle(WizardryParticleType.LEAF, world,
- this.posX + (rand.nextDouble() * 2 - 1) * (yPos1 / 3 + 0.5d), this.posY + yPos1,
- this.posZ + (rand.nextDouble() * 2 - 1) * (yPos1 / 3 + 0.5d), 0, -0.05, 0,
- 40 + rand.nextInt(10));
- }
-
- // Sometimes spawns snow particles if the block is snow
- if(block.getMaterial() == Material.SNOW
- || block.getMaterial() == Material.CRAFTED_SNOW && this.rand.nextInt(3) == 0){
- double yPos1 = rand.nextDouble() * 8;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, world,
- this.posX + (rand.nextDouble() * 2 - 1) * (yPos1 / 3 + 0.5d), this.posY + yPos1,
- this.posZ + (rand.nextDouble() * 2 - 1) * (yPos1 / 3 + 0.5d), 0, -0.02, 0,
- 40 + rand.nextInt(10));
+ ParticleBuilder.create(type)
+ .pos(this.posX + (rand.nextDouble() * 2 - 1) * (yPos1 / 3 + 0.5d), this.posY + yPos1,
+ this.posZ + (rand.nextDouble() * 2 - 1) * (yPos1 / 3 + 0.5d))
+ .lifetime(40 + rand.nextInt(10))
+ .spawn(world);
}
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityDecoy.java b/src/main/java/electroblob/wizardry/entity/living/EntityDecoy.java
index dfe9c44f..5ec8aa58 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntityDecoy.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntityDecoy.java
@@ -2,8 +2,8 @@ package electroblob.wizardry.entity.living;
import java.lang.ref.WeakReference;
-import electroblob.wizardry.Wizardry;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
@@ -40,10 +40,13 @@ public class EntityDecoy extends EntitySummonedCreature {
public void onDespawn(){
super.onDespawn();
for(int i = 0; i < 20; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DUST, world,
- this.posX + (this.rand.nextDouble() - 0.5) * this.width,
- this.getEntityBoundingBox().minY + this.rand.nextDouble() * this.height,
- this.posZ + (this.rand.nextDouble() - 0.5) * this.width, 0, 0, 0, 40, 0.2f, 1.0f, 0.8f);
+ ParticleBuilder.create(Type.DUST)
+ .pos(this.posX + (this.rand.nextDouble() - 0.5) * this.width, this.getEntityBoundingBox().minY
+ + this.rand.nextDouble() * this.height, this.posZ + (this.rand.nextDouble() - 0.5) * this.width)
+ .lifetime(40)
+ .colour(0.2f, 1.0f, 0.8f)
+ .shaded(true)
+ .spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityEvilWizard.java b/src/main/java/electroblob/wizardry/entity/living/EntityEvilWizard.java
index 30cb09d8..eab20b1c 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntityEvilWizard.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntityEvilWizard.java
@@ -16,8 +16,9 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.spell.Spell;
+import electroblob.wizardry.util.ParticleBuilder;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
@@ -200,20 +201,19 @@ public class EntityEvilWizard extends EntityMob implements ISpellCaster, IEntity
// deathTime == 0 checks the wizard isn't currently dying
}else if(healCooldown == -1 && this.deathTime == 0){
- // Heal particles
+ // Heal particles TODO: Change this so it uses the heal spell directly
if(world.isRemote){
- for(int i = 0; i < 10; i++){
- double d0 = (double)((float)this.posX + rand.nextFloat() * 2 - 1.0F);
+ for(int i=0; i<10; i++){
+ double x = (double)((float)this.posX + rand.nextFloat() * 2 - 1.0F);
// Apparently the client side spawns the particles 1 block higher than it should... hence the -
// 0.5F.
- double d1 = (double)((float)this.posY - 0.5F + rand.nextFloat());
- double d2 = (double)((float)this.posZ + rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, d0, d1, d2, 0, 0.1F, 0,
- 48 + rand.nextInt(12), 1.0f, 1.0f, 0.3f);
+ double y = (double)((float)this.posY - 0.5F + rand.nextFloat());
+ double z = (double)((float)this.posZ + rand.nextFloat() * 2 - 1.0F);
+ ParticleBuilder.create(Type.SPARKLE).pos(x, y, z).vel(0, 0.1F, 0).colour(1, 1, 0.3f).spawn(world);
}
}else{
if(this.getHealth() < 10){
- // Wizard heals himself more often if he has low health
+ // Wizards heal themseselves more often if they have low health
this.setHealCooldown(150);
}else{
this.setHealCooldown(400);
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityIceGiant.java b/src/main/java/electroblob/wizardry/entity/living/EntityIceGiant.java
index 423b42e0..ebc34fdb 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntityIceGiant.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntityIceGiant.java
@@ -6,7 +6,8 @@ import java.util.UUID;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityFlying;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.ai.EntityAIAttackMelee;
@@ -144,10 +145,12 @@ public class EntityIceGiant extends EntityIronGolem implements ISummonedCreature
if(this.world.isRemote){
for(int i = 0; i < 30; i++){
float brightness = 0.5f + (rand.nextFloat() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, this.world,
- this.posX - 1 + rand.nextDouble() * 2, this.posY + rand.nextDouble() * 3,
- this.posZ - 1 + rand.nextDouble() * 2, 0, -0.02, 0, 12 + rand.nextInt(8), brightness,
- brightness + 0.1f, 1.0f);
+ ParticleBuilder.create(Type.SPARKLE)
+ .pos(this.posX - 1 + rand.nextDouble() * 2, this.posY + rand.nextDouble() * 3, this.posZ - 1 + rand.nextDouble() * 2)
+ .vel(0, -0.02, 0)
+ .lifetime(12 + rand.nextInt(8))
+ .colour(brightness, brightness + 0.1f, 1.0f)
+ .spawn(world);
}
}
}
@@ -158,9 +161,9 @@ public class EntityIceGiant extends EntityIronGolem implements ISummonedCreature
super.onLivingUpdate();
if(this.world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, this.world, this.posX - 1 + rand.nextDouble() * 2,
- this.posY + rand.nextDouble() * 3, this.posZ - 1 + rand.nextDouble() * 2, 0, -0.02, 0,
- 40 + rand.nextInt(10));
+ ParticleBuilder.create(Type.SNOW)
+ .pos(this.posX - 1 + rand.nextDouble() * 2, this.posY + rand.nextDouble() * 3, this.posZ - 1 + rand.nextDouble() * 2)
+ .spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityIceWraith.java b/src/main/java/electroblob/wizardry/entity/living/EntityIceWraith.java
index e1d9caa1..e9ad7d34 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntityIceWraith.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntityIceWraith.java
@@ -1,10 +1,10 @@
package electroblob.wizardry.entity.living;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.Spells;
import electroblob.wizardry.registry.WizardrySounds;
+import electroblob.wizardry.util.ParticleBuilder;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.ai.EntityAIBase;
import net.minecraft.entity.ai.EntityAILookIdle;
@@ -50,9 +50,13 @@ public class EntityIceWraith extends EntityBlazeMinion {
if(this.world.isRemote){
for(int i = 0; i < 15; i++){
float brightness = 0.5f + (rand.nextFloat() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, this.posX - 0.5d + rand.nextDouble(),
- this.posY + this.height / 2 - 0.5d + rand.nextDouble(), this.posZ - 0.5d + rand.nextDouble(), 0,
- 0.05f, 0, 20 + rand.nextInt(10), brightness, brightness + 0.1f, 1.0f);
+ ParticleBuilder.create(Type.SPARKLE)
+ .pos(this.posX - 0.5d + rand.nextDouble(), this.posY + this.height / 2 - 0.5d + rand.nextDouble(),
+ this.posZ - 0.5d + rand.nextDouble())
+ .vel(0, 0.05f, 0)
+ .lifetime(20 + rand.nextInt(10))
+ .colour(brightness, brightness + 0.1f, 1.0f)
+ .spawn(world);
}
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityLightningWraith.java b/src/main/java/electroblob/wizardry/entity/living/EntityLightningWraith.java
index ba613e14..3c90a171 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntityLightningWraith.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntityLightningWraith.java
@@ -1,9 +1,9 @@
package electroblob.wizardry.entity.living;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.Spells;
+import electroblob.wizardry.util.ParticleBuilder;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.ai.EntityAIBase;
import net.minecraft.entity.ai.EntityAILookIdle;
@@ -44,9 +44,12 @@ public class EntityLightningWraith extends EntityBlazeMinion {
if(this.world.isRemote){
for(int i = 0; i < 15; i++){
float brightness = 0.3f + (rand.nextFloat() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, this.posX - 0.5d + rand.nextDouble(),
- this.posY + this.height / 2 - 0.5d + rand.nextDouble(), this.posZ - 0.5d + rand.nextDouble(), 0,
- 0.05f, 0, 20 + rand.nextInt(10), brightness, brightness + 0.2f, 1.0f);
+ ParticleBuilder.create(Type.SPARKLE)
+ .pos(this.posX - 0.5d + rand.nextDouble(), this.posY + this.height / 2 - 0.5d + rand.nextDouble(), this.posZ - 0.5d + rand.nextDouble())
+ .vel(0, 0.05, 0)
+ .lifetime(20 + rand.nextInt(10))
+ .colour(brightness, brightness + 0.2f, 1.0f)
+ .spawn(world);
}
}
}
@@ -56,10 +59,7 @@ public class EntityLightningWraith extends EntityBlazeMinion {
// Fortunately, lightning wraiths don't replace any of blazes' particle effects or the fire sound, they only
// add the sparks, so it's fine to call super here.
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
- this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
- this.posY + this.rand.nextDouble() * (double)this.height,
- this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0, 0, 0, 3);
+ ParticleBuilder.create(Type.SPARK, this).spawn(world);
}
super.onLivingUpdate();
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityShadowWraith.java b/src/main/java/electroblob/wizardry/entity/living/EntityShadowWraith.java
index 48f78093..9b03593b 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntityShadowWraith.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntityShadowWraith.java
@@ -3,11 +3,11 @@ package electroblob.wizardry.entity.living;
import java.util.Collections;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.Spells;
import electroblob.wizardry.spell.Spell;
+import electroblob.wizardry.util.ParticleBuilder;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIAttackMelee;
@@ -128,9 +128,13 @@ public class EntityShadowWraith extends EntitySummonedCreature implements ISpell
if(this.world.isRemote){
for(int i = 0; i < 15; i++){
float brightness = rand.nextFloat() * 0.4f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, this.posX - 0.5d + rand.nextDouble(),
- this.posY + this.height / 2 - 0.5d + rand.nextDouble(), this.posZ - 0.5d + rand.nextDouble(), 0,
- 0.05f, 0, 20 + rand.nextInt(10), brightness, 0.0f, brightness);
+ ParticleBuilder.create(Type.SPARKLE)
+ .pos(this.posX - 0.5d + rand.nextDouble(), this.posY + this.height / 2 - 0.5d + rand.nextDouble(),
+ this.posZ - 0.5d + rand.nextDouble())
+ .vel(0, 0.05, 0)
+ .lifetime(20 + rand.nextInt(10))
+ .colour(brightness, 0.0f, brightness)
+ .spawn(world);
}
}
}
@@ -149,26 +153,25 @@ public class EntityShadowWraith extends EntitySummonedCreature implements ISpell
}
if(world.isRemote){
- for(int i = 0; i < 2; i++){
+
+ for(int i=0; i<2; i++){
+
world.spawnParticle(EnumParticleTypes.PORTAL,
this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
this.posY + this.rand.nextDouble() * (double)this.height,
this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0, 0, 0);
+
world.spawnParticle(EnumParticleTypes.SMOKE_LARGE,
this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
this.posY + this.rand.nextDouble() * (double)this.height,
this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0, 0, 0);
+
float brightness = rand.nextFloat() * 0.2f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
- this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
- this.posY + this.rand.nextDouble() * (double)this.height,
- this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0, 0.05f, 0,
- 20 + rand.nextInt(10), brightness, 0.0f, brightness);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
- this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
- this.posY + this.rand.nextDouble() * (double)this.height,
- this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0.0d, 0.0d, 0.0d, 0, 0.1f,
- 0.0f, 0.0f);
+
+ ParticleBuilder.create(Type.SPARKLE, this).vel(0, 0.05, 0).lifetime(20 + rand.nextInt(10))
+ .colour(brightness, 0.0f, brightness).spawn(world);
+
+ ParticleBuilder.create(Type.DARK_MAGIC, this).colour(0.1f, 0.0f, 0.0f).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntitySilverfishMinion.java b/src/main/java/electroblob/wizardry/entity/living/EntitySilverfishMinion.java
index 4cff78eb..a1a79b4d 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntitySilverfishMinion.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntitySilverfishMinion.java
@@ -4,7 +4,8 @@ import java.lang.ref.WeakReference;
import java.util.UUID;
import electroblob.wizardry.Wizardry;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityFlying;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.ai.EntityAIAttackMelee;
@@ -119,9 +120,10 @@ public class EntitySilverfishMinion extends EntitySilverfish implements ISummone
private void spawnParticleEffect(){
if(this.world.isRemote){
for(int i = 0; i < 15; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, this.posX + this.rand.nextFloat(),
- this.posY + this.rand.nextFloat(), this.posZ + this.rand.nextFloat(), 0.0d, 0.0d, 0.0d, 0, 0.3f,
- 0.3f, 0.3f);
+ ParticleBuilder.create(Type.DARK_MAGIC)
+ .pos(this.posX + this.rand.nextFloat(), this.posY + this.rand.nextFloat(), this.posZ + this.rand.nextFloat())
+ .colour(0.3f, 0.3f, 0.3f)
+ .spawn(world);
}
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntitySpiderMinion.java b/src/main/java/electroblob/wizardry/entity/living/EntitySpiderMinion.java
index ea9d3cb3..4a979455 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntitySpiderMinion.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntitySpiderMinion.java
@@ -4,7 +4,8 @@ import java.lang.ref.WeakReference;
import java.util.UUID;
import electroblob.wizardry.Wizardry;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityFlying;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IEntityLivingData;
@@ -147,9 +148,10 @@ public class EntitySpiderMinion extends EntityCaveSpider implements ISummonedCre
private void spawnParticleEffect(){
if(this.world.isRemote){
for(int i = 0; i < 15; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, this.posX + this.rand.nextFloat(),
- this.posY + this.rand.nextFloat(), this.posZ + this.rand.nextFloat(), 0.0d, 0.0d, 0.0d, 0, 0.1f,
- 0.2f, 0.0f);
+ ParticleBuilder.create(Type.DARK_MAGIC)
+ .pos(this.posX + this.rand.nextFloat(), this.posY + this.rand.nextFloat(), this.posZ + this.rand.nextFloat())
+ .colour(0.1f, 0.2f, 0.0f)
+ .spawn(world);
}
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntitySpiritHorse.java b/src/main/java/electroblob/wizardry/entity/living/EntitySpiritHorse.java
index 227b713a..82fa9ce4 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntitySpiritHorse.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntitySpiritHorse.java
@@ -4,7 +4,8 @@ import electroblob.wizardry.WizardData;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.item.ItemWand;
import electroblob.wizardry.registry.WizardrySounds;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -85,17 +86,15 @@ public class EntitySpiritHorse extends EntityHorse {
if(itemstack.getItem() instanceof ItemWand && this.getOwner() == player && player.isSneaking()){
// Prevents accidental double clicking.
if(this.ticksExisted > 20){
- for(int i = 0; i < 15; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
- this.posX - this.width / 2 + this.rand.nextFloat() * width,
- this.posY + this.height * this.rand.nextFloat() + 0.2f,
- this.posZ - this.width / 2 + this.rand.nextFloat() * width, 0, 0, 0,
- 48 + this.rand.nextInt(12), 0.8f, 0.8f, 1.0f);
- }
+
+ this.spawnAppearParticles();
+
this.setDead();
+
if(WizardData.get(player) != null){
WizardData.get(player).hasSpiritHorse = false;
}
+
this.playSound(WizardrySounds.SPELL_HEAL, 0.7F, rand.nextFloat() * 0.4F + 1.0F);
// This is necessary to prevent the wand's spell being cast when performing this action.
return true;
@@ -105,6 +104,15 @@ public class EntitySpiritHorse extends EntityHorse {
return super.processInteract(player, hand);
}
+
+ private void spawnAppearParticles(){
+ for(int i=0; i<15; i++){
+ double x = this.posX - this.width / 2 + this.rand.nextFloat() * width;
+ double y = this.posY + this.height * this.rand.nextFloat() + 0.2f;
+ double z = this.posZ - this.width / 2 + this.rand.nextFloat() * width;
+ ParticleBuilder.create(Type.SPARKLE).pos(x, y, z).colour(0.8f, 0.8f, 1.0f).spawn(world);
+ }
+ }
@Override
public void onDeath(DamageSource par1DamageSource){
@@ -137,10 +145,10 @@ public class EntitySpiritHorse extends EntityHorse {
// Adds a dust particle effect
if(this.world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DUST, world,
- this.posX - this.width / 2 + this.rand.nextFloat() * width,
- this.posY + this.height * this.rand.nextFloat() + 0.2f,
- this.posZ - this.width / 2 + this.rand.nextFloat() * width, 0, 0, 0, 0, 0.8f, 0.8f, 1.0f);
+ double x = this.posX - this.width / 2 + this.rand.nextFloat() * width;
+ double y = this.posY + this.height * this.rand.nextFloat() + 0.2f;
+ double z = this.posZ - this.width / 2 + this.rand.nextFloat() * width;
+ ParticleBuilder.create(Type.DUST).pos(x, y, z).colour(0.8f, 0.8f, 1.0f).shaded(true).spawn(world);
}
// Spirit horse disappears a short time after being dismounted.
@@ -151,20 +159,17 @@ public class EntitySpiritHorse extends EntityHorse {
}
if(this.idleTimer > 200){
+
if(this.world.isRemote){
- for(int i = 0; i < 15; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
- this.posX - this.width / 2 + this.rand.nextFloat() * width,
- this.posY + this.height * this.rand.nextFloat() + 0.2f,
- this.posZ - this.width / 2 + this.rand.nextFloat() * width, 0, 0, 0,
- 48 + this.rand.nextInt(12), 0.8f, 0.8f, 1.0f);
- }
+ this.spawnAppearParticles();
}
+
this.playSound(WizardrySounds.SPELL_HEAL, 0.7F, rand.nextFloat() * 0.4F + 1.0F);
// Allows player to summon another spirit horse once this one has disappeared.
if(this.getOwner() instanceof EntityPlayer && WizardData.get((EntityPlayer)this.getOwner()) != null){
WizardData.get((EntityPlayer)this.getOwner()).hasSpiritHorse = false;
}
+
this.setDead();
}
}
@@ -179,13 +184,7 @@ public class EntitySpiritHorse extends EntityHorse {
// Adds Particles on spawn. Due to client/server differences this cannot be done in the item.
if(this.world.isRemote){
- for(int i = 0; i < 15; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
- this.posX - this.width / 2 + this.rand.nextFloat() * width,
- this.posY + this.height * this.rand.nextFloat() + 0.2f,
- this.posZ - this.width / 2 + this.rand.nextFloat() * width, 0, 0, 0, 48 + this.rand.nextInt(12),
- 0.8f, 0.8f, 1.0f);
- }
+ this.spawnAppearParticles();
}
return super.onInitialSpawn(difficulty, data);
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntitySpiritWolf.java b/src/main/java/electroblob/wizardry/entity/living/EntitySpiritWolf.java
index 9fd953d3..abc4dc07 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntitySpiritWolf.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntitySpiritWolf.java
@@ -4,7 +4,8 @@ import electroblob.wizardry.WizardData;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.item.ItemWand;
import electroblob.wizardry.registry.WizardrySounds;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.IEntityLivingData;
import net.minecraft.entity.ai.EntityAIAttackMelee;
@@ -81,18 +82,21 @@ public class EntitySpiritWolf extends EntityWolf {
// Adds Particles on spawn. Due to client/server differences this cannot be done
// in the item.
if(this.world.isRemote){
- for(int i = 0; i < 15; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
- this.posX - this.width / 2 + this.rand.nextFloat() * width,
- this.posY + this.height * this.rand.nextFloat() + 0.2f,
- this.posZ - this.width / 2 + this.rand.nextFloat() * width, 0, 0, 0, 48 + this.rand.nextInt(12),
- 0.8f, 0.8f, 1.0f);
- }
+ this.spawnAppearParticles();
}
return livingdata;
}
+ private void spawnAppearParticles(){
+ for(int i=0; i<15; i++){
+ double x = this.posX - this.width / 2 + this.rand.nextFloat() * width;
+ double y = this.posY + this.height * this.rand.nextFloat() + 0.2f;
+ double z = this.posZ - this.width / 2 + this.rand.nextFloat() * width;
+ ParticleBuilder.create(Type.SPARKLE).pos(x, y, z).colour(0.8f, 0.8f, 1.0f).spawn(world);
+ }
+ }
+
@Override
public void onUpdate(){
@@ -100,10 +104,10 @@ public class EntitySpiritWolf extends EntityWolf {
// Adds a dust particle effect
if(this.world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DUST, world,
- this.posX - this.width / 2 + this.rand.nextFloat() * width,
- this.posY + this.height * this.rand.nextFloat() + 0.2f,
- this.posZ - this.width / 2 + this.rand.nextFloat() * width, 0, 0, 0, 0, 0.8f, 0.8f, 1.0f);
+ double x = this.posX - this.width / 2 + this.rand.nextFloat() * width;
+ double y = this.posY + this.height * this.rand.nextFloat() + 0.2f;
+ double z = this.posZ - this.width / 2 + this.rand.nextFloat() * width;
+ ParticleBuilder.create(Type.DUST).pos(x, y, z).colour(0.8f, 0.8f, 1.0f).shaded(true).spawn(world);
}
}
@@ -119,17 +123,17 @@ public class EntitySpiritWolf extends EntityWolf {
if(stack.getItem() instanceof ItemWand && this.getOwner() == player && player.isSneaking()){
// Prevents accidental double clicking.
if(this.ticksExisted > 20){
- for(int i = 0; i < 10; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
- this.posX - this.width / 2 + this.rand.nextFloat() * width,
- this.posY + this.height * this.rand.nextFloat() + 0.2f,
- this.posZ - this.width / 2 + this.rand.nextFloat() * width, 0, 0, 0,
- 48 + this.rand.nextInt(12), 0.8f, 0.8f, 1.0f);
+
+ if(this.world.isRemote){
+ this.spawnAppearParticles();
}
+
this.setDead();
+
if(WizardData.get(player) != null){
WizardData.get(player).hasSpiritWolf = false;
}
+
this.playSound(WizardrySounds.SPELL_HEAL, 0.7F, rand.nextFloat() * 0.4F + 1.0F);
// This is necessary to prevent the wand's spell being cast when performing this
// action.
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityStormElemental.java b/src/main/java/electroblob/wizardry/entity/living/EntityStormElemental.java
index 29e2c061..6991713a 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntityStormElemental.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntityStormElemental.java
@@ -3,12 +3,12 @@ package electroblob.wizardry.entity.living;
import java.util.Collections;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.Spells;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.spell.Spell;
+import electroblob.wizardry.util.ParticleBuilder;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIAttackMelee;
@@ -135,22 +135,23 @@ public class EntityStormElemental extends EntitySummonedCreature implements ISpe
if(world.isRemote){
- for(int i = 0; i < 2; ++i){
+ for(int i=0; i<2; ++i){
+
world.spawnParticle(EnumParticleTypes.SMOKE_LARGE,
this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
this.posY + this.rand.nextDouble() * (double)this.height,
this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0, 0, 0);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
- this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
- this.posY + this.rand.nextDouble() * (double)this.height,
- this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0.0d, 0.0d, 0.0d, 0, 0, 0, 0);
+
+ ParticleBuilder.create(Type.SPARK, this).spawn(world);
}
- for(int i = 0; i < 10; i++){
+ for(int i=0; i<10; i++){
+
float brightness = rand.nextFloat() * 0.2f;
double dy = this.rand.nextDouble() * (double)this.height;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE_ROTATING, world, this.posX, this.posY + dy,
- this.posZ, 0, 0, 0, 20 + rand.nextInt(10), 0, brightness, brightness, false, 0.2f + 0.5f * dy);
+
+ ParticleBuilder.create(Type.SPARKLE_ROTATING).pos(this.posX, this.posY + dy, this.posZ)
+ .lifetime(20 + rand.nextInt(10)).colour(0, brightness, brightness).radius(0.2f + 0.5f * dy).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityWizard.java b/src/main/java/electroblob/wizardry/entity/living/EntityWizard.java
index b34c5a5f..b686924c 100644
--- a/src/main/java/electroblob/wizardry/entity/living/EntityWizard.java
+++ b/src/main/java/electroblob/wizardry/entity/living/EntityWizard.java
@@ -21,10 +21,11 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.spell.Spell;
+import electroblob.wizardry.util.ParticleBuilder;
import electroblob.wizardry.util.SpellModifiers;
import electroblob.wizardry.util.WandHelper;
import electroblob.wizardry.util.WildcardTradeList;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
@@ -245,20 +246,19 @@ public class EntityWizard extends EntityVillager implements ISpellCaster, IEntit
// deathTime == 0 checks the wizard isn't currently dying
}else if(healCooldown == -1 && this.deathTime == 0){
- // Heal particles
+ // Heal particles TODO: Change this so it uses the heal spell directly
if(world.isRemote){
- for(int i = 0; i < 10; i++){
- double d0 = (double)((float)this.posX + rand.nextFloat() * 2 - 1.0F);
+ for(int i=0; i<10; i++){
+ double x = (double)((float)this.posX + rand.nextFloat() * 2 - 1.0F);
// Apparently the client side spawns the particles 1 block higher than it should... hence the -
// 0.5F.
- double d1 = (double)((float)this.posY - 0.5F + rand.nextFloat());
- double d2 = (double)((float)this.posZ + rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, d0, d1, d2, 0, 0.1F, 0,
- 48 + rand.nextInt(12), 1.0f, 1.0f, 0.3f);
+ double y = (double)((float)this.posY - 0.5F + rand.nextFloat());
+ double z = (double)((float)this.posZ + rand.nextFloat() * 2 - 1.0F);
+ ParticleBuilder.create(Type.SPARKLE).pos(x, y, z).vel(0, 0.1F, 0).colour(1, 1, 0.3f).spawn(world);
}
}else{
if(this.getHealth() < 10){
- // Wizard heals himself more often if he has low health
+ // Wizards heal themseselves more often if they have low health
this.setHealCooldown(150);
}else{
this.setHealCooldown(400);
diff --git a/src/main/java/electroblob/wizardry/entity/living/ISummonedCreature.java b/src/main/java/electroblob/wizardry/entity/living/ISummonedCreature.java
index e441ae67..85b4bdaf 100644
--- a/src/main/java/electroblob/wizardry/entity/living/ISummonedCreature.java
+++ b/src/main/java/electroblob/wizardry/entity/living/ISummonedCreature.java
@@ -16,7 +16,8 @@ import electroblob.wizardry.util.IElementalDamage;
import electroblob.wizardry.util.IndirectMinionDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.MinionDamage;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
@@ -288,9 +289,10 @@ public interface ISummonedCreature extends IEntityAdditionalSpawnData {
}
if(this.hasParticleEffect() && thisEntity.world.isRemote && thisEntity.world.rand.nextInt(8) == 0)
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, thisEntity.world, thisEntity.posX,
- thisEntity.posY + thisEntity.world.rand.nextDouble() * 1.5, thisEntity.posZ, 0.0d, 0.0d, 0.0d, 0,
- 0.1f, 0.0f, 0.0f);
+ ParticleBuilder.create(Type.DARK_MAGIC)
+ .pos(thisEntity.posX, thisEntity.posY + thisEntity.world.rand.nextDouble() * 1.5, thisEntity.posZ)
+ .colour(0.1f, 0.0f, 0.0f)
+ .spawn(thisEntity.world);
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityDarknessOrb.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityDarknessOrb.java
index 90292a5f..6fb6f290 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityDarknessOrb.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityDarknessOrb.java
@@ -1,9 +1,9 @@
package electroblob.wizardry.entity.projectile;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.MobEffects;
@@ -13,6 +13,7 @@ import net.minecraft.util.math.RayTraceResult;
import net.minecraft.world.World;
public class EntityDarknessOrb extends EntityMagicProjectile {
+
public EntityDarknessOrb(World par1World){
super(par1World);
}
@@ -59,17 +60,13 @@ public class EntityDarknessOrb extends EntityMagicProjectile {
super.onUpdate();
if(world.isRemote){
+
float brightness = rand.nextFloat() * 0.2f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
- this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
- this.posY + this.rand.nextDouble() * (double)this.height,
- this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0, 0, 0, 20 + rand.nextInt(10),
- brightness, 0.0f, brightness);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
- this.posX + (this.rand.nextDouble() - 0.5D) * (double)this.width,
- this.posY + this.rand.nextDouble() * (double)this.height,
- this.posZ + (this.rand.nextDouble() - 0.5D) * (double)this.width, 0.0d, 0.0d, 0.0d, 0, 0.1f, 0.0f,
- 0.0f);
+
+ ParticleBuilder.create(Type.SPARKLE, this).lifetime(20 + rand.nextInt(10))
+ .colour(brightness, 0.0f, brightness).spawn(world);
+
+ ParticleBuilder.create(Type.DARK_MAGIC, this).colour(0.1f, 0.0f, 0.0f).spawn(world);
}
if(this.ticksExisted > 150){
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityDart.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityDart.java
index 0d51c5df..7208a8f0 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityDart.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityDart.java
@@ -1,8 +1,8 @@
package electroblob.wizardry.entity.projectile;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.MobEffects;
@@ -56,10 +56,8 @@ public class EntityDart extends EntityMagicArrow {
@Override
public void tickInAir(){
-
if(this.world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.LEAF, world, this.posX, this.posY, this.posZ, 0, -0.03, 0,
- 10 + rand.nextInt(5));
+ ParticleBuilder.create(Type.LEAF).pos(this.posX, this.posY, this.posZ).lifetime(10 + rand.nextInt(5));
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityFirebomb.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityFirebomb.java
index 296af6ff..b181ab2b 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityFirebomb.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityFirebomb.java
@@ -2,10 +2,10 @@ package electroblob.wizardry.entity.projectile;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -33,10 +33,9 @@ public class EntityFirebomb extends EntityBomb {
super(par1World, par2, par4, par6);
}
- /**
- * Called when this EntityThrowable hits a block or entity.
- */
+ @Override
protected void onImpact(RayTraceResult par1RayTraceResult){
+
Entity entityHit = par1RayTraceResult.entityHit;
if(entityHit != null){
@@ -52,21 +51,16 @@ public class EntityFirebomb extends EntityBomb {
// Particle effect
if(world.isRemote){
+
this.world.spawnParticle(EnumParticleTypes.EXPLOSION_LARGE, this.posX, this.posY, this.posZ, 0, 0, 0);
+
for(int i = 0; i < 60 * blastMultiplier; i++){
- // this.world.spawnParticle(EnumParticleTypes.FLAME, this.posX + (this.rand.nextDouble()*4 -
- // 2)*blastMultiplier, this.posY + (this.rand.nextDouble()*4 - 2)*blastMultiplier, this.posZ +
- // (this.rand.nextDouble()*4 - 2)*blastMultiplier, 0, 0, 0);
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_FIRE, world,
- this.posX + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posY + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posZ + (this.rand.nextDouble() * 4 - 2) * blastMultiplier, 0, 0, 0, 15 + rand.nextInt(5),
- 2 + rand.nextFloat(), 0, 0);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
- this.posX + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posY + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posZ + (this.rand.nextDouble() * 4 - 2) * blastMultiplier, 0.0d, 0.0d, 0.0d, 0, 1.0f,
- 0.2f + rand.nextFloat() * 0.4f, 0.0f);
+
+ ParticleBuilder.create(Type.MAGIC_FIRE, rand, posX, posY, posZ, 2*blastMultiplier, false)
+ .lifetime(15 + rand.nextInt(5)).scale(2 + rand.nextFloat()).spawn(world);
+
+ ParticleBuilder.create(Type.DARK_MAGIC, rand, posX, posY, posZ, 2*blastMultiplier, false)
+ .colour(1.0f, 0.2f + rand.nextFloat() * 0.4f, 0.0f).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityForceOrb.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityForceOrb.java
index 825db7fc..d7edcb12 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityForceOrb.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityForceOrb.java
@@ -2,10 +2,10 @@ package electroblob.wizardry.entity.projectile;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.SoundEvents;
@@ -54,11 +54,8 @@ public class EntityForceOrb extends EntityMagicProjectile {
if(this.world.isRemote){
for(int j = 0; j < 20; j++){
float brightness = 0.5f + (rand.nextFloat() / 2);
- double x = this.posX - 0.25d + (rand.nextDouble() / 2);
- double y = this.posY - 0.25d + (rand.nextDouble() / 2);
- double z = this.posZ - 0.25d + (rand.nextDouble() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x, y, z, (x - this.posX) * 2,
- (y - this.posY) * 2, (z - this.posZ) * 2, 6, brightness, 1.0f, brightness + 0.2f);
+ ParticleBuilder.create(Type.SPARKLE, rand, posX, posY, posZ, 0.25, true).lifetime(6)
+ .colour(brightness, 1.0f, brightness + 0.2f).spawn(world);
}
this.world.spawnParticle(EnumParticleTypes.EXPLOSION_LARGE, this.posX, this.posY, this.posZ, 0, 0, 0);
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityIceCharge.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityIceCharge.java
index 3288e4fa..a6768266 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityIceCharge.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityIceCharge.java
@@ -2,12 +2,12 @@ package electroblob.wizardry.entity.projectile;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -60,16 +60,13 @@ public class EntityIceCharge extends EntityBomb {
if(world.isRemote){
this.world.spawnParticle(EnumParticleTypes.EXPLOSION_LARGE, this.posX, this.posY, this.posZ, 0, 0, 0);
for(int i = 0; i < 30 * blastMultiplier; i++){
+
+ ParticleBuilder.create(Type.ICE, rand, this.posX, this.posY, this.posZ, 2 * blastMultiplier, false)
+ .lifetime(35).spawn(world);
+
float brightness = 0.4f + rand.nextFloat() * 0.5f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.ICE, world,
- this.posX + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posY + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posZ + (this.rand.nextDouble() * 4 - 2) * blastMultiplier, 0.0d, 0.0d, 0.0d, 35);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
- this.posX + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posY + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posZ + (this.rand.nextDouble() * 4 - 2) * blastMultiplier, 0.0d, 0.0d, 0.0d, 0, brightness,
- brightness + 0.1f, 1.0f);
+ ParticleBuilder.create(Type.DARK_MAGIC, rand, this.posX, this.posY, this.posZ, 2 * blastMultiplier, false)
+ .colour(brightness, brightness + 0.1f, 1.0f).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityIceLance.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityIceLance.java
index afbfa94c..f8cb6ee3 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityIceLance.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityIceLance.java
@@ -1,10 +1,10 @@
package electroblob.wizardry.entity.projectile;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.SoundEvents;
@@ -68,11 +68,8 @@ public class EntityIceLance extends EntityMagicArrow {
// Adds a particle effect when the ice lance hits a block.
if(this.world.isRemote){
for(int j = 0; j < 10; j++){
- double x = this.posX - 0.25d + (rand.nextDouble() / 2);
- double y = this.posY - 0.25d + (rand.nextDouble() / 2);
- double z = this.posZ - 0.25d + (rand.nextDouble() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.ICE, world, x, y, z, x - this.posX, y - this.posY,
- z - this.posZ, 20 + rand.nextInt(10));
+ ParticleBuilder.create(Type.ICE, this.rand, this.posX, this.posY, this.posZ, 0.5, true)
+ .lifetime(20 + rand.nextInt(10)).spawn(world);
}
}
// Parameters for sound: sound event name, volume, pitch.
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityIceShard.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityIceShard.java
index 2d5e2f39..19e72bb6 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityIceShard.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityIceShard.java
@@ -1,10 +1,10 @@
package electroblob.wizardry.entity.projectile;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.SoundEvents;
@@ -64,11 +64,8 @@ public class EntityIceShard extends EntityMagicArrow {
// Adds a particle effect when the ice shard hits a block.
if(this.world.isRemote){
for(int j = 0; j < 10; j++){
- double x = this.posX - 0.25d + (rand.nextDouble() / 2);
- double y = this.posY - 0.25d + (rand.nextDouble() / 2);
- double z = this.posZ - 0.25d + (rand.nextDouble() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.ICE, world, x, y, z, x - this.posX, y - this.posY,
- z - this.posZ, 20 + rand.nextInt(10));
+ ParticleBuilder.create(Type.ICE, this.rand, this.posX, this.posY, this.posZ, 0.5, true)
+ .lifetime(20 + rand.nextInt(10)).spawn(world);
}
}
// Parameters for sound: sound event name, volume, pitch.
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningArrow.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningArrow.java
index f19c4dc2..4da5d2d0 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningArrow.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningArrow.java
@@ -1,9 +1,9 @@
package electroblob.wizardry.entity.projectile;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.world.World;
@@ -46,15 +46,10 @@ public class EntityLightningArrow extends EntityMagicArrow {
if(world.isRemote){
for(int j = 0; j < 8; j++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, this.posX + rand.nextFloat() - 0.5,
- this.posY + this.height / 2 + rand.nextFloat() - 0.5, this.posZ + rand.nextFloat() - 0.5, 0, 0,
- 0, 3);
+ ParticleBuilder.create(Type.SPARK, rand, posX, posY + height / 2, posZ, 1, false).spawn(world);
}
}
- /* Pretty sure this needn't be here, probably missed it when I implemented the damage type system. if(entityHit
- * instanceof EntityCreeper && !((EntityCreeper)entityHit).getPowered()){
- * entityHit.getDataWatcher().updateObject(17, Byte.valueOf((byte)1)); if(this.getShootingEntity() instanceof
- * EntityPlayer) ((EntityPlayer)this.getShootingEntity()).addStat(Wizardry.chargeCreeper); } */
+
this.playSound(WizardrySounds.SPELL_SPARK, 1.0F, 1.0F);
}
@@ -66,8 +61,7 @@ public class EntityLightningArrow extends EntityMagicArrow {
}
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, this.posX, this.posY, this.posZ, 0, 0, 0,
- 3);
+ ParticleBuilder.create(Type.SPARK).pos(posX, posY, posZ).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningDisc.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningDisc.java
index 6340f99f..988fd2ba 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningDisc.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningDisc.java
@@ -2,11 +2,11 @@ package electroblob.wizardry.entity.projectile;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -14,6 +14,7 @@ import net.minecraft.util.math.RayTraceResult;
import net.minecraft.world.World;
public class EntityLightningDisc extends EntityMagicProjectile {
+
public EntityLightningDisc(World par1World){
super(par1World);
}
@@ -38,8 +39,9 @@ public class EntityLightningDisc extends EntityMagicProjectile {
}
@Override
- protected void onImpact(RayTraceResult mop){
- Entity entityHit = mop.entityHit;
+ protected void onImpact(RayTraceResult result){
+
+ Entity entityHit = result.entityHit;
if(entityHit != null){
float damage = 12 * damageMultiplier;
@@ -50,7 +52,7 @@ public class EntityLightningDisc extends EntityMagicProjectile {
this.playSound(WizardrySounds.SPELL_SPARK, 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F));
- if(mop.typeOfHit == RayTraceResult.Type.BLOCK) this.setDead();
+ if(result.typeOfHit == RayTraceResult.Type.BLOCK) this.setDead();
}
@Override
@@ -61,10 +63,9 @@ public class EntityLightningDisc extends EntityMagicProjectile {
// Particle effect
if(world.isRemote){
for(int i = 0; i < 8; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, this.posX + rand.nextFloat() * 2 - 1,
- this.posY, this.posZ + rand.nextFloat() - 0.5, 0, 0, 0, 3);
- // world.spawnParticle(EnumParticleTypes.SMOKE_LARGE, this.posX + rand.nextFloat() - 0.5, this.posY +
- // this.height/2 + rand.nextFloat() - 0.5, this.posZ + rand.nextFloat() - 0.5, 0, 0, 0);
+ // TODO: Why are the x and z parameters different?
+ ParticleBuilder.create(Type.SPARK).pos(this.posX + rand.nextFloat() * 2 - 1,
+ this.posY, this.posZ + rand.nextFloat() - 0.5).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicMissile.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicMissile.java
index 41351d98..9acce846 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicMissile.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicMissile.java
@@ -1,7 +1,7 @@
package electroblob.wizardry.entity.projectile;
-import electroblob.wizardry.Wizardry;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.SoundEvents;
@@ -53,16 +53,8 @@ public class EntityMagicMissile extends EntityMagicArrow {
}
if(this.world.isRemote){
-
- if(this.ticksExisted % 2 == 1){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, this.posX, this.posY, this.posZ, 0, 0,
- 0, 20 + rand.nextInt(10), 0.5f + (rand.nextFloat() / 2), 0.5f + (rand.nextFloat() / 2),
- 0.5f + (rand.nextFloat() / 2));
- }else{
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, this.posX, this.posY, this.posZ, 0, 0,
- 0, 20 + rand.nextInt(10), 0.5f + (rand.nextFloat() / 2), 0.5f + (rand.nextFloat() / 2),
- 0.5f + (rand.nextFloat() / 2));
- }
+ ParticleBuilder.create(Type.SPARKLE).pos(this.posX, this.posY, this.posZ).lifetime(20 + rand.nextInt(10))
+ .colour(0.5f + (rand.nextFloat() / 2), 0.5f + (rand.nextFloat() / 2), 0.5f + (rand.nextFloat() / 2)).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityPoisonBomb.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityPoisonBomb.java
index af033b37..94f739f8 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityPoisonBomb.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityPoisonBomb.java
@@ -2,10 +2,10 @@ package electroblob.wizardry.entity.projectile;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -54,16 +54,12 @@ public class EntityPoisonBomb extends EntityBomb {
// Particle effect
if(world.isRemote){
for(int i = 0; i < 60 * blastMultiplier; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
- this.posX + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posY + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posZ + (this.rand.nextDouble() * 4 - 2) * blastMultiplier, 0.0d, 0.0d, 0.0d, 35,
- 0.2f + rand.nextFloat() * 0.3f, 0.6f, 0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
- this.posX + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posY + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posZ + (this.rand.nextDouble() * 4 - 2) * blastMultiplier, 0.0d, 0.0d, 0.0d, 0,
- 0.2f + rand.nextFloat() * 0.2f, 0.8f, 0.0f);
+
+ ParticleBuilder.create(Type.SPARKLE, rand, posX, posY, posZ, 2*blastMultiplier, false).lifetime(35)
+ .colour(0.2f + rand.nextFloat() * 0.3f, 0.6f, 0.0f).spawn(world);
+
+ ParticleBuilder.create(Type.DARK_MAGIC, rand, posX, posY, posZ, 2*blastMultiplier, false)
+ .colour(0.2f + rand.nextFloat() * 0.2f, 0.8f, 0.0f).spawn(world);
}
// Spawning this after the other particles fixes the rendering colour bug. It's a bit of a cheat, but it
// works pretty well.
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntitySmokeBomb.java b/src/main/java/electroblob/wizardry/entity/projectile/EntitySmokeBomb.java
index d2491481..5d6a432d 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntitySmokeBomb.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntitySmokeBomb.java
@@ -2,9 +2,9 @@ package electroblob.wizardry.entity.projectile;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardryPotions;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -42,16 +42,15 @@ public class EntitySmokeBomb extends EntityBomb {
if(world.isRemote){
this.world.spawnParticle(EnumParticleTypes.EXPLOSION_LARGE, this.posX, this.posY, this.posZ, 0, 0, 0);
for(int i = 0; i < 60 * blastMultiplier; i++){
+
this.world.spawnParticle(EnumParticleTypes.SMOKE_LARGE,
this.posX + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
this.posY + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
this.posZ + (this.rand.nextDouble() * 4 - 2) * blastMultiplier, 0, 0, 0);
+
float brightness = rand.nextFloat() * 0.3f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
- this.posX + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posY + (this.rand.nextDouble() * 4 - 2) * blastMultiplier,
- this.posZ + (this.rand.nextDouble() * 4 - 2) * blastMultiplier, 0.0d, 0.0d, 0.0d, 0, brightness,
- brightness, brightness);
+ ParticleBuilder.create(Type.DARK_MAGIC, rand, posX, posY, posZ, 2*blastMultiplier, false)
+ .colour(brightness, brightness, brightness).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntitySpark.java b/src/main/java/electroblob/wizardry/entity/projectile/EntitySpark.java
index d05d4878..8415bbee 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntitySpark.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntitySpark.java
@@ -2,11 +2,11 @@ package electroblob.wizardry.entity.projectile;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -55,9 +55,10 @@ public class EntitySpark extends EntityMagicProjectile {
// Particle effect
if(world.isRemote){
for(int i = 0; i < 8; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, this.posX + rand.nextFloat() - 0.5,
- this.posY + this.height / 2 + rand.nextFloat() - 0.5, this.posZ + rand.nextFloat() - 0.5, 0, 0,
- 0, 3);
+ double x = this.posX + rand.nextDouble() - 0.5;
+ double y = this.posY + this.height / 2 + rand.nextDouble() - 0.5;
+ double z = this.posZ + rand.nextDouble() - 0.5;
+ ParticleBuilder.create(Type.SPARK).pos(x, y, z).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntitySparkBomb.java b/src/main/java/electroblob/wizardry/entity/projectile/EntitySparkBomb.java
index e854cea2..d6cac02d 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntitySparkBomb.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntitySparkBomb.java
@@ -2,12 +2,12 @@ package electroblob.wizardry.entity.projectile;
import java.util.List;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.entity.EntityArc;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
@@ -63,9 +63,10 @@ public class EntitySparkBomb extends EntityBomb {
// Particle effect
if(world.isRemote){
for(int i = 0; i < 8; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, this.posX + rand.nextFloat() - 0.5,
- this.posY + this.height / 2 + rand.nextFloat() - 0.5, this.posZ + rand.nextFloat() - 0.5, 0, 0,
- 0, 3);
+ double x = this.posX + rand.nextDouble() - 0.5;
+ double y = this.posY + this.height / 2 + rand.nextDouble() - 0.5;
+ double z = this.posZ + rand.nextDouble() - 0.5;
+ ParticleBuilder.create(Type.SPARK).pos(x, y, z).spawn(world);
world.spawnParticle(EnumParticleTypes.SMOKE_LARGE, this.posX + rand.nextFloat() - 0.5,
this.posY + this.height / 2 + rand.nextFloat() - 0.5, this.posZ + rand.nextFloat() - 0.5, 0, 0,
0);
@@ -106,10 +107,10 @@ public class EntitySparkBomb extends EntityBomb {
}else{
// Particle effect
for(int j = 0; j < 8; j++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
- target.posX + rand.nextFloat() - 0.5,
- target.getEntityBoundingBox().minY + target.height * rand.nextFloat(),
- target.posZ + rand.nextFloat() - 0.5, 0, 0, 0, 3);
+ double x = target.posX + rand.nextFloat() - 0.5;
+ double y = target.getEntityBoundingBox().minY + target.height * rand.nextFloat();
+ double z = target.posZ + rand.nextFloat() - 0.5;
+ ParticleBuilder.create(Type.SPARK).pos(x, y, z).spawn(world);
world.spawnParticle(EnumParticleTypes.SMOKE_LARGE, target.posX + rand.nextFloat() - 0.5,
target.getEntityBoundingBox().minY + target.height * rand.nextFloat(),
target.posZ + rand.nextFloat() - 0.5, 0, 0, 0);
diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityThunderbolt.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityThunderbolt.java
index 48e2a4d0..d38bcfce 100644
--- a/src/main/java/electroblob/wizardry/entity/projectile/EntityThunderbolt.java
+++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityThunderbolt.java
@@ -1,9 +1,9 @@
package electroblob.wizardry.entity.projectile;
-import electroblob.wizardry.Wizardry;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.SoundEvents;
@@ -68,9 +68,7 @@ public class EntityThunderbolt extends EntityMagicProjectile {
super.onUpdate();
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, this.posX + rand.nextFloat() * 0.2 - 0.1,
- this.posY + this.height / 2 + rand.nextFloat() * 0.2 - 0.1,
- this.posZ + rand.nextFloat() * 0.2 - 0.1, 0, 0, 0, 3);
+ ParticleBuilder.create(Type.SPARK, rand, posX, posY + height/2, posZ, 0.1, false).spawn(world);
for(int i = 0; i < 4; i++){
world.spawnParticle(EnumParticleTypes.SMOKE_NORMAL, this.posX + rand.nextFloat() * 0.2 - 0.1,
this.posY + this.height / 2 + rand.nextFloat() * 0.2 - 0.1,
diff --git a/src/main/java/electroblob/wizardry/potion/PotionFrost.java b/src/main/java/electroblob/wizardry/potion/PotionFrost.java
index 6f267755..7cb709e2 100644
--- a/src/main/java/electroblob/wizardry/potion/PotionFrost.java
+++ b/src/main/java/electroblob/wizardry/potion/PotionFrost.java
@@ -3,7 +3,8 @@ package electroblob.wizardry.potion;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.constants.Constants;
import electroblob.wizardry.registry.WizardryPotions;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
@@ -39,8 +40,7 @@ public class PotionFrost extends Potion implements ICustomPotionParticles {
@Override
public void spawnCustomParticle(World world, double x, double y, double z){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, world, x, y, z, 0, -0.02, 0,
- 15 + world.rand.nextInt(5));
+ ParticleBuilder.create(Type.SNOW).pos(x, y, z).lifetime(15 + world.rand.nextInt(5)).spawn(world);
}
@Override
diff --git a/src/main/java/electroblob/wizardry/registry/WizardryPotions.java b/src/main/java/electroblob/wizardry/registry/WizardryPotions.java
index 681c26f7..60f43f9d 100644
--- a/src/main/java/electroblob/wizardry/registry/WizardryPotions.java
+++ b/src/main/java/electroblob/wizardry/registry/WizardryPotions.java
@@ -5,7 +5,8 @@ import electroblob.wizardry.potion.PotionDecay;
import electroblob.wizardry.potion.PotionFrost;
import electroblob.wizardry.potion.PotionMagicEffect;
import electroblob.wizardry.potion.PotionMagicEffectParticles;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.potion.Potion;
import net.minecraft.util.EnumParticleTypes;
@@ -36,8 +37,7 @@ public final class WizardryPotions {
public static final Potion transience = new PotionMagicEffectParticles(false, 0, 0){
@Override
public void spawnCustomParticle(World world, double x, double y, double z){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DUST, world, x, y, z, 0, 0, 0,
- (int)(16.0D / (Math.random() * 0.8D + 0.2D)), 0.8f, 0.8f, 1.0f);
+ ParticleBuilder.create(Type.DUST).pos(x, y, z).colour(0.8f, 0.8f, 1.0f).shaded(true).spawn(world);
}
}.setBeneficial(); // 0xffe89b
@@ -58,17 +58,15 @@ public final class WizardryPotions {
@Override
public void spawnCustomParticle(World world, double x, double y, double z){
float brightness = 0.5f + (world.rand.nextFloat() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x, y, z, 0, 0, 0,
- 48 + world.rand.nextInt(12), brightness, brightness + 0.1f, 1.0f, true, 0);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, world, x, y, z, 0, -0.02, 0,
- 40 + world.rand.nextInt(10));
+ ParticleBuilder.create(Type.SPARKLE).pos(x, y, z).colour(brightness, brightness + 0.1f, 1.0f).gravity(true).spawn(world);
+ ParticleBuilder.create(Type.SNOW).pos(x, y, z).spawn(world);
}
}.setBeneficial(); // 0x52f1ff
public static final Potion static_aura = new PotionMagicEffectParticles(false, 0, 3){
@Override
public void spawnCustomParticle(World world, double x, double y, double z){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world, x, y, z, 0, 0, 0, 3);
+ ParticleBuilder.create(Type.SPARK).pos(x, y, z).spawn(world);
}
}.setBeneficial(); // 0x0070ff
diff --git a/src/main/java/electroblob/wizardry/spell/Agility.java b/src/main/java/electroblob/wizardry/spell/Agility.java
index cdd36fb3..4f6b0587 100644
--- a/src/main/java/electroblob/wizardry/spell/Agility.java
+++ b/src/main/java/electroblob/wizardry/spell/Agility.java
@@ -6,8 +6,9 @@ import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
+import electroblob.wizardry.util.ParticleBuilder;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
@@ -31,13 +32,13 @@ public class Agility extends Spell {
caster.addPotionEffect(new PotionEffect(MobEffects.JUMP_BOOST,
(int)(600 * modifiers.get(WizardryItems.duration_upgrade)), 1, false, false));
- for(int i = 0; i < 10; i++){
- double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
- double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
- double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
- 48 + world.rand.nextInt(12), 0.6f, 0.6f, 1.0f);
+ if(world.isRemote){
+ for(int i = 0; i < 10; i++){
+ double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
+ double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
+ double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
+ ParticleBuilder.create(Type.SPARKLE).pos(x1, y1, z1).vel(0, 0.1F, 0)
+ .lifetime(48 + world.rand.nextInt(12)).colour(0.4f, 1.0f, 0.8f).spawn(world);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Arc.java b/src/main/java/electroblob/wizardry/spell/Arc.java
index d2065b15..56335ed2 100644
--- a/src/main/java/electroblob/wizardry/spell/Arc.java
+++ b/src/main/java/electroblob/wizardry/spell/Arc.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
@@ -48,7 +48,7 @@ public class Arc extends Spell {
world.spawnEntity(arc);
}else{
for(int i = 0; i < 8; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
target.posX + world.rand.nextFloat() - 0.5,
target.getEntityBoundingBox().minY + target.height / 2 + world.rand.nextFloat() * 2 - 1,
target.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
@@ -88,7 +88,7 @@ public class Arc extends Spell {
world.spawnEntity(arc);
}else{
for(int i = 0; i < 8; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
target.posX + world.rand.nextFloat() - 0.5,
target.getEntityBoundingBox().minY + target.height / 2 + world.rand.nextFloat() * 2 - 1,
target.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
diff --git a/src/main/java/electroblob/wizardry/spell/ArcaneJammer.java b/src/main/java/electroblob/wizardry/spell/ArcaneJammer.java
index 102fa9c5..6316b0f1 100644
--- a/src/main/java/electroblob/wizardry/spell/ArcaneJammer.java
+++ b/src/main/java/electroblob/wizardry/spell/ArcaneJammer.java
@@ -11,7 +11,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -56,7 +56,7 @@ public class ArcaneJammer extends Spell {
double y1 = WizardryUtilities.getPlayerEyesPos(caster) - 0.4f + look.y * i / 2
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 0.9f, 0.3f, 0.7f);
}
}
@@ -89,7 +89,7 @@ public class ArcaneJammer extends Spell {
- 0.1f;
double z1 = caster.posZ + dz * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 0.9f, 0.3f, 0.7f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Banish.java b/src/main/java/electroblob/wizardry/spell/Banish.java
index 5d49397c..01b01c73 100644
--- a/src/main/java/electroblob/wizardry/spell/Banish.java
+++ b/src/main/java/electroblob/wizardry/spell/Banish.java
@@ -6,7 +6,7 @@ import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -87,7 +87,7 @@ public class Banish extends Spell {
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
world.spawnParticle(EnumParticleTypes.PORTAL, x1, y1 - 0.5, z1, 0.0d, 0.0d, 0.0d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
0.2f, 0.0f, 0.2f);
}
}
@@ -125,7 +125,7 @@ public class Banish extends Spell {
double z1 = caster.posZ + dz * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
world.spawnParticle(EnumParticleTypes.PORTAL, x1, y1 - 0.5, z1, 0.0d, 0.0d, 0.0d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
0, 0.2f, 0.0f, 0.2f);
}
diff --git a/src/main/java/electroblob/wizardry/spell/Bubble.java b/src/main/java/electroblob/wizardry/spell/Bubble.java
index 3886ee36..7a9c5ff2 100644
--- a/src/main/java/electroblob/wizardry/spell/Bubble.java
+++ b/src/main/java/electroblob/wizardry/spell/Bubble.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -59,7 +59,7 @@ public class Bubble extends Spell {
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
world.spawnParticle(EnumParticleTypes.WATER_SPLASH, x1, y1, z1, 0.0d, 0.0d, 0.0d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_BUBBLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0);
+ Wizardry.proxy.spawnParticle(Type.MAGIC_BUBBLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0);
}
}
caster.swingArm(hand);
@@ -102,7 +102,7 @@ public class Bubble extends Spell {
double z1 = caster.posZ + dz * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
world.spawnParticle(EnumParticleTypes.WATER_SPLASH, x1, y1, z1, 0.0d, 0.0d, 0.0d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_BUBBLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.MAGIC_BUBBLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
0);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/ChainLightning.java b/src/main/java/electroblob/wizardry/spell/ChainLightning.java
index fcaea29f..78422b25 100644
--- a/src/main/java/electroblob/wizardry/spell/ChainLightning.java
+++ b/src/main/java/electroblob/wizardry/spell/ChainLightning.java
@@ -12,7 +12,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -55,7 +55,7 @@ public class ChainLightning extends Spell {
world.spawnEntity(arc);
}else{
for(int i = 0; i < 8; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
target.posX + world.rand.nextFloat() - 0.5,
target.getEntityBoundingBox().minY + target.height / 2 + world.rand.nextFloat() * 2 - 1,
target.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
@@ -97,7 +97,7 @@ public class ChainLightning extends Spell {
world.spawnEntity(arc);
}else{
for(int j = 0; j < 8; j++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
secondaryTarget.posX + world.rand.nextFloat() - 0.5,
secondaryTarget.getEntityBoundingBox().minY + secondaryTarget.height / 2
+ world.rand.nextFloat() * 2 - 1,
@@ -144,7 +144,7 @@ public class ChainLightning extends Spell {
world.spawnEntity(arc);
}else{
for(int k = 0; k < 8; k++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
tertiaryTarget.posX + world.rand.nextFloat() - 0.5,
tertiaryTarget.getEntityBoundingBox().minY + tertiaryTarget.height / 2
+ world.rand.nextFloat() * 2 - 1,
diff --git a/src/main/java/electroblob/wizardry/spell/Clairvoyance.java b/src/main/java/electroblob/wizardry/spell/Clairvoyance.java
index 8b6fa959..5f648b1c 100644
--- a/src/main/java/electroblob/wizardry/spell/Clairvoyance.java
+++ b/src/main/java/electroblob/wizardry/spell/Clairvoyance.java
@@ -13,7 +13,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
import electroblob.wizardry.util.WandHelper;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryPathFinder;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.SharedMonsterAttributes;
@@ -123,7 +123,7 @@ public class Clairvoyance extends Spell {
nextPoint = path.getCurrentPathLength() - path.getCurrentPathIndex() <= 2 ? path.getFinalPathPoint()
: path.getPathPointFromIndex(path.getCurrentPathIndex() + 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.PATH, world, point.x + 0.5, point.y + 0.5, point.z + 0.5,
+ Wizardry.proxy.spawnParticle(Type.PATH, world, point.x + 0.5, point.y + 0.5, point.z + 0.5,
(nextPoint.x - point.x) / (float)PARTICLE_MOVEMENT_INTERVAL, (nextPoint.y - point.y) / (float)PARTICLE_MOVEMENT_INTERVAL,
(nextPoint.z - point.z) / (float)PARTICLE_MOVEMENT_INTERVAL, (int)(1800 * durationMultiplier), 0, 1, 0.3f);
@@ -133,7 +133,7 @@ public class Clairvoyance extends Spell {
point = path.getFinalPathPoint();
- Wizardry.proxy.spawnParticle(WizardryParticleType.PATH, world, point.x + 0.5, point.y + 0.5, point.z + 0.5, 0, 0, 0,
+ Wizardry.proxy.spawnParticle(Type.PATH, world, point.x + 0.5, point.y + 0.5, point.z + 0.5, 0, 0, 0,
(int)(1800 * durationMultiplier), 1, 1, 1);
}
diff --git a/src/main/java/electroblob/wizardry/spell/ConjureArmour.java b/src/main/java/electroblob/wizardry/spell/ConjureArmour.java
index 74f5e238..7a9f14a1 100644
--- a/src/main/java/electroblob/wizardry/spell/ConjureArmour.java
+++ b/src/main/java/electroblob/wizardry/spell/ConjureArmour.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.item.IConjuredItem;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
@@ -54,7 +54,7 @@ public class ConjureArmour extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.7f, 0.9f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/ConjureBow.java b/src/main/java/electroblob/wizardry/spell/ConjureBow.java
index c03f2d2a..488327bd 100644
--- a/src/main/java/electroblob/wizardry/spell/ConjureBow.java
+++ b/src/main/java/electroblob/wizardry/spell/ConjureBow.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.item.IConjuredItem;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -36,7 +36,7 @@ public class ConjureBow extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.7f, 0.9f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/ConjurePickaxe.java b/src/main/java/electroblob/wizardry/spell/ConjurePickaxe.java
index ae4a192c..9e51ef3a 100644
--- a/src/main/java/electroblob/wizardry/spell/ConjurePickaxe.java
+++ b/src/main/java/electroblob/wizardry/spell/ConjurePickaxe.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.item.IConjuredItem;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -37,7 +37,7 @@ public class ConjurePickaxe extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.7f, 0.9f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/ConjureSword.java b/src/main/java/electroblob/wizardry/spell/ConjureSword.java
index cefd59c9..a9876cfa 100644
--- a/src/main/java/electroblob/wizardry/spell/ConjureSword.java
+++ b/src/main/java/electroblob/wizardry/spell/ConjureSword.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.item.IConjuredItem;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -36,7 +36,7 @@ public class ConjureSword extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.7f, 0.9f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/CureEffects.java b/src/main/java/electroblob/wizardry/spell/CureEffects.java
index 82051fb3..6597a7a6 100644
--- a/src/main/java/electroblob/wizardry/spell/CureEffects.java
+++ b/src/main/java/electroblob/wizardry/spell/CureEffects.java
@@ -6,7 +6,7 @@ import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -29,7 +29,7 @@ public class CureEffects extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.6f, 0.6f, 1.0f);
}
}
@@ -58,7 +58,7 @@ public class CureEffects extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)caster.posY + caster.getEyeHeight() - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.6f, 0.6f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/CurseOfSoulbinding.java b/src/main/java/electroblob/wizardry/spell/CurseOfSoulbinding.java
index e2494bce..8baa67aa 100644
--- a/src/main/java/electroblob/wizardry/spell/CurseOfSoulbinding.java
+++ b/src/main/java/electroblob/wizardry/spell/CurseOfSoulbinding.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.util.IElementalDamage;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -52,11 +52,11 @@ public class CurseOfSoulbinding extends Spell {
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
// world.spawnParticle("mobSpell", x1, y1, z1, -1*look.xCoord, -1*look.yCoord, -1*look.zCoord);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
0.4f, 0.0f, 0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
0.1f, 0.0f, 0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 1.0f, 0.8f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Darkvision.java b/src/main/java/electroblob/wizardry/spell/Darkvision.java
index d9e8d7c1..40b829e8 100644
--- a/src/main/java/electroblob/wizardry/spell/Darkvision.java
+++ b/src/main/java/electroblob/wizardry/spell/Darkvision.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
@@ -33,7 +33,7 @@ public class Darkvision extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.0f, 0.4f, 0.7f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Diamondflesh.java b/src/main/java/electroblob/wizardry/spell/Diamondflesh.java
index 32175e6a..848f4a68 100644
--- a/src/main/java/electroblob/wizardry/spell/Diamondflesh.java
+++ b/src/main/java/electroblob/wizardry/spell/Diamondflesh.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
@@ -33,13 +33,13 @@ public class Diamondflesh extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.0f, 0.5f, 1.0f);
x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.6f, 0.7f, 0.9f);
}
diff --git a/src/main/java/electroblob/wizardry/spell/Entrapment.java b/src/main/java/electroblob/wizardry/spell/Entrapment.java
index 44436b4b..db7503a0 100644
--- a/src/main/java/electroblob/wizardry/spell/Entrapment.java
+++ b/src/main/java/electroblob/wizardry/spell/Entrapment.java
@@ -9,7 +9,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -57,7 +57,7 @@ public class Entrapment extends Spell {
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
world.spawnParticle(EnumParticleTypes.PORTAL, x1, y1 - 0.5, z1, 0.0d, 0.0d, 0.0d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
0.1f, 0.0f, 0.0f);
}
}
@@ -99,7 +99,7 @@ public class Entrapment extends Spell {
double z1 = caster.posZ + dz * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
world.spawnParticle(EnumParticleTypes.PORTAL, x1, y1 - 0.5, z1, 0.0d, 0.0d, 0.0d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
0, 0.1f, 0.0f, 0.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/FireResistance.java b/src/main/java/electroblob/wizardry/spell/FireResistance.java
index d4c85af3..42596b3b 100644
--- a/src/main/java/electroblob/wizardry/spell/FireResistance.java
+++ b/src/main/java/electroblob/wizardry/spell/FireResistance.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -35,7 +35,7 @@ public class FireResistance extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 0.5f, 0.0f);
}
}
@@ -59,7 +59,7 @@ public class FireResistance extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)caster.posY + caster.getEyeHeight() - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 0.5f, 0.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Firestorm.java b/src/main/java/electroblob/wizardry/spell/Firestorm.java
index 4717aab2..baf1d219 100644
--- a/src/main/java/electroblob/wizardry/spell/Firestorm.java
+++ b/src/main/java/electroblob/wizardry/spell/Firestorm.java
@@ -9,7 +9,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -70,11 +70,11 @@ public class Firestorm extends Spell {
double y1 = WizardryUtilities.getPlayerEyesPos(caster) - 0.4f + look.y * i / 2
+ world.rand.nextFloat() * 0.4f - 0.2f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() * 0.6f - 0.3f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_FIRE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.MAGIC_FIRE, world, x1, y1, z1,
look.x * modifiers.get(WizardryItems.range_upgrade),
look.y * modifiers.get(WizardryItems.range_upgrade),
look.z * modifiers.get(WizardryItems.range_upgrade), 0, 3 + world.rand.nextFloat(), 0, 0);
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_FIRE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.MAGIC_FIRE, world, x1, y1, z1,
look.x * modifiers.get(WizardryItems.range_upgrade),
look.y * modifiers.get(WizardryItems.range_upgrade),
look.z * modifiers.get(WizardryItems.range_upgrade), 0, 3 + world.rand.nextFloat(), 0, 0);
diff --git a/src/main/java/electroblob/wizardry/spell/FlameRay.java b/src/main/java/electroblob/wizardry/spell/FlameRay.java
index f2384b74..7a41edbb 100644
--- a/src/main/java/electroblob/wizardry/spell/FlameRay.java
+++ b/src/main/java/electroblob/wizardry/spell/FlameRay.java
@@ -9,7 +9,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -58,11 +58,11 @@ public class FlameRay extends Spell {
double y1 = WizardryUtilities.getPlayerEyesPos(caster) - 0.4f + look.y * i / 2
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_FIRE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.MAGIC_FIRE, world, x1, y1, z1,
look.x * modifiers.get(WizardryItems.range_upgrade),
look.y * modifiers.get(WizardryItems.range_upgrade),
look.z * modifiers.get(WizardryItems.range_upgrade), 0);
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_FIRE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.MAGIC_FIRE, world, x1, y1, z1,
look.x * modifiers.get(WizardryItems.range_upgrade),
look.y * modifiers.get(WizardryItems.range_upgrade),
look.z * modifiers.get(WizardryItems.range_upgrade), 0);
@@ -94,11 +94,11 @@ public class FlameRay extends Spell {
double y1 = caster.posY + caster.getEyeHeight() - 0.4f + vec.y * i / 2 + world.rand.nextFloat() / 5
- 0.1f;
double z1 = caster.posZ + vec.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_FIRE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.MAGIC_FIRE, world, x1, y1, z1,
vec.x * modifiers.get(WizardryItems.range_upgrade),
vec.y * modifiers.get(WizardryItems.range_upgrade),
vec.z * modifiers.get(WizardryItems.range_upgrade), 0);
- Wizardry.proxy.spawnParticle(WizardryParticleType.MAGIC_FIRE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.MAGIC_FIRE, world, x1, y1, z1,
vec.x * modifiers.get(WizardryItems.range_upgrade),
vec.y * modifiers.get(WizardryItems.range_upgrade),
vec.z * modifiers.get(WizardryItems.range_upgrade), 0);
diff --git a/src/main/java/electroblob/wizardry/spell/FlamingWeapon.java b/src/main/java/electroblob/wizardry/spell/FlamingWeapon.java
index f347d6e5..b70f491a 100644
--- a/src/main/java/electroblob/wizardry/spell/FlamingWeapon.java
+++ b/src/main/java/electroblob/wizardry/spell/FlamingWeapon.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardryEnchantments;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.player.EntityPlayer;
@@ -54,7 +54,7 @@ public class FlamingWeapon extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.9f, 0.7f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Flight.java b/src/main/java/electroblob/wizardry/spell/Flight.java
index 2a79a85b..97db2f9c 100644
--- a/src/main/java/electroblob/wizardry/spell/Flight.java
+++ b/src/main/java/electroblob/wizardry/spell/Flight.java
@@ -5,7 +5,7 @@ import electroblob.wizardry.constants.Element;
import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
@@ -37,11 +37,11 @@ public class Flight extends Spell {
caster.fallDistance = 0.0f;
}
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX - 1 + world.rand.nextDouble() * 2,
WizardryUtilities.getPlayerEyesPos(caster) - 0.5f + world.rand.nextDouble(),
caster.posZ - 1 + world.rand.nextDouble() * 2, 0, -0.1F, 0, 15, 0.8f, 1.0f, 0.5f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX - 1 + world.rand.nextDouble() * 2,
WizardryUtilities.getPlayerEyesPos(caster) - 0.5f + world.rand.nextDouble(),
caster.posZ - 1 + world.rand.nextDouble() * 2, 0, -0.1F, 0, 15, 1.0f, 1.0f, 1.0f);
diff --git a/src/main/java/electroblob/wizardry/spell/FontOfMana.java b/src/main/java/electroblob/wizardry/spell/FontOfMana.java
index cbe2ef35..3915ae6d 100644
--- a/src/main/java/electroblob/wizardry/spell/FontOfMana.java
+++ b/src/main/java/electroblob/wizardry/spell/FontOfMana.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -46,7 +46,7 @@ public class FontOfMana extends Spell {
double radius = (1 + world.rand.nextDouble() * 4) * modifiers.get(WizardryItems.blast_upgrade);
double angle = world.rand.nextDouble() * Math.PI * 2;
float hue = world.rand.nextFloat() * 0.4f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX + radius * Math.cos(angle), caster.getEntityBoundingBox().minY,
caster.posZ + radius * Math.sin(angle), 0, 0.03, 0, 50, 1, 1 - hue, 0.6f + hue);
diff --git a/src/main/java/electroblob/wizardry/spell/FontOfVitality.java b/src/main/java/electroblob/wizardry/spell/FontOfVitality.java
index e951008c..88f4cec7 100644
--- a/src/main/java/electroblob/wizardry/spell/FontOfVitality.java
+++ b/src/main/java/electroblob/wizardry/spell/FontOfVitality.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
@@ -36,14 +36,14 @@ public class FontOfVitality extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 0.6f, 0.7f);
x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 0.8f, 0.3f);
}
diff --git a/src/main/java/electroblob/wizardry/spell/ForestsCurse.java b/src/main/java/electroblob/wizardry/spell/ForestsCurse.java
index 33487073..44b7a30e 100644
--- a/src/main/java/electroblob/wizardry/spell/ForestsCurse.java
+++ b/src/main/java/electroblob/wizardry/spell/ForestsCurse.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -52,16 +52,16 @@ public class ForestsCurse extends Spell {
double radius = (1 + world.rand.nextDouble() * 4) * modifiers.get(WizardryItems.blast_upgrade);
double angle = world.rand.nextDouble() * Math.PI * 2;
float brightness = world.rand.nextFloat() / 4;
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world,
caster.posX + radius * Math.cos(angle), WizardryUtilities.getPlayerEyesPos(caster) + 0.5,
caster.posZ + radius * Math.sin(angle), 0, -0.2, 0, 0, 0.05f + brightness, 0.2f + brightness,
0.0f);
brightness = world.rand.nextFloat() / 4;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX + radius * Math.cos(angle), WizardryUtilities.getPlayerEyesPos(caster) + 0.5,
caster.posZ + radius * Math.sin(angle), 0, -0.05, 0, 50, 0.1f + brightness, 0.2f + brightness,
0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.LEAF, world, caster.posX + radius * Math.cos(angle),
+ Wizardry.proxy.spawnParticle(Type.LEAF, world, caster.posX + radius * Math.cos(angle),
WizardryUtilities.getPlayerEyesPos(caster) + 0.5, caster.posZ + radius * Math.sin(angle), 0,
-0.01, 0, 40 + world.rand.nextInt(12));
diff --git a/src/main/java/electroblob/wizardry/spell/Freeze.java b/src/main/java/electroblob/wizardry/spell/Freeze.java
index 500d5c79..2f9a2790 100644
--- a/src/main/java/electroblob/wizardry/spell/Freeze.java
+++ b/src/main/java/electroblob/wizardry/spell/Freeze.java
@@ -11,7 +11,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -71,12 +71,12 @@ public class Freeze extends Spell {
double dz = target.posZ - caster.posZ;
for(int i = 1; i < 5; i++){
float brightness = 0.5f + (world.rand.nextFloat() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX + (i * (dx / 5)) + world.rand.nextFloat() / 5,
WizardryUtilities.getPlayerEyesPos(caster) + (i * (dy / 5)) + world.rand.nextFloat() / 5,
caster.posZ + (i * (dz / 5)) + world.rand.nextFloat() / 5, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), brightness, brightness + 0.1f, 1.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, world,
+ Wizardry.proxy.spawnParticle(Type.SNOW, world,
caster.posX + (i * (dx / 5)) + world.rand.nextFloat() / 5,
WizardryUtilities.getPlayerEyesPos(caster) + (i * (dy / 5)) + world.rand.nextFloat() / 5,
caster.posZ + (i * (dz / 5)) + world.rand.nextFloat() / 5, 0, -0.02, 0,
@@ -117,13 +117,13 @@ public class Freeze extends Spell {
for(int i = 1; i < 5; i++){
float brightness = 0.5f + (world.rand.nextFloat() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX + (i * (dx / 5)) + world.rand.nextFloat() / 5,
WizardryUtilities.getPlayerEyesPos(caster) + (i * (dy / 5))
+ world.rand.nextFloat() / 5,
caster.posZ + (i * (dz / 5)) + world.rand.nextFloat() / 5, 0.0d, 0.0d, 0.0d,
20 + world.rand.nextInt(8), brightness, brightness + 0.1f, 1.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX + (i * (dx / 5)) + world.rand.nextFloat() / 5,
WizardryUtilities.getPlayerEyesPos(caster) + (i * (dy / 5))
+ world.rand.nextFloat() / 5,
@@ -169,12 +169,12 @@ public class Freeze extends Spell {
double dz = target.posZ - caster.posZ;
for(int i = 1; i < 5; i++){
float brightness = 0.5f + (world.rand.nextFloat() / 2);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX + (i * (dx / 5)) + world.rand.nextFloat() / 5,
caster.posY + caster.getEyeHeight() + (i * (dy / 5)) + world.rand.nextFloat() / 5,
caster.posZ + (i * (dz / 5)) + world.rand.nextFloat() / 5, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), brightness, brightness + 0.1f, 1.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, world,
+ Wizardry.proxy.spawnParticle(Type.SNOW, world,
caster.posX + (i * (dx / 5)) + world.rand.nextFloat() / 5,
caster.posY + caster.getEyeHeight() + (i * (dy / 5)) + world.rand.nextFloat() / 5,
caster.posZ + (i * (dz / 5)) + world.rand.nextFloat() / 5, 0, -0.02, 0,
diff --git a/src/main/java/electroblob/wizardry/spell/FreezingWeapon.java b/src/main/java/electroblob/wizardry/spell/FreezingWeapon.java
index 3c85b63d..765d8df6 100644
--- a/src/main/java/electroblob/wizardry/spell/FreezingWeapon.java
+++ b/src/main/java/electroblob/wizardry/spell/FreezingWeapon.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardryEnchantments;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.player.EntityPlayer;
@@ -60,7 +60,7 @@ public class FreezingWeapon extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.9f, 0.7f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/FrostAxe.java b/src/main/java/electroblob/wizardry/spell/FrostAxe.java
index c997425a..0daffc81 100644
--- a/src/main/java/electroblob/wizardry/spell/FrostAxe.java
+++ b/src/main/java/electroblob/wizardry/spell/FrostAxe.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.item.IConjuredItem;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -38,7 +38,7 @@ public class FrostAxe extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, world, x1, y1, z1, 0, -0.02d, 0,
+ Wizardry.proxy.spawnParticle(Type.SNOW, world, x1, y1, z1, 0, -0.02d, 0,
40 + world.rand.nextInt(10));
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/FrostRay.java b/src/main/java/electroblob/wizardry/spell/FrostRay.java
index b7b3d942..4f560b6e 100644
--- a/src/main/java/electroblob/wizardry/spell/FrostRay.java
+++ b/src/main/java/electroblob/wizardry/spell/FrostRay.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -69,7 +69,7 @@ public class FrostRay extends Spell {
double y1 = WizardryUtilities.getPlayerEyesPos(caster) - 0.4f + look.y * i / 2
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1,
look.x * modifiers.get(WizardryItems.range_upgrade),
look.y * modifiers.get(WizardryItems.range_upgrade),
look.z * modifiers.get(WizardryItems.range_upgrade), 8 + world.rand.nextInt(12), 0.4f,
@@ -79,7 +79,7 @@ public class FrostRay extends Spell {
y1 = WizardryUtilities.getPlayerEyesPos(caster) - 0.4f + look.y * i / 2
+ world.rand.nextFloat() / 5 - 0.1f;
z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1,
look.x * modifiers.get(WizardryItems.range_upgrade),
look.y * modifiers.get(WizardryItems.range_upgrade),
look.z * modifiers.get(WizardryItems.range_upgrade), 8 + world.rand.nextInt(12), 1.0f,
@@ -125,7 +125,7 @@ public class FrostRay extends Spell {
double y1 = caster.posY + caster.getEyeHeight() - 0.4f + vec.y * i / 2
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + vec.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1,
vec.x * modifiers.get(WizardryItems.range_upgrade),
vec.y * modifiers.get(WizardryItems.range_upgrade),
vec.z * modifiers.get(WizardryItems.range_upgrade), 8 + world.rand.nextInt(12), 0.4f,
@@ -135,7 +135,7 @@ public class FrostRay extends Spell {
y1 = caster.posY + caster.getEyeHeight() - 0.4f + vec.y * i / 2 + world.rand.nextFloat() / 5
- 0.1f;
z1 = caster.posZ + vec.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1,
vec.x * modifiers.get(WizardryItems.range_upgrade),
vec.y * modifiers.get(WizardryItems.range_upgrade),
vec.z * modifiers.get(WizardryItems.range_upgrade), 8 + world.rand.nextInt(12), 1.0f,
diff --git a/src/main/java/electroblob/wizardry/spell/Glide.java b/src/main/java/electroblob/wizardry/spell/Glide.java
index bab250b9..9878e3ac 100644
--- a/src/main/java/electroblob/wizardry/spell/Glide.java
+++ b/src/main/java/electroblob/wizardry/spell/Glide.java
@@ -5,7 +5,7 @@ import electroblob.wizardry.constants.Element;
import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
@@ -32,11 +32,11 @@ public class Glide extends Spell {
}
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX - 0.25d + world.rand.nextDouble() / 2,
WizardryUtilities.getPlayerEyesPos(caster) - 1.5f + world.rand.nextDouble(),
caster.posZ - 0.25d + world.rand.nextDouble() / 2, 0, -0.1F, 0, 15, 1.0f, 1.0f, 1.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.LEAF, world,
+ Wizardry.proxy.spawnParticle(Type.LEAF, world,
caster.posX - 0.25d + world.rand.nextDouble() / 2,
WizardryUtilities.getPlayerEyesPos(caster) - 1.5f + world.rand.nextDouble(),
caster.posZ - 0.25d + world.rand.nextDouble() / 2, 0, -0.03, 0, 20);
diff --git a/src/main/java/electroblob/wizardry/spell/GreaterHeal.java b/src/main/java/electroblob/wizardry/spell/GreaterHeal.java
index 5664cb3b..1173dc11 100644
--- a/src/main/java/electroblob/wizardry/spell/GreaterHeal.java
+++ b/src/main/java/electroblob/wizardry/spell/GreaterHeal.java
@@ -6,7 +6,7 @@ import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -32,7 +32,7 @@ public class GreaterHeal extends Spell {
double dy = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double dz = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, dx, dy, dz, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, dx, dy, dz, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 1.0f, 0.3f);
}
}
@@ -54,7 +54,7 @@ public class GreaterHeal extends Spell {
double dx = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double dy = (double)((float)caster.posY + caster.getEyeHeight() - 0.5F + world.rand.nextFloat());
double dz = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, dx, dy, dz, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, dx, dy, dz, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 1.0f, 0.3f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/GroupHeal.java b/src/main/java/electroblob/wizardry/spell/GroupHeal.java
index 2324a906..fe25fbff 100644
--- a/src/main/java/electroblob/wizardry/spell/GroupHeal.java
+++ b/src/main/java/electroblob/wizardry/spell/GroupHeal.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.entity.living.ISummonedCreature;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -48,7 +48,7 @@ public class GroupHeal extends Spell {
double d1 = (double)((float)WizardryUtilities.getPlayerEyesPos((EntityPlayer)target)
- 0.5F + world.rand.nextFloat());
double d2 = (double)((float)target.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, d0, d1, d2, 0, 0.1F,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, d0, d1, d2, 0, 0.1F,
0, 48 + world.rand.nextInt(12), 1.0f, 1.0f, 0.3f);
}
}
@@ -77,7 +77,7 @@ public class GroupHeal extends Spell {
double d1 = (double)((float)WizardryUtilities.getPlayerEyesPos((EntityPlayer)target)
- 0.5F + world.rand.nextFloat());
double d2 = (double)((float)target.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, d0, d1, d2, 0, 0.1F,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, d0, d1, d2, 0, 0.1F,
0, 48 + world.rand.nextInt(12), 1.0f, 1.0f, 0.3f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Heal.java b/src/main/java/electroblob/wizardry/spell/Heal.java
index f3bdad94..5fa338b3 100644
--- a/src/main/java/electroblob/wizardry/spell/Heal.java
+++ b/src/main/java/electroblob/wizardry/spell/Heal.java
@@ -6,7 +6,7 @@ import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -31,12 +31,11 @@ public class Heal extends Spell {
if(world.isRemote){
for(int i = 0; i < 10; i++){
double d0 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
- // Apparently the client side spawns the particles 1 block higher than it should... hence the -
- // 0.5F.
+ // Apparently the client side spawns the particles 1 block higher than it should... hence the -0.5F.
double d1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double d2 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, d0, d1, d2, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, d0, d1, d2, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 1.0f, 0.3f);
}
}
@@ -59,7 +58,7 @@ public class Heal extends Spell {
double dx = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double dy = (double)((float)caster.posY + caster.getEyeHeight() - 0.5F + world.rand.nextFloat());
double dz = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, dx, dy, dz, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, dx, dy, dz, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 1.0f, 0.3f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/HealAlly.java b/src/main/java/electroblob/wizardry/spell/HealAlly.java
index 9f824bfb..d8f3edc4 100644
--- a/src/main/java/electroblob/wizardry/spell/HealAlly.java
+++ b/src/main/java/electroblob/wizardry/spell/HealAlly.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -41,7 +41,7 @@ public class HealAlly extends Spell {
double d1 = (double)((float)target.getEntityBoundingBox().minY + target.height - 0.5f
+ world.rand.nextFloat());
double d2 = (double)((float)target.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, d0, d1, d2, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, d0, d1, d2, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 1.0f, 0.3f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/IceStatue.java b/src/main/java/electroblob/wizardry/spell/IceStatue.java
index 59938921..c32cfc6d 100644
--- a/src/main/java/electroblob/wizardry/spell/IceStatue.java
+++ b/src/main/java/electroblob/wizardry/spell/IceStatue.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.tileentity.TileEntityStatue;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.monster.EntityBlaze;
@@ -115,9 +115,9 @@ public class IceStatue extends Spell {
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), brightness, brightness + 0.1f, 1.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SNOW, world, x1, y1, z1, 0.0d, -0.02d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SNOW, world, x1, y1, z1, 0.0d, -0.02d, 0.0d,
20 + world.rand.nextInt(10));
}
diff --git a/src/main/java/electroblob/wizardry/spell/ImbueWeapon.java b/src/main/java/electroblob/wizardry/spell/ImbueWeapon.java
index 88e8b5b5..66f7ea82 100644
--- a/src/main/java/electroblob/wizardry/spell/ImbueWeapon.java
+++ b/src/main/java/electroblob/wizardry/spell/ImbueWeapon.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardryEnchantments;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.player.EntityPlayer;
@@ -69,7 +69,7 @@ public class ImbueWeapon extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.9f, 0.7f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Intimidate.java b/src/main/java/electroblob/wizardry/spell/Intimidate.java
index ba78e956..5cbabdff 100644
--- a/src/main/java/electroblob/wizardry/spell/Intimidate.java
+++ b/src/main/java/electroblob/wizardry/spell/Intimidate.java
@@ -9,7 +9,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityCreature;
@@ -62,7 +62,7 @@ public class Intimidate extends Spell {
}else{
for(int i = 0; i < 30; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world,
caster.posX - 1 + world.rand.nextDouble() * 2,
caster.getEntityBoundingBox().minY + 1.5 + world.rand.nextDouble() * 0.5,
caster.posZ - 1 + world.rand.nextDouble() * 2, 0, 0, 0, 0, 0.9f, 0.1f, 0.0f);
diff --git a/src/main/java/electroblob/wizardry/spell/InvigoratingPresence.java b/src/main/java/electroblob/wizardry/spell/InvigoratingPresence.java
index 71cf0216..a8ede484 100644
--- a/src/main/java/electroblob/wizardry/spell/InvigoratingPresence.java
+++ b/src/main/java/electroblob/wizardry/spell/InvigoratingPresence.java
@@ -9,7 +9,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
@@ -44,7 +44,7 @@ public class InvigoratingPresence extends Spell {
for(int i = 0; i < 50 * modifiers.get(WizardryItems.blast_upgrade); i++){
double radius = (1 + world.rand.nextDouble() * 4) * modifiers.get(WizardryItems.blast_upgrade);
double angle = world.rand.nextDouble() * Math.PI * 2;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX + radius * Math.cos(angle), caster.getEntityBoundingBox().minY,
caster.posZ + radius * Math.sin(angle), 0, 0.03, 0, 50, 1, 0.2f, 0.2f);
diff --git a/src/main/java/electroblob/wizardry/spell/Invisibility.java b/src/main/java/electroblob/wizardry/spell/Invisibility.java
index ed70f40c..0fe1caba 100644
--- a/src/main/java/electroblob/wizardry/spell/Invisibility.java
+++ b/src/main/java/electroblob/wizardry/spell/Invisibility.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -35,7 +35,7 @@ public class Invisibility extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.7f, 1.0f, 1.0f);
}
}
@@ -58,7 +58,7 @@ public class Invisibility extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)caster.posY + caster.getEyeHeight() - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.7f, 1.0f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/InvokeWeather.java b/src/main/java/electroblob/wizardry/spell/InvokeWeather.java
index edf5f0d6..9046e787 100644
--- a/src/main/java/electroblob/wizardry/spell/InvokeWeather.java
+++ b/src/main/java/electroblob/wizardry/spell/InvokeWeather.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Element;
import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
@@ -54,7 +54,7 @@ public class InvokeWeather extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.5f, 0.7f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Ironflesh.java b/src/main/java/electroblob/wizardry/spell/Ironflesh.java
index acbbff3c..7828b4d0 100644
--- a/src/main/java/electroblob/wizardry/spell/Ironflesh.java
+++ b/src/main/java/electroblob/wizardry/spell/Ironflesh.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -35,7 +35,7 @@ public class Ironflesh extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.4f, 0.5f, 0.6f);
}
}
@@ -59,7 +59,7 @@ public class Ironflesh extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)caster.posY + caster.getEyeHeight() - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.4f, 0.5f, 0.6f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Levitation.java b/src/main/java/electroblob/wizardry/spell/Levitation.java
index 03907a3a..1879e9bc 100644
--- a/src/main/java/electroblob/wizardry/spell/Levitation.java
+++ b/src/main/java/electroblob/wizardry/spell/Levitation.java
@@ -6,7 +6,7 @@ import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -27,7 +27,7 @@ public class Levitation extends Spell {
caster.motionY = caster.motionY < 0.5d ? caster.motionY + 0.1d : caster.motionY;
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX - 0.25d + world.rand.nextDouble() / 2,
WizardryUtilities.getPlayerEyesPos(caster) - 1.5f,
caster.posZ - 0.25d + world.rand.nextDouble() / 2, 0, -0.1F, 0, 15, 0.5f, 1.0f, 0.7f);
diff --git a/src/main/java/electroblob/wizardry/spell/LifeDrain.java b/src/main/java/electroblob/wizardry/spell/LifeDrain.java
index 818cc010..909c9ad2 100644
--- a/src/main/java/electroblob/wizardry/spell/LifeDrain.java
+++ b/src/main/java/electroblob/wizardry/spell/LifeDrain.java
@@ -9,7 +9,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -54,10 +54,10 @@ public class LifeDrain extends Spell {
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
// world.spawnParticle("mobSpell", x1, y1, z1, -1*look.xCoord, -1*look.yCoord, -1*look.zCoord);
if(i % 5 == 0){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
0, 0.1f, 0.0f, 0.0f);
}
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, -0.05 * look.x * i,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, -0.05 * look.x * i,
-0.05 * look.y * i, -0.05 * look.z * i, 8 + world.rand.nextInt(6), 0.5f, 0.0f, 0.0f);
}
}
@@ -92,10 +92,10 @@ public class LifeDrain extends Spell {
double z1 = caster.posZ + vec.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
// world.spawnParticle("mobSpell", x1, y1, z1, -1*look.xCoord, -1*look.yCoord, -1*look.zCoord);
if(i % 5 == 0){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
0, 0.1f, 0.0f, 0.0f);
}
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, -0.05 * vec.x * i,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, -0.05 * vec.x * i,
-0.05 * vec.y * i, -0.05 * vec.z * i, 8 + world.rand.nextInt(6), 0.5f, 0.0f, 0.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/LightningRay.java b/src/main/java/electroblob/wizardry/spell/LightningRay.java
index ced7a07c..0d7236b2 100644
--- a/src/main/java/electroblob/wizardry/spell/LightningRay.java
+++ b/src/main/java/electroblob/wizardry/spell/LightningRay.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
@@ -63,7 +63,7 @@ public class LightningRay extends Spell {
}else{
for(int i = 0; i < 5; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
target.posX + world.rand.nextFloat() - 0.5,
target.getEntityBoundingBox().minY + target.height / 2 + world.rand.nextFloat() * 2 - 1,
target.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
@@ -132,7 +132,7 @@ public class LightningRay extends Spell {
}else{
for(int i = 0; i < 5; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
target.posX + world.rand.nextFloat() - 0.5,
target.getEntityBoundingBox().minY + target.height / 2 + world.rand.nextFloat() * 2 - 1,
target.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
diff --git a/src/main/java/electroblob/wizardry/spell/LightningWeb.java b/src/main/java/electroblob/wizardry/spell/LightningWeb.java
index 3a86a31f..7bc5519b 100644
--- a/src/main/java/electroblob/wizardry/spell/LightningWeb.java
+++ b/src/main/java/electroblob/wizardry/spell/LightningWeb.java
@@ -12,7 +12,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -71,7 +71,7 @@ public class LightningWeb extends Spell {
}
}else{
for(int i = 0; i < 5; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
target.posX + world.rand.nextFloat() - 0.5,
target.getEntityBoundingBox().minY + target.height / 2 + world.rand.nextFloat() * 2 - 1,
target.posZ + world.rand.nextFloat() - 0.5, 0, 0, 0, 3);
@@ -121,7 +121,7 @@ public class LightningWeb extends Spell {
}
}else{
for(int i = 0; i < 5; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
secondaryTarget.posX + world.rand.nextFloat() - 0.5,
secondaryTarget.getEntityBoundingBox().minY + secondaryTarget.height / 2
+ world.rand.nextFloat() * 2 - 1,
@@ -173,7 +173,7 @@ public class LightningWeb extends Spell {
}
}else{
for(int i = 0; i < 5; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
tertiaryTarget.posX + world.rand.nextFloat() - 0.5,
tertiaryTarget.getEntityBoundingBox().minY + tertiaryTarget.height / 2
+ world.rand.nextFloat() * 2 - 1,
diff --git a/src/main/java/electroblob/wizardry/spell/Metamorphosis.java b/src/main/java/electroblob/wizardry/spell/Metamorphosis.java
index 12975e93..5489e28d 100644
--- a/src/main/java/electroblob/wizardry/spell/Metamorphosis.java
+++ b/src/main/java/electroblob/wizardry/spell/Metamorphosis.java
@@ -12,7 +12,7 @@ import electroblob.wizardry.entity.living.EntityWitherSkeletonMinion;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@@ -121,11 +121,11 @@ public class Metamorphosis extends Spell {
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
// world.spawnParticle("mobSpell", x1, y1, z1, -1*look.xCoord, -1*look.yCoord, -1*look.zCoord);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 0.2f, 0.0f, 0.1f);
}
for(int i = 0; i < 5; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, xPos, yPos, zPos, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, xPos, yPos, zPos, 0.0d,
0.0d, 0.0d, 0, 0.1f, 0.0f, 0.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/MindControl.java b/src/main/java/electroblob/wizardry/spell/MindControl.java
index 3edff448..527ca68b 100644
--- a/src/main/java/electroblob/wizardry/spell/MindControl.java
+++ b/src/main/java/electroblob/wizardry/spell/MindControl.java
@@ -11,7 +11,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
@@ -76,12 +76,12 @@ public class MindControl extends Spell {
}
}else{
for(int i = 0; i < 10; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world,
target.posX - 0.25 + world.rand.nextDouble() * 0.5,
target.getEntityBoundingBox().minY + target.getEyeHeight() - 0.25
+ world.rand.nextDouble() * 0.5,
target.posZ - 0.25 + world.rand.nextDouble() * 0.5, 0, 0, 0, 0, 0.8f, 0.2f, 1.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world,
target.posX - 0.25 + world.rand.nextDouble() * 0.5,
target.getEntityBoundingBox().minY + target.getEyeHeight() - 0.25
+ world.rand.nextDouble() * 0.5,
@@ -116,12 +116,12 @@ public class MindControl extends Spell {
}
}else{
for(int i = 0; i < 10; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world,
target.posX - 0.25 + world.rand.nextDouble() * 0.5,
target.getEntityBoundingBox().minY + target.getEyeHeight() - 0.25
+ world.rand.nextDouble() * 0.5,
target.posZ - 0.25 + world.rand.nextDouble() * 0.5, 0, 0, 0, 0, 0.8f, 0.2f, 1.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world,
target.posX - 0.25 + world.rand.nextDouble() * 0.5,
target.getEntityBoundingBox().minY + target.getEyeHeight() - 0.25
+ world.rand.nextDouble() * 0.5,
diff --git a/src/main/java/electroblob/wizardry/spell/MindTrick.java b/src/main/java/electroblob/wizardry/spell/MindTrick.java
index d2f5dae2..9f4f0dab 100644
--- a/src/main/java/electroblob/wizardry/spell/MindTrick.java
+++ b/src/main/java/electroblob/wizardry/spell/MindTrick.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardryPotions;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -56,7 +56,7 @@ public class MindTrick extends Spell {
}
}else{
for(int i = 0; i < 10; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world,
target.posX - 0.25 + world.rand.nextDouble() * 0.5,
target.getEntityBoundingBox().minY + target.getEyeHeight() - 0.25
+ world.rand.nextDouble() * 0.5,
@@ -91,7 +91,7 @@ public class MindTrick extends Spell {
}
}else{
for(int i = 0; i < 10; i++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world,
target.posX - 0.25 + world.rand.nextDouble() * 0.5,
target.getEntityBoundingBox().minY + target.getEyeHeight() - 0.25
+ world.rand.nextDouble() * 0.5,
diff --git a/src/main/java/electroblob/wizardry/spell/Oakflesh.java b/src/main/java/electroblob/wizardry/spell/Oakflesh.java
index 0f35c253..21488735 100644
--- a/src/main/java/electroblob/wizardry/spell/Oakflesh.java
+++ b/src/main/java/electroblob/wizardry/spell/Oakflesh.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -35,7 +35,7 @@ public class Oakflesh extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.6f, 0.5f, 0.4f);
}
}
@@ -59,7 +59,7 @@ public class Oakflesh extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)caster.posY + caster.getEyeHeight() - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.6f, 0.5f, 0.4f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Petrify.java b/src/main/java/electroblob/wizardry/spell/Petrify.java
index b207fd34..7b1f1a6a 100644
--- a/src/main/java/electroblob/wizardry/spell/Petrify.java
+++ b/src/main/java/electroblob/wizardry/spell/Petrify.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.registry.WizardryBlocks;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.tileentity.TileEntityStatue;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
@@ -112,9 +112,9 @@ public class Petrify extends Spell {
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
// world.spawnParticle("mobSpell", x1, y1, z1, -1*look.xCoord, -1*look.yCoord, -1*look.zCoord);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
0.1f, 0.1f, 0.1f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 0.2f, 0.2f, 0.2f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/PlagueOfDarkness.java b/src/main/java/electroblob/wizardry/spell/PlagueOfDarkness.java
index 4559ca53..03d4ba9e 100644
--- a/src/main/java/electroblob/wizardry/spell/PlagueOfDarkness.java
+++ b/src/main/java/electroblob/wizardry/spell/PlagueOfDarkness.java
@@ -10,7 +10,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
@@ -50,12 +50,12 @@ public class PlagueOfDarkness extends Spell {
for(int i = 0; i < 40 * modifiers.get(WizardryItems.blast_upgrade); i++){
particleX = caster.posX - 1.0d + 2 * world.rand.nextDouble();
particleZ = caster.posZ - 1.0d + 2 * world.rand.nextDouble();
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, particleX,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, particleX,
WizardryUtilities.getPlayerEyesPos(caster) - 1.5, particleZ, particleX - caster.posX, 0,
particleZ - caster.posZ, 0, 0.1f, 0.0f, 0.0f);
particleX = caster.posX - 1.0d + 2 * world.rand.nextDouble();
particleZ = caster.posZ - 1.0d + 2 * world.rand.nextDouble();
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, particleX,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, particleX,
WizardryUtilities.getPlayerEyesPos(caster) - 1.5, particleZ, particleX - caster.posX, 0,
particleZ - caster.posZ, 30, 0.1f, 0.0f, 0.05f);
particleX = caster.posX - 1.0d + 2 * world.rand.nextDouble();
diff --git a/src/main/java/electroblob/wizardry/spell/Poison.java b/src/main/java/electroblob/wizardry/spell/Poison.java
index 630c0a3e..8fd97d21 100644
--- a/src/main/java/electroblob/wizardry/spell/Poison.java
+++ b/src/main/java/electroblob/wizardry/spell/Poison.java
@@ -9,7 +9,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -59,9 +59,9 @@ public class Poison extends Spell {
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
// world.spawnParticle("mobSpell", x1, y1, z1, -1*look.xCoord, -1*look.yCoord, -1*look.zCoord);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
0.3f, 0.7f, 0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 0.1f, 0.4f, 0.0f);
}
}
@@ -99,9 +99,9 @@ public class Poison extends Spell {
- 0.1f;
double z1 = caster.posZ + dz * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
0, 0.3f, 0.7f, 0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 0.1f, 0.4f, 0.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/ReplenishHunger.java b/src/main/java/electroblob/wizardry/spell/ReplenishHunger.java
index e9939d35..0af5b579 100644
--- a/src/main/java/electroblob/wizardry/spell/ReplenishHunger.java
+++ b/src/main/java/electroblob/wizardry/spell/ReplenishHunger.java
@@ -6,7 +6,7 @@ import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -32,7 +32,7 @@ public class ReplenishHunger extends Spell {
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F
+ world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 1.0f, 0.7f, 0.3f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Shockwave.java b/src/main/java/electroblob/wizardry/spell/Shockwave.java
index 60d2fedc..e1a63679 100644
--- a/src/main/java/electroblob/wizardry/spell/Shockwave.java
+++ b/src/main/java/electroblob/wizardry/spell/Shockwave.java
@@ -11,7 +11,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
@@ -71,12 +71,12 @@ public class Shockwave extends Spell {
for(int i = 0; i < 40; i++){
particleX = caster.posX - 1.0d + 2 * world.rand.nextDouble();
particleZ = caster.posZ - 1.0d + 2 * world.rand.nextDouble();
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, particleX,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, particleX,
WizardryUtilities.getPlayerEyesPos(caster) - 1.5, particleZ, particleX - caster.posX, 0,
particleZ - caster.posZ, 30, 0.8f, 0.8f, 1.0f);
particleX = caster.posX - 1.0d + 2 * world.rand.nextDouble();
particleZ = caster.posZ - 1.0d + 2 * world.rand.nextDouble();
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, particleX,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, particleX,
WizardryUtilities.getPlayerEyesPos(caster) - 1.5, particleZ, particleX - caster.posX, 0,
particleZ - caster.posZ, 30, 0.9f, 0.9f, 0.9f);
particleX = caster.posX - 1.0d + 2 * world.rand.nextDouble();
diff --git a/src/main/java/electroblob/wizardry/spell/Slime.java b/src/main/java/electroblob/wizardry/spell/Slime.java
index 6ba62b8e..b1569eab 100644
--- a/src/main/java/electroblob/wizardry/spell/Slime.java
+++ b/src/main/java/electroblob/wizardry/spell/Slime.java
@@ -9,7 +9,7 @@ import electroblob.wizardry.registry.WizardryAdvancementTriggers;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -66,7 +66,7 @@ public class Slime extends Spell {
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
world.spawnParticle(EnumParticleTypes.SLIME, x1, y1, z1, 0.0d, 0.0d, 0.0d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
0.2f, 0.8f, 0.1f);
}
}
@@ -103,7 +103,7 @@ public class Slime extends Spell {
double z1 = caster.posZ + dz * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
world.spawnParticle(EnumParticleTypes.SLIME, x1, y1, z1, 0.0d, 0.0d, 0.0d);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
0, 0.2f, 0.8f, 0.1f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Snare.java b/src/main/java/electroblob/wizardry/spell/Snare.java
index d8a5f262..64fb6f55 100644
--- a/src/main/java/electroblob/wizardry/spell/Snare.java
+++ b/src/main/java/electroblob/wizardry/spell/Snare.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.registry.WizardryBlocks;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.tileentity.TileEntityPlayerSave;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
@@ -51,13 +51,13 @@ public class Snare extends Spell {
if(world.isRemote){
for(int i = 1; i < 5; i++){
float brightness = world.rand.nextFloat() / 4;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world,
caster.posX + (i * (dx / 5)) + world.rand.nextFloat() / 5,
WizardryUtilities.getPlayerEyesPos(caster) + (i * (dy / 5))
+ world.rand.nextFloat() / 5,
caster.posZ + (i * (dz / 5)) + world.rand.nextFloat() / 5, 0.0d, 0.0d, 0.0d,
20 + world.rand.nextInt(8), brightness, brightness + 0.1f, 0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.LEAF, world,
+ Wizardry.proxy.spawnParticle(Type.LEAF, world,
caster.posX + (i * (dx / 5)) + world.rand.nextFloat() / 5,
WizardryUtilities.getPlayerEyesPos(caster) + (i * (dy / 5))
+ world.rand.nextFloat() / 5,
diff --git a/src/main/java/electroblob/wizardry/spell/SummonIceGiant.java b/src/main/java/electroblob/wizardry/spell/SummonIceGiant.java
index 00fdc4bf..87d30b8d 100644
--- a/src/main/java/electroblob/wizardry/spell/SummonIceGiant.java
+++ b/src/main/java/electroblob/wizardry/spell/SummonIceGiant.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.entity.living.EntityIceGiant;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -40,7 +40,7 @@ public class SummonIceGiant extends Spell {
double x1 = (double)((float)pos.getX() + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)pos.getY() + 0.5F + world.rand.nextFloat());
double z1 = (double)((float)pos.getZ() + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0, 0,
48 + world.rand.nextInt(12), 0.6f, 0.6f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/SummonIronGolem.java b/src/main/java/electroblob/wizardry/spell/SummonIronGolem.java
index d7f48844..fa2a0759 100644
--- a/src/main/java/electroblob/wizardry/spell/SummonIronGolem.java
+++ b/src/main/java/electroblob/wizardry/spell/SummonIronGolem.java
@@ -5,7 +5,7 @@ import electroblob.wizardry.constants.Element;
import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.monster.EntityIronGolem;
import net.minecraft.entity.player.EntityPlayer;
@@ -38,7 +38,7 @@ public class SummonIronGolem extends Spell {
double y1 = (double)((float)pos.getY() + 0.5F + world.rand.nextFloat());
double z1 = (double)((float)pos.getZ() + world.rand.nextFloat() * 2 - 1.0F);
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0, 0,
48 + world.rand.nextInt(12), 0.6f, 0.6f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/SummonSnowGolem.java b/src/main/java/electroblob/wizardry/spell/SummonSnowGolem.java
index 06c71eee..d50da8c1 100644
--- a/src/main/java/electroblob/wizardry/spell/SummonSnowGolem.java
+++ b/src/main/java/electroblob/wizardry/spell/SummonSnowGolem.java
@@ -6,7 +6,7 @@ import electroblob.wizardry.constants.SpellType;
import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.monster.EntitySnowman;
import net.minecraft.entity.player.EntityPlayer;
@@ -37,7 +37,7 @@ public class SummonSnowGolem extends Spell {
double y1 = (double)((float)pos.getY() + 0.5F + world.rand.nextFloat());
double z1 = (double)((float)pos.getZ() + world.rand.nextFloat() * 2 - 1.0F);
if(world.isRemote){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.6f, 0.6f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Thunderstorm.java b/src/main/java/electroblob/wizardry/spell/Thunderstorm.java
index 3a3e88a5..cb533a50 100644
--- a/src/main/java/electroblob/wizardry/spell/Thunderstorm.java
+++ b/src/main/java/electroblob/wizardry/spell/Thunderstorm.java
@@ -12,7 +12,7 @@ import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.effect.EntityLightningBolt;
@@ -70,7 +70,7 @@ public class Thunderstorm extends Spell {
world.spawnEntity(arc);
}else{
for(int j = 0; j < 8; j++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
secondaryTarget.posX + world.rand.nextFloat() - 0.5,
secondaryTarget.getEntityBoundingBox().minY + secondaryTarget.height / 2
+ world.rand.nextFloat() * 2 - 1,
@@ -111,7 +111,7 @@ public class Thunderstorm extends Spell {
world.spawnEntity(arc);
}else{
for(int k = 0; k < 8; k++){
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARK, world,
+ Wizardry.proxy.spawnParticle(Type.SPARK, world,
tertiaryTarget.posX + world.rand.nextFloat() - 0.5,
tertiaryTarget.getEntityBoundingBox().minY + tertiaryTarget.height / 2
+ world.rand.nextFloat() * 2 - 1,
diff --git a/src/main/java/electroblob/wizardry/spell/WallOfFrost.java b/src/main/java/electroblob/wizardry/spell/WallOfFrost.java
index 4220fdde..98907300 100644
--- a/src/main/java/electroblob/wizardry/spell/WallOfFrost.java
+++ b/src/main/java/electroblob/wizardry/spell/WallOfFrost.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.registry.WizardryBlocks;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@@ -74,7 +74,7 @@ public class WallOfFrost extends Spell {
double y1 = WizardryUtilities.getPlayerEyesPos(caster) - 0.4f + look.y * i / 2
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1,
look.x * modifiers.get(WizardryItems.range_upgrade),
look.y * modifiers.get(WizardryItems.range_upgrade),
look.z * modifiers.get(WizardryItems.range_upgrade), 8 + world.rand.nextInt(12), 0.4f,
@@ -84,7 +84,7 @@ public class WallOfFrost extends Spell {
y1 = WizardryUtilities.getPlayerEyesPos(caster) - 0.4f + look.y * i / 2
+ world.rand.nextFloat() / 5 - 0.1f;
z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1,
look.x * modifiers.get(WizardryItems.range_upgrade),
look.y * modifiers.get(WizardryItems.range_upgrade),
look.z * modifiers.get(WizardryItems.range_upgrade), 8 + world.rand.nextInt(12), 1.0f,
diff --git a/src/main/java/electroblob/wizardry/spell/WaterBreathing.java b/src/main/java/electroblob/wizardry/spell/WaterBreathing.java
index 8effe686..4b2462eb 100644
--- a/src/main/java/electroblob/wizardry/spell/WaterBreathing.java
+++ b/src/main/java/electroblob/wizardry/spell/WaterBreathing.java
@@ -7,7 +7,7 @@ import electroblob.wizardry.constants.Tier;
import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.registry.WizardrySounds;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
@@ -32,7 +32,7 @@ public class WaterBreathing extends Spell {
double x1 = (double)((float)caster.posX + world.rand.nextFloat() * 2 - 1.0F);
double y1 = (double)((float)WizardryUtilities.getPlayerEyesPos(caster) - 0.5F + world.rand.nextFloat());
double z1 = (double)((float)caster.posZ + world.rand.nextFloat() * 2 - 1.0F);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0, 0.1F, 0,
48 + world.rand.nextInt(12), 0.3f, 0.3f, 1.0f);
}
}
diff --git a/src/main/java/electroblob/wizardry/spell/Wither.java b/src/main/java/electroblob/wizardry/spell/Wither.java
index 88712ceb..9234756d 100644
--- a/src/main/java/electroblob/wizardry/spell/Wither.java
+++ b/src/main/java/electroblob/wizardry/spell/Wither.java
@@ -8,7 +8,7 @@ import electroblob.wizardry.registry.WizardryItems;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.SpellModifiers;
-import electroblob.wizardry.util.WizardryParticleType;
+import electroblob.wizardry.util.ParticleBuilder.Type;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
@@ -65,9 +65,9 @@ public class Wither extends Spell {
+ world.rand.nextFloat() / 5 - 0.1f;
double z1 = caster.posZ + look.z * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
// world.spawnParticle("mobSpell", x1, y1, z1, -1*look.xCoord, -1*look.yCoord, -1*look.zCoord);
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d, 0,
0.1f, 0.0f, 0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 0.1f, 0.0f, 0.05f);
}
}
@@ -103,9 +103,9 @@ public class Wither extends Spell {
- 0.1f;
double z1 = caster.posZ + dz * i / 2 + world.rand.nextFloat() / 5 - 0.1f;
- Wizardry.proxy.spawnParticle(WizardryParticleType.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.DARK_MAGIC, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
0, 0.1f, 0.0f, 0.0f);
- Wizardry.proxy.spawnParticle(WizardryParticleType.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
+ Wizardry.proxy.spawnParticle(Type.SPARKLE, world, x1, y1, z1, 0.0d, 0.0d, 0.0d,
12 + world.rand.nextInt(8), 0.1f, 0.0f, 0.05f);
}
}
diff --git a/src/main/java/electroblob/wizardry/util/WizardryParticleType.java b/src/main/java/electroblob/wizardry/util/WizardryParticleType.java
deleted file mode 100644
index 2be30685..00000000
--- a/src/main/java/electroblob/wizardry/util/WizardryParticleType.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package electroblob.wizardry.util;
-
-/**
- * Enum constants representing the different types of particle added by wizardry. This was renamed from the previous
- * EnumParticleType in the 1.10.2 port to avoid confusion with the vanilla version, EnumParticleTypes.
- */
-public enum WizardryParticleType {
- BLIZZARD, BRIGHT_DUST, DARK_MAGIC, DUST, ICE, LEAF, MAGIC_BUBBLE, MAGIC_FIRE, PATH, SNOW, SPARK, SPARKLE, SPARKLE_ROTATING
-}