Spell hierarchisation and refactoring, plus miscellaneous renaming and minor refactoring

- Adds new generic spell superclasses which aim to group spells such that duplicate code is eliminated, and functions standardised, as much as possible.
- Removes numerous spell classes which are no longer required as a result of this change, and replaces them with instances of the relevant generic spell classes.
- Changes the remaining spell classes to fit with the new system, mostly by having them extend the generic spell classes.
- Completes the transfer of particle spawning to the ParticleBuilder system.
This commit is contained in:
Electroblob
2018-06-20 22:25:54 +01:00
parent b6400c72a7
commit 29261082f1
222 changed files with 4412 additions and 9016 deletions
@@ -1,20 +1,12 @@
package electroblob.wizardry.entity.construct;
import electroblob.wizardry.entity.projectile.EntityIceShard;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.world.World;
public class EntityHailstorm extends EntityMagicConstruct {
public EntityHailstorm(World par1World){
super(par1World);
this.height = 3.0f;
this.width = 5.0f;
}
public EntityHailstorm(World world, double x, double y, double z, EntityLivingBase caster, int lifetime,
float damageMultiplier){
super(world, x, y, z, caster, lifetime, damageMultiplier);
public EntityHailstorm(World world){
super(world);
this.height = 3.0f;
this.width = 5.0f;
}
@@ -25,12 +17,13 @@ public class EntityHailstorm extends EntityMagicConstruct {
if(!this.world.isRemote){
// System.out.println(this.rotationYaw);
EntityIceShard iceshard = new EntityIceShard(world, this.posX + rand.nextDouble() * 6 - 3,
this.posY + rand.nextDouble() * 4 - 2, this.posZ + rand.nextDouble() * 6 - 3);
EntityIceShard iceshard = new EntityIceShard(world);
iceshard.setPosition(this.posX + rand.nextDouble() * 6 - 3, this.posY + rand.nextDouble() * 4 - 2,
this.posZ + rand.nextDouble() * 6 - 3);
iceshard.motionX = Math.cos(Math.toRadians(this.rotationYaw + 90));
iceshard.motionY = -0.6;
iceshard.motionZ = Math.sin(Math.toRadians(this.rotationYaw + 90));
iceshard.setShootingEntity(this.getCaster());
iceshard.setCaster(this.getCaster());
iceshard.damageMultiplier = this.damageMultiplier;
this.world.spawnEntity(iceshard);
}