Finished almost all rituals.
This commit is contained in:
parent
1fbebc56a2
commit
86b753d098
|
@ -1,10 +1,8 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.EntityAgeable;
|
||||
import net.minecraft.entity.passive.EntityAnimal;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
|
@ -13,9 +11,11 @@ import net.minecraft.tileentity.TileEntity;
|
|||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
|
||||
public class RitualEffectAnimalGrowth extends RitualEffect
|
||||
{
|
||||
|
@ -39,7 +39,7 @@ public class RitualEffectAnimalGrowth extends RitualEffect
|
|||
|
||||
double range = 2;
|
||||
|
||||
AxisAlignedBB axisalignedbb = new AxisAlignedBB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 3), (double) (z + 1)).expand(range, 0, range);
|
||||
AxisAlignedBB axisalignedbb = new AxisAlignedBB(pos.offsetUp(), pos.add(1, 3, 1)).expand(range, 0, range);
|
||||
List<EntityAgeable> list = world.getEntitiesWithinAABB(EntityAgeable.class, axisalignedbb);
|
||||
|
||||
int entityCount = 0;
|
||||
|
@ -79,14 +79,14 @@ public class RitualEffectAnimalGrowth extends RitualEffect
|
|||
if (hasVirtus && SoulNetworkHandler.canSyphonFromOnlyNetwork(owner, breedingCost))
|
||||
{
|
||||
List<EntityAnimal> animalList = world.getEntitiesWithinAABB(EntityAnimal.class, axisalignedbb);
|
||||
TileEntity tile = world.getTileEntity(x, y + 1, z);
|
||||
TileEntity tile = world.getTileEntity(pos.offsetUp());
|
||||
IInventory inventory = null;
|
||||
if (tile instanceof IInventory)
|
||||
{
|
||||
inventory = (IInventory) tile;
|
||||
} else
|
||||
{
|
||||
tile = world.getTileEntity(x, y - 1, z);
|
||||
tile = world.getTileEntity(pos.offsetDown());
|
||||
if (tile instanceof IInventory)
|
||||
{
|
||||
inventory = (IInventory) tile;
|
||||
|
@ -112,7 +112,7 @@ public class RitualEffectAnimalGrowth extends RitualEffect
|
|||
if (stack != null && entityAnimal.isBreedingItem(stack))
|
||||
{
|
||||
inventory.decrStackSize(i, 1);
|
||||
entityAnimal.func_146082_f(null);
|
||||
entityAnimal.setInLove(null);
|
||||
this.canDrainReagent(ritualStone, ReagentRegistry.virtusReagent, virtusDrain, true);
|
||||
SoulNetworkHandler.syphonFromNetwork(owner, breedingCost);
|
||||
break;
|
||||
|
|
|
@ -8,8 +8,8 @@ import net.minecraft.inventory.ISidedInventory;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
|
@ -44,7 +44,7 @@ public class RitualEffectAutoAlchemy extends RitualEffect
|
|||
|
||||
int flag = 0;
|
||||
|
||||
TileEntity topEntity = world.getTileEntity(x, y + 1, z);
|
||||
TileEntity topEntity = world.getTileEntity(pos.offsetUp());
|
||||
if (!(topEntity instanceof IBloodAltar) || !(topEntity instanceof IBloodAltar))
|
||||
{
|
||||
return;
|
||||
|
@ -65,10 +65,10 @@ public class RitualEffectAutoAlchemy extends RitualEffect
|
|||
IInventory inputInv1 = null;
|
||||
IInventory inputInv2 = null;
|
||||
|
||||
TileEntity northEntity = world.getTileEntity(x, y, z - 1);
|
||||
TileEntity southEntity = world.getTileEntity(x, y, z + 1);
|
||||
TileEntity eastEntity = world.getTileEntity(x + 1, y, z);
|
||||
TileEntity westEntity = world.getTileEntity(x - 1, y, z);
|
||||
TileEntity northEntity = world.getTileEntity(pos.offsetNorth());
|
||||
TileEntity southEntity = world.getTileEntity(pos.offsetSouth());
|
||||
TileEntity eastEntity = world.getTileEntity(pos.offsetEast());
|
||||
TileEntity westEntity = world.getTileEntity(pos.offsetWest());
|
||||
|
||||
if (northEntity instanceof TEWritingTable)
|
||||
{
|
||||
|
@ -271,7 +271,7 @@ public class RitualEffectAutoAlchemy extends RitualEffect
|
|||
continue;
|
||||
}
|
||||
|
||||
if(!inputInv1.isItemValidForSlot(j, curItem) || (inputInv1 instanceof ISidedInventory && !((ISidedInventory) inputInv1).canExtractItem(j, curItem, ForgeDirection.DOWN.ordinal())))
|
||||
if(!inputInv1.isItemValidForSlot(j, curItem) || (inputInv1 instanceof ISidedInventory && !((ISidedInventory) inputInv1).canExtractItem(j, curItem, EnumFacing.DOWN)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@ -385,10 +385,11 @@ public class RitualEffectAutoAlchemy extends RitualEffect
|
|||
|
||||
if (flag > 0)
|
||||
{
|
||||
world.markBlockForUpdate(x, y, z + 1);
|
||||
world.markBlockForUpdate(x, y, z - 1);
|
||||
world.markBlockForUpdate(x + 1, y, z);
|
||||
world.markBlockForUpdate(x - 1, y, z);
|
||||
for(EnumFacing face : EnumFacing.HORIZONTALS)
|
||||
{
|
||||
world.markBlockForUpdate(pos.offset(face));
|
||||
}
|
||||
|
||||
SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * flag);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.effect.EntityLightningBolt;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -15,10 +13,12 @@ import net.minecraft.potion.PotionEffect;
|
|||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
|
||||
public class RitualEffectBinding extends RitualEffect
|
||||
{
|
||||
|
@ -46,7 +46,7 @@ public class RitualEffectBinding extends RitualEffect
|
|||
if (ritualStone.getVar1() == 0)
|
||||
{
|
||||
int d0 = 0;
|
||||
AxisAlignedBB axisalignedbb = new AxisAlignedBB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0);
|
||||
AxisAlignedBB axisalignedbb = new AxisAlignedBB(pos.offsetUp(), pos.add(1, 2, 1)).expand(d0, d0, d0);
|
||||
List list = world.getEntitiesWithinAABB(EntityItem.class, axisalignedbb);
|
||||
Iterator iterator = list.iterator();
|
||||
EntityItem item;
|
||||
|
@ -66,7 +66,7 @@ public class RitualEffectBinding extends RitualEffect
|
|||
{
|
||||
ritualStone.setVar1(BindingRegistry.getIndexForItem(itemStack) + 1);
|
||||
itemStack.stackSize--;
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, pos.getX(), pos.getY() + 1, pos.getZ()));
|
||||
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
|
||||
if(itemStack.stackSize <= 0)
|
||||
{
|
||||
|
@ -77,7 +77,7 @@ public class RitualEffectBinding extends RitualEffect
|
|||
|
||||
if (world.rand.nextInt(10) == 0)
|
||||
{
|
||||
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.getDimensionId(), 1, x, y, z);
|
||||
SpellHelper.sendIndexedParticleToAllAround(world, pos, 20, world.provider.getDimensionId(), 1, pos);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,40 +90,8 @@ public class RitualEffectBinding extends RitualEffect
|
|||
{
|
||||
int lightningPoint = world.rand.nextInt(8);
|
||||
|
||||
switch (lightningPoint)
|
||||
{
|
||||
case 0:
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 3, z + 0));
|
||||
break;
|
||||
|
||||
case 1:
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 3, z + 0));
|
||||
break;
|
||||
|
||||
case 2:
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z + 4));
|
||||
break;
|
||||
|
||||
case 3:
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z - 4));
|
||||
break;
|
||||
|
||||
case 4:
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z + 3));
|
||||
break;
|
||||
|
||||
case 5:
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z + 3));
|
||||
break;
|
||||
|
||||
case 6:
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z - 3));
|
||||
break;
|
||||
|
||||
case 7:
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z - 3));
|
||||
break;
|
||||
}
|
||||
BlockPos newPos = getPositionForLightning(pos, lightningPoint);
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, newPos.getX(), newPos.getY(), newPos.getZ()));
|
||||
}
|
||||
|
||||
if (ritualStone.getCooldown() <= 0)
|
||||
|
@ -133,7 +101,7 @@ public class RitualEffectBinding extends RitualEffect
|
|||
|
||||
if (spawnedItem != null)
|
||||
{
|
||||
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem.copy());
|
||||
EntityItem newItem = new EntityItem(world, pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5, spawnedItem.copy());
|
||||
world.spawnEntityInWorld(newItem);
|
||||
}
|
||||
|
||||
|
@ -143,6 +111,39 @@ public class RitualEffectBinding extends RitualEffect
|
|||
}
|
||||
}
|
||||
|
||||
public BlockPos getPositionForLightning(BlockPos pos, int lightning)
|
||||
{
|
||||
switch (lightning)
|
||||
{
|
||||
case 0:
|
||||
return pos.add(4, 3, 0);
|
||||
|
||||
case 1:
|
||||
return pos.add(-4, 3, 0);
|
||||
|
||||
case 2:
|
||||
return pos.add(0, 3, 4);
|
||||
|
||||
case 3:
|
||||
return pos.add(0, 3, -4);
|
||||
|
||||
case 4:
|
||||
return pos.add(3, 3, 3);
|
||||
|
||||
case 5:
|
||||
return pos.add(-3, 3, 3);
|
||||
|
||||
case 6:
|
||||
return pos.add(-3, 3, -3);
|
||||
|
||||
case 7:
|
||||
return pos.add(3, 3, -3);
|
||||
|
||||
default:
|
||||
return pos.add(0, 3, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCostPerRefresh()
|
||||
{
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import WayofTime.alchemicalWizardry.ModBlocks;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.effect.EntityLightningBolt;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
|
@ -19,12 +16,17 @@ import net.minecraft.potion.Potion;
|
|||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.biome.BiomeGenBase;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import WayofTime.alchemicalWizardry.ModBlocks;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth;
|
||||
|
||||
public class RitualEffectBiomeChanger extends RitualEffect
|
||||
{
|
||||
|
@ -43,7 +45,7 @@ public class RitualEffectBiomeChanger extends RitualEffect
|
|||
|
||||
if (world.rand.nextInt(15) == 0)
|
||||
{
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x - 1 + world.rand.nextInt(3), y + 1, z - 1 + world.rand.nextInt(3)));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, pos.getX() - 1 + world.rand.nextInt(3), pos.getY() + 1, pos.getZ() - 1 + world.rand.nextInt(3)));
|
||||
}
|
||||
|
||||
return;
|
||||
|
@ -89,49 +91,25 @@ public class RitualEffectBiomeChanger extends RitualEffect
|
|||
{
|
||||
if (boolList[i][j])
|
||||
{
|
||||
if (i - 1 >= 0 && !boolList[i - 1][j])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i - 1, y + 1, z - range + j);
|
||||
|
||||
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
|
||||
{
|
||||
boolList[i - 1][j] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (j - 1 >= 0 && !boolList[i][j - 1])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i, y + 1, z - range + j - 1);
|
||||
|
||||
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
|
||||
{
|
||||
boolList[i][j - 1] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (i + 1 <= 2 * range && !boolList[i + 1][j])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i + 1, y + 1, z - range + j);
|
||||
|
||||
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
|
||||
{
|
||||
boolList[i + 1][j] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (j + 1 <= 2 * range && !boolList[i][j + 1])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i, y + 1, z - range + j + 1);
|
||||
|
||||
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
|
||||
{
|
||||
boolList[i][j + 1] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
BlockPos position = pos.add(i - range, 1, j - range);
|
||||
|
||||
for(EnumFacing face : EnumFacing.HORIZONTALS)
|
||||
{
|
||||
int iP = i + face.getFrontOffsetX();
|
||||
int jP = j + face.getFrontOffsetY();
|
||||
|
||||
if(iP >= 0 && iP <= 2 * range && jP >= 0 && jP <= 2 * range && !boolList[iP][jP])
|
||||
{
|
||||
BlockPos newPos = position.add(face.getDirectionVec());
|
||||
IBlockState state = world.getBlockState(newPos);
|
||||
Block block = state.getBlock();
|
||||
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
|
||||
{
|
||||
boolList[iP][jP] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -151,7 +129,8 @@ public class RitualEffectBiomeChanger extends RitualEffect
|
|||
}
|
||||
|
||||
boolean isItemConsumed = false;
|
||||
TileEntity tileEntity = world.getTileEntity(x + i, y, z + j);
|
||||
BlockPos newPos = pos.add(i, 0, j);
|
||||
TileEntity tileEntity = world.getTileEntity(newPos);
|
||||
|
||||
if (!(tileEntity instanceof TEPlinth))
|
||||
{
|
||||
|
@ -169,7 +148,7 @@ public class RitualEffectBiomeChanger extends RitualEffect
|
|||
{
|
||||
if (itemTest instanceof ItemBlock)
|
||||
{
|
||||
Block item = ((ItemBlock) itemTest).field_150939_a;
|
||||
Block item = ((ItemBlock) itemTest).getBlock();
|
||||
if (item == (Blocks.sand))
|
||||
{
|
||||
humidity -= 0.1f;
|
||||
|
@ -230,8 +209,8 @@ public class RitualEffectBiomeChanger extends RitualEffect
|
|||
if (isItemConsumed)
|
||||
{
|
||||
tilePlinth.setInventorySlotContents(0, null);
|
||||
world.markBlockForUpdate(x + i, y, z + j);
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + i, y + 1, z + j));
|
||||
world.markBlockForUpdate(newPos);
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, newPos.getX(), newPos.getY() + 1, newPos.getZ()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -269,10 +248,11 @@ public class RitualEffectBiomeChanger extends RitualEffect
|
|||
{
|
||||
if (boolList[i][j])
|
||||
{
|
||||
Chunk chunk = world.getChunkFromBlockCoords(x - range + i, z - range + j);
|
||||
BlockPos newPos = pos.add(i - range, 0, j - range);
|
||||
Chunk chunk = world.getChunkFromBlockCoords(newPos);
|
||||
byte[] byteArray = chunk.getBiomeArray();
|
||||
int moduX = (x - range + i) % 16;
|
||||
int moduZ = (z - range + j) % 16;
|
||||
int moduX = (newPos.getX()) % 16;
|
||||
int moduZ = (newPos.getZ()) % 16;
|
||||
|
||||
if (moduX < 0)
|
||||
{
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.EntityCreeper;
|
||||
|
@ -15,9 +10,14 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.minecraftforge.fml.relauncher.ReflectionHelper;
|
||||
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
|
||||
public class RitualEffectContainment extends RitualEffect
|
||||
{
|
||||
|
@ -41,7 +41,7 @@ public class RitualEffectContainment extends RitualEffect
|
|||
} else
|
||||
{
|
||||
int d0 = 5;
|
||||
List<Entity> entityList = SpellHelper.getEntitiesInRange(world, x + 0.5, y + 0.5, z + 0.5, d0, d0);
|
||||
List<Entity> entityList = SpellHelper.getEntitiesInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, d0, d0);
|
||||
boolean flag = false;
|
||||
boolean hasCrepitous = this.canDrainReagent(ritualStone, ReagentRegistry.crepitousReagent, crepitousDrain, false);
|
||||
boolean hasTerrae = this.canDrainReagent(ritualStone, ReagentRegistry.terraeReagent, terraeDrain, false);
|
||||
|
@ -62,9 +62,9 @@ public class RitualEffectContainment extends RitualEffect
|
|||
}
|
||||
|
||||
|
||||
double xDif = livingEntity.posX - (x + 0.5);
|
||||
double yDif = livingEntity.posY - (y + 3);
|
||||
double zDif = livingEntity.posZ - (z + 0.5);
|
||||
double xDif = livingEntity.posX - (pos.getX() + 0.5);
|
||||
double yDif = livingEntity.posY - (pos.getY() + 3);
|
||||
double zDif = livingEntity.posZ - (pos.getZ() + 0.5);
|
||||
livingEntity.motionX = -0.05 * xDif;
|
||||
livingEntity.motionY = -0.05 * yDif;
|
||||
livingEntity.motionZ = -0.05 * zDif;
|
||||
|
|
|
@ -16,8 +16,8 @@ import net.minecraft.item.crafting.CraftingManager;
|
|||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import WayofTime.alchemicalWizardry.api.Int3;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
|
@ -92,8 +92,8 @@ public class RitualEffectCrafting extends RitualEffect
|
|||
{
|
||||
int gridSpace = (i+1)*3 + (j+1);
|
||||
|
||||
Int3 pos = this.getSlotPositionForDirection(gridSpace, direction);
|
||||
TileEntity inv = world.getTileEntity(x + pos.xCoord, y + pos.yCoord, z + pos.zCoord);
|
||||
Int3 position = this.getSlotPositionForDirection(gridSpace, direction);
|
||||
TileEntity inv = world.getTileEntity(pos.add(position.xCoord, position.yCoord, position.zCoord));
|
||||
if(inv instanceof IInventory)
|
||||
{
|
||||
if(((IInventory) inv).getSizeInventory() <= slotDesignation || !((IInventory) inv).isItemValidForSlot(slotDesignation, ((IInventory) inv).getStackInSlot(slotDesignation)))
|
||||
|
@ -133,10 +133,10 @@ public class RitualEffectCrafting extends RitualEffect
|
|||
|
||||
List<IInventory> invList = new ArrayList();
|
||||
|
||||
TileEntity northEntity = world.getTileEntity(x, y-1, z - 2);
|
||||
TileEntity southEntity = world.getTileEntity(x, y-1, z + 2);
|
||||
TileEntity eastEntity = world.getTileEntity(x + 2, y-1, z);
|
||||
TileEntity westEntity = world.getTileEntity(x - 2, y-1, z);
|
||||
TileEntity northEntity = world.getTileEntity(pos.add(0, -1, -2));
|
||||
TileEntity southEntity = world.getTileEntity(pos.add(0, -1, 2));
|
||||
TileEntity eastEntity = world.getTileEntity(pos.add(2, -1, 0));
|
||||
TileEntity westEntity = world.getTileEntity(pos.add(-2, -1, 0));
|
||||
|
||||
switch(direction)
|
||||
{
|
||||
|
@ -239,7 +239,7 @@ public class RitualEffectCrafting extends RitualEffect
|
|||
|
||||
if (outputInv != null)
|
||||
{
|
||||
if(!(!limitToSingleStack ? SpellHelper.canInsertStackFullyIntoInventory(returnStack, outputInv, ForgeDirection.DOWN) : SpellHelper.canInsertStackFullyIntoInventory(returnStack, outputInv, ForgeDirection.DOWN, true, returnStack.getMaxStackSize())))
|
||||
if(!(!limitToSingleStack ? SpellHelper.canInsertStackFullyIntoInventory(returnStack, outputInv, EnumFacing.DOWN) : SpellHelper.canInsertStackFullyIntoInventory(returnStack, outputInv, EnumFacing.DOWN, true, returnStack.getMaxStackSize())))
|
||||
{
|
||||
tag.setBoolean("didLastCraftFail", true);
|
||||
return;
|
||||
|
@ -331,7 +331,7 @@ public class RitualEffectCrafting extends RitualEffect
|
|||
|
||||
/* The recipe is valid and the items have been found */
|
||||
|
||||
SpellHelper.insertStackIntoInventory(CraftingManager.getInstance().findMatchingRecipe(inventory, world), outputInv, ForgeDirection.DOWN);
|
||||
SpellHelper.insertStackIntoInventory(CraftingManager.getInstance().findMatchingRecipe(inventory, world), outputInv, EnumFacing.DOWN);
|
||||
|
||||
for(Entry<Integer, Map<Integer, Integer>> entry1 : syphonMap.entrySet())
|
||||
{
|
||||
|
@ -366,10 +366,10 @@ public class RitualEffectCrafting extends RitualEffect
|
|||
this.canDrainReagent(ritualStone, ReagentRegistry.potentiaReagent, potentiaDrain, true);
|
||||
}
|
||||
|
||||
world.markBlockForUpdate(x, y-1, z + 2);
|
||||
world.markBlockForUpdate(x, y-1, z - 2);
|
||||
world.markBlockForUpdate(x + 2, y-1, z);
|
||||
world.markBlockForUpdate(x - 2, y-1, z);
|
||||
world.markBlockForUpdate(pos.add(0, 1, 2));
|
||||
world.markBlockForUpdate(pos.add(0, 1, -2));
|
||||
world.markBlockForUpdate(pos.add(2, 1, 0));
|
||||
world.markBlockForUpdate(pos.add(-2, 1, 0));
|
||||
|
||||
// long endTime = System.nanoTime();
|
||||
//
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
|
@ -12,8 +13,8 @@ import net.minecraft.item.ItemBlock;
|
|||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import WayofTime.alchemicalWizardry.ModBlocks;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
|
@ -44,7 +45,7 @@ public class RitualEffectCrushing extends RitualEffect
|
|||
return;
|
||||
}
|
||||
|
||||
TileEntity tile = world.getTileEntity(x, y + 1, z);
|
||||
TileEntity tile = world.getTileEntity(pos.offsetUp());
|
||||
IInventory tileEntity;
|
||||
|
||||
if (tile instanceof IInventory)
|
||||
|
@ -107,30 +108,32 @@ public class RitualEffectCrushing extends RitualEffect
|
|||
{
|
||||
for (int k = -1; k <= 1; k++)
|
||||
{
|
||||
Block block = world.getBlock(x + i, y + j, z + k);
|
||||
int meta = world.getBlockMetadata(x + i, y + j, z + k);
|
||||
if(block.getBlockHardness(world, x + i, y + j, z + k) == -1)
|
||||
BlockPos newPos = pos.add(i, j, k);
|
||||
IBlockState state = world.getBlockState(newPos);
|
||||
Block block = state.getBlock();
|
||||
|
||||
if(block.getBlockHardness(world, newPos) == -1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (block != null && !world.isAirBlock(x + i, y + j, z + k))
|
||||
if (block != null && !world.isAirBlock(newPos))
|
||||
{
|
||||
if ((block.equals(ModBlocks.ritualStone) || block.equals(ModBlocks.blockMasterStone)) || SpellHelper.isBlockFluid(block))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isSilkTouch && block.canSilkHarvest(world, null, x + i, y + j, z + k, meta))
|
||||
if (isSilkTouch && block.canSilkHarvest(world, newPos, state, null))
|
||||
{
|
||||
ItemStack item = new ItemStack(block, 1, meta);
|
||||
ItemStack item = new ItemStack(block, 1, block.getMetaFromState(state));
|
||||
ItemStack copyStack = item.copyItemStack(item);
|
||||
|
||||
SpellHelper.insertStackIntoInventory(copyStack, tileEntity, ForgeDirection.DOWN);
|
||||
SpellHelper.insertStackIntoInventory(copyStack, tileEntity, EnumFacing.DOWN);
|
||||
|
||||
if (copyStack.stackSize > 0)
|
||||
{
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack));
|
||||
world.spawnEntityInWorld(new EntityItem(world, pos.getX() + 0.5, pos.getY() + 2, pos.getZ() + 0.5, copyStack));
|
||||
}
|
||||
|
||||
if (hasCrystallos)
|
||||
|
@ -139,7 +142,7 @@ public class RitualEffectCrushing extends RitualEffect
|
|||
}
|
||||
} else
|
||||
{
|
||||
ArrayList<ItemStack> itemDropList = block.getDrops(world, x + i, y + j, z + k, meta, fortuneLevel);
|
||||
List<ItemStack> itemDropList = block.getDrops(world, newPos, state, fortuneLevel);
|
||||
|
||||
if (itemDropList != null)
|
||||
{
|
||||
|
@ -156,10 +159,10 @@ public class RitualEffectCrushing extends RitualEffect
|
|||
this.canDrainReagent(ritualStone, ReagentRegistry.incendiumReagent, incendiumDrain, true);
|
||||
}
|
||||
|
||||
SpellHelper.insertStackIntoInventory(copyStack, tileEntity, ForgeDirection.DOWN);
|
||||
SpellHelper.insertStackIntoInventory(copyStack, tileEntity, EnumFacing.DOWN);
|
||||
if (copyStack.stackSize > 0)
|
||||
{
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack));
|
||||
world.spawnEntityInWorld(new EntityItem(world, pos.getX() + 0.5, pos.getY() + 2, pos.getZ() + 0.5, copyStack));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -177,8 +180,8 @@ public class RitualEffectCrushing extends RitualEffect
|
|||
}
|
||||
}
|
||||
}
|
||||
world.setBlockToAir(x + i, y + j, z + k);
|
||||
world.playSoundEffect(x + i, y + j, z + k, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
world.setBlockToAir(newPos);
|
||||
world.playSoundEffect(newPos.getX(), newPos.getY(), newPos.getZ(), "mob.endermen.portal", 1.0F, 1.0F);
|
||||
|
||||
SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
|
||||
|
||||
|
@ -197,7 +200,7 @@ public class RitualEffectCrushing extends RitualEffect
|
|||
Item item = stack.getItem();
|
||||
if (item instanceof ItemBlock)
|
||||
{
|
||||
Block block = ((ItemBlock) item).field_150939_a;
|
||||
Block block = ((ItemBlock) item).getBlock();
|
||||
|
||||
if (block == Blocks.cobblestone || block == Blocks.stone)
|
||||
{
|
||||
|
@ -221,7 +224,7 @@ public class RitualEffectCrushing extends RitualEffect
|
|||
Item item = stack.getItem();
|
||||
if (item instanceof ItemBlock)
|
||||
{
|
||||
Block block = ((ItemBlock) item).field_150939_a;
|
||||
Block block = ((ItemBlock) item).getBlock();
|
||||
|
||||
if (hasIncendium)
|
||||
{
|
||||
|
@ -240,65 +243,6 @@ public class RitualEffectCrushing extends RitualEffect
|
|||
return stack;
|
||||
}
|
||||
|
||||
public boolean isSilkTouch(World world, int x, int y, int z)
|
||||
{
|
||||
int index = 0;
|
||||
for (int i = -2; i <= 2; i++)
|
||||
{
|
||||
for (int j = -2; j <= 2; j++)
|
||||
{
|
||||
int index1 = Math.abs(i);
|
||||
int index2 = Math.abs(j);
|
||||
|
||||
if ((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2))
|
||||
{
|
||||
Block block = world.getBlock(x + i, y + 1, z + j);
|
||||
if (block == Blocks.gold_block)
|
||||
{
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return index >= 12;
|
||||
}
|
||||
|
||||
public int getFortuneLevel(World world, int x, int y, int z)
|
||||
{
|
||||
int index = 0;
|
||||
for (int i = -2; i <= 2; i++)
|
||||
{
|
||||
for (int j = -2; j <= 2; j++)
|
||||
{
|
||||
int index1 = Math.abs(i);
|
||||
int index2 = Math.abs(j);
|
||||
|
||||
if ((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2))
|
||||
{
|
||||
Block block = world.getBlock(x + i, y + 1, z + j);
|
||||
if (block == Blocks.emerald_block || block == Blocks.diamond_block)
|
||||
{
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (index >= 12)
|
||||
{
|
||||
return 3;
|
||||
} else if (index >= 8)
|
||||
{
|
||||
return 2;
|
||||
} else if (index >= 4)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCostPerRefresh()
|
||||
{
|
||||
|
|
|
@ -67,7 +67,7 @@ public class RitualEffectDemonPortal extends RitualEffect
|
|||
{
|
||||
if(rand.nextInt(10) == 0)
|
||||
{
|
||||
this.createRandomLightning(world, x, y, z);
|
||||
this.createRandomLightning(world, pos.getX(), pos.getY(), pos.getZ());
|
||||
}
|
||||
reagentAmount += drainAmount;
|
||||
|
||||
|
@ -81,9 +81,9 @@ public class RitualEffectDemonPortal extends RitualEffect
|
|||
|
||||
if(reagentsFulfilled && checkCreatePortal(ritualStone))
|
||||
{
|
||||
world.setBlock(x, y+1, z, ModBlocks.blockDemonPortal);
|
||||
world.setBlockState(pos.offsetUp(), ModBlocks.blockDemonPortal.getDefaultState());
|
||||
|
||||
TEDemonPortal portal = (TEDemonPortal) world.getTileEntity(x, y + 1, z);
|
||||
TEDemonPortal portal = (TEDemonPortal) world.getTileEntity(pos.offsetUp());
|
||||
portal.start();
|
||||
|
||||
ritualStone.setActive(false);
|
||||
|
@ -95,11 +95,12 @@ public class RitualEffectDemonPortal extends RitualEffect
|
|||
|
||||
public boolean checkCreatePortal(IMasterRitualStone ritualStone)
|
||||
{
|
||||
TileEntity entity = ritualStone.getWorld().getTileEntity(ritualStone.getXCoord(), ritualStone.getYCoord() + 1, ritualStone.getZCoord());
|
||||
BlockPos pos = ritualStone.getPosition();
|
||||
TileEntity entity = ritualStone.getWorldObj().getTileEntity(pos.offsetUp());
|
||||
if(entity instanceof IBloodAltar)
|
||||
{
|
||||
IBloodAltar altar = (IBloodAltar)entity;
|
||||
if(altar.hasDemonBlood() && ritualStone.getWorld().isAirBlock(ritualStone.getXCoord(), ritualStone.getYCoord() + 2, ritualStone.getZCoord()))
|
||||
if(altar.hasDemonBlood() && ritualStone.getWorldObj().isAirBlock(pos.offsetUp(2)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -131,13 +132,11 @@ public class RitualEffectDemonPortal extends RitualEffect
|
|||
|
||||
public boolean checkJars(IMasterRitualStone ritualStone)
|
||||
{
|
||||
int x = ritualStone.getXCoord();
|
||||
int y = ritualStone.getYCoord();
|
||||
int z = ritualStone.getZCoord();
|
||||
BlockPos position = ritualStone.getPosition();
|
||||
|
||||
for(Int3 pos : jarLocations)
|
||||
{
|
||||
if(!(ritualStone.getWorld().getTileEntity(x + pos.xCoord, y + pos.yCoord, z + pos.zCoord) instanceof TEBellJar))
|
||||
if(!(ritualStone.getWorldObj().getTileEntity(position.add(pos.xCoord, pos.yCoord, pos.zCoord)) instanceof TEBellJar))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package WayofTime.alchemicalWizardry.common.rituals;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
|
@ -13,6 +13,7 @@ import net.minecraft.potion.Potion;
|
|||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.world.World;
|
||||
import WayofTime.alchemicalWizardry.api.Int3;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
|
@ -32,7 +33,7 @@ public class RitualEffectEllipsoid extends RitualEffect
|
|||
World world = ritualStone.getWorldObj();
|
||||
BlockPos pos = ritualStone.getPosition();
|
||||
|
||||
TileEntity tile = world.getTileEntity(x, y + 1, z);
|
||||
TileEntity tile = world.getTileEntity(pos.offsetUp());
|
||||
|
||||
if (!(tile instanceof IInventory) || ((IInventory) tile).getSizeInventory() < 3)
|
||||
{
|
||||
|
@ -61,7 +62,7 @@ public class RitualEffectEllipsoid extends RitualEffect
|
|||
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
|
||||
} else
|
||||
{
|
||||
tile = world.getTileEntity(x, y-1, z);
|
||||
tile = world.getTileEntity(pos.offsetDown());
|
||||
if(!(tile instanceof IInventory))
|
||||
{
|
||||
return;
|
||||
|
@ -114,7 +115,7 @@ public class RitualEffectEllipsoid extends RitualEffect
|
|||
|
||||
while(j <= ySize)
|
||||
{
|
||||
if(y + j < 0)
|
||||
if(pos.getY() + j < 0)
|
||||
{
|
||||
j++;
|
||||
continue;
|
||||
|
@ -143,36 +144,29 @@ public class RitualEffectEllipsoid extends RitualEffect
|
|||
|
||||
count--;
|
||||
|
||||
Block block = world.getBlock(x + i, y + j, z + k);
|
||||
|
||||
if (!block.isAir(world, x + i, y + j, z + k))
|
||||
BlockPos newPos = pos.add(i, j, k);
|
||||
|
||||
if (!world.isAirBlock(newPos))
|
||||
{
|
||||
k++;
|
||||
continue;
|
||||
} else
|
||||
{
|
||||
//This is pulled from the ItemBlock's placing calls
|
||||
int i1 = placedBlock.getMetadata(stack.getItemDamage());
|
||||
int j1 = placedBlock.field_150939_a.onBlockPlaced(world, x + i, y + j, z + k, 0, 0, 0, 0, i1);
|
||||
int newState = placedBlock.getMetadata(stack.getMetadata());
|
||||
IBlockState iblockstate1 = placedBlock.block.onBlockPlaced(world, newPos, EnumFacing.UP, 0, 0, 0, newState, null);
|
||||
|
||||
if (placedBlock.placeBlockAt(stack, null, world, x + i, y + j, z + k, 0, 0, 0, 0, j1))
|
||||
if (placedBlock.placeBlockAt(stack, null, world, pos, EnumFacing.UP, 0, 0, 0, iblockstate1))
|
||||
{
|
||||
world.playSoundEffect((double)(x + i + 0.5F), (double)(y + j + 0.5F), (double)(z + k + 0.5F), placedBlock.field_150939_a.stepSound.func_150496_b(), (placedBlock.field_150939_a.stepSound.getVolume() + 1.0F) / 2.0F, placedBlock.field_150939_a.stepSound.getPitch() * 0.8F);
|
||||
world.playSoundEffect((double)((float)pos.getX() + 0.5F), (double)((float)pos.getY() + 0.5F), (double)((float)pos.getZ() + 0.5F), placedBlock.block.stepSound.getPlaceSound(), (placedBlock.block.stepSound.getVolume() + 1.0F) / 2.0F, placedBlock.block.stepSound.getFrequency() * 0.8F);
|
||||
--stack.stackSize;
|
||||
if(stack.stackSize <= 0)
|
||||
{
|
||||
inv.setInventorySlotContents(slot, null);
|
||||
}
|
||||
|
||||
this.setLastPosition(ritualStone.getCustomRitualTag(), new Int3(i, j, k));
|
||||
|
||||
incrementNext = true;
|
||||
SoulNetworkHandler.syphonFromNetwork(owner, cost);
|
||||
|
||||
}
|
||||
|
||||
// world.setBlock(x + i, y + j, z + k, Blocks.stone);
|
||||
|
||||
this.setLastPosition(ritualStone.getCustomRitualTag(), new Int3(i, j, k));
|
||||
|
||||
incrementNext = true;
|
||||
SoulNetworkHandler.syphonFromNetwork(owner, cost);
|
||||
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,21 +1,23 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.world.World;
|
||||
import WayofTime.alchemicalWizardry.ModBlocks;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RitualEffectEvaporation extends RitualEffect
|
||||
{
|
||||
|
@ -40,7 +42,8 @@ public class RitualEffectEvaporation extends RitualEffect
|
|||
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
|
||||
} else
|
||||
{
|
||||
Block block1 = world.getBlock(x, y - 1, z);
|
||||
IBlockState state1 = world.getBlockState(pos.offsetDown());
|
||||
Block block1 = state1.getBlock();
|
||||
int range = this.getRadiusForModifierBlock(block1);
|
||||
|
||||
boolean[][][] boolList = new boolean[range * 2 + 1][range * 2 + 1][range * 2 + 1];
|
||||
|
@ -71,65 +74,26 @@ public class RitualEffectEvaporation extends RitualEffect
|
|||
{
|
||||
if (boolList[i][j][k])
|
||||
{
|
||||
if (i - 1 >= 0 && !boolList[i - 1][j][k])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i - 1, y - range + j, z - range + k);
|
||||
if (world.isAirBlock(x - range + i - 1, y - range + j, z - range + k) || block == ModBlocks.blockSpectralContainer)
|
||||
{
|
||||
boolList[i - 1][j][k] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (j - 1 >= 0 && !boolList[i][j - 1][k])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i, y - range + j - 1, z - range + k);
|
||||
if (world.isAirBlock(x - range + i, y - range + j - 1, z - range + k) || block == ModBlocks.blockSpectralContainer)
|
||||
{
|
||||
boolList[i][j - 1][k] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (k - 1 >= 0 && !boolList[i][j][k - 1])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i, y - range + j, z - range + k - 1);
|
||||
if (world.isAirBlock(x - range + i, y - range + j, z - range + k - 1) || block == ModBlocks.blockSpectralContainer)
|
||||
{
|
||||
boolList[i][j][k - 1] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (i + 1 <= 2 * range && !boolList[i + 1][j][k])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i + 1, y - range + j, z - range + k);
|
||||
if (world.isAirBlock(x - range + i + 1, y - range + j, z - range + k) || block == ModBlocks.blockSpectralContainer)
|
||||
{
|
||||
boolList[i + 1][j][k] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (j + 1 <= 2 * range && !boolList[i][j + 1][k])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i, y - range + j + 1, z - range + k);
|
||||
if (world.isAirBlock(x - range + i, y - range + j + 1, z - range + k) || block == ModBlocks.blockSpectralContainer)
|
||||
{
|
||||
boolList[i][j + 1][k] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (k + 1 <= 2 * range && !boolList[i][j][k + 1])
|
||||
{
|
||||
Block block = world.getBlock(x - range + i, y - range + j, z - range + k + 1);
|
||||
if (world.isAirBlock(x - range + i, y - range + j, z - range + k + 1) || block == ModBlocks.blockSpectralContainer)
|
||||
{
|
||||
boolList[i][j][k + 1] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
BlockPos position = pos.add(i - range, j - range, k - range);
|
||||
|
||||
for(EnumFacing face : EnumFacing.VALUES)
|
||||
{
|
||||
int iP = i + face.getFrontOffsetX();
|
||||
int jP = j + face.getFrontOffsetY();
|
||||
int kP = k + face.getFrontOffsetZ();
|
||||
|
||||
if(iP >= 0 && iP <= 2 * range && jP >= 0 && jP <= 2 * range && kP >= 0 && kP <= 2 * range && !boolList[iP][jP][kP])
|
||||
{
|
||||
BlockPos newPos = position.add(face.getDirectionVec());
|
||||
IBlockState state = world.getBlockState(newPos);
|
||||
Block block = state.getBlock();
|
||||
if (world.isAirBlock(newPos) || block == ModBlocks.blockSpectralContainer)
|
||||
{
|
||||
boolList[iP][jP][kP] = true;
|
||||
isReady = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -147,11 +111,13 @@ public class RitualEffectEvaporation extends RitualEffect
|
|||
continue;
|
||||
}
|
||||
|
||||
Block block = world.getBlock(x + i - range, y + j - range, z + k - range);
|
||||
BlockPos newPos = pos.add(i - range, j - range, k - range);
|
||||
IBlockState state = world.getBlockState(newPos);
|
||||
Block block = state.getBlock();
|
||||
|
||||
if (block == ModBlocks.blockSpectralContainer)
|
||||
{
|
||||
world.setBlockToAir(x + i - range, y + j - range, z + k - range);
|
||||
world.setBlockToAir(newPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,24 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
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.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumParticleTypes;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.living.EnderTeleportEvent;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
|
@ -9,23 +28,6 @@ import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
|||
import WayofTime.alchemicalWizardry.common.items.EnergyItems;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.living.EnderTeleportEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class RitualEffectExpulsion extends RitualEffect
|
||||
{
|
||||
|
@ -52,10 +54,10 @@ public class RitualEffectExpulsion extends RitualEffect
|
|||
|
||||
int teleportDistance = hasVirtus ? 300 : 100;
|
||||
int range = hasPotentia ? 50 : 25;
|
||||
List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, x + 0.5, y + 0.5, z + 0.5, range, range);
|
||||
List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, range, range);
|
||||
boolean flag = false;
|
||||
|
||||
TileEntity tile = world.getTileEntity(x, y + 1, z);
|
||||
TileEntity tile = world.getTileEntity(pos.offsetUp());
|
||||
IInventory inventoryTile = null;
|
||||
if (tile instanceof IInventory)
|
||||
{
|
||||
|
@ -116,7 +118,7 @@ public class RitualEffectExpulsion extends RitualEffect
|
|||
|
||||
int teleportDistance = hasVirtus ? 300 : 100;
|
||||
int range = hasPotentia ? 50 : 25;
|
||||
List<EntityLivingBase> livingList = SpellHelper.getLivingEntitiesInRange(world, x + 0.5, y + 0.5, z + 0.5, range, range);
|
||||
List<EntityLivingBase> livingList = SpellHelper.getLivingEntitiesInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, range, range);
|
||||
boolean flag = false;
|
||||
|
||||
for (EntityLivingBase livingEntity : livingList)
|
||||
|
@ -195,18 +197,22 @@ public class RitualEffectExpulsion extends RitualEffect
|
|||
double d5 = lastZ;
|
||||
SpellTeleport.moveEntityViaTeleport(entityLiving, event.targetX, event.targetY, event.targetZ);
|
||||
boolean flag = false;
|
||||
|
||||
|
||||
int i = MathHelper.floor_double(entityLiving.posX);
|
||||
int j = MathHelper.floor_double(entityLiving.posY);
|
||||
int k = MathHelper.floor_double(entityLiving.posZ);
|
||||
int l;
|
||||
|
||||
if (entityLiving.worldObj.blockExists(i, j, k))
|
||||
// if (entityLiving.worldObj.blockExists(i, j, k))
|
||||
{
|
||||
boolean flag1 = false;
|
||||
|
||||
while (!flag1 && j > 0)
|
||||
{
|
||||
Block block = entityLiving.worldObj.getBlock(i, j - 1, k);
|
||||
BlockPos newPos = new BlockPos(i, j - 1, k);
|
||||
IBlockState state = entityLiving.worldObj.getBlockState(newPos);
|
||||
Block block = state.getBlock();
|
||||
|
||||
if (block != null && block.getMaterial().blocksMovement())
|
||||
{
|
||||
|
@ -222,7 +228,7 @@ public class RitualEffectExpulsion extends RitualEffect
|
|||
{
|
||||
SpellTeleport.moveEntityViaTeleport(entityLiving, entityLiving.posX, entityLiving.posY, entityLiving.posZ);
|
||||
|
||||
if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.boundingBox).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.boundingBox))
|
||||
if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.getBoundingBox()).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.getBoundingBox()))
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
|
@ -246,7 +252,7 @@ public class RitualEffectExpulsion extends RitualEffect
|
|||
double d7 = d3 + (entityLiving.posX - d3) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D;
|
||||
double d8 = d4 + (entityLiving.posY - d4) * d6 + entityLiving.worldObj.rand.nextDouble() * (double) entityLiving.height;
|
||||
double d9 = d5 + (entityLiving.posZ - d5) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D;
|
||||
entityLiving.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2);
|
||||
entityLiving.worldObj.spawnParticle(EnumParticleTypes.PORTAL, d7, d8, d9, (double) f, (double) f1, (double) f2);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.effect.EntityLightningBolt;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
|
||||
public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fall damage in the area of effect
|
||||
{
|
||||
|
@ -33,6 +33,10 @@ public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fal
|
|||
|
||||
if (ritualStone.getCooldown() > 0)
|
||||
{
|
||||
int x = pos.getX();
|
||||
int y = pos.getY();
|
||||
int z = pos.getZ();
|
||||
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z + 4));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z - 4));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 5, z - 4));
|
||||
|
@ -46,14 +50,11 @@ public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fal
|
|||
|
||||
int range = this.getHorizontalRangeForReagent(hasTerrae, hasOrbisTerrae);
|
||||
int verticalRange = hasAether ? 60 : 30;
|
||||
List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range));
|
||||
List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(pos, pos.add(1, 1, 1)).expand(range, verticalRange, range));
|
||||
int entityCount = 0;
|
||||
boolean flag = false;
|
||||
|
||||
for (EntityLivingBase entity : entities)
|
||||
{
|
||||
entityCount++;
|
||||
}
|
||||
entityCount += entities.size();
|
||||
|
||||
if (currentEssence < this.getCostPerRefresh() * entityCount)
|
||||
{
|
||||
|
|
|
@ -50,9 +50,10 @@ public class RitualEffectFeatheredKnife extends RitualEffect
|
|||
{
|
||||
for (int k = -10; k <= 10; k++)
|
||||
{
|
||||
if (world.getTileEntity(x + i, y + k, z + j) instanceof IBloodAltar)
|
||||
BlockPos newPos = pos.add(i, k, j);
|
||||
if (world.getTileEntity(newPos) instanceof IBloodAltar)
|
||||
{
|
||||
tileAltar = (IBloodAltar) world.getTileEntity(x + i, y + k, z + j);
|
||||
tileAltar = (IBloodAltar) world.getTileEntity(newPos);
|
||||
testFlag = true;
|
||||
}
|
||||
}
|
||||
|
@ -68,10 +69,9 @@ public class RitualEffectFeatheredKnife extends RitualEffect
|
|||
|
||||
double range = hasReductus ? 8 : 15;
|
||||
double vertRange = hasReductus ? 8 : 20;
|
||||
List<EntityPlayer> list = SpellHelper.getPlayersInRange(world, x + 0.5, y + 0.5, z + 0.5, range, vertRange);
|
||||
List<EntityPlayer> list = SpellHelper.getPlayersInRange(world, pos.getX(), pos.getY(), pos.getZ(), range, vertRange);
|
||||
|
||||
int entityCount = 0;
|
||||
boolean flag = false;
|
||||
|
||||
if (currentEssence < this.getCostPerRefresh() * list.size())
|
||||
{
|
||||
|
|
|
@ -32,10 +32,10 @@ public class RitualEffectFlight extends RitualEffect
|
|||
BlockPos pos = ritualStone.getPosition();
|
||||
|
||||
int range = 20;
|
||||
int verticalRange = 30;
|
||||
AxisAlignedBB axis = new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range);
|
||||
axis.maxY = 256;
|
||||
axis.minY = 0;
|
||||
int verticalRange = 70;
|
||||
AxisAlignedBB axis = new AxisAlignedBB(pos, pos.add(1, 1, 1)).expand(range, verticalRange, range);
|
||||
// axis.maxY = 256;
|
||||
// axis.minY = 0;
|
||||
List<EntityPlayer> entities = world.getEntitiesWithinAABB(EntityPlayer.class, axis);
|
||||
int entityCount = 0;
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ public class RitualEffectFullStomach extends RitualEffect
|
|||
double horizRange = 16;
|
||||
double vertRange = 16;
|
||||
|
||||
List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, x + 0.5, y + 0.5, z + 0.5, horizRange, vertRange);
|
||||
List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, horizRange, vertRange);
|
||||
|
||||
if (playerList == null)
|
||||
{
|
||||
|
@ -50,14 +50,14 @@ public class RitualEffectFullStomach extends RitualEffect
|
|||
SoulNetworkHandler.causeNauseaToPlayer(owner);
|
||||
} else
|
||||
{
|
||||
TileEntity tile = world.getTileEntity(x, y + 1, z);
|
||||
TileEntity tile = world.getTileEntity(pos.offsetUp());
|
||||
IInventory inventory = null;
|
||||
if (tile instanceof IInventory)
|
||||
{
|
||||
inventory = (IInventory) tile;
|
||||
} else
|
||||
{
|
||||
tile = world.getTileEntity(x, y - 1, z);
|
||||
tile = world.getTileEntity(pos.offsetDown());
|
||||
if (tile instanceof IInventory)
|
||||
{
|
||||
inventory = (IInventory) tile;
|
||||
|
@ -81,8 +81,8 @@ public class RitualEffectFullStomach extends RitualEffect
|
|||
{
|
||||
ItemFood foodItem = (ItemFood) stack.getItem();
|
||||
|
||||
int regularHeal = foodItem.func_150905_g(stack);
|
||||
float saturatedHeal = foodItem.func_150906_h(stack) * regularHeal * 2.0f;
|
||||
int regularHeal = foodItem.getHealAmount(stack);
|
||||
float saturatedHeal = foodItem.getSaturationModifier(stack) * regularHeal * 2.0f;
|
||||
|
||||
if (saturatedHeal + satLevel <= 20)
|
||||
{
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.IGrowable;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.IPlantable;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.IPlantable;
|
||||
import net.minecraft.block.IGrowable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class RitualEffectGrowth extends RitualEffect
|
||||
{
|
||||
|
@ -55,7 +56,8 @@ public class RitualEffectGrowth extends RitualEffect
|
|||
{
|
||||
if (this.canDrainReagent(ritualStone, ReagentRegistry.aquasalusReagent, aquasalusDrain, false))
|
||||
{
|
||||
if (SpellHelper.hydrateSoil(world, x + i, y + 1, z + j))
|
||||
BlockPos newPos = pos.add(i, 1, j);
|
||||
if (SpellHelper.hydrateSoil(world, newPos))
|
||||
{
|
||||
this.canDrainReagent(ritualStone, ReagentRegistry.aquasalusReagent, aquasalusDrain, true);
|
||||
}
|
||||
|
@ -71,13 +73,15 @@ public class RitualEffectGrowth extends RitualEffect
|
|||
{
|
||||
for (int j = -range; j <= range; j++)
|
||||
{
|
||||
Block block = world.getBlock(x + i, y + 2, z + j);
|
||||
BlockPos newPos = pos.add(i, 2, j);
|
||||
IBlockState state = world.getBlockState(newPos);
|
||||
Block block = state.getBlock();
|
||||
|
||||
if (block instanceof IPlantable || block instanceof IGrowable)
|
||||
{
|
||||
{
|
||||
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.getDimensionId(), 3, x, y, z);
|
||||
block.updateTick(world, x + i, y + 2, z + j, world.rand);
|
||||
SpellHelper.sendIndexedParticleToAllAround(world, pos, 20, world.provider.getDimensionId(), 3, pos);
|
||||
block.updateTick(world, newPos, state, world.rand);
|
||||
flag++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,21 +1,22 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
|
||||
public class RitualEffectHarvest extends RitualEffect
|
||||
{
|
||||
|
@ -47,7 +48,8 @@ public class RitualEffectHarvest extends RitualEffect
|
|||
return;
|
||||
}
|
||||
|
||||
Block block = world.getBlock(x, y - 1, z);
|
||||
IBlockState state = world.getBlockState(pos.offsetDown());
|
||||
Block block = state.getBlock();
|
||||
int flag = 0;
|
||||
int range = this.getRadiusForModifierBlock(block);
|
||||
int vertRange = 4;
|
||||
|
@ -58,7 +60,7 @@ public class RitualEffectHarvest extends RitualEffect
|
|||
{
|
||||
for (int k = -range; k <= range; k++)
|
||||
{
|
||||
if (HarvestRegistry.harvestBlock(world, x + i, y + j, z + k) && flag < maxCount)
|
||||
if (HarvestRegistry.harvestBlock(world, pos.add(i, j, k)) && flag < maxCount)
|
||||
{
|
||||
flag++;
|
||||
}
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
package WayofTime.alchemicalWizardry.common.rituals;
|
||||
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
|
||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
|
||||
|
||||
public class RitualEffectHealing extends RitualEffect
|
||||
{
|
||||
|
@ -43,9 +43,8 @@ public class RitualEffectHealing extends RitualEffect
|
|||
int range = 15 * (hasPraesidium ? 3 : 1);
|
||||
int vertRange = 15 * (hasPraesidium ? 3 : 1);
|
||||
|
||||
List<EntityLivingBase> list = SpellHelper.getLivingEntitiesInRange(world, x + 0.5, y + 0.5, z + 0.5, range, vertRange);
|
||||
List<EntityLivingBase> list = SpellHelper.getLivingEntitiesInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, range, vertRange);
|
||||
int entityCount = 0;
|
||||
boolean flag = false;
|
||||
|
||||
for (EntityLivingBase livingEntity : list)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue