Search in sources :

Example 6 with LOOK

use of com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK in project Wizardry by TeamWizardry.

the class EntitySpellProjectile method onUpdate.

@Override
public void onUpdate() {
    super.onUpdate();
    if (isDead)
        return;
    SpellRing spellRing = getSpellRing();
    SpellData spellData = getSpellData();
    if (spellRing == null || spellData == null) {
        setDead();
        world.removeEntity(this);
        return;
    }
    if (world.isRemote && doesRender()) {
        ClientRunnable.run(new ClientRunnable() {

            @Override
            @SideOnly(Side.CLIENT)
            public void runIfClient() {
                IShapeOverrides overrides = spellRing.getOverrideHandler().getConsumerInterface(IShapeOverrides.class);
                if (overrides.onRenderProjectile(world, spellData, spellRing))
                    return;
                ParticleBuilder glitter = new ParticleBuilder(10);
                glitter.setRender(new ResourceLocation(Wizardry.MODID, NBTConstants.MISC.SPARKLE_BLURRED));
                glitter.enableMotionCalculation();
                glitter.setCollision(true);
                glitter.setCanBounce(true);
                glitter.setColorFunction(new InterpColorHSV(spellRing.getPrimaryColor(), spellRing.getSecondaryColor()));
                glitter.setAcceleration(new Vec3d(0, -0.015, 0));
                ParticleSpawner.spawn(glitter, world, new StaticInterp<>(getPositionVector().add(new Vec3d(motionX, motionY, motionZ))), 5, 0, (aFloat, particleBuilder) -> {
                    particleBuilder.setScaleFunction(new InterpScale((float) RandUtil.nextDouble(0.3, 0.8), 0));
                    particleBuilder.setLifetime(RandUtil.nextInt(40, 60));
                    particleBuilder.addMotion(new Vec3d(RandUtil.nextDouble(-0.03, 0.03), RandUtil.nextDouble(-0.01, 0.05), RandUtil.nextDouble(-0.03, 0.03)));
                });
                glitter.disableMotionCalculation();
                glitter.setMotion(Vec3d.ZERO);
                ParticleSpawner.spawn(glitter, world, new StaticInterp<>(getPositionVector()), 5, 0, (aFloat, particleBuilder) -> {
                    particleBuilder.setScaleFunction(new InterpScale(RandUtil.nextFloat(1f, 2), 0));
                    particleBuilder.setLifetime(RandUtil.nextInt(5, 10));
                });
            }
        });
        return;
    }
    Vec3d origin = spellData.getOrigin(world);
    rotationPitch = spellData.getPitch();
    rotationYaw = spellData.getYaw();
    Vec3d look = spellData.getData(LOOK);
    if (look == null) {
        setDead();
        world.removeEntity(this);
        return;
    }
    if (origin == null || getDistance() < getDistance(origin.x, origin.y, origin.z)) {
        spellData.processBlock(getPosition(), EnumFacing.getFacingFromVector((float) look.x, (float) look.y, (float) look.z), getPositionVector());
        goBoom(spellRing, spellData);
        return;
    }
    if (collided) {
        RayTraceResult result = new RayTrace(world, look, getPositionVector(), 5).setEntityFilter(input -> input != this && !input.isEntityEqual(spellData.getCaster(world))).trace();
        spellData.processTrace(result, getPositionVector());
        goBoom(spellRing, spellData);
        return;
    }
    float speed = getSpeed();
    // MOVE //
    motionX += ((look.x * speed) - motionX);
    motionY += ((look.y * speed) - motionY);
    motionZ += ((look.z * speed) - motionZ);
    // GRAVITY
    // if (getDistanceSq(origin.x, origin.y, origin.z) > 4)
    // motionY -= gravity;
    move(MoverType.SELF, motionX, motionY, motionZ);
    List<Entity> entities = world.getEntitiesWithinAABBExcludingEntity(this, getEntityBoundingBox());
    if (!entities.isEmpty()) {
        Entity caster = spellData.getCaster(world);
        // Don't collide with other spell projectiles
        for (Entity entity : entities) {
            if (entity == caster)
                return;
            if (entity instanceof EntitySpellProjectile)
                return;
            spellData.processEntity(entity, false);
        }
        RayTraceResult result = new RayTrace(world, look, getPositionVector(), 1).setEntityFilter(input -> input != this && !input.isEntityEqual(spellData.getCaster(world))).trace();
        spellData.processTrace(result, getPositionVector());
        goBoom(spellRing, spellData);
    }
}
Also used : EntityDataManager(net.minecraft.network.datasync.EntityDataManager) InterpScale(com.teamwizardry.wizardry.api.util.interp.InterpScale) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) PacketExplode(com.teamwizardry.wizardry.common.network.PacketExplode) ParticleSpawner(com.teamwizardry.librarianlib.features.particle.ParticleSpawner) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) RayTraceResult(net.minecraft.util.math.RayTraceResult) Vec3d(net.minecraft.util.math.Vec3d) Side(net.minecraftforge.fml.relauncher.Side) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) Nonnull(javax.annotation.Nonnull) Nullable(javax.annotation.Nullable) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) Entity(net.minecraft.entity.Entity) PacketHandler(com.teamwizardry.librarianlib.features.network.PacketHandler) ClientRunnable(com.teamwizardry.librarianlib.features.utilities.client.ClientRunnable) 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) EnumFacing(net.minecraft.util.EnumFacing) DataParameter(net.minecraft.network.datasync.DataParameter) IShapeOverrides(com.teamwizardry.wizardry.common.module.shapes.IShapeOverrides) InterpColorHSV(com.teamwizardry.librarianlib.features.particle.functions.InterpColorHSV) List(java.util.List) DataSerializers(net.minecraft.network.datasync.DataSerializers) NetworkRegistry(net.minecraftforge.fml.common.network.NetworkRegistry) ResourceLocation(net.minecraft.util.ResourceLocation) EntityMod(com.teamwizardry.librarianlib.features.base.entity.EntityMod) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) MoverType(net.minecraft.entity.MoverType) NBTConstants(com.teamwizardry.wizardry.api.NBTConstants) Entity(net.minecraft.entity.Entity) IShapeOverrides(com.teamwizardry.wizardry.common.module.shapes.IShapeOverrides) StaticInterp(com.teamwizardry.librarianlib.features.math.interpolate.StaticInterp) RayTraceResult(net.minecraft.util.math.RayTraceResult) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) ClientRunnable(com.teamwizardry.librarianlib.features.utilities.client.ClientRunnable) ParticleBuilder(com.teamwizardry.librarianlib.features.particle.ParticleBuilder) Vec3d(net.minecraft.util.math.Vec3d) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) InterpColorHSV(com.teamwizardry.librarianlib.features.particle.functions.InterpColorHSV) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) InterpScale(com.teamwizardry.wizardry.api.util.interp.InterpScale) ResourceLocation(net.minecraft.util.ResourceLocation) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace)

Example 7 with LOOK

use of com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK 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)

Example 8 with LOOK

use of com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK in project Wizardry by TeamWizardry.

the class ModuleEffectLightning method onRunTouch.

@ModuleOverride("shape_touch_run")
public void onRunTouch(@ContextSuper ModuleOverrideSuper ovdSuper, World world, SpellData data, SpellRing shape, @ContextRing SpellRing childRing) {
    if (ovdSuper.hasSuper())
        ovdSuper.invoke(true, world, data, shape);
    Vec3d look = data.getData(LOOK);
    Entity caster = data.getCaster(world);
    Vec3d origin = data.getOriginWithFallback(world);
    if (look == null || caster == null || origin == null)
        return;
    if (!childRing.taxCaster(world, data, true))
        return;
    double range = childRing.getAttributeValue(world, AttributeRegistry.RANGE, data);
    double potency = childRing.getAttributeValue(world, AttributeRegistry.POTENCY, data);
    double duration = childRing.getAttributeValue(world, AttributeRegistry.DURATION, data);
    RayTraceResult trace = new RayTrace(world, look, origin, caster instanceof EntityLivingBase ? ((EntityLivingBase) caster).getEntityAttribute(EntityPlayer.REACH_DISTANCE).getAttributeValue() : 5).setEntityFilter(input -> input != caster).setReturnLastUncollidableBlock(true).setIgnoreBlocksWithoutBoundingBoxes(true).trace();
    doLightning(RandUtil.nextLong(100, 100000), world, caster, origin, trace.hitVec, range, potency, duration);
}
Also used : AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) ModuleInstanceEffect(com.teamwizardry.wizardry.api.spell.module.ModuleInstanceEffect) ModuleOverrideSuper(com.teamwizardry.wizardry.api.spell.module.ModuleOverrideSuper) ModuleOverride(com.teamwizardry.wizardry.api.spell.annotation.ModuleOverride) PosUtils(com.teamwizardry.wizardry.api.util.PosUtils) PacketRenderLightningBolt(com.teamwizardry.wizardry.common.network.PacketRenderLightningBolt) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) RayTraceResult(net.minecraft.util.math.RayTraceResult) Vec3d(net.minecraft.util.math.Vec3d) Side(net.minecraftforge.fml.relauncher.Side) RandUtilSeed(com.teamwizardry.wizardry.api.util.RandUtilSeed) ModSounds(com.teamwizardry.wizardry.init.ModSounds) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) IModuleEffect(com.teamwizardry.wizardry.api.spell.module.IModuleEffect) SoundCategory(net.minecraft.util.SoundCategory) Nonnull(javax.annotation.Nonnull) LightningGenerator(com.teamwizardry.wizardry.api.LightningGenerator) ContextRing(com.teamwizardry.wizardry.api.spell.annotation.ContextRing) Entity(net.minecraft.entity.Entity) PacketHandler(com.teamwizardry.librarianlib.features.network.PacketHandler) World(net.minecraft.world.World) ContextSuper(com.teamwizardry.wizardry.api.spell.annotation.ContextSuper) LOOK(com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace) BlockPos(net.minecraft.util.math.BlockPos) AttributeRegistry(com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry) NetworkRegistry(net.minecraftforge.fml.common.network.NetworkRegistry) LightningTracker(com.teamwizardry.wizardry.common.core.LightningTracker) EntityLivingBase(net.minecraft.entity.EntityLivingBase) EntityPlayer(net.minecraft.entity.player.EntityPlayer) RegisterModule(com.teamwizardry.wizardry.api.spell.annotation.RegisterModule) EntityLightningProjectile(com.teamwizardry.wizardry.common.entity.projectile.EntityLightningProjectile) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) NotNull(org.jetbrains.annotations.NotNull) Entity(net.minecraft.entity.Entity) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace) RayTraceResult(net.minecraft.util.math.RayTraceResult) EntityLivingBase(net.minecraft.entity.EntityLivingBase) Vec3d(net.minecraft.util.math.Vec3d) ModuleOverride(com.teamwizardry.wizardry.api.spell.annotation.ModuleOverride)

Example 9 with LOOK

use of com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK in project Wizardry by TeamWizardry.

the class ModuleShapeBeam method renderVisualization.

@NotNull
@Override
public SpellData renderVisualization(@Nonnull World world, ModuleInstanceShape instance, @Nonnull SpellData data, @Nonnull SpellRing ring, float partialTicks) {
    Vec3d look = data.getData(LOOK);
    Vec3d position = data.getOrigin(world);
    Entity caster = data.getCaster(world);
    if (look == null || position == null || caster == null)
        return data;
    double range = ring.getAttributeValue(world, AttributeRegistry.RANGE, data);
    double interpPosX = caster.lastTickPosX + (caster.posX - caster.lastTickPosX) * partialTicks;
    double interpPosY = caster.lastTickPosY + (caster.posY - caster.lastTickPosY) * partialTicks;
    double interpPosZ = caster.lastTickPosZ + (caster.posZ - caster.lastTickPosZ) * partialTicks;
    RayTraceResult result = new RayTrace(world, look, new Vec3d(interpPosX, interpPosY + caster.getEyeHeight(), interpPosZ), range).setEntityFilter(input -> input != caster).setReturnLastUncollidableBlock(true).setIgnoreBlocksWithoutBoundingBoxes(true).trace();
    data.processTrace(result, look.scale(range));
    Vec3d target = data.getTarget(world);
    if (target == null)
        return data;
    RenderUtils.drawCircle(target, 0.3, true, false);
    return data;
}
Also used : RenderUtils(com.teamwizardry.wizardry.api.util.RenderUtils) HashMap(java.util.HashMap) ModuleOverrideSuper(com.teamwizardry.wizardry.api.spell.module.ModuleOverrideSuper) ModuleOverride(com.teamwizardry.wizardry.api.spell.annotation.ModuleOverride) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) ItemStack(net.minecraft.item.ItemStack) RayTraceResult(net.minecraft.util.math.RayTraceResult) Vec3d(net.minecraft.util.math.Vec3d) Side(net.minecraftforge.fml.relauncher.Side) Mod(net.minecraftforge.fml.common.Mod) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) Nonnull(javax.annotation.Nonnull) ConfigValues(com.teamwizardry.wizardry.api.ConfigValues) Entity(net.minecraft.entity.Entity) World(net.minecraft.world.World) ContextSuper(com.teamwizardry.wizardry.api.spell.annotation.ContextSuper) LOOK(com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK) Wizardry(com.teamwizardry.wizardry.Wizardry) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace) ModuleInstanceShape(com.teamwizardry.wizardry.api.spell.module.ModuleInstanceShape) IContinuousModule(com.teamwizardry.wizardry.api.spell.IContinuousModule) AttributeRegistry(com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry) EntityLivingBase(net.minecraft.entity.EntityLivingBase) LibParticles(com.teamwizardry.wizardry.client.fx.LibParticles) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) RegisterModule(com.teamwizardry.wizardry.api.spell.annotation.RegisterModule) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) TickEvent(net.minecraftforge.fml.common.gameevent.TickEvent) NotNull(org.jetbrains.annotations.NotNull) IModuleShape(com.teamwizardry.wizardry.api.spell.module.IModuleShape) Entity(net.minecraft.entity.Entity) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace) RayTraceResult(net.minecraft.util.math.RayTraceResult) Vec3d(net.minecraft.util.math.Vec3d) NotNull(org.jetbrains.annotations.NotNull) ModuleOverride(com.teamwizardry.wizardry.api.spell.annotation.ModuleOverride)

Example 10 with LOOK

use of com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK in project Wizardry by TeamWizardry.

the class ModuleShapeBeam method run.

/**
 * {@inheritDoc}
 */
@Override
public boolean run(@NotNull World world, ModuleInstanceShape instance, @Nonnull SpellData spell, @Nonnull SpellRing spellRing) {
    Vec3d look = spell.getData(LOOK);
    Vec3d position = spell.getOrigin(world);
    Entity caster = spell.getCaster(world);
    if (look == null || position == null || caster == null)
        return false;
    ItemStack stack = ((EntityLivingBase) caster).getHeldItemMainhand();
    if (stack.isEmpty())
        return true;
    beamTickMap.putIfAbsent(stack, new BeamTicker());
    BeamTicker ticker = beamTickMap.get(stack);
    double range = spellRing.getAttributeValue(world, AttributeRegistry.RANGE, spell);
    double potency = spellRing.getAttributeValue(world, AttributeRegistry.POTENCY, spell);
    double beamOffset = ticker.ticks + potency;
    ticker.cast = false;
    if (beamOffset >= ConfigValues.beamTimer) {
        beamOffset %= ConfigValues.beamTimer;
        if (!spellRing.taxCaster(world, spell, true)) {
            ticker.ticks = beamOffset;
            return false;
        }
        IShapeOverrides overrides = spellRing.getOverrideHandler().getConsumerInterface(IShapeOverrides.class);
        overrides.onRunBeam(world, spell, spellRing);
        RayTraceResult trace = new RayTrace(world, look, position, range).setEntityFilter(input -> input != caster).setReturnLastUncollidableBlock(true).setIgnoreBlocksWithoutBoundingBoxes(true).trace();
        spell.processTrace(trace, look.scale(range));
        if (spellRing.getChildRing() != null)
            spellRing.getChildRing().runSpellRing(world, spell, true);
        ticker.cast = true;
        // Is already executed via SpellRing.runSpellRing() ???
        instance.sendRenderPacket(world, spell, spellRing);
    }
    ticker.ticks = beamOffset;
    return true;
}
Also used : RenderUtils(com.teamwizardry.wizardry.api.util.RenderUtils) HashMap(java.util.HashMap) ModuleOverrideSuper(com.teamwizardry.wizardry.api.spell.module.ModuleOverrideSuper) ModuleOverride(com.teamwizardry.wizardry.api.spell.annotation.ModuleOverride) SpellRing(com.teamwizardry.wizardry.api.spell.SpellRing) ItemStack(net.minecraft.item.ItemStack) RayTraceResult(net.minecraft.util.math.RayTraceResult) Vec3d(net.minecraft.util.math.Vec3d) Side(net.minecraftforge.fml.relauncher.Side) Mod(net.minecraftforge.fml.common.Mod) SpellData(com.teamwizardry.wizardry.api.spell.SpellData) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) Nonnull(javax.annotation.Nonnull) ConfigValues(com.teamwizardry.wizardry.api.ConfigValues) Entity(net.minecraft.entity.Entity) World(net.minecraft.world.World) ContextSuper(com.teamwizardry.wizardry.api.spell.annotation.ContextSuper) LOOK(com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK) Wizardry(com.teamwizardry.wizardry.Wizardry) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace) ModuleInstanceShape(com.teamwizardry.wizardry.api.spell.module.ModuleInstanceShape) IContinuousModule(com.teamwizardry.wizardry.api.spell.IContinuousModule) AttributeRegistry(com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry) EntityLivingBase(net.minecraft.entity.EntityLivingBase) LibParticles(com.teamwizardry.wizardry.client.fx.LibParticles) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent) RegisterModule(com.teamwizardry.wizardry.api.spell.annotation.RegisterModule) RandUtil(com.teamwizardry.wizardry.api.util.RandUtil) TickEvent(net.minecraftforge.fml.common.gameevent.TickEvent) NotNull(org.jetbrains.annotations.NotNull) IModuleShape(com.teamwizardry.wizardry.api.spell.module.IModuleShape) Entity(net.minecraft.entity.Entity) RayTrace(com.teamwizardry.wizardry.api.util.RayTrace) EntityLivingBase(net.minecraft.entity.EntityLivingBase) RayTraceResult(net.minecraft.util.math.RayTraceResult) ItemStack(net.minecraft.item.ItemStack) Vec3d(net.minecraft.util.math.Vec3d) ModuleOverride(com.teamwizardry.wizardry.api.spell.annotation.ModuleOverride)

Aggregations

SpellData (com.teamwizardry.wizardry.api.spell.SpellData)10 LOOK (com.teamwizardry.wizardry.api.spell.SpellData.DefaultKeys.LOOK)10 SpellRing (com.teamwizardry.wizardry.api.spell.SpellRing)10 RandUtil (com.teamwizardry.wizardry.api.util.RandUtil)10 Nonnull (javax.annotation.Nonnull)10 Entity (net.minecraft.entity.Entity)10 Vec3d (net.minecraft.util.math.Vec3d)10 World (net.minecraft.world.World)10 Side (net.minecraftforge.fml.relauncher.Side)10 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)10 RayTrace (com.teamwizardry.wizardry.api.util.RayTrace)9 RayTraceResult (net.minecraft.util.math.RayTraceResult)9 Wizardry (com.teamwizardry.wizardry.Wizardry)8 RegisterModule (com.teamwizardry.wizardry.api.spell.annotation.RegisterModule)8 NotNull (org.jetbrains.annotations.NotNull)8 ModuleOverride (com.teamwizardry.wizardry.api.spell.annotation.ModuleOverride)7 AttributeRegistry (com.teamwizardry.wizardry.api.spell.attribute.AttributeRegistry)7 EntityLivingBase (net.minecraft.entity.EntityLivingBase)7 IModuleShape (com.teamwizardry.wizardry.api.spell.module.IModuleShape)6 ModuleInstanceShape (com.teamwizardry.wizardry.api.spell.module.ModuleInstanceShape)6