Search in sources :

Example 1 with ModuleInstanceEffect

use of com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect in project Wizardry by TeamWizardry.

the class ModuleEffectSubstitution method run.

@Override
public boolean run(@NotNull World world, ModuleInstanceEffect instance, @Nonnull SpellData spell, @Nonnull SpellRing spellRing) {
    Entity targetEntity = spell.getVictim(world);
    Entity caster = spell.getCaster(world);
    BlockPos targetBlock = spell.getTargetPos();
    EnumFacing facing = spell.getFaceHit();
    if (caster == null)
        return false;
    if (targetEntity instanceof EntityLivingBase) {
        if (!spellRing.taxCaster(world, spell, true))
            return false;
        Vec3d posTarget = new Vec3d(targetEntity.posX, targetEntity.posY, targetEntity.posZ), posCaster = new Vec3d(caster.posX, caster.posY, caster.posZ);
        float yawTarget = targetEntity.rotationYaw, pitchTarget = targetEntity.rotationPitch, yawCaster = caster.rotationYaw, pitchCaster = caster.rotationPitch;
        targetEntity.rotationYaw = yawCaster;
        targetEntity.rotationPitch = pitchCaster;
        targetEntity.setPositionAndUpdate(posCaster.x, posCaster.y, posCaster.z);
        caster.rotationYaw = yawTarget;
        caster.rotationPitch = pitchTarget;
        caster.setPositionAndUpdate(posTarget.x, posTarget.y, posTarget.z);
        world.playSound(null, caster.getPosition(), ModSounds.TELEPORT, SoundCategory.NEUTRAL, 1, RandUtil.nextFloat());
        world.playSound(null, targetEntity.getPosition(), ModSounds.TELEPORT, SoundCategory.NEUTRAL, 1, RandUtil.nextFloat());
        return true;
    } else if (targetBlock != null && caster instanceof EntityPlayer) {
        if (facing == null)
            return false;
        ItemStack hand = ((EntityPlayer) caster).getHeldItemMainhand();
        if (hand.isEmpty())
            return false;
        world.playSound(null, targetBlock, ModSounds.TELEPORT, SoundCategory.NEUTRAL, 1, RandUtil.nextFloat());
        if (NBTHelper.hasNBTEntry(hand, "selected")) {
            NBTTagCompound compound = NBTHelper.getCompound(hand, "selected");
            if (compound == null)
                return false;
            IBlockState state = NBTUtil.readBlockState(compound);
            IBlockState touchedBlock = world.getBlockState(targetBlock);
            boolean misMatch = false;
            for (IProperty property : touchedBlock.getPropertyKeys()) {
                if (state.getPropertyKeys().contains(property)) {
                    if (state.getValue(property).equals(touchedBlock.getValue(property))) {
                    } else {
                        misMatch = true;
                    }
                }
            }
            if (touchedBlock.getBlock() == state.getBlock() && !misMatch)
                return false;
            double area = spellRing.getAttributeValue(world, AttributeRegistry.AREA, spell);
            ItemStack stackBlock = null;
            for (ItemStack stack : ((EntityPlayer) caster).inventory.mainInventory) {
                if (stack.isEmpty())
                    continue;
                if (!(stack.getItem() instanceof ItemBlock))
                    continue;
                Block block = ((ItemBlock) stack.getItem()).getBlock();
                if (block != state.getBlock())
                    continue;
                stackBlock = stack;
                break;
            }
            if (stackBlock == null)
                return false;
            Set<BlockPos> blocks = BlockUtils.blocksInSquare(targetBlock, facing, Math.min(stackBlock.getCount(), (int) area), (int) ((Math.sqrt(area) + 1) / 2), pos -> {
                if (world.isAirBlock(pos))
                    return true;
                if (!world.isAirBlock(pos.offset(facing)))
                    return true;
                IBlockState block = world.getBlockState(pos);
                return block.getBlock() != touchedBlock.getBlock();
            });
            if (blocks.isEmpty())
                return true;
            for (BlockPos pos : blocks) {
                if (stackBlock.isEmpty())
                    return true;
                if (!spellRing.taxCaster(world, spell, 1 / area, false))
                    return false;
                if (world.isAirBlock(pos))
                    continue;
                if (world.getBlockState(pos).getBlock() == state.getBlock())
                    continue;
                stackBlock.shrink(1);
                IBlockState oldState = world.getBlockState(pos);
                BlockUtils.placeBlock(world, pos, state, (EntityPlayerMP) caster);
                ((EntityPlayer) caster).inventory.addItemStackToInventory(new ItemStack(oldState.getBlock().getItemDropped(oldState, world.rand, 0)));
            }
        }
        return true;
    }
    return false;
}
Also used : RenderUtils(com.teamwizardry.wizardry.api.util.RenderUtils) InterpScale(com.teamwizardry.wizardry.api.util.interp.InterpScale) Blocks(net.minecraft.init.Blocks) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) ModuleInstanceEffect(com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect) HashMap(java.util.HashMap) ParticleSpawner(com.teamwizardry.librarianlib.features.particle.ParticleSpawner) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) ItemStack(net.minecraft.item.ItemStack) IProperty(net.minecraft.block.properties.IProperty) Block(net.minecraft.block.Block) Vec3d(net.minecraft.util.math.Vec3d) Side(net.minecraftforge.fml.relauncher.Side) Map(java.util.Map) ModSounds(com.teamwizardry.wizardry.init.ModSounds) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) IModuleEffect(com.teamwizardry.wizardry.api.spell.module.IModuleEffect) SoundCategory(net.minecraft.util.SoundCategory) Nonnull(javax.annotation.Nonnull) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) Entity(net.minecraft.entity.Entity) IBlockSelectable(com.teamwizardry.wizardry.api.spell.IBlockSelectable) World(net.minecraft.world.World) Wizardry(com.teamwizardry.wizardry.Wizardry) EnumFacing(net.minecraft.util.EnumFacing) Set(java.util.Set) InterpHelix(com.teamwizardry.librarianlib.features.math.interpolate.position.InterpHelix) BlockPos(net.minecraft.util.math.BlockPos) InterpColorHSV(com.teamwizardry.librarianlib.features.particle.functions.InterpColorHSV) ModuleRegistry(com.teamwizardry.wizardry.api.spell.module.ModuleRegistry) IBlockState(net.minecraft.block.state.IBlockState) AttributeRegistry(com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry) BlockUtils(com.teamwizardry.wizardry.api.util.BlockUtils) EntityLivingBase(net.minecraft.entity.EntityLivingBase) EntityPlayer(net.minecraft.entity.player.EntityPlayer) NBTHelper(com.teamwizardry.librarianlib.features.helpers.NBTHelper) ResourceLocation(net.minecraft.util.ResourceLocation) RegisterModule(com.teamwizardry.wizardry.api.spell.annotation.RegisterModule) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) NBTConstants(com.teamwizardry.wizardry.api.NBTConstants) ItemBlock(net.minecraft.item.ItemBlock) NotNull(org.jetbrains.annotations.NotNull) NBTUtil(net.minecraft.nbt.NBTUtil) Entity(net.minecraft.entity.Entity) IBlockState(net.minecraft.block.state.IBlockState) Set(java.util.Set) EnumFacing(net.minecraft.util.EnumFacing) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) ItemBlock(net.minecraft.item.ItemBlock) Vec3d(net.minecraft.util.math.Vec3d) IProperty(net.minecraft.block.properties.IProperty) EntityLivingBase(net.minecraft.entity.EntityLivingBase) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Block(net.minecraft.block.Block) ItemBlock(net.minecraft.item.ItemBlock) BlockPos(net.minecraft.util.math.BlockPos) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) ItemStack(net.minecraft.item.ItemStack)

Example 2 with ModuleInstanceEffect

use of com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect in project Wizardry by TeamWizardry.

the class ModuleEffectSubstitution method renderSpell.

@Override
@SideOnly(Side.CLIENT)
public void renderSpell(World world, ModuleInstanceEffect instance, @Nonnull SpellData spell, @Nonnull SpellRing spellRing) {
    Entity caster = spell.getCaster(world);
    BlockPos targetBlock = spell.getTargetPos();
    Entity targetEntity = spell.getVictim(world);
    if (targetEntity != null && caster != null) {
        ParticleBuilder glitter = new ParticleBuilder(RandUtil.nextInt(20, 30));
        glitter.setRender(new ResourceLocation(Wizardry.MODID, NBTConstants.MISC.SPARKLE_BLURRED));
        glitter.setColorFunction(new InterpColorHSV(instance.getPrimaryColor(), instance.getSecondaryColor()));
        ParticleSpawner.spawn(glitter, world, new StaticInterp<>(new Vec3d(targetEntity.posX, targetEntity.posY, targetEntity.posZ)), 50, RandUtil.nextInt(20, 30), (aFloat, particleBuilder) -> {
            glitter.setScale((float) RandUtil.nextDouble(0.3, 1));
            glitter.setAlphaFunction(new InterpFloatInOut(0.3f, (float) RandUtil.nextDouble(0.6, 1)));
            glitter.setLifetime(RandUtil.nextInt(10, 20));
            glitter.setScaleFunction(new InterpScale(1, 0));
            glitter.setPositionFunction(new InterpHelix(new Vec3d(0, 0, 0), new Vec3d(0, 2, 0), 0.5f, 0f, 1, RandUtil.nextFloat()));
        });
        glitter.setColorFunction(new InterpColorHSV(instance.getSecondaryColor(), instance.getPrimaryColor()));
        ParticleSpawner.spawn(glitter, world, new StaticInterp<>(new Vec3d(caster.posX, caster.posY, caster.posZ)), 50, RandUtil.nextInt(20, 30), (aFloat, particleBuilder) -> {
            glitter.setScale((float) RandUtil.nextDouble(0.3, 1));
            glitter.setAlphaFunction(new InterpFloatInOut(0.3f, (float) RandUtil.nextDouble(0.6, 1)));
            glitter.setLifetime(RandUtil.nextInt(10, 20));
            glitter.setScaleFunction(new InterpScale(1, 0));
            glitter.setPositionFunction(new InterpHelix(new Vec3d(0, 0, 0), new Vec3d(0, 4, 0), 1f, 0f, 1, RandUtil.nextFloat()));
        });
    } else if (targetBlock != null) {
        ParticleBuilder glitter = new ParticleBuilder(RandUtil.nextInt(20, 30));
        glitter.setRender(new ResourceLocation(Wizardry.MODID, NBTConstants.MISC.SPARKLE_BLURRED));
        glitter.setColorFunction(new InterpColorHSV(instance.getPrimaryColor(), instance.getSecondaryColor()));
        ParticleSpawner.spawn(glitter, world, new StaticInterp<>(new Vec3d(targetBlock).add(0.5, 0.5, 0.5)), 20, 0, (aFloat, particleBuilder) -> {
            glitter.setScale((float) RandUtil.nextDouble(0.3, 1));
            glitter.setAlphaFunction(new InterpFloatInOut(0.3f, (float) RandUtil.nextDouble(0.6, 1)));
            glitter.setLifetime(RandUtil.nextInt(10, 20));
            glitter.setScaleFunction(new InterpScale(1, 0));
            glitter.setMotion(new Vec3d(RandUtil.nextDouble(-0.1, 0.1), RandUtil.nextDouble(-0.1, 0.1), RandUtil.nextDouble(-0.1, 0.1)));
        });
    }
}
Also used : RenderUtils(com.teamwizardry.wizardry.api.util.RenderUtils) InterpScale(com.teamwizardry.wizardry.api.util.interp.InterpScale) Blocks(net.minecraft.init.Blocks) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) ModuleInstanceEffect(com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect) HashMap(java.util.HashMap) ParticleSpawner(com.teamwizardry.librarianlib.features.particle.ParticleSpawner) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) ItemStack(net.minecraft.item.ItemStack) IProperty(net.minecraft.block.properties.IProperty) Block(net.minecraft.block.Block) Vec3d(net.minecraft.util.math.Vec3d) Side(net.minecraftforge.fml.relauncher.Side) Map(java.util.Map) ModSounds(com.teamwizardry.wizardry.init.ModSounds) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) IModuleEffect(com.teamwizardry.wizardry.api.spell.module.IModuleEffect) SoundCategory(net.minecraft.util.SoundCategory) Nonnull(javax.annotation.Nonnull) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) Entity(net.minecraft.entity.Entity) IBlockSelectable(com.teamwizardry.wizardry.api.spell.IBlockSelectable) World(net.minecraft.world.World) Wizardry(com.teamwizardry.wizardry.Wizardry) EnumFacing(net.minecraft.util.EnumFacing) Set(java.util.Set) InterpHelix(com.teamwizardry.librarianlib.features.math.interpolate.position.InterpHelix) BlockPos(net.minecraft.util.math.BlockPos) InterpColorHSV(com.teamwizardry.librarianlib.features.particle.functions.InterpColorHSV) ModuleRegistry(com.teamwizardry.wizardry.api.spell.module.ModuleRegistry) IBlockState(net.minecraft.block.state.IBlockState) AttributeRegistry(com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry) BlockUtils(com.teamwizardry.wizardry.api.util.BlockUtils) EntityLivingBase(net.minecraft.entity.EntityLivingBase) EntityPlayer(net.minecraft.entity.player.EntityPlayer) NBTHelper(com.teamwizardry.librarianlib.features.helpers.NBTHelper) ResourceLocation(net.minecraft.util.ResourceLocation) RegisterModule(com.teamwizardry.wizardry.api.spell.annotation.RegisterModule) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) NBTConstants(com.teamwizardry.wizardry.api.NBTConstants) ItemBlock(net.minecraft.item.ItemBlock) NotNull(org.jetbrains.annotations.NotNull) NBTUtil(net.minecraft.nbt.NBTUtil) Entity(net.minecraft.entity.Entity) InterpHelix(com.teamwizardry.librarianlib.features.math.interpolate.position.InterpHelix) InterpColorHSV(com.teamwizardry.librarianlib.features.particle.functions.InterpColorHSV) InterpScale(com.teamwizardry.wizardry.api.util.interp.InterpScale) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) ResourceLocation(net.minecraft.util.ResourceLocation) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) BlockPos(net.minecraft.util.math.BlockPos) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) Vec3d(net.minecraft.util.math.Vec3d) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 3 with ModuleInstanceEffect

use of com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect in project Wizardry by TeamWizardry.

the class ModuleEffectSonic method run.

@Override
public boolean run(@NotNull World world, ModuleInstanceEffect instance, @Nonnull SpellData spell, @Nonnull SpellRing spellRing) {
    Entity targetEntity = spell.getVictim(world);
    Entity caster = spell.getCaster(world);
    BlockPos pos = spell.getTargetPos();
    if (pos == null)
        return false;
    double potency = spellRing.getAttributeValue(world, AttributeRegistry.POTENCY, spell) / 2;
    double area = spellRing.getAttributeValue(world, AttributeRegistry.AREA, spell) / 2;
    if (!spellRing.taxCaster(world, spell, true))
        return false;
    if (targetEntity instanceof EntityLivingBase) {
        world.playSound(null, pos, ModSounds.SOUND_BOMB, SoundCategory.NEUTRAL, 1, RandUtil.nextFloat(0.8f, 1.2f));
        damageEntity((EntityLivingBase) targetEntity, caster, (float) potency);
        if (((EntityLivingBase) targetEntity).getHealth() <= 0) {
            Vec3d targetPos = targetEntity.getPositionVector();
            double sqArea = area * area;
            AxisAlignedBB aabb = new AxisAlignedBB(targetEntity.getPosition()).grow(area);
            world.getEntitiesWithinAABB(EntityLivingBase.class, aabb).stream().filter(entity -> entity.getPositionVector().squareDistanceTo(targetPos) < sqArea).forEach(entity -> damageEntity(entity, caster, (float) potency));
        }
    }
    return true;
}
Also used : AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) InterpCircle(com.teamwizardry.librarianlib.features.math.interpolate.position.InterpCircle) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) ModuleInstanceEffect(com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect) ParticleSpawner(com.teamwizardry.librarianlib.features.particle.ParticleSpawner) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) Vec3d(net.minecraft.util.math.Vec3d) Side(net.minecraftforge.fml.relauncher.Side) ModSounds(com.teamwizardry.wizardry.init.ModSounds) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) IModuleEffect(com.teamwizardry.wizardry.api.spell.module.IModuleEffect) SoundCategory(net.minecraft.util.SoundCategory) Nonnull(javax.annotation.Nonnull) Entity(net.minecraft.entity.Entity) World(net.minecraft.world.World) Wizardry(com.teamwizardry.wizardry.Wizardry) BlockPos(net.minecraft.util.math.BlockPos) DamageSource(net.minecraft.util.DamageSource) InterpColorHSV(com.teamwizardry.librarianlib.features.particle.functions.InterpColorHSV) AttributeRegistry(com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry) EntityLivingBase(net.minecraft.entity.EntityLivingBase) EntityPlayer(net.minecraft.entity.player.EntityPlayer) ResourceLocation(net.minecraft.util.ResourceLocation) RegisterModule(com.teamwizardry.wizardry.api.spell.annotation.RegisterModule) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) NBTConstants(com.teamwizardry.wizardry.api.NBTConstants) NotNull(org.jetbrains.annotations.NotNull) Entity(net.minecraft.entity.Entity) EntityLivingBase(net.minecraft.entity.EntityLivingBase) BlockPos(net.minecraft.util.math.BlockPos) Vec3d(net.minecraft.util.math.Vec3d)

Example 4 with ModuleInstanceEffect

use of com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect in project Wizardry by TeamWizardry.

the class ModuleEffectZoom method run.

@Override
public boolean run(@NotNull World world, ModuleInstanceEffect instance, @Nonnull SpellData spell, @Nonnull SpellRing spellRing) {
    Entity entityHit = spell.getVictim(world);
    Vec3d look = spell.getData(LOOK);
    Vec3d origin = spell.getData(ORIGIN);
    if (entityHit == null)
        return true;
    else {
        if (!spellRing.taxCaster(world, spell, true))
            return false;
        if (look == null)
            return true;
        if (origin == null)
            return true;
        double range = spellRing.getAttributeValue(world, AttributeRegistry.RANGE, spell);
        RayTraceResult trace = new RayTrace(world, look, origin, range).setEntityFilter(input -> input != entityHit).setIgnoreBlocksWithoutBoundingBoxes(true).setReturnLastUncollidableBlock(false).trace();
        spell.addData(ORIGINAL_LOC, entityHit.getPositionVector());
        entityHit.setPositionAndUpdate(trace.hitVec.x, trace.hitVec.y, trace.hitVec.z);
        entityHit.motionX = 0;
        entityHit.motionY = 0;
        entityHit.motionZ = 0;
        entityHit.velocityChanged = true;
    }
    if (entityHit instanceof EntityLivingBase) {
        ((EntityLivingBase) entityHit).addPotionEffect(new PotionEffect(ModPotions.NULLIFY_GRAVITY, 2, 1, true, false));
        ((EntityLivingBase) entityHit).addPotionEffect(new PotionEffect(ModPotions.NULL_MOVEMENT, 2, 1, true, false));
    }
    return true;
}
Also used : StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) ORIGIN(com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.ORIGIN) ModuleInstanceEffect(com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect) SpellData.constructField(com.teamwizardry.wizardry.api.spell.SpellData.constructField) ParticleSpawner(com.teamwizardry.librarianlib.features.particle.ParticleSpawner) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) PotionEffect(net.minecraft.potion.PotionEffect) RayTraceResult(net.minecraft.util.math.RayTraceResult) InterpLine(com.teamwizardry.librarianlib.features.math.interpolate.position.InterpLine) Vec3d(net.minecraft.util.math.Vec3d) Side(net.minecraftforge.fml.relauncher.Side) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) InterpFloatInOut(com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) IModuleEffect(com.teamwizardry.wizardry.api.spell.module.IModuleEffect) Nonnull(javax.annotation.Nonnull) Entity(net.minecraft.entity.Entity) DataField(com.teamwizardry.wizardry.api.spell.SpellData.DataField) World(net.minecraft.world.World) LOOK(com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK) Wizardry(com.teamwizardry.wizardry.Wizardry) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace) ModPotions(com.teamwizardry.wizardry.init.ModPotions) InterpColorHSV(com.teamwizardry.librarianlib.features.particle.functions.InterpColorHSV) AttributeRegistry(com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry) EntityLivingBase(net.minecraft.entity.EntityLivingBase) ResourceLocation(net.minecraft.util.ResourceLocation) RegisterModule(com.teamwizardry.wizardry.api.spell.annotation.RegisterModule) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) NBTConstants(com.teamwizardry.wizardry.api.NBTConstants) NotNull(org.jetbrains.annotations.NotNull) Entity(net.minecraft.entity.Entity) PotionEffect(net.minecraft.potion.PotionEffect) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace) RayTraceResult(net.minecraft.util.math.RayTraceResult) EntityLivingBase(net.minecraft.entity.EntityLivingBase) Vec3d(net.minecraft.util.math.Vec3d)

Aggregations

StaticInterp (com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp)4 InterpFloatInOut (com.teamwizardry.librarianlib.features.math.interpolate.numeric.InterpFloatInOut)4 ParticleBuilder (com.teamwizardry.librarianlib.features.particle.ParticleBuilder)4 ParticleSpawner (com.teamwizardry.librarianlib.features.particle.ParticleSpawner)4 InterpColorHSV (com.teamwizardry.librarianlib.features.particle.functions.InterpColorHSV)4 Wizardry (com.teamwizardry.wizardry.Wizardry)4 NBTConstants (com.teamwizardry.wizardry.api.NBTConstants)4 SpellData (com.teamwizardry.wizardry.api.spell.SpellData)4 SpellRing (com.teamwizardry.wizardry.api.spell.SpellRing)4 RegisterModule (com.teamwizardry.wizardry.api.spell.annotation.RegisterModule)4 AttributeRegistry (com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry)4 IModuleEffect (com.teamwizardry.wizardry.api.spell.module.IModuleEffect)4 ModuleInstanceEffect (com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect)4 RandUtil (com.teamwizardry.wizardry.api.util.RandUtil)4 Nonnull (javax.annotation.Nonnull)4 Entity (net.minecraft.entity.Entity)4 EntityLivingBase (net.minecraft.entity.EntityLivingBase)4 ResourceLocation (net.minecraft.util.ResourceLocation)4 ModSounds (com.teamwizardry.wizardry.init.ModSounds)3 EntityPlayer (net.minecraft.entity.player.EntityPlayer)3