Split up and reorganise WizardryUtilities
This commit is contained in:
@@ -1,12 +1,9 @@
|
||||
package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -28,7 +25,7 @@ public class Arc extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(world.isRemote){
|
||||
// Rather neatly, the entity can be set here and if it's null nothing will happen.
|
||||
|
||||
@@ -8,10 +8,10 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.registry.WizardrySounds;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntitySpellcasterIllager;
|
||||
@@ -54,7 +54,7 @@ public class ArcaneJammer extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
if(!world.isRemote){
|
||||
((EntityLivingBase)target).addPotionEffect(new PotionEffect(WizardryPotions.arcane_jammer,
|
||||
(int)(getProperty(EFFECT_DURATION).floatValue() * modifiers.get(WizardryItems.duration_upgrade)),
|
||||
|
||||
@@ -2,10 +2,7 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.AllyDesignationSystem;
|
||||
import electroblob.wizardry.util.NBTExtras;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.*;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -49,7 +46,7 @@ public class ArcaneLock extends SpellRay {
|
||||
if(caster instanceof EntityPlayer){
|
||||
|
||||
if(toggleLock(world, pos, (EntityPlayer)caster)){
|
||||
BlockPos otherHalf = WizardryUtilities.getConnectedChest(world, pos);
|
||||
BlockPos otherHalf = BlockUtils.getConnectedChest(world, pos);
|
||||
if(otherHalf != null) toggleLock(world, otherHalf, (EntityPlayer)caster);
|
||||
return true;
|
||||
}
|
||||
@@ -133,7 +130,7 @@ public class ArcaneLock extends SpellRay {
|
||||
if(!player.isCreative()) return false;
|
||||
if(Wizardry.settings.creativeBypassesArcaneLock) return true;
|
||||
MinecraftServer server = player.world.getMinecraftServer();
|
||||
return server != null && WizardryUtilities.isPlayerOp(player, server);
|
||||
return server != null && EntityUtils.isPlayerOp(player, server);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
|
||||
@@ -3,10 +3,10 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -67,7 +67,7 @@ public class Banish extends SpellRay {
|
||||
|
||||
int x = MathHelper.floor(entity.posX + MathHelper.sin(angle) * radius);
|
||||
int z = MathHelper.floor(entity.posZ - MathHelper.cos(angle) * radius);
|
||||
Integer y = WizardryUtilities.getNearestFloor(world,
|
||||
Integer y = BlockUtils.getNearestFloor(world,
|
||||
new BlockPos(x, (int)entity.getEntityBoundingBox().minY, z), (int)radius);
|
||||
|
||||
if(world.isRemote){
|
||||
|
||||
@@ -3,9 +3,9 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.RayTracer;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -90,7 +90,7 @@ public class Blink extends Spell {
|
||||
|
||||
int x = MathHelper.floor(target.posX + MathHelper.sin(angle) * radius);
|
||||
int z = MathHelper.floor(target.posZ - MathHelper.cos(angle) * radius);
|
||||
Integer y = WizardryUtilities.getNearestFloor(world, new BlockPos(caster), (int)radius);
|
||||
Integer y = BlockUtils.getNearestFloor(world, new BlockPos(caster), (int)radius);
|
||||
|
||||
// It's worth noting that on the client side, the cast() method only gets called if the server side
|
||||
// cast method succeeded, so you need not check any conditions for spawning particles.
|
||||
|
||||
@@ -3,12 +3,9 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.entity.construct.EntityBubble;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -34,7 +31,7 @@ public class Bubble extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(!world.isRemote){
|
||||
// Deals a small amount damage so the target counts as being hit by the caster
|
||||
|
||||
@@ -40,17 +40,17 @@ public class ChainLightning extends SpellRay {
|
||||
|
||||
// Anything can be attacked with the initial arc, because the player has control over where it goes. If they
|
||||
// hit a minion or an ally, it's their problem!
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
electrocute(world, caster, origin, target, getProperty(PRIMARY_DAMAGE).floatValue()
|
||||
* modifiers.get(SpellModifiers.POTENCY));
|
||||
|
||||
// Secondary chaining effect
|
||||
List<EntityLivingBase> secondaryTargets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityLivingBase> secondaryTargets = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(SECONDARY_RANGE).doubleValue(), target.posX, target.posY + target.height / 2, target.posZ, world);
|
||||
|
||||
secondaryTargets.remove(target);
|
||||
secondaryTargets.removeIf(e -> !WizardryUtilities.isLiving(e));
|
||||
secondaryTargets.removeIf(e -> !EntityUtils.isLiving(e));
|
||||
secondaryTargets.removeIf(e -> !AllyDesignationSystem.isValidTarget(caster, e));
|
||||
if(secondaryTargets.size() > getProperty(SECONDARY_MAX_TARGETS).intValue())
|
||||
secondaryTargets = secondaryTargets.subList(0, getProperty(SECONDARY_MAX_TARGETS).intValue());
|
||||
@@ -62,13 +62,13 @@ public class ChainLightning extends SpellRay {
|
||||
|
||||
// Tertiary chaining effect
|
||||
|
||||
List<EntityLivingBase> tertiaryTargets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityLivingBase> tertiaryTargets = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(TERTIARY_RANGE).doubleValue(), secondaryTarget.posX,
|
||||
secondaryTarget.posY + secondaryTarget.height / 2, secondaryTarget.posZ, world);
|
||||
|
||||
tertiaryTargets.remove(target);
|
||||
tertiaryTargets.removeAll(secondaryTargets);
|
||||
tertiaryTargets.removeIf(e -> !WizardryUtilities.isLiving(e));
|
||||
tertiaryTargets.removeIf(e -> !EntityUtils.isLiving(e));
|
||||
tertiaryTargets.removeIf(e -> !AllyDesignationSystem.isValidTarget(caster, e));
|
||||
if(tertiaryTargets.size() > getProperty(TERTIARY_MAX_TARGETS).intValue())
|
||||
tertiaryTargets = tertiaryTargets.subList(0, getProperty(TERTIARY_MAX_TARGETS).intValue());
|
||||
|
||||
@@ -6,11 +6,8 @@ import electroblob.wizardry.data.WizardData;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.Spells;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.SoundEvents;
|
||||
@@ -94,7 +91,7 @@ public class Charge extends Spell {
|
||||
|
||||
if(collided.isEmpty()) chargeTime--;
|
||||
else{
|
||||
WizardryUtilities.playSoundAtPlayer(player, SoundEvents.ENTITY_GENERIC_HURT, 1, 1);
|
||||
EntityUtils.playSoundAtPlayer(player, SoundEvents.ENTITY_GENERIC_HURT, 1, 1);
|
||||
chargeTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryBlocks;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.tileentity.TileEntityTimer;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -42,7 +42,7 @@ public class Cobwebs extends SpellRay {
|
||||
|
||||
float radius = getProperty(EFFECT_RADIUS).floatValue() + 0.73f * blastUpgradeCount;
|
||||
|
||||
List<BlockPos> sphere = WizardryUtilities.getBlockSphere(pos, radius * modifiers.get(WizardryItems.blast_upgrade));
|
||||
List<BlockPos> sphere = BlockUtils.getBlockSphere(pos, radius * modifiers.get(WizardryItems.blast_upgrade));
|
||||
|
||||
for(BlockPos pos1 : sphere){
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ package electroblob.wizardry.spell;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import electroblob.wizardry.item.IConjuredItem;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.InventoryUtils;
|
||||
import electroblob.wizardry.util.NBTExtras;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.EntityEquipmentSlot;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -33,10 +33,10 @@ public class ConjureArmour extends SpellConjuration {
|
||||
boolean flag = false;
|
||||
|
||||
// Used this rather than getArmorInventoryList because I need to access the slot itself
|
||||
for(EntityEquipmentSlot slot : WizardryUtilities.ARMOUR_SLOTS){
|
||||
for(EntityEquipmentSlot slot : InventoryUtils.ARMOUR_SLOTS){
|
||||
|
||||
if(caster.getItemStackFromSlot(slot).isEmpty() &&
|
||||
!WizardryUtilities.doesPlayerHaveItem(caster, SPECTRAL_ARMOUR_MAP.get(slot))){
|
||||
!InventoryUtils.doesPlayerHaveItem(caster, SPECTRAL_ARMOUR_MAP.get(slot))){
|
||||
|
||||
armour = new ItemStack(SPECTRAL_ARMOUR_MAP.get(slot));
|
||||
IConjuredItem.setDurationMultiplier(armour, modifiers.get(WizardryItems.duration_upgrade));
|
||||
|
||||
@@ -4,10 +4,10 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryBlocks;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.tileentity.TileEntityTimer;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -53,7 +53,7 @@ public class ConjureBlock extends SpellRay {
|
||||
.clr(0.75f, 1, 0.85f).spawn(world);
|
||||
}
|
||||
|
||||
if(WizardryUtilities.canBlockBeReplaced(world, pos)){
|
||||
if(BlockUtils.canBlockBeReplaced(world, pos)){
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
@@ -26,7 +26,7 @@ public class Containment extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
((EntityLivingBase)target).addPotionEffect(new PotionEffect(WizardryPotions.containment,
|
||||
(int)(getProperty(EFFECT_DURATION).floatValue() * modifiers.get(WizardryItems.duration_upgrade)),
|
||||
getProperty(EFFECT_STRENGTH).intValue() + SpellBuff.getStandardBonusAmplifier(modifiers.get(SpellModifiers.POTENCY))));
|
||||
|
||||
@@ -2,11 +2,8 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
@@ -26,7 +23,7 @@ public class CurseOfEnfeeblement extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
// This will actually run out in the end, but only if you leave Minecraft running for 3.4 years
|
||||
((EntityLivingBase)target).addPotionEffect(new PotionEffect(WizardryPotions.curse_of_enfeeblement,
|
||||
Integer.MAX_VALUE, getProperty(EFFECT_STRENGTH).intValue() + SpellBuff.getStandardBonusAmplifier(modifiers.get(SpellModifiers.POTENCY))));
|
||||
|
||||
@@ -54,7 +54,7 @@ public class CurseOfSoulbinding extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target) && caster instanceof EntityPlayer){
|
||||
if(EntityUtils.isLiving(target) && caster instanceof EntityPlayer){
|
||||
WizardData data = WizardData.get((EntityPlayer)caster);
|
||||
if(data != null){
|
||||
// Return false if soulbinding failed (e.g. if the target is already soulbound)
|
||||
@@ -101,7 +101,7 @@ public class CurseOfSoulbinding extends SpellRay {
|
||||
|
||||
for(Iterator<UUID> iterator = getSoulboundCreatures(data).iterator(); iterator.hasNext();){
|
||||
|
||||
Entity entity = WizardryUtilities.getEntityByUUID(player.world, iterator.next());
|
||||
Entity entity = EntityUtils.getEntityByUUID(player.world, iterator.next());
|
||||
|
||||
if(entity == null) iterator.remove();
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
@@ -25,7 +25,7 @@ public class CurseOfUndeath extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
// This will actually run out in the end, but only if you leave Minecraft running for 3.4 years
|
||||
((EntityLivingBase)target).addPotionEffect(new PotionEffect(WizardryPotions.curse_of_undeath, Integer.MAX_VALUE,
|
||||
|
||||
@@ -2,8 +2,8 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.entity.construct.EntityDecay;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
@@ -37,7 +37,7 @@ public class Decay extends SpellConstructRanged<EntityDecay> {
|
||||
int verticalRange = (int)(6 * modifiers.get(WizardryItems.blast_upgrade));
|
||||
|
||||
for(int i=0; i<quantity; i++){
|
||||
BlockPos pos = WizardryUtilities.findNearbyFloorSpace(world, origin, horizontalRange, verticalRange, false);
|
||||
BlockPos pos = BlockUtils.findNearbyFloorSpace(world, origin, horizontalRange, verticalRange, false);
|
||||
if(pos == null) break;
|
||||
super.spawnConstruct(world, pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, side, caster, modifiers);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.entity.living.EntityDecoy;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -57,7 +57,7 @@ public class Decoy extends Spell {
|
||||
world.spawnEntity(decoy);
|
||||
|
||||
// Tricks any mobs that are targeting the caster into targeting the decoy instead.
|
||||
for(EntityLiving creature : WizardryUtilities.getEntitiesWithinRadius(16, caster.posX, caster.posY,
|
||||
for(EntityLiving creature : EntityUtils.getEntitiesWithinRadius(16, caster.posX, caster.posY,
|
||||
caster.posZ, world, EntityLiving.class)){
|
||||
// More likely to trick mobs the higher the damage multiplier
|
||||
// The default base value is 0.5, so modifiers of 2 or more will guarantee mobs are tricked
|
||||
|
||||
@@ -2,10 +2,10 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -38,7 +38,7 @@ public class Detonate extends SpellRay {
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
List<EntityLivingBase> targets = WizardryUtilities.getEntitiesWithinRadius(getProperty(BLAST_RADIUS).doubleValue()
|
||||
List<EntityLivingBase> targets = EntityUtils.getEntitiesWithinRadius(getProperty(BLAST_RADIUS).doubleValue()
|
||||
* modifiers.get(WizardryItems.blast_upgrade), pos.getX(), pos.getY(), pos.getZ(), world);
|
||||
|
||||
for(EntityLivingBase target : targets){
|
||||
|
||||
@@ -3,12 +3,9 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.entity.projectile.EntityEmber;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -41,7 +38,7 @@ public class Disintegration extends SpellRay {
|
||||
}else{
|
||||
|
||||
target.setFire((int)(getProperty(BURN_DURATION).floatValue() * modifiers.get(WizardryItems.duration_upgrade)));
|
||||
WizardryUtilities.attackEntityWithoutKnockback(target, caster == null ? DamageSource.MAGIC :
|
||||
EntityUtils.attackEntityWithoutKnockback(target, caster == null ? DamageSource.MAGIC :
|
||||
MagicDamage.causeDirectMagicDamage(caster, DamageType.FIRE),
|
||||
getProperty(DAMAGE).floatValue() * modifiers.get(SpellModifiers.POTENCY));
|
||||
|
||||
@@ -90,7 +87,7 @@ public class Disintegration extends SpellRay {
|
||||
}
|
||||
|
||||
if(world.getBlockState(pos).getMaterial().isSolid()){
|
||||
Vec3d vec = hit.add(new Vec3d(side.getDirectionVec()).scale(WizardryUtilities.ANTI_Z_FIGHTING_OFFSET));
|
||||
Vec3d vec = hit.add(new Vec3d(side.getDirectionVec()).scale(GeometryUtils.ANTI_Z_FIGHTING_OFFSET));
|
||||
ParticleBuilder.create(Type.SCORCH).pos(vec).face(side).clr(1, 0.2f, 0).spawn(world);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,7 @@ import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.block.BlockCrystalOre;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.RelativeFacing;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.*;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockOre;
|
||||
import net.minecraft.block.BlockRedstoneOre;
|
||||
@@ -64,7 +61,7 @@ public class Divination extends Spell {
|
||||
|
||||
double range = getProperty(RANGE).floatValue() * modifiers.get(WizardryItems.range_upgrade);
|
||||
|
||||
List<BlockPos> sphere = WizardryUtilities.getBlockSphere(caster.getPosition(), range);
|
||||
List<BlockPos> sphere = BlockUtils.getBlockSphere(caster.getPosition(), range);
|
||||
|
||||
sphere.removeIf(b -> {
|
||||
Block block = world.getBlockState(b).getBlock();
|
||||
|
||||
@@ -4,8 +4,9 @@
|
||||
import electroblob.wizardry.entity.construct.EntityEarthquake;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -51,12 +52,12 @@
|
||||
particleX = x - 1.0d + 2 * world.rand.nextDouble();
|
||||
particleZ = z - 1.0d + 2 * world.rand.nextDouble();
|
||||
|
||||
IBlockState block = WizardryUtilities.getBlockEntityIsStandingOn(caster);
|
||||
IBlockState block = BlockUtils.getBlockEntityIsStandingOn(caster);
|
||||
world.spawnParticle(EnumParticleTypes.BLOCK_DUST, particleX, y,
|
||||
particleZ, particleX - x, 0, particleZ - z, Block.getStateId(block));
|
||||
}
|
||||
|
||||
WizardryUtilities.getEntitiesWithinRadius(15, x, y, z, world, EntityPlayer.class)
|
||||
EntityUtils.getEntitiesWithinRadius(15, x, y, z, world, EntityPlayer.class)
|
||||
.forEach(p -> Wizardry.proxy.shakeScreen(p, 12));
|
||||
|
||||
}
|
||||
|
||||
@@ -6,11 +6,8 @@ import electroblob.wizardry.event.SpellCastEvent;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.AllyDesignationSystem;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.EnumHand;
|
||||
@@ -33,7 +30,7 @@ public class EmpoweringPresence extends Spell {
|
||||
@Override
|
||||
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
List<EntityPlayer> targets = WizardryUtilities.getEntitiesWithinRadius(getProperty(EFFECT_RADIUS).doubleValue()
|
||||
List<EntityPlayer> targets = EntityUtils.getEntitiesWithinRadius(getProperty(EFFECT_RADIUS).doubleValue()
|
||||
* modifiers.get(WizardryItems.blast_upgrade), caster.posX, caster.posY, caster.posZ, world, EntityPlayer.class);
|
||||
|
||||
for(EntityPlayer target : targets){
|
||||
|
||||
@@ -3,12 +3,9 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.entity.construct.EntityBubble;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -30,7 +27,7 @@ public class Entrapment extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(!world.isRemote){
|
||||
// Deals a small amount damage so the target counts as being hit by the caster
|
||||
|
||||
@@ -2,12 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -58,7 +55,7 @@ public class FireBreath extends SpellRay {
|
||||
// with this mechanic for their own purposes, so this line makes sure that doesn't affect wizardry.
|
||||
}else if(ticksInUse % ((EntityLivingBase)target).maxHurtResistantTime == 1){
|
||||
target.setFire((int)(getProperty(BURN_DURATION).floatValue() * modifiers.get(WizardryItems.duration_upgrade)));
|
||||
WizardryUtilities.attackEntityWithoutKnockback(target,
|
||||
EntityUtils.attackEntityWithoutKnockback(target,
|
||||
MagicDamage.causeDirectMagicDamage(caster, DamageType.FIRE),
|
||||
getProperty(DAMAGE).floatValue() * modifiers.get(SpellModifiers.POTENCY));
|
||||
}
|
||||
@@ -70,7 +67,7 @@ public class FireBreath extends SpellRay {
|
||||
@Override
|
||||
protected boolean onBlockHit(World world, BlockPos pos, EnumFacing side, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(!WizardryUtilities.canDamageBlocks(caster, world)) return false;
|
||||
if(!EntityUtils.canDamageBlocks(caster, world)) return false;
|
||||
|
||||
pos = pos.offset(side);
|
||||
|
||||
|
||||
@@ -2,12 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -58,7 +55,7 @@ public class FlameRay extends SpellRay {
|
||||
// with this mechanic for their own purposes, so this line makes sure that doesn't affect wizardry.
|
||||
}else if(ticksInUse % ((EntityLivingBase)target).maxHurtResistantTime == 1){
|
||||
target.setFire((int)(getProperty(BURN_DURATION).floatValue() * modifiers.get(WizardryItems.duration_upgrade)));
|
||||
WizardryUtilities.attackEntityWithoutKnockback(target,
|
||||
EntityUtils.attackEntityWithoutKnockback(target,
|
||||
MagicDamage.causeDirectMagicDamage(caster, DamageType.FIRE),
|
||||
getProperty(DAMAGE).floatValue() * modifiers.get(SpellModifiers.POTENCY));
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ import electroblob.wizardry.data.WizardData;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryEnchantments;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.InventoryUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -29,7 +29,7 @@ public class FlamingWeapon extends Spell {
|
||||
if(WizardData.get(caster) != null
|
||||
&& WizardData.get(caster).getImbuementDuration(WizardryEnchantments.flaming_weapon) <= 0){
|
||||
|
||||
for(ItemStack stack : WizardryUtilities.getPrioritisedHotbarAndOffhand(caster)){
|
||||
for(ItemStack stack : InventoryUtils.getPrioritisedHotbarAndOffhand(caster)){
|
||||
|
||||
if((ImbueWeapon.isSword(stack) || ImbueWeapon.isBow(stack))
|
||||
&& !EnchantmentHelper.getEnchantments(stack).containsKey(WizardryEnchantments.flaming_weapon)){
|
||||
|
||||
@@ -4,11 +4,8 @@ import electroblob.wizardry.event.SpellCastEvent;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.AllyDesignationSystem;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.EnumHand;
|
||||
@@ -32,7 +29,7 @@ public class FontOfMana extends Spell {
|
||||
|
||||
double maxRadius = getProperty(EFFECT_RADIUS).doubleValue();
|
||||
|
||||
List<EntityPlayer> targets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityPlayer> targets = EntityUtils.getEntitiesWithinRadius(
|
||||
maxRadius * modifiers.get(WizardryItems.blast_upgrade),
|
||||
caster.posX, caster.posY, caster.posZ, world, EntityPlayer.class);
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryBlocks;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.tileentity.TileEntityPlayerSaveTimed;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -70,7 +70,7 @@ public class ForestOfThorns extends Spell {
|
||||
|
||||
if(distance > radius || distance < radius - 1.5) continue;
|
||||
|
||||
Integer y = WizardryUtilities.getNearestSurface(world, origin.add(x, 0, z), EnumFacing.UP, (int)radius, true, WizardryUtilities.SurfaceCriteria.BUILDABLE);
|
||||
Integer y = BlockUtils.getNearestSurface(world, origin.add(x, 0, z), EnumFacing.UP, (int)radius, true, BlockUtils.SurfaceCriteria.BUILDABLE);
|
||||
if(y != null) ring.add(new BlockPos(origin.getX() + x, y, origin.getZ() + z));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.init.MobEffects;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
@@ -24,7 +21,7 @@ public class ForestsCurse extends SpellAreaEffect {
|
||||
@Override
|
||||
protected void affectEntity(World world, EntityLivingBase caster, EntityLivingBase target, SpellModifiers modifiers){
|
||||
|
||||
if(!MagicDamage.isEntityImmune(DamageType.POISON, target) && WizardryUtilities.isLiving(target)){
|
||||
if(!MagicDamage.isEntityImmune(DamageType.POISON, target) && EntityUtils.isLiving(target)){
|
||||
|
||||
target.attackEntityFrom(MagicDamage.causeDirectMagicDamage(caster, DamageType.POISON),
|
||||
getProperty(DAMAGE).floatValue() * modifiers.get(SpellModifiers.POTENCY));
|
||||
|
||||
@@ -3,20 +3,14 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntityBlaze;
|
||||
import net.minecraft.entity.monster.EntityMagmaCube;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
@@ -37,7 +31,7 @@ public class Freeze extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(target instanceof EntityBlaze || target instanceof EntityMagmaCube){
|
||||
target.attackEntityFrom(MagicDamage.causeDirectMagicDamage(caster, DamageType.FROST),
|
||||
@@ -64,8 +58,8 @@ public class Freeze extends SpellRay {
|
||||
@Override
|
||||
protected boolean onBlockHit(World world, BlockPos pos, EnumFacing side, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(!world.isRemote && WizardryUtilities.canDamageBlocks(caster, world)){
|
||||
WizardryUtilities.freeze(world, pos, true);
|
||||
if(!world.isRemote && EntityUtils.canDamageBlocks(caster, world)){
|
||||
BlockUtils.freeze(world, pos, true);
|
||||
}
|
||||
|
||||
return true; // Always succeeds if it hits a block
|
||||
|
||||
@@ -5,10 +5,10 @@ import electroblob.wizardry.data.WizardData;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryEnchantments;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.InventoryUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -35,7 +35,7 @@ public class FreezingWeapon extends Spell {
|
||||
if(WizardData.get(caster) != null
|
||||
&& WizardData.get(caster).getImbuementDuration(WizardryEnchantments.freezing_weapon) <= 0){
|
||||
|
||||
for(ItemStack stack : WizardryUtilities.getPrioritisedHotbarAndOffhand(caster)){
|
||||
for(ItemStack stack : InventoryUtils.getPrioritisedHotbarAndOffhand(caster)){
|
||||
|
||||
if((ImbueWeapon.isSword(stack) || ImbueWeapon.isBow(stack))
|
||||
&& !EnchantmentHelper.getEnchantments(stack).containsKey(WizardryEnchantments.freezing_weapon)){
|
||||
|
||||
@@ -3,12 +3,9 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntityBlaze;
|
||||
@@ -49,7 +46,7 @@ public class FrostRay extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(target.isBurning()) target.extinguish();
|
||||
|
||||
@@ -68,7 +65,7 @@ public class FrostRay extends SpellRay {
|
||||
float damage = getProperty(DAMAGE).floatValue() * modifiers.get(SpellModifiers.POTENCY);
|
||||
if(target instanceof EntityBlaze || target instanceof EntityMagmaCube) damage *= 2;
|
||||
|
||||
WizardryUtilities.attackEntityWithoutKnockback(target, MagicDamage.causeDirectMagicDamage(caster,
|
||||
EntityUtils.attackEntityWithoutKnockback(target, MagicDamage.causeDirectMagicDamage(caster,
|
||||
DamageType.FROST), damage);
|
||||
|
||||
}
|
||||
|
||||
@@ -8,11 +8,8 @@ import electroblob.wizardry.item.ItemArtefact;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.Spells;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.RayTracer;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -416,7 +413,7 @@ public class Grapple extends Spell {
|
||||
|
||||
private static RayTraceResult update(EntityPlayer player, RayTraceResult grapplingTarget){
|
||||
|
||||
if(grapplingTarget != null && (!WizardryUtilities.isCasting(player, Spells.grapple)
|
||||
if(grapplingTarget != null && (!EntityUtils.isCasting(player, Spells.grapple)
|
||||
|| (grapplingTarget.entityHit != null && !grapplingTarget.entityHit.isEntityAlive()))){
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -5,10 +5,8 @@ import electroblob.wizardry.entity.EntityLevitatingBlock;
|
||||
import electroblob.wizardry.item.ItemArtefact;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -92,7 +90,7 @@ public class GreaterTelekinesis extends SpellRay {
|
||||
|
||||
}else{
|
||||
|
||||
WizardryUtilities.undoGravity(target);
|
||||
EntityUtils.undoGravity(target);
|
||||
|
||||
// The following code extrapolates the entity's current velocity to determine whether it will pass the
|
||||
// target position in the next tick, and adds or subtracts velocity accordingly.
|
||||
@@ -132,7 +130,7 @@ public class GreaterTelekinesis extends SpellRay {
|
||||
@Override
|
||||
protected boolean onBlockHit(World world, BlockPos pos, EnumFacing side, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.canDamageBlocks(caster, world) && !WizardryUtilities.isBlockUnbreakable(world, pos)
|
||||
if(EntityUtils.canDamageBlocks(caster, world) && !BlockUtils.isBlockUnbreakable(world, pos)
|
||||
&& world.getBlockState(pos).getMaterial().isSolid()
|
||||
&& (world.getTileEntity(pos) == null || !world.getTileEntity(pos).getTileData().hasUniqueId(ArcaneLock.NBT_KEY))){
|
||||
|
||||
|
||||
@@ -2,10 +2,7 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.AllyDesignationSystem;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.*;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
@@ -26,7 +23,7 @@ public class GroupHeal extends Spell {
|
||||
|
||||
boolean flag = false;
|
||||
|
||||
List<EntityLivingBase> targets = WizardryUtilities.getEntitiesWithinRadius(getProperty(EFFECT_RADIUS).floatValue()
|
||||
List<EntityLivingBase> targets = EntityUtils.getEntitiesWithinRadius(getProperty(EFFECT_RADIUS).floatValue()
|
||||
* modifiers.get(WizardryItems.blast_upgrade), caster.posX, caster.posY, caster.posZ, world);
|
||||
|
||||
for(EntityLivingBase target : targets){
|
||||
|
||||
@@ -3,8 +3,8 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.item.ItemArtefact;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.block.IGrowable;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -33,7 +33,7 @@ public class GrowthAura extends Spell {
|
||||
|
||||
boolean flag = false;
|
||||
|
||||
List<BlockPos> sphere = WizardryUtilities.getBlockSphere(caster.getPosition(),
|
||||
List<BlockPos> sphere = BlockUtils.getBlockSphere(caster.getPosition(),
|
||||
getProperty(EFFECT_RADIUS).floatValue() * modifiers.get(WizardryItems.blast_upgrade));
|
||||
|
||||
for(BlockPos pos : sphere){
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -28,7 +28,7 @@ public class HealAlly extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
EntityLivingBase entity = (EntityLivingBase)target;
|
||||
|
||||
|
||||
@@ -6,12 +6,8 @@ import electroblob.wizardry.registry.WizardryBlocks;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.registry.WizardrySounds;
|
||||
import electroblob.wizardry.util.AllyDesignationSystem;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.WizardryUtilities.SurfaceCriteria;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -43,7 +39,7 @@ public class IceAge extends Spell {
|
||||
|
||||
float radius = getProperty(EFFECT_RADIUS).floatValue() * modifiers.get(WizardryItems.blast_upgrade);
|
||||
|
||||
List<EntityLivingBase> targets = WizardryUtilities.getEntitiesWithinRadius(radius, caster.posX, caster.posY, caster.posZ, world);
|
||||
List<EntityLivingBase> targets = EntityUtils.getEntitiesWithinRadius(radius, caster.posX, caster.posY, caster.posZ, world);
|
||||
|
||||
for(EntityLivingBase target : targets){
|
||||
if(AllyDesignationSystem.isValidTarget(caster, target)){
|
||||
@@ -63,13 +59,13 @@ public class IceAge extends Spell {
|
||||
}
|
||||
}
|
||||
|
||||
if(!world.isRemote && WizardryUtilities.canDamageBlocks(caster, world)){
|
||||
if(!world.isRemote && EntityUtils.canDamageBlocks(caster, world)){
|
||||
for(int i = -(int)radius; i <= (int)radius; i++){
|
||||
for(int j = -(int)radius; j <= (int)radius; j++){
|
||||
|
||||
BlockPos pos = new BlockPos(caster).add(i, 0, j);
|
||||
|
||||
Integer y = WizardryUtilities.getNearestSurface(world, new BlockPos(pos), EnumFacing.UP, (int)radius, true, SurfaceCriteria.SOLID_LIQUID_TO_AIR);
|
||||
Integer y = BlockUtils.getNearestSurface(world, new BlockPos(pos), EnumFacing.UP, (int)radius, true, BlockUtils.SurfaceCriteria.SOLID_LIQUID_TO_AIR);
|
||||
|
||||
if(y != null){
|
||||
|
||||
@@ -79,7 +75,7 @@ public class IceAge extends Spell {
|
||||
|
||||
// Randomised with weighting so that the nearer the block the more likely it is to be snowed.
|
||||
if(y != -1 && world.rand.nextInt((int)(dist * 2) + 1) < radius && dist < radius){
|
||||
WizardryUtilities.freeze(world, pos.down(), true);
|
||||
BlockUtils.freeze(world, pos.down(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.entity.construct.EntityIceSpike;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.GeometryUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
@@ -48,15 +49,15 @@ public class IceSpikes extends SpellConstructRanged<EntityIceSpike> {
|
||||
// First, generate a random vector of length radius with a z component of zero
|
||||
// Then rotate it so that what was south is now the side that was hit
|
||||
Vec3d offset = Vec3d.fromPitchYaw(world.rand.nextFloat() * 180 - 90, world.rand.nextBoolean() ? 0 : 180)
|
||||
.scale(radius).rotateYaw(side.getHorizontalAngle() * (float)Math.PI/180).rotatePitch(WizardryUtilities.getPitch(side) * (float)Math.PI/180);
|
||||
.scale(radius).rotateYaw(side.getHorizontalAngle() * (float)Math.PI/180).rotatePitch(GeometryUtils.getPitch(side) * (float)Math.PI/180);
|
||||
|
||||
if(side.getAxis().isHorizontal()) offset = offset.rotateYaw((float)Math.PI/2);
|
||||
|
||||
Integer surface = WizardryUtilities.getNearestSurface(world, new BlockPos(origin.add(offset)), side,
|
||||
(int)maxRadius, true, WizardryUtilities.SurfaceCriteria.basedOn(World::isBlockFullCube));
|
||||
Integer surface = BlockUtils.getNearestSurface(world, new BlockPos(origin.add(offset)), side,
|
||||
(int)maxRadius, true, BlockUtils.SurfaceCriteria.basedOn(World::isBlockFullCube));
|
||||
|
||||
if(surface != null){
|
||||
Vec3d vec = WizardryUtilities.replaceComponent(origin.add(offset), side.getAxis(), surface)
|
||||
Vec3d vec = GeometryUtils.replaceComponent(origin.add(offset), side.getAxis(), surface)
|
||||
.subtract(new Vec3d(side.getDirectionVec()));
|
||||
super.spawnConstruct(world, vec.x, vec.y, vec.z, side, caster, modifiers);
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -46,7 +46,7 @@ public class Ignite extends SpellRay {
|
||||
@Override
|
||||
protected boolean onBlockHit(World world, BlockPos pos, EnumFacing side, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(!WizardryUtilities.canDamageBlocks(caster, world)) return false;
|
||||
if(!EntityUtils.canDamageBlocks(caster, world)) return false;
|
||||
|
||||
pos = pos.offset(side);
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ import electroblob.wizardry.data.WizardData;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryEnchantments;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.InventoryUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemBow;
|
||||
@@ -32,7 +32,7 @@ public class ImbueWeapon extends Spell {
|
||||
// Won't work if the weapon already has the enchantment
|
||||
if(WizardData.get(caster) != null){
|
||||
|
||||
for(ItemStack stack : WizardryUtilities.getPrioritisedHotbarAndOffhand(caster)){
|
||||
for(ItemStack stack : InventoryUtils.getPrioritisedHotbarAndOffhand(caster)){
|
||||
|
||||
if(isSword(stack)
|
||||
&& !EnchantmentHelper.getEnchantments(stack).containsKey(WizardryEnchantments.magic_sword)
|
||||
|
||||
@@ -3,10 +3,10 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityCreature;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -45,7 +45,7 @@ public class Intimidate extends Spell {
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
List<EntityCreature> entities = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityCreature> entities = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(EFFECT_RADIUS).floatValue() * modifiers.get(WizardryItems.range_upgrade),
|
||||
caster.posX, caster.posY, caster.posZ, world, EntityCreature.class);
|
||||
|
||||
@@ -126,7 +126,7 @@ public class Intimidate extends Spell {
|
||||
|
||||
if(entityNBT != null && entityNBT.hasUniqueId(NBT_KEY)){
|
||||
|
||||
Entity caster = WizardryUtilities.getEntityByUUID(creature.world, entityNBT.getUniqueId(NBT_KEY));
|
||||
Entity caster = EntityUtils.getEntityByUUID(creature.world, entityNBT.getUniqueId(NBT_KEY));
|
||||
|
||||
if(caster instanceof EntityLivingBase){
|
||||
double distance = BASE_AVOID_DISTANCE + AVOID_DISTANCE_PER_LEVEL
|
||||
|
||||
@@ -3,11 +3,8 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.AllyDesignationSystem;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.MobEffects;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
@@ -28,7 +25,7 @@ public class InvigoratingPresence extends Spell {
|
||||
@Override
|
||||
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
List<EntityPlayer> targets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityPlayer> targets = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(EFFECT_RADIUS).floatValue() * modifiers.get(WizardryItems.blast_upgrade),
|
||||
caster.posX, caster.posY, caster.posZ, world, EntityPlayer.class);
|
||||
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -45,13 +42,13 @@ public class LifeDrain extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(ticksInUse % 12 == 0){
|
||||
|
||||
float damage = getProperty(DAMAGE).floatValue() * modifiers.get(SpellModifiers.POTENCY);
|
||||
|
||||
WizardryUtilities.attackEntityWithoutKnockback(target, MagicDamage.causeDirectMagicDamage(caster,
|
||||
EntityUtils.attackEntityWithoutKnockback(target, MagicDamage.causeDirectMagicDamage(caster,
|
||||
DamageType.MAGIC), damage);
|
||||
|
||||
if(caster != null) caster.heal(damage * getProperty(HEAL_FACTOR).floatValue());
|
||||
|
||||
@@ -38,7 +38,7 @@ public class LightningPulse extends Spell {
|
||||
|
||||
if(caster.onGround){
|
||||
|
||||
List<EntityLivingBase> targets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityLivingBase> targets = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(EFFECT_RADIUS).floatValue() * modifiers.get(WizardryItems.blast_upgrade),
|
||||
caster.posX, caster.posY, caster.posZ, world);
|
||||
|
||||
@@ -71,7 +71,7 @@ public class LightningPulse extends Spell {
|
||||
|
||||
if(world.isRemote){
|
||||
ParticleBuilder.create(Type.LIGHTNING_PULSE).pos(caster.posX, caster.getEntityBoundingBox().minY
|
||||
+ WizardryUtilities.ANTI_Z_FIGHTING_OFFSET, caster.posZ)
|
||||
+ GeometryUtils.ANTI_Z_FIGHTING_OFFSET, caster.posZ)
|
||||
.scale(modifiers.get(WizardryItems.blast_upgrade)).spawn(world);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -43,7 +40,7 @@ public class LightningRay extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(MagicDamage.isEntityImmune(DamageType.SHOCK, target)){
|
||||
if(!world.isRemote && ticksInUse == 1 && caster instanceof EntityPlayer)
|
||||
@@ -52,7 +49,7 @@ public class LightningRay extends SpellRay {
|
||||
// This now only damages in line with the maxHurtResistantTime. Some mods don't play nicely and fiddle
|
||||
// with this mechanic for their own purposes, so this line makes sure that doesn't affect wizardry.
|
||||
}else if(ticksInUse % ((EntityLivingBase)target).maxHurtResistantTime == 1){
|
||||
WizardryUtilities.attackEntityWithoutKnockback(target,
|
||||
EntityUtils.attackEntityWithoutKnockback(target,
|
||||
MagicDamage.causeDirectMagicDamage(caster, DamageType.SHOCK),
|
||||
getProperty(DAMAGE).floatValue() * modifiers.get(SpellModifiers.POTENCY));
|
||||
}
|
||||
|
||||
@@ -53,19 +53,19 @@ public class LightningWeb extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
electrocute(world, caster, origin, target, getProperty(PRIMARY_DAMAGE).floatValue()
|
||||
* modifiers.get(SpellModifiers.POTENCY), ticksInUse);
|
||||
|
||||
// Secondary chaining effect
|
||||
|
||||
List<EntityLivingBase> secondaryTargets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityLivingBase> secondaryTargets = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(SECONDARY_RANGE).floatValue(), target.posX, target.posY + target.height / 2,
|
||||
target.posZ, world);
|
||||
|
||||
secondaryTargets.remove(target);
|
||||
secondaryTargets.removeIf(e -> !WizardryUtilities.isLiving(e));
|
||||
secondaryTargets.removeIf(e -> !EntityUtils.isLiving(e));
|
||||
secondaryTargets.removeIf(e -> !AllyDesignationSystem.isValidTarget(caster, e));
|
||||
if(secondaryTargets.size() > getProperty(SECONDARY_MAX_TARGETS).intValue())
|
||||
secondaryTargets = secondaryTargets.subList(0, getProperty(SECONDARY_MAX_TARGETS).intValue());
|
||||
@@ -77,13 +77,13 @@ public class LightningWeb extends SpellRay {
|
||||
|
||||
// Tertiary chaining effect
|
||||
|
||||
List<EntityLivingBase> tertiaryTargets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityLivingBase> tertiaryTargets = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(TERTIARY_RANGE).floatValue(), secondaryTarget.posX,
|
||||
secondaryTarget.posY + secondaryTarget.height / 2, secondaryTarget.posZ, world);
|
||||
|
||||
tertiaryTargets.remove(target);
|
||||
tertiaryTargets.removeAll(secondaryTargets);
|
||||
tertiaryTargets.removeIf(e -> !WizardryUtilities.isLiving(e));
|
||||
tertiaryTargets.removeIf(e -> !EntityUtils.isLiving(e));
|
||||
tertiaryTargets.removeIf(e -> !AllyDesignationSystem.isValidTarget(caster, e));
|
||||
if(tertiaryTargets.size() > getProperty(TERTIARY_MAX_TARGETS).intValue())
|
||||
tertiaryTargets = tertiaryTargets.subList(0, getProperty(TERTIARY_MAX_TARGETS).intValue());
|
||||
@@ -139,7 +139,7 @@ public class LightningWeb extends SpellRay {
|
||||
((EntityPlayer)caster).sendStatusMessage(new TextComponentTranslation("spell.resist", target.getName(),
|
||||
this.getNameForTranslationFormatted()), true);
|
||||
}else{
|
||||
WizardryUtilities.attackEntityWithoutKnockback(target,
|
||||
EntityUtils.attackEntityWithoutKnockback(target,
|
||||
MagicDamage.causeDirectMagicDamage(caster, DamageType.SHOCK), damage);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,11 +5,8 @@ import com.google.common.collect.HashBiMap;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.entity.living.*;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.NBTExtras;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -58,7 +55,7 @@ public class Metamorphosis extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
double xPos = target.posX;
|
||||
double yPos = target.posY;
|
||||
|
||||
@@ -3,8 +3,8 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.entity.EntityMeteor;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -38,7 +38,7 @@ public class Meteor extends SpellRay {
|
||||
|
||||
if(!world.isRemote){
|
||||
EntityMeteor meteor = new EntityMeteor(world, pos.getX(), pos.getY() + 50, pos.getZ(),
|
||||
modifiers.get(WizardryItems.blast_upgrade), WizardryUtilities.canDamageBlocks(caster, world));
|
||||
modifiers.get(WizardryItems.blast_upgrade), EntityUtils.canDamageBlocks(caster, world));
|
||||
world.spawnEntity(meteor);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,11 +6,8 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.registry.WizardrySounds;
|
||||
import electroblob.wizardry.util.AllyDesignationSystem;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.*;
|
||||
import net.minecraft.entity.item.EntityArmorStand;
|
||||
import net.minecraft.entity.passive.EntitySheep;
|
||||
@@ -50,7 +47,7 @@ public class MindControl extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(!canControl(target)){
|
||||
if(!world.isRemote){
|
||||
@@ -71,7 +68,7 @@ public class MindControl extends SpellRay {
|
||||
}
|
||||
|
||||
if(target instanceof EntitySheep && ((EntitySheep)target).getFleeceColor() == EnumDyeColor.BLUE
|
||||
&& WizardryUtilities.canDamageBlocks(caster, world)){
|
||||
&& EntityUtils.canDamageBlocks(caster, world)){
|
||||
if(!world.isRemote) ((EntitySheep)target).setFleeceColor(EnumDyeColor.RED); // Wololo!
|
||||
world.playSound(caster.posX, caster.posY, caster.posZ, SoundEvents.EVOCATION_ILLAGER_PREPARE_WOLOLO, WizardrySounds.SPELLS, 1, 1, false);
|
||||
}
|
||||
@@ -135,7 +132,7 @@ public class MindControl extends SpellRay {
|
||||
// As of 1.1, this now uses the creature's follow range, like normal targeting. It also
|
||||
// no longer lasts until the creature dies; instead it is a potion effect which continues to
|
||||
// set the target until it wears off.
|
||||
List<EntityLivingBase> possibleTargets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityLivingBase> possibleTargets = EntityUtils.getEntitiesWithinRadius(
|
||||
target.getEntityAttribute(SharedMonsterAttributes.FOLLOW_RANGE).getAttributeValue(),
|
||||
target.posX, target.posY, target.posZ, world);
|
||||
|
||||
@@ -172,7 +169,7 @@ public class MindControl extends SpellRay {
|
||||
|
||||
if(entityNBT != null && entityNBT.hasUniqueId(MindControl.NBT_KEY)){
|
||||
|
||||
Entity caster = WizardryUtilities.getEntityByUUID(world, entityNBT.getUniqueId(MindControl.NBT_KEY));
|
||||
Entity caster = EntityUtils.getEntityByUUID(world, entityNBT.getUniqueId(MindControl.NBT_KEY));
|
||||
|
||||
if(caster instanceof EntityLivingBase){
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -34,7 +34,7 @@ public class MindTrick extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
|
||||
@@ -6,10 +6,8 @@ import electroblob.wizardry.item.ISpellCastingItem;
|
||||
import electroblob.wizardry.item.ItemArtefact;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.Entity;
|
||||
@@ -63,12 +61,12 @@ public class Mine extends SpellRay {
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
if(WizardryUtilities.isBlockUnbreakable(world, pos)) return false;
|
||||
if(BlockUtils.isBlockUnbreakable(world, pos)) return false;
|
||||
// The mine spell ignores the block damage setting for players, since that's the entire point of the spell
|
||||
// Instead, it triggers block break events at the appropriate points, which protection mods should be able to
|
||||
// pick up and allow/disallow accordingly
|
||||
// For the time being, dispensers respect the mobGriefing gamerule
|
||||
if(!(caster instanceof EntityPlayer) && !WizardryUtilities.canDamageBlocks(caster, world)) return false;
|
||||
if(!(caster instanceof EntityPlayer) && !EntityUtils.canDamageBlocks(caster, world)) return false;
|
||||
// Can't mine arcane-locked blocks
|
||||
if(world.getTileEntity(pos) != null && world.getTileEntity(pos).getTileData().hasUniqueId(ArcaneLock.NBT_KEY)) return false;
|
||||
|
||||
@@ -92,11 +90,11 @@ public class Mine extends SpellRay {
|
||||
// 3 blast upgrades: 5x5 without corners or edges
|
||||
float radius = 0.5f + 0.73f * blastUpgradeCount;
|
||||
|
||||
List<BlockPos> sphere = WizardryUtilities.getBlockSphere(pos, radius);
|
||||
List<BlockPos> sphere = BlockUtils.getBlockSphere(pos, radius);
|
||||
|
||||
for(BlockPos pos1 : sphere){
|
||||
|
||||
if(WizardryUtilities.isBlockUnbreakable(world, pos1)) continue;
|
||||
if(BlockUtils.isBlockUnbreakable(world, pos1)) continue;
|
||||
|
||||
IBlockState state1 = world.getBlockState(pos1);
|
||||
|
||||
|
||||
@@ -4,12 +4,9 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.Spells;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardryPotions;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -41,7 +38,7 @@ public class Paralysis extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(world.isRemote){
|
||||
// Rather neatly, the entity can be set here and if it's null nothing will happen.
|
||||
@@ -74,7 +71,7 @@ public class Paralysis extends SpellRay {
|
||||
if(world.isRemote){
|
||||
|
||||
if(world.getBlockState(pos).getMaterial().isSolid()){
|
||||
Vec3d vec = hit.add(new Vec3d(side.getDirectionVec()).scale(WizardryUtilities.ANTI_Z_FIGHTING_OFFSET));
|
||||
Vec3d vec = hit.add(new Vec3d(side.getDirectionVec()).scale(GeometryUtils.ANTI_Z_FIGHTING_OFFSET));
|
||||
ParticleBuilder.create(Type.SCORCH).pos(vec).face(side).clr(0.4f, 0.8f, 1).spawn(world);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@ import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.constants.Constants;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.RayTracer;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.EnumHand;
|
||||
@@ -64,7 +64,7 @@ public class PhaseStep extends Spell {
|
||||
|
||||
// Prevents the player from teleporting through unbreakable blocks, so they cannot cheat in other
|
||||
// mods' mazes and dungeons.
|
||||
if((WizardryUtilities.isBlockUnbreakable(world, pos1) || WizardryUtilities.isBlockUnbreakable(world, pos1.up()))
|
||||
if((BlockUtils.isBlockUnbreakable(world, pos1) || BlockUtils.isBlockUnbreakable(world, pos1.up()))
|
||||
&& !Wizardry.settings.teleportThroughUnbreakableBlocks)
|
||||
break; // Don't return false yet, there are other possible outcomes below now
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public class PlagueOfDarkness extends Spell {
|
||||
|
||||
double radius = getProperty(EFFECT_RADIUS).floatValue() * modifiers.get(WizardryItems.blast_upgrade);
|
||||
|
||||
List<EntityLivingBase> targets = WizardryUtilities.getEntitiesWithinRadius(radius, caster.posX, caster.posY, caster.posZ, world);
|
||||
List<EntityLivingBase> targets = EntityUtils.getEntitiesWithinRadius(radius, caster.posX, caster.posY, caster.posZ, world);
|
||||
|
||||
for(EntityLivingBase target : targets){
|
||||
if(AllyDesignationSystem.isValidTarget(caster, target)
|
||||
@@ -61,7 +61,7 @@ public class PlagueOfDarkness extends Spell {
|
||||
|
||||
particleX = caster.posX - 1.0d + 2 * world.rand.nextDouble();
|
||||
particleZ = caster.posZ - 1.0d + 2 * world.rand.nextDouble();
|
||||
IBlockState block = WizardryUtilities.getBlockEntityIsStandingOn(caster);
|
||||
IBlockState block = BlockUtils.getBlockEntityIsStandingOn(caster);
|
||||
|
||||
if(block != null){
|
||||
world.spawnParticle(EnumParticleTypes.BLOCK_DUST, particleX, caster.getEntityBoundingBox().minY,
|
||||
|
||||
@@ -3,8 +3,8 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.Settings;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.InventoryUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemArmor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -46,7 +46,7 @@ public class PocketFurnace extends Spell {
|
||||
|
||||
if(stack.getCount() <= usesLeft){
|
||||
ItemStack stack2 = new ItemStack(result.getItem(), stack.getCount(), result.getItemDamage());
|
||||
if(WizardryUtilities.doesPlayerHaveItem(caster, result.getItem())){
|
||||
if(InventoryUtils.doesPlayerHaveItem(caster, result.getItem())){
|
||||
caster.inventory.addItemStackToInventory(stack2);
|
||||
caster.inventory.setInventorySlotContents(i, ItemStack.EMPTY);
|
||||
}else{
|
||||
|
||||
@@ -2,12 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -36,7 +33,7 @@ public class Poison extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
// Has no effect on undead or spiders.
|
||||
if(MagicDamage.isEntityImmune(DamageType.POISON, target)){
|
||||
|
||||
@@ -17,11 +17,8 @@ import electroblob.wizardry.packet.PacketPossession;
|
||||
import electroblob.wizardry.packet.WizardryPacketHandler;
|
||||
import electroblob.wizardry.registry.Spells;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.NBTExtras;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.entity.*;
|
||||
@@ -249,7 +246,7 @@ public class Possession extends SpellRay {
|
||||
|
||||
possessor.getAttributeMap().getAttributeInstance(attribute).applyModifier(new AttributeModifier(
|
||||
INHERITED_ATTRIBUTES.get(attribute), "possessionModifier", targetValue / currentValue,
|
||||
WizardryUtilities.Operations.MULTIPLY_FLAT));
|
||||
EntityUtils.Operations.MULTIPLY_FLAT));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,7 +259,7 @@ public class Possession extends SpellRay {
|
||||
|
||||
// Targeting
|
||||
|
||||
for(EntityLiving creature : WizardryUtilities.getEntitiesWithinRadius(16, possessor.posX,
|
||||
for(EntityLiving creature : EntityUtils.getEntitiesWithinRadius(16, possessor.posX,
|
||||
possessor.posY, possessor.posZ, possessor.world, EntityLiving.class)){
|
||||
// Mobs are dumb, if a player possesses something they're like "Huh?! Where'd you go?"
|
||||
// Of course, this won't last long if the player attacks them, since they'll revenge-target them
|
||||
@@ -607,7 +604,7 @@ public class Possession extends SpellRay {
|
||||
IProjectile projectile = factory.apply(possessor.world);
|
||||
Vec3d look = possessor.getLookVec();
|
||||
((Entity)projectile).setPosition(possessor.posX + look.x, possessor.posY + possessor.getEyeHeight() + look.y, possessor.posZ + look.z);
|
||||
projectile.shoot(look.x, look.y, look.z, 1.6f, WizardryUtilities.getDefaultAimingError(possessor.world.getDifficulty()));
|
||||
projectile.shoot(look.x, look.y, look.z, 1.6f, EntityUtils.getDefaultAimingError(possessor.world.getDifficulty()));
|
||||
|
||||
if(projectile instanceof EntityMagicProjectile) ((EntityMagicProjectile)projectile).setCaster(possessor);
|
||||
else if(projectile instanceof EntityMagicArrow) ((EntityMagicArrow)projectile).setCaster(possessor);
|
||||
|
||||
@@ -2,12 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -51,7 +48,7 @@ public class RayOfPurification extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
if(MagicDamage.isEntityImmune(DamageType.RADIANT, target)){
|
||||
if(!world.isRemote && ticksInUse == 1 && caster instanceof EntityPlayer) ((EntityPlayer)caster)
|
||||
@@ -66,7 +63,7 @@ public class RayOfPurification extends SpellRay {
|
||||
damage *= getProperty(UNDEAD_DAMAGE_MULTIPLIER).floatValue();
|
||||
}
|
||||
// Damage
|
||||
WizardryUtilities.attackEntityWithoutKnockback(target,
|
||||
EntityUtils.attackEntityWithoutKnockback(target,
|
||||
MagicDamage.causeDirectMagicDamage(caster, DamageType.RADIANT), damage);
|
||||
// Blindness
|
||||
((EntityLivingBase)target).addPotionEffect(new PotionEffect(MobEffects.BLINDNESS,
|
||||
|
||||
@@ -2,11 +2,8 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.integration.DamageSafetyChecker;
|
||||
import electroblob.wizardry.registry.Spells;
|
||||
import electroblob.wizardry.util.IElementalDamage;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.EnumAction;
|
||||
@@ -68,7 +65,7 @@ public class ShadowWard extends Spell {
|
||||
|
||||
if(event.getSource() != null && event.getSource().getTrueSource() instanceof EntityLivingBase){
|
||||
|
||||
if(WizardryUtilities.isCasting(event.getEntityLiving(), Spells.shadow_ward) && !event.getSource().isUnblockable()
|
||||
if(EntityUtils.isCasting(event.getEntityLiving(), Spells.shadow_ward) && !event.getSource().isUnblockable()
|
||||
&& !(event.getSource() instanceof IElementalDamage && ((IElementalDamage)event.getSource()).isRetaliatory())){
|
||||
|
||||
event.setCanceled(true);
|
||||
|
||||
@@ -37,7 +37,7 @@ public class Shockwave extends Spell {
|
||||
|
||||
double radius = getProperty(BLAST_RADIUS).floatValue() * modifiers.get(WizardryItems.blast_upgrade);
|
||||
|
||||
List<EntityLivingBase> targets = WizardryUtilities.getEntitiesWithinRadius(radius, caster.posX, caster.posY, caster.posZ, world);
|
||||
List<EntityLivingBase> targets = EntityUtils.getEntitiesWithinRadius(radius, caster.posX, caster.posY, caster.posZ, world);
|
||||
|
||||
for(EntityLivingBase target : targets){
|
||||
|
||||
@@ -105,7 +105,7 @@ public class Shockwave extends Spell {
|
||||
|
||||
particleX = caster.posX - 1.0d + 2 * world.rand.nextDouble();
|
||||
particleZ = caster.posZ - 1.0d + 2 * world.rand.nextDouble();
|
||||
IBlockState block = WizardryUtilities.getBlockEntityIsStandingOn(caster);
|
||||
IBlockState block = BlockUtils.getBlockEntityIsStandingOn(caster);
|
||||
|
||||
if(block != null){
|
||||
world.spawnParticle(EnumParticleTypes.BLOCK_DUST, particleX, caster.getEntityBoundingBox().minY,
|
||||
|
||||
@@ -2,9 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.NBTExtras;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -62,7 +62,7 @@ public class ShulkerBullet extends Spell {
|
||||
|
||||
double range = getProperty(RANGE).floatValue() * modifiers.get(WizardryItems.range_upgrade);
|
||||
|
||||
List<EntityLivingBase> possibleTargets = WizardryUtilities.getEntitiesWithinRadius(range, x, y, z, world);
|
||||
List<EntityLivingBase> possibleTargets = EntityUtils.getEntitiesWithinRadius(range, x, y, z, world);
|
||||
|
||||
possibleTargets.remove(caster);
|
||||
possibleTargets.removeIf(t -> t instanceof EntityArmorStand);
|
||||
|
||||
@@ -3,10 +3,10 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.entity.living.EntityMagicSlime;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntitySlime;
|
||||
@@ -34,7 +34,7 @@ public class Slime extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target) && !(target instanceof EntityMagicSlime)){
|
||||
if(EntityUtils.isLiving(target) && !(target instanceof EntityMagicSlime)){
|
||||
|
||||
if(target instanceof EntitySlime){
|
||||
if(!world.isRemote && caster instanceof EntityPlayer) ((EntityPlayer)caster).sendStatusMessage(
|
||||
|
||||
@@ -3,10 +3,10 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryBlocks;
|
||||
import electroblob.wizardry.tileentity.TileEntityPlayerSave;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -31,7 +31,7 @@ public class Snare extends SpellRay {
|
||||
@Override
|
||||
protected boolean onBlockHit(World world, BlockPos pos, EnumFacing side, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(side == EnumFacing.UP && world.isSideSolid(pos, EnumFacing.UP) && WizardryUtilities.canBlockBeReplaced(world, pos.up())){
|
||||
if(side == EnumFacing.UP && world.isSideSolid(pos, EnumFacing.UP) && BlockUtils.canBlockBeReplaced(world, pos.up())){
|
||||
if(!world.isRemote){
|
||||
world.setBlockState(pos.up(), WizardryBlocks.snare.getDefaultState());
|
||||
((TileEntityPlayerSave)world.getTileEntity(pos.up())).setCaster(caster);
|
||||
|
||||
@@ -4,8 +4,8 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryBlocks;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.tileentity.TileEntityTimer;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -33,8 +33,8 @@ public class SpectralPathway extends Spell {
|
||||
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
// Won't work if caster is airborne or if they are already on a bridge (prevents infinite bridges)
|
||||
if(WizardryUtilities.getBlockEntityIsStandingOn(caster).getBlock() == Blocks.AIR
|
||||
|| WizardryUtilities.getBlockEntityIsStandingOn(caster).getBlock() == WizardryBlocks.spectral_block){
|
||||
if(BlockUtils.getBlockEntityIsStandingOn(caster).getBlock() == Blocks.AIR
|
||||
|| BlockUtils.getBlockEntityIsStandingOn(caster).getBlock() == WizardryBlocks.spectral_block){
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public class SpectralPathway extends Spell {
|
||||
}
|
||||
|
||||
private boolean placePathwayBlockIfPossible(World world, BlockPos pos, float durationMultiplier){
|
||||
if(WizardryUtilities.canBlockBeReplaced(world, pos, true)){
|
||||
if(BlockUtils.canBlockBeReplaced(world, pos, true)){
|
||||
world.setBlockState(pos, WizardryBlocks.spectral_block.getDefaultState());
|
||||
if(world.getTileEntity(pos) instanceof TileEntityTimer){
|
||||
((TileEntityTimer)world.getTileEntity(pos)).setLifetime((int)(getProperty(DURATION).floatValue() * durationMultiplier));
|
||||
|
||||
@@ -3,9 +3,9 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -93,7 +93,7 @@ public class SpeedTime extends Spell {
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
List<BlockPos> sphere = WizardryUtilities.getBlockSphere(caster.getPosition(), radius);
|
||||
List<BlockPos> sphere = BlockUtils.getBlockSphere(caster.getPosition(), radius);
|
||||
|
||||
for(BlockPos pos : sphere){
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.AllyDesignationSystem;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.EnumAction;
|
||||
@@ -45,7 +45,7 @@ public abstract class SpellAreaEffect extends Spell {
|
||||
@Override
|
||||
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
List<EntityLivingBase> targets = WizardryUtilities.getEntitiesWithinRadius(getProperty(EFFECT_RADIUS).floatValue()
|
||||
List<EntityLivingBase> targets = EntityUtils.getEntitiesWithinRadius(getProperty(EFFECT_RADIUS).floatValue()
|
||||
* modifiers.get(WizardryItems.blast_upgrade), caster.posX, caster.posY, caster.posZ, world);
|
||||
|
||||
targets.removeIf(target -> !AllyDesignationSystem.isValidTarget(caster, target));
|
||||
|
||||
@@ -6,8 +6,8 @@ import electroblob.wizardry.entity.projectile.EntityMagicArrow;
|
||||
import electroblob.wizardry.entity.projectile.EntityMagicProjectile;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -117,7 +117,7 @@ public class SpellArrow<T extends EntityMagicArrow> extends Spell {
|
||||
T projectile = arrowFactory.apply(world);
|
||||
// Sets the necessary parameters
|
||||
int aimingError = caster instanceof ISpellCaster ? ((ISpellCaster)caster).getAimingError(world.getDifficulty())
|
||||
: WizardryUtilities.getDefaultAimingError(world.getDifficulty());
|
||||
: EntityUtils.getDefaultAimingError(world.getDifficulty());
|
||||
projectile.aim(caster, target, calculateVelocity(projectile, modifiers, caster.getEyeHeight()
|
||||
- (float)EntityMagicProjectile.LAUNCH_Y_OFFSET), aimingError);
|
||||
projectile.damageMultiplier = modifiers.get(SpellModifiers.POTENCY);
|
||||
|
||||
@@ -4,10 +4,10 @@ import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.item.IConjuredItem;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.InventoryUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -86,7 +86,7 @@ public class SpellConjuration extends Spell {
|
||||
IConjuredItem.setDurationMultiplier(stack, modifiers.get(WizardryItems.duration_upgrade));
|
||||
IConjuredItem.setDamageMultiplier(stack, modifiers.get(SpellModifiers.POTENCY));
|
||||
|
||||
if(WizardryUtilities.doesPlayerHaveItem(caster, item)) return false;
|
||||
if(InventoryUtils.doesPlayerHaveItem(caster, item)) return false;
|
||||
|
||||
if(caster.getHeldItemMainhand().isEmpty()){
|
||||
caster.setHeldItem(EnumHand.MAIN_HAND, stack);
|
||||
|
||||
@@ -3,8 +3,8 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.entity.construct.EntityMagicConstruct;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -122,7 +122,7 @@ public class SpellConstruct<T extends EntityMagicConstruct> extends Spell {
|
||||
Integer floor = (int)y;
|
||||
|
||||
if(requiresFloor){
|
||||
floor = WizardryUtilities.getNearestFloor(world, new BlockPos(x, y, z), 1);
|
||||
floor = BlockUtils.getNearestFloor(world, new BlockPos(x, y, z), 1);
|
||||
direction = EnumFacing.UP;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.entity.construct.EntityMagicConstruct;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.RayTracer;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -149,7 +149,7 @@ public class SpellConstructRanged<T extends EntityMagicConstruct> extends SpellC
|
||||
// If the target is not on the ground but the construct must be placed on the floor, searches for the
|
||||
// floor under the caster and returns false if it does not find one within 3 blocks.
|
||||
if(!target.onGround && requiresFloor){
|
||||
Integer floor = WizardryUtilities.getNearestFloor(world, new BlockPos(x, y, z), 3);
|
||||
Integer floor = BlockUtils.getNearestFloor(world, new BlockPos(x, y, z), 3);
|
||||
if(floor == null) return false;
|
||||
y = floor;
|
||||
side = EnumFacing.UP;
|
||||
|
||||
@@ -4,9 +4,9 @@ import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.entity.living.ISummonedCreature;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.WizardryUtilities.Operations;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.IEntityLivingData;
|
||||
@@ -148,7 +148,7 @@ public class SpellMinion<T extends EntityLiving & ISummonedCreature> extends Spe
|
||||
int range = getProperty(SUMMON_RADIUS).intValue();
|
||||
|
||||
// Try and find a nearby floor space
|
||||
BlockPos pos = WizardryUtilities.findNearbyFloorSpace(caster, range, range*2);
|
||||
BlockPos pos = BlockUtils.findNearbyFloorSpace(caster, range, range*2);
|
||||
|
||||
if(flying){
|
||||
if(pos != null){
|
||||
@@ -174,10 +174,10 @@ public class SpellMinion<T extends EntityLiving & ISummonedCreature> extends Spe
|
||||
minion.setLifetime((int)(getProperty(MINION_LIFETIME).floatValue() * modifiers.get(WizardryItems.duration_upgrade)));
|
||||
IAttributeInstance attribute = minion.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE);
|
||||
if(attribute != null) attribute.applyModifier( // Apparently some things don't have an attack damage
|
||||
new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.get(SpellModifiers.POTENCY) - 1, Operations.MULTIPLY_CUMULATIVE));
|
||||
new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.get(SpellModifiers.POTENCY) - 1, EntityUtils.Operations.MULTIPLY_CUMULATIVE));
|
||||
// This is only used for artefacts, but it's a nice example of custom spell modifiers
|
||||
minion.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).applyModifier(
|
||||
new AttributeModifier(HEALTH_MODIFIER, modifiers.get(HEALTH_MODIFIER) - 1, Operations.MULTIPLY_CUMULATIVE));
|
||||
new AttributeModifier(HEALTH_MODIFIER, modifiers.get(HEALTH_MODIFIER) - 1, EntityUtils.Operations.MULTIPLY_CUMULATIVE));
|
||||
minion.setHealth(minion.getMaxHealth()); // Need to set this because we may have just modified the value
|
||||
|
||||
this.addMinionExtras(minion, pos, caster, modifiers, i);
|
||||
|
||||
@@ -5,8 +5,8 @@ import electroblob.wizardry.entity.living.ISpellCaster;
|
||||
import electroblob.wizardry.entity.projectile.EntityBomb;
|
||||
import electroblob.wizardry.entity.projectile.EntityMagicProjectile;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -128,7 +128,7 @@ public class SpellProjectile<T extends EntityMagicProjectile> extends Spell {
|
||||
T projectile = projectileFactory.apply(world);
|
||||
// Sets the necessary parameters
|
||||
int aimingError = caster instanceof ISpellCaster ? ((ISpellCaster)caster).getAimingError(world.getDifficulty())
|
||||
: WizardryUtilities.getDefaultAimingError(world.getDifficulty());
|
||||
: EntityUtils.getDefaultAimingError(world.getDifficulty());
|
||||
projectile.aim(caster, target, calculateVelocity(projectile, modifiers, caster.getEyeHeight()
|
||||
- (float)EntityMagicProjectile.LAUNCH_Y_OFFSET), aimingError);
|
||||
projectile.damageMultiplier = modifiers.get(SpellModifiers.POTENCY);
|
||||
|
||||
@@ -2,9 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.RayTracer;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -178,7 +178,7 @@ public abstract class SpellRay extends Spell {
|
||||
Vec3d origin = new Vec3d(caster.posX, caster.getEntityBoundingBox().minY + caster.getEyeHeight() - Y_OFFSET, caster.posZ);
|
||||
Vec3d targetPos = null;
|
||||
|
||||
if(!ignoreLivingEntities || !WizardryUtilities.isLiving(target)){
|
||||
if(!ignoreLivingEntities || !EntityUtils.isLiving(target)){
|
||||
targetPos = new Vec3d(target.posX, target.getEntityBoundingBox().minY + target.height / 2, target.posZ);
|
||||
|
||||
}else{
|
||||
@@ -261,7 +261,7 @@ public abstract class SpellRay extends Spell {
|
||||
|
||||
// Change the filter depending on whether living entities are ignored or not
|
||||
RayTraceResult rayTrace = RayTracer.rayTrace(world, origin, endpoint, aimAssist, hitLiquids,
|
||||
ignoreUncollidables, false, Entity.class, ignoreLivingEntities ? WizardryUtilities::isLiving
|
||||
ignoreUncollidables, false, Entity.class, ignoreLivingEntities ? EntityUtils::isLiving
|
||||
: RayTracer.ignoreEntityFilter(caster));
|
||||
|
||||
boolean flag = false;
|
||||
|
||||
@@ -3,8 +3,8 @@ package electroblob.wizardry.spell;
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.entity.living.ISpellCaster;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -93,7 +93,7 @@ public class SpellThrowable<T extends EntityThrowable> extends Spell {
|
||||
float velocity = calculateVelocity(modifiers, caster.getEyeHeight() - LAUNCH_Y_OFFSET);
|
||||
T projectile = projectileFactory.apply(world, caster);
|
||||
int aimingError = caster instanceof ISpellCaster ? ((ISpellCaster)caster).getAimingError(world.getDifficulty())
|
||||
: WizardryUtilities.getDefaultAimingError(world.getDifficulty());
|
||||
: EntityUtils.getDefaultAimingError(world.getDifficulty());
|
||||
aim(projectile, caster, target, velocity, aimingError);
|
||||
addProjectileExtras(projectile, caster, modifiers);
|
||||
world.spawnEntity(projectile);
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.monster.EntityIronGolem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
@@ -22,7 +22,7 @@ public class SummonIronGolem extends Spell {
|
||||
@Override
|
||||
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
BlockPos pos = WizardryUtilities.findNearbyFloorSpace(caster, getProperty(SpellMinion.SUMMON_RADIUS).intValue(),
|
||||
BlockPos pos = BlockUtils.findNearbyFloorSpace(caster, getProperty(SpellMinion.SUMMON_RADIUS).intValue(),
|
||||
getProperty(SpellMinion.SUMMON_RADIUS).intValue());
|
||||
|
||||
if(pos == null) return false;
|
||||
|
||||
@@ -2,10 +2,10 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.monster.EntitySnowman;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHand;
|
||||
@@ -23,7 +23,7 @@ public class SummonSnowGolem extends Spell {
|
||||
@Override
|
||||
public boolean cast(World world, EntityPlayer caster, EnumHand hand, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
BlockPos pos = WizardryUtilities.findNearbyFloorSpace(caster, 2, 4);
|
||||
BlockPos pos = BlockUtils.findNearbyFloorSpace(caster, 2, 4);
|
||||
if(pos == null) return false;
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
@@ -5,9 +5,9 @@ import electroblob.wizardry.data.Persistence;
|
||||
import electroblob.wizardry.data.WizardData;
|
||||
import electroblob.wizardry.entity.living.EntitySpiritHorse;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.WizardryUtilities.Operations;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
@@ -54,11 +54,11 @@ public class SummonSpiritHorse extends Spell {
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
Entity oldHorse = WizardryUtilities.getEntityByUUID(world, data.getVariable(UUID_KEY));
|
||||
Entity oldHorse = EntityUtils.getEntityByUUID(world, data.getVariable(UUID_KEY));
|
||||
|
||||
if(oldHorse != null) oldHorse.setDead();
|
||||
|
||||
BlockPos pos = WizardryUtilities.findNearbyFloorSpace(caster, 2, 4);
|
||||
BlockPos pos = BlockUtils.findNearbyFloorSpace(caster, 2, 4);
|
||||
if(pos == null) return false;
|
||||
|
||||
EntitySpiritHorse horse = new EntitySpiritHorse(world);
|
||||
@@ -68,10 +68,10 @@ public class SummonSpiritHorse extends Spell {
|
||||
world.spawnEntity(horse);
|
||||
|
||||
horse.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).applyModifier(
|
||||
new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.get(SpellModifiers.POTENCY) - 1, Operations.MULTIPLY_CUMULATIVE));
|
||||
new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.get(SpellModifiers.POTENCY) - 1, EntityUtils.Operations.MULTIPLY_CUMULATIVE));
|
||||
// Jump strength increases ridiculously fast, so we're reducing the effect of the modifier by 75%
|
||||
horse.getEntityAttribute(JUMP_STRENGTH).applyModifier(new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER,
|
||||
modifiers.amplified(SpellModifiers.POTENCY, 0.25f) - 1, Operations.MULTIPLY_CUMULATIVE));
|
||||
modifiers.amplified(SpellModifiers.POTENCY, 0.25f) - 1, EntityUtils.Operations.MULTIPLY_CUMULATIVE));
|
||||
|
||||
data.setVariable(UUID_KEY, horse.getUniqueID());
|
||||
}
|
||||
|
||||
@@ -5,9 +5,9 @@ import electroblob.wizardry.data.Persistence;
|
||||
import electroblob.wizardry.data.WizardData;
|
||||
import electroblob.wizardry.entity.living.EntitySpiritWolf;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.EntityUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.WizardryUtilities.Operations;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.SharedMonsterAttributes;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifier;
|
||||
@@ -44,11 +44,11 @@ public class SummonSpiritWolf extends Spell {
|
||||
|
||||
if(!world.isRemote){
|
||||
|
||||
Entity oldWolf = WizardryUtilities.getEntityByUUID(world, data.getVariable(UUID_KEY));
|
||||
Entity oldWolf = EntityUtils.getEntityByUUID(world, data.getVariable(UUID_KEY));
|
||||
|
||||
if(oldWolf != null) oldWolf.setDead();
|
||||
|
||||
BlockPos pos = WizardryUtilities.findNearbyFloorSpace(caster, 2, 4);
|
||||
BlockPos pos = BlockUtils.findNearbyFloorSpace(caster, 2, 4);
|
||||
if(pos == null) return false;
|
||||
|
||||
EntitySpiritWolf wolf = new EntitySpiritWolf(world);
|
||||
@@ -57,9 +57,9 @@ public class SummonSpiritWolf extends Spell {
|
||||
wolf.setOwnerId(caster.getUniqueID());
|
||||
// Potency gives the wolf more strength AND more health
|
||||
wolf.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).applyModifier(
|
||||
new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.get(SpellModifiers.POTENCY) - 1, Operations.MULTIPLY_CUMULATIVE));
|
||||
new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.get(SpellModifiers.POTENCY) - 1, EntityUtils.Operations.MULTIPLY_CUMULATIVE));
|
||||
wolf.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).applyModifier(
|
||||
new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.amplified(SpellModifiers.POTENCY, 1.5f) - 1, Operations.MULTIPLY_CUMULATIVE));
|
||||
new AttributeModifier(POTENCY_ATTRIBUTE_MODIFIER, modifiers.amplified(SpellModifiers.POTENCY, 1.5f) - 1, EntityUtils.Operations.MULTIPLY_CUMULATIVE));
|
||||
wolf.setHealth(wolf.getMaxHealth());
|
||||
|
||||
world.spawnEntity(wolf);
|
||||
|
||||
@@ -63,7 +63,7 @@ public class Thunderstorm extends Spell {
|
||||
|
||||
double x = caster.posX + radius * MathHelper.cos(angle);
|
||||
double z = caster.posZ + radius * MathHelper.sin(angle);
|
||||
Integer y = WizardryUtilities.getNearestFloor(world, new BlockPos(x, caster.posY, z), (int)maxRadius);
|
||||
Integer y = BlockUtils.getNearestFloor(world, new BlockPos(x, caster.posY, z), (int)maxRadius);
|
||||
|
||||
if(y != null){
|
||||
|
||||
@@ -77,7 +77,7 @@ public class Thunderstorm extends Spell {
|
||||
// entityNBT.setInteger("summoningPlayer", entityplayer.entityId);
|
||||
|
||||
// Secondary chaining effect
|
||||
List<EntityLivingBase> secondaryTargets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityLivingBase> secondaryTargets = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(SECONDARY_RANGE).doubleValue(), x, y + 1, z, world);
|
||||
|
||||
for(int j = 0; j < Math.min(secondaryTargets.size(), getProperty(SECONDARY_MAX_TARGETS).intValue()); j++){
|
||||
@@ -102,7 +102,7 @@ public class Thunderstorm extends Spell {
|
||||
|
||||
// Tertiary chaining effect
|
||||
|
||||
List<EntityLivingBase> tertiaryTargets = WizardryUtilities.getEntitiesWithinRadius(
|
||||
List<EntityLivingBase> tertiaryTargets = EntityUtils.getEntitiesWithinRadius(
|
||||
getProperty(TERTIARY_RANGE).doubleValue(), secondaryTarget.posX,
|
||||
secondaryTarget.posY + secondaryTarget.height / 2, secondaryTarget.posZ, world);
|
||||
|
||||
|
||||
@@ -9,10 +9,7 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.packet.PacketTransportation;
|
||||
import electroblob.wizardry.packet.WizardryPacketHandler;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.Location;
|
||||
import electroblob.wizardry.util.NBTExtras;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.*;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.MobEffects;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
@@ -128,7 +125,7 @@ public class Transportation extends Spell {
|
||||
public static boolean isLocationAimedAt(EntityPlayer player, BlockPos pos, float partialTicks){
|
||||
|
||||
Vec3d origin = player.getPositionEyes(partialTicks);
|
||||
Vec3d centre = WizardryUtilities.getCentre(pos);
|
||||
Vec3d centre = GeometryUtils.getCentre(pos);
|
||||
Vec3d direction = centre.subtract(origin);
|
||||
double distance = direction.length();
|
||||
|
||||
@@ -139,7 +136,7 @@ public class Transportation extends Spell {
|
||||
|
||||
Vec3d origin = player.getPositionEyes(partialTicks);
|
||||
Vec3d look = player.getLook(partialTicks);
|
||||
Vec3d centre = WizardryUtilities.getCentre(pos);
|
||||
Vec3d centre = GeometryUtils.getCentre(pos);
|
||||
Vec3d direction = centre.subtract(origin);
|
||||
double distance = direction.length();
|
||||
|
||||
|
||||
@@ -5,10 +5,8 @@ import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryBlocks;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.registry.WizardrySounds;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
@@ -63,11 +61,11 @@ public class WallOfFrost extends SpellRay {
|
||||
@Override
|
||||
protected boolean onBlockHit(World world, BlockPos pos, EnumFacing side, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(!world.isRemote && WizardryUtilities.canDamageBlocks(caster, world)){
|
||||
if(!world.isRemote && EntityUtils.canDamageBlocks(caster, world)){
|
||||
|
||||
// Stops the ice being placed floating above snow and grass. Directions other than up included for
|
||||
// completeness.
|
||||
if(WizardryUtilities.canBlockBeReplaced(world, pos)){
|
||||
if(BlockUtils.canBlockBeReplaced(world, pos)){
|
||||
// Moves the blockpos back into the block
|
||||
pos = pos.offset(side.getOpposite());
|
||||
}
|
||||
@@ -79,7 +77,7 @@ public class WallOfFrost extends SpellRay {
|
||||
|
||||
int duration = (int)(getProperty(DURATION).floatValue() * modifiers.get(WizardryItems.duration_upgrade));
|
||||
|
||||
if(WizardryUtilities.canBlockBeReplaced(world, pos)){
|
||||
if(BlockUtils.canBlockBeReplaced(world, pos)){
|
||||
world.setBlockState(pos, WizardryBlocks.dry_frosted_ice.getDefaultState());
|
||||
world.scheduleUpdate(pos.toImmutable(), WizardryBlocks.dry_frosted_ice, duration);
|
||||
}
|
||||
@@ -88,7 +86,7 @@ public class WallOfFrost extends SpellRay {
|
||||
if(side == EnumFacing.UP){
|
||||
pos = pos.offset(side);
|
||||
|
||||
if(WizardryUtilities.canBlockBeReplaced(world, pos)){
|
||||
if(BlockUtils.canBlockBeReplaced(world, pos)){
|
||||
world.setBlockState(pos, WizardryBlocks.dry_frosted_ice.getDefaultState());
|
||||
world.scheduleUpdate(pos.toImmutable(), WizardryBlocks.dry_frosted_ice, duration);
|
||||
}
|
||||
|
||||
@@ -2,12 +2,9 @@ package electroblob.wizardry.spell;
|
||||
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.MagicDamage;
|
||||
import electroblob.wizardry.util.*;
|
||||
import electroblob.wizardry.util.MagicDamage.DamageType;
|
||||
import electroblob.wizardry.util.ParticleBuilder;
|
||||
import electroblob.wizardry.util.ParticleBuilder.Type;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -30,7 +27,7 @@ public class Wither extends SpellRay {
|
||||
@Override
|
||||
protected boolean onEntityHit(World world, Entity target, Vec3d hit, EntityLivingBase caster, Vec3d origin, int ticksInUse, SpellModifiers modifiers){
|
||||
|
||||
if(WizardryUtilities.isLiving(target)){
|
||||
if(EntityUtils.isLiving(target)){
|
||||
|
||||
// Has no effect on withers or wither skeletons.
|
||||
if(MagicDamage.isEntityImmune(DamageType.WITHER, target)){
|
||||
|
||||
@@ -4,9 +4,8 @@ import electroblob.wizardry.entity.construct.EntityZombieSpawner;
|
||||
import electroblob.wizardry.item.ItemArtefact;
|
||||
import electroblob.wizardry.item.SpellActions;
|
||||
import electroblob.wizardry.registry.WizardryItems;
|
||||
import electroblob.wizardry.util.BlockUtils;
|
||||
import electroblob.wizardry.util.SpellModifiers;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import electroblob.wizardry.util.WizardryUtilities.SurfaceCriteria;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
@@ -37,8 +36,8 @@ public class ZombieApocalypse extends SpellConstruct<EntityZombieSpawner> {
|
||||
@Override
|
||||
protected boolean spawnConstruct(World world, double x, double y, double z, EnumFacing side, @Nullable EntityLivingBase caster, SpellModifiers modifiers){
|
||||
|
||||
Integer ceiling = WizardryUtilities.getNearestSurface(world, new BlockPos(x, y + MIN_SPAWNER_HEIGHT, z),
|
||||
EnumFacing.UP, SPAWNER_HEIGHT - MIN_SPAWNER_HEIGHT, false, SurfaceCriteria.COLLIDABLE.flip());
|
||||
Integer ceiling = BlockUtils.getNearestSurface(world, new BlockPos(x, y + MIN_SPAWNER_HEIGHT, z),
|
||||
EnumFacing.UP, SPAWNER_HEIGHT - MIN_SPAWNER_HEIGHT, false, BlockUtils.SurfaceCriteria.COLLIDABLE.flip());
|
||||
|
||||
if(ceiling == null) y += SPAWNER_HEIGHT;
|
||||
else y = ceiling - 0.5;
|
||||
|
||||
Reference in New Issue
Block a user