Change onThrownTick to receive the actual type rather than just a caster

This commit is contained in:
Sollace 2021-03-05 19:22:09 +02:00
parent c9abb1a0f8
commit 51ed3fe2e2
8 changed files with 20 additions and 17 deletions

View file

@ -3,8 +3,8 @@ package com.minelittlepony.unicopia.ability.magic.spell;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.minelittlepony.unicopia.ability.magic.Caster;
import com.minelittlepony.unicopia.ability.magic.Thrown; import com.minelittlepony.unicopia.ability.magic.Thrown;
import com.minelittlepony.unicopia.projectile.MagicProjectileEntity;
import com.minelittlepony.unicopia.util.shape.Sphere; import com.minelittlepony.unicopia.util.shape.Sphere;
import net.minecraft.particle.ParticleEffect; import net.minecraft.particle.ParticleEffect;
@ -22,7 +22,7 @@ public class AwkwardSpell extends AbstractSpell implements Thrown {
} }
@Override @Override
public boolean onThrownTick(Caster<?> source) { public boolean onThrownTick(MagicProjectileEntity source) {
if (source.isClient()) { if (source.isClient()) {
source.spawnParticles(new Sphere(false, (1 + source.getLevel().get()) * 8), 10, pos -> { source.spawnParticles(new Sphere(false, (1 + source.getLevel().get()) * 8), 10, pos -> {

View file

@ -51,12 +51,12 @@ public class FireSpell extends AbstractSpell implements Thrown, Attached {
} }
@Override @Override
public boolean onBodyTick(Caster<?> source) { public boolean onThrownTick(MagicProjectileEntity projectile) {
return onThrownTick(source); return onBodyTick(projectile);
} }
@Override @Override
public boolean onThrownTick(Caster<?> source) { public boolean onBodyTick(Caster<?> source) {
if (source.isClient()) { if (source.isClient()) {
generateParticles(source); generateParticles(source);
} }

View file

@ -5,6 +5,7 @@ import com.minelittlepony.unicopia.ability.magic.Caster;
import com.minelittlepony.unicopia.ability.magic.Thrown; import com.minelittlepony.unicopia.ability.magic.Thrown;
import com.minelittlepony.unicopia.block.state.StateMaps; import com.minelittlepony.unicopia.block.state.StateMaps;
import com.minelittlepony.unicopia.particle.ParticleUtils; import com.minelittlepony.unicopia.particle.ParticleUtils;
import com.minelittlepony.unicopia.projectile.MagicProjectileEntity;
import com.minelittlepony.unicopia.util.MagicalDamageSource; import com.minelittlepony.unicopia.util.MagicalDamageSource;
import com.minelittlepony.unicopia.util.PosHelper; import com.minelittlepony.unicopia.util.PosHelper;
import com.minelittlepony.unicopia.util.VecHelper; import com.minelittlepony.unicopia.util.VecHelper;
@ -35,12 +36,12 @@ public class IceSpell extends AbstractSpell implements Thrown, Attached {
} }
@Override @Override
public boolean onBodyTick(Caster<?> source) { public boolean onThrownTick(MagicProjectileEntity projectile) {
return onThrownTick(source); return onBodyTick(projectile);
} }
@Override @Override
public boolean onThrownTick(Caster<?> source) { public boolean onBodyTick(Caster<?> source) {
LivingEntity owner = source.getMaster(); LivingEntity owner = source.getMaster();
PosHelper.getAllInRegionMutable(source.getOrigin(), effect_range) PosHelper.getAllInRegionMutable(source.getOrigin(), effect_range)

View file

@ -21,7 +21,7 @@ public class InfernoSpell extends FireSpell {
} }
@Override @Override
public boolean onThrownTick(Caster<?> source) { public boolean onBodyTick(Caster<?> source) {
if (source.isClient()) { if (source.isClient()) {
generateParticles(source); generateParticles(source);
} }

View file

@ -4,6 +4,7 @@ import com.minelittlepony.unicopia.ability.magic.Attached;
import com.minelittlepony.unicopia.ability.magic.Caster; import com.minelittlepony.unicopia.ability.magic.Caster;
import com.minelittlepony.unicopia.ability.magic.Thrown; import com.minelittlepony.unicopia.ability.magic.Thrown;
import com.minelittlepony.unicopia.particle.MagicParticleEffect; import com.minelittlepony.unicopia.particle.MagicParticleEffect;
import com.minelittlepony.unicopia.projectile.MagicProjectileEntity;
import com.minelittlepony.unicopia.util.shape.Shape; import com.minelittlepony.unicopia.util.shape.Shape;
import com.minelittlepony.unicopia.util.shape.Sphere; import com.minelittlepony.unicopia.util.shape.Sphere;
@ -27,12 +28,12 @@ public class RevealingSpell extends AbstractSpell implements Attached, Thrown {
} }
@Override @Override
public boolean onBodyTick(Caster<?> source) { public boolean onThrownTick(MagicProjectileEntity projectile) {
return onThrownTick(source); return onBodyTick(projectile);
} }
@Override @Override
public boolean onThrownTick(Caster<?> source) { public boolean onBodyTick(Caster<?> source) {
if (source.isClient()) { if (source.isClient()) {
MagicParticleEffect effect = new MagicParticleEffect(getType().getColor()); MagicParticleEffect effect = new MagicParticleEffect(getType().getColor());

View file

@ -20,7 +20,7 @@ public class ScorchSpell extends FireSpell {
} }
@Override @Override
public boolean onThrownTick(Caster<?> source) { public boolean onBodyTick(Caster<?> source) {
BlockPos pos = PosHelper.findSolidGroundAt(source.getWorld(), source.getOrigin(), source.getPhysics().getGravitySignum()); BlockPos pos = PosHelper.findSolidGroundAt(source.getWorld(), source.getOrigin(), source.getPhysics().getGravitySignum());

View file

@ -17,6 +17,7 @@ import com.minelittlepony.unicopia.item.enchantment.UEnchantments;
import com.minelittlepony.unicopia.particle.MagicParticleEffect; import com.minelittlepony.unicopia.particle.MagicParticleEffect;
import com.minelittlepony.unicopia.particle.ParticleHandle; import com.minelittlepony.unicopia.particle.ParticleHandle;
import com.minelittlepony.unicopia.particle.SphereParticleEffect; import com.minelittlepony.unicopia.particle.SphereParticleEffect;
import com.minelittlepony.unicopia.projectile.MagicProjectileEntity;
import com.minelittlepony.unicopia.projectile.ProjectileUtil; import com.minelittlepony.unicopia.projectile.ProjectileUtil;
import com.minelittlepony.unicopia.util.shape.Sphere; import com.minelittlepony.unicopia.util.shape.Sphere;
@ -66,7 +67,7 @@ public class ShieldSpell extends AbstractSpell implements Attached, Thrown {
} }
@Override @Override
public boolean onThrownTick(Caster<?> source) { public boolean onThrownTick(MagicProjectileEntity source) {
if (source.isClient()) { if (source.isClient()) {
generateParticles(source); generateParticles(source);
} }

View file

@ -7,10 +7,10 @@ import com.minelittlepony.unicopia.Affinity;
import com.minelittlepony.unicopia.ability.magic.Caster; import com.minelittlepony.unicopia.ability.magic.Caster;
import com.minelittlepony.unicopia.ability.magic.Levelled; import com.minelittlepony.unicopia.ability.magic.Levelled;
import com.minelittlepony.unicopia.ability.magic.Spell; import com.minelittlepony.unicopia.ability.magic.Spell;
import com.minelittlepony.unicopia.ability.magic.SpellContainer;
import com.minelittlepony.unicopia.ability.magic.spell.AbstractPlacedSpell; import com.minelittlepony.unicopia.ability.magic.spell.AbstractPlacedSpell;
import com.minelittlepony.unicopia.ability.magic.spell.SpellPredicate; import com.minelittlepony.unicopia.ability.magic.spell.SpellPredicate;
import com.minelittlepony.unicopia.network.Channel; import com.minelittlepony.unicopia.network.Channel;
import com.minelittlepony.unicopia.network.EffectSync;
import com.minelittlepony.unicopia.network.MsgSpawnProjectile; import com.minelittlepony.unicopia.network.MsgSpawnProjectile;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -112,8 +112,8 @@ public class CastSpellEntity extends Entity implements Caster<LivingEntity> {
} }
@Override @Override
public EffectSync getSpellSlot() { public SpellContainer getSpellSlot() {
return Caster.of(getMaster()).map(Caster::getSpellSlot).orElse(null); return Caster.of(getMaster()).map(Caster::getSpellSlot).orElse(SpellContainer.EMPTY);
} }
@Override @Override