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
@@ -130,6 +130,14 @@ public interface ISummonedCreature extends IEntityAdditionalSpawnData {
default EntityLivingBase getCaster(){
return getCasterReference() == null ? null : getCasterReference().get();
}
/**
* Sets the EntityLivingBase that summoned this creature. <i>This is the correct method to use to set the owner of
* this summoned creature.
*/
default void setCaster(@Nullable EntityLivingBase caster){
setCasterReference(new WeakReference<EntityLivingBase>(caster));
}
// Miscellaneous