Cache the bound SoulNetwork for rituals

Avoids looking up the map data once or more each tick
This commit is contained in:
Nicholas Ignoffo 2017-02-12 17:00:18 -08:00
parent 59c20971ab
commit c13be9ebce
29 changed files with 93 additions and 164 deletions

View file

@ -2,6 +2,7 @@ package WayofTime.bloodmagic.api.ritual;
import java.util.List; import java.util.List;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
@ -18,6 +19,8 @@ public interface IMasterRitualStone
{ {
String getOwner(); String getOwner();
SoulNetwork getOwnerNetwork();
boolean activateRitual(ItemStack activationCrystal, EntityPlayer activator, Ritual ritual); boolean activateRitual(ItemStack activationCrystal, EntityPlayer activator, Ritual ritual);
void performRitual(World world, BlockPos pos); void performRitual(World world, BlockPos pos);

View file

@ -5,12 +5,10 @@ import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.altar.AltarComponent; import WayofTime.bloodmagic.api.altar.AltarComponent;
import WayofTime.bloodmagic.api.altar.EnumAltarComponent; import WayofTime.bloodmagic.api.altar.EnumAltarComponent;
import WayofTime.bloodmagic.api.altar.EnumAltarTier; import WayofTime.bloodmagic.api.altar.EnumAltarTier;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.block.BlockBloodRune; import WayofTime.bloodmagic.block.BlockBloodRune;
import WayofTime.bloodmagic.registry.ModBlocks; import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -47,15 +45,14 @@ public class RitualAltarBuilder extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
TileEntity tileEntity = world.getTileEntity(masterRitualStone.getBlockPos().up()); TileEntity tileEntity = world.getTileEntity(masterRitualStone.getBlockPos().up());
BlockPos altarPos = masterRitualStone.getBlockPos().up(2); BlockPos altarPos = masterRitualStone.getBlockPos().up(2);
int currentEssence = network.getCurrentEssence(); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -68,7 +65,7 @@ public class RitualAltarBuilder extends Ritual
{ {
world.setBlockState(altarPos, ModBlocks.ALTAR.getDefaultState()); world.setBlockState(altarPos, ModBlocks.ALTAR.getDefaultState());
lightning(world, altarPos); lightning(world, altarPos);
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
} }
if (altarComponentsIterator.hasNext()) if (altarComponentsIterator.hasNext())
@ -87,7 +84,7 @@ public class RitualAltarBuilder extends Ritual
{ {
world.setBlockState(currentPos, blockStack.getState(), 3); world.setBlockState(currentPos, blockStack.getState(), 3);
lightning(world, currentPos); lightning(world, currentPos);
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
} }
break; break;
} }
@ -98,7 +95,7 @@ public class RitualAltarBuilder extends Ritual
{ {
world.setBlockState(currentPos, blockStack.getState(), 3); world.setBlockState(currentPos, blockStack.getState(), 3);
lightning(world, currentPos); lightning(world, currentPos);
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
} }
break; break;
} }
@ -109,7 +106,7 @@ public class RitualAltarBuilder extends Ritual
{ {
world.setBlockState(currentPos, blockStack.getState(), 3); world.setBlockState(currentPos, blockStack.getState(), 3);
lightning(world, currentPos); lightning(world, currentPos);
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
} }
break; break;
} }

View file

@ -20,9 +20,7 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.registry.ModPotions; import WayofTime.bloodmagic.registry.ModPotions;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -54,12 +52,11 @@ public class RitualAnimalGrowth extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -195,7 +192,7 @@ public class RitualAnimalGrowth extends Ritual
WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.DESTRUCTIVE, destructiveDrain, true); WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.DESTRUCTIVE, destructiveDrain, true);
} }
network.syphon(totalGrowths * getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(totalGrowths * getRefreshCost());
} }
@Override @Override

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.item.ItemComponent; import WayofTime.bloodmagic.item.ItemComponent;
import WayofTime.bloodmagic.tile.TileAlchemyArray; import WayofTime.bloodmagic.tile.TileAlchemyArray;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -29,14 +27,13 @@ public class RitualCobblestone extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
TileEntity tileEntity = world.getTileEntity(masterRitualStone.getBlockPos().up()); TileEntity tileEntity = world.getTileEntity(masterRitualStone.getBlockPos().up());
Block block = Blocks.COBBLESTONE; Block block = Blocks.COBBLESTONE;
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -87,7 +84,7 @@ public class RitualCobblestone extends Ritual
} }
} }
network.syphon(getRefreshCost() * totalEffects); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
} }
@Override @Override

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -27,12 +25,11 @@ public class RitualContainment extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }

View file

@ -28,9 +28,7 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.registry.ModBlocks; import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -71,12 +69,11 @@ public class RitualCrushing extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -179,7 +176,7 @@ public class RitualCrushing extends Ritual
WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.CORROSIVE, willDrain, true); WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.CORROSIVE, willDrain, true);
corrosiveWill -= willDrain; corrosiveWill -= willDrain;
network.syphon(lpDrain); masterRitualStone.getOwnerNetwork().syphon(lpDrain);
currentEssence -= lpDrain; currentEssence -= lpDrain;
isBlockClaimed = true; isBlockClaimed = true;
@ -249,7 +246,7 @@ public class RitualCrushing extends Ritual
} }
world.destroyBlock(newPos, false); world.destroyBlock(newPos, false);
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
hasOperated = true; hasOperated = true;
if (consumeRawWill) if (consumeRawWill)

View file

@ -7,13 +7,11 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.AreaDescriptor;
import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.tile.TileDemonCrystal; import WayofTime.bloodmagic.tile.TileDemonCrystal;
public class RitualCrystalHarvest extends Ritual public class RitualCrystalHarvest extends Ritual
@ -32,13 +30,12 @@ public class RitualCrystalHarvest extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
BlockPos pos = masterRitualStone.getBlockPos(); BlockPos pos = masterRitualStone.getBlockPos();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -68,7 +65,7 @@ public class RitualCrystalHarvest extends Ritual
} }
} }
network.syphon(getRefreshCost() * totalEffects); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
} }
@Override @Override

View file

@ -24,8 +24,6 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -46,12 +44,11 @@ public class RitualExpulsion extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -90,7 +87,7 @@ public class RitualExpulsion extends Ritual
continue; continue;
if (teleportRandomly(player, teleportDistance)) if (teleportRandomly(player, teleportDistance))
network.syphon(getRefreshCost() * 1000); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * 1000);
} }
allowedNames.clear(); allowedNames.clear();

View file

@ -22,9 +22,7 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.api.util.helper.PlayerSacrificeHelper; import WayofTime.bloodmagic.api.util.helper.PlayerSacrificeHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.item.armour.ItemLivingArmour; import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
@ -62,12 +60,11 @@ public class RitualFeatheredKnife extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -195,7 +192,7 @@ public class RitualFeatheredKnife extends Ritual
} }
} }
network.syphon(getRefreshCost() * totalEffects); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
if (totalEffects > 0 && consumeRawWill) if (totalEffects > 0 && consumeRawWill)
{ {
WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.DEFAULT, rawWillDrain, true); WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.DEFAULT, rawWillDrain, true);

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
@ -44,8 +42,7 @@ public class RitualFelling extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
BlockPos masterPos = masterRitualStone.getBlockPos(); BlockPos masterPos = masterRitualStone.getBlockPos();
AreaDescriptor chestRange = getBlockRange(CHEST_RANGE); AreaDescriptor chestRange = getBlockRange(CHEST_RANGE);
@ -53,7 +50,7 @@ public class RitualFelling extends Ritual
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -74,7 +71,7 @@ public class RitualFelling extends Ritual
if (blockPosIterator.hasNext() && tileInventory != null && tileInventory instanceof IInventory) if (blockPosIterator.hasNext() && tileInventory != null && tileInventory instanceof IInventory)
{ {
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
currentPos = blockPosIterator.next(); currentPos = blockPosIterator.next();
placeInInventory(world.getBlockState(currentPos), world, currentPos, chestRange.getContainedPositions(masterPos).get(0)); placeInInventory(world.getBlockState(currentPos), world, currentPos, chestRange.getContainedPositions(masterPos).get(0));
world.setBlockToAir(currentPos); world.setBlockToAir(currentPos);

View file

@ -19,8 +19,6 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.tile.TileDemonCrystal; import WayofTime.bloodmagic.tile.TileDemonCrystal;
public class RitualForsakenSoul extends Ritual public class RitualForsakenSoul extends Ritual
@ -84,13 +82,12 @@ public class RitualForsakenSoul extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
BlockPos pos = masterRitualStone.getBlockPos(); BlockPos pos = masterRitualStone.getBlockPos();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -161,7 +158,7 @@ public class RitualForsakenSoul extends Ritual
} }
} }
network.syphon(getRefreshCost() * totalEffects); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
} }
/** /**

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemFood; import net.minecraft.item.ItemFood;
@ -36,8 +34,7 @@ public class RitualFullStomach extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
BlockPos pos = masterRitualStone.getBlockPos(); BlockPos pos = masterRitualStone.getBlockPos();
@ -91,13 +88,12 @@ public class RitualFullStomach extends Ritual
if (totalEffects >= maxEffects) if (totalEffects >= maxEffects)
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
break; break;
} }
} }
network.syphon(getRefreshCost() * totalEffects); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
} }
@Override @Override

View file

@ -25,10 +25,8 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.DemonWillHolder; import WayofTime.bloodmagic.api.soul.DemonWillHolder;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.registry.ModPotions; import WayofTime.bloodmagic.registry.ModPotions;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -67,12 +65,11 @@ public class RitualGreenGrove extends Ritual
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
BlockPos pos = masterRitualStone.getBlockPos(); BlockPos pos = masterRitualStone.getBlockPos();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -234,7 +231,7 @@ public class RitualGreenGrove extends Ritual
} }
} }
network.syphon(totalGrowths * getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(totalGrowths * getRefreshCost());
} }
public double getPlantGrowthChanceForWill(double will) public double getPlantGrowthChanceForWill(double will)

View file

@ -3,10 +3,8 @@ package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.BlockStack;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.IHarvestHandler; import WayofTime.bloodmagic.api.iface.IHarvestHandler;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.registry.HarvestRegistry; import WayofTime.bloodmagic.api.registry.HarvestRegistry;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -37,13 +35,12 @@ public class RitualHarvest extends Ritual
@Override @Override
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
BlockPos pos = masterRitualStone.getBlockPos(); BlockPos pos = masterRitualStone.getBlockPos();
if (network.getCurrentEssence() < getRefreshCost()) if (masterRitualStone.getOwnerNetwork().getCurrentEssence() < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -61,7 +58,7 @@ public class RitualHarvest extends Ritual
} }
} }
network.syphon(getRefreshCost() * harvested); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * harvested);
} }
@Override @Override

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -27,12 +25,11 @@ public class RitualInterdiction extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -28,12 +26,11 @@ public class RitualJumping extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -66,7 +63,7 @@ public class RitualJumping extends Ritual
} }
} }
network.syphon(getRefreshCost() * totalEffects); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
} }
@Override @Override

View file

@ -26,10 +26,8 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.DemonWillHolder; import WayofTime.bloodmagic.api.soul.DemonWillHolder;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.registry.ModPotions; import WayofTime.bloodmagic.registry.ModPotions;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -70,13 +68,12 @@ public class RitualLava extends Ritual
{ {
timer++; timer++;
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
int lpDrain = 0; int lpDrain = 0;
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -253,7 +250,7 @@ public class RitualLava extends Ritual
WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.DEFAULT, rawDrained, true); WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.DEFAULT, rawDrained, true);
} }
network.syphon(lpDrain); masterRitualStone.getOwnerNetwork().syphon(lpDrain);
} }
@Override @Override

View file

@ -25,8 +25,6 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.item.armour.ItemLivingArmour; import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
import WayofTime.bloodmagic.livingArmour.LivingArmour; import WayofTime.bloodmagic.livingArmour.LivingArmour;
import WayofTime.bloodmagic.util.ChatUtil; import WayofTime.bloodmagic.util.ChatUtil;
@ -47,12 +45,11 @@ public class RitualLivingArmourDowngrade extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }

View file

@ -14,7 +14,6 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.BlockStack;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
@ -23,8 +22,6 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
public class RitualMagnetic extends Ritual public class RitualMagnetic extends Ritual
@ -90,12 +87,11 @@ public class RitualMagnetic extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -149,7 +145,7 @@ public class RitualMagnetic extends Ritual
if (isBlockOre(checkStack)) if (isBlockOre(checkStack))
{ {
Utils.swapLocations(world, newPos, world, replacement); Utils.swapLocations(world, newPos, world, replacement);
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
k++; k++;
this.lastPos = new BlockPos(i, j, k); this.lastPos = new BlockPos(i, j, k);
return; return;

View file

@ -13,9 +13,7 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.entity.projectile.EntityMeteor; import WayofTime.bloodmagic.entity.projectile.EntityMeteor;
import WayofTime.bloodmagic.meteor.MeteorRegistry; import WayofTime.bloodmagic.meteor.MeteorRegistry;
@ -36,8 +34,7 @@ public class RitualMeteor extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
BlockPos pos = masterRitualStone.getBlockPos(); BlockPos pos = masterRitualStone.getBlockPos();
@ -71,7 +68,7 @@ public class RitualMeteor extends Ritual
if (destructiveWill >= destructiveWillDrain && currentEssence >= 1000000000) if (destructiveWill >= destructiveWillDrain && currentEssence >= 1000000000)
{ {
network.syphon(1000000); masterRitualStone.getOwnerNetwork().syphon(1000000);
} else } else
{ {
masterRitualStone.setActive(false); masterRitualStone.setActive(false);

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
@ -35,16 +33,15 @@ public class RitualPlacer extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
BlockPos masterPos = masterRitualStone.getBlockPos(); BlockPos masterPos = masterRitualStone.getBlockPos();
AreaDescriptor chestRange = getBlockRange(CHEST_RANGE); AreaDescriptor chestRange = getBlockRange(CHEST_RANGE);
TileEntity tileEntity = world.getTileEntity(chestRange.getContainedPositions(masterPos).get(0)); TileEntity tileEntity = world.getTileEntity(chestRange.getContainedPositions(masterPos).get(0));
int currentEssence = network.getCurrentEssence(); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -76,7 +73,7 @@ public class RitualPlacer extends Ritual
world.setBlockState(blockPos, Block.getBlockFromItem(itemHandler.getStackInSlot(inv).getItem()).getStateFromMeta(itemHandler.getStackInSlot(inv).getItemDamage())); world.setBlockState(blockPos, Block.getBlockFromItem(itemHandler.getStackInSlot(inv).getItem()).getStateFromMeta(itemHandler.getStackInSlot(inv).getItemDamage()));
itemHandler.extractItem(inv, 1, false); itemHandler.extractItem(inv, 1, false);
tileEntity.markDirty(); tileEntity.markDirty();
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
} }
} }
} }
@ -103,7 +100,7 @@ public class RitualPlacer extends Ritual
world.setBlockState(blockPos, Block.getBlockFromItem(inventory.getStackInSlot(inv).getItem()).getStateFromMeta(inventory.getStackInSlot(inv).getItemDamage())); world.setBlockState(blockPos, Block.getBlockFromItem(inventory.getStackInSlot(inv).getItem()).getStateFromMeta(inventory.getStackInSlot(inv).getItemDamage()));
inventory.decrStackSize(inv, 1); inventory.decrStackSize(inv, 1);
inventory.markDirty(); inventory.markDirty();
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
break; break;
} }
} }

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import net.minecraft.block.BlockLiquid; import net.minecraft.block.BlockLiquid;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -40,13 +38,12 @@ public class RitualPump extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
TileEntity tileEntity = world.getTileEntity(masterRitualStone.getBlockPos().up()); TileEntity tileEntity = world.getTileEntity(masterRitualStone.getBlockPos().up());
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -79,7 +76,7 @@ public class RitualPump extends Ritual
if (blockPosIterator.hasNext()) if (blockPosIterator.hasNext())
{ {
network.syphon(getRefreshCost()); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
currentPos = blockPosIterator.next(); currentPos = blockPosIterator.next();
fluidHandler.fill(fluidHandler.drain(1000, false), true); fluidHandler.fill(fluidHandler.drain(1000, false), true);
world.setBlockState(currentPos, Blocks.STONE.getDefaultState()); world.setBlockState(currentPos, Blocks.STONE.getDefaultState());

View file

@ -18,9 +18,7 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -47,12 +45,11 @@ public class RitualRegeneration extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -165,7 +162,7 @@ public class RitualRegeneration extends Ritual
WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.CORROSIVE, corrosiveDrain, true); WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.CORROSIVE, corrosiveDrain, true);
} }
network.syphon(totalCost); masterRitualStone.getOwnerNetwork().syphon(totalCost);
} }
@Override @Override

View file

@ -16,9 +16,7 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType; import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler; import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -41,12 +39,11 @@ public class RitualSpeed extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }

View file

@ -7,13 +7,11 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.AreaDescriptor;
import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.tile.TileSpectralBlock; import WayofTime.bloodmagic.tile.TileSpectralBlock;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
@ -31,12 +29,11 @@ public class RitualSuppression extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -25,12 +23,11 @@ public class RitualWater extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -53,7 +50,7 @@ public class RitualWater extends Ritual
} }
} }
network.syphon(getRefreshCost() * totalEffects); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
} }
@Override @Override

View file

@ -3,9 +3,7 @@ package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.ConfigHandler; import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.api.BloodMagicAPI;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.tile.TileAltar; import WayofTime.bloodmagic.tile.TileAltar;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@ -41,12 +39,11 @@ public class RitualWellOfSuffering extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -122,7 +119,7 @@ public class RitualWellOfSuffering extends Ritual
} }
} }
network.syphon(getRefreshCost() * totalEffects); masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
} }
@Override @Override

View file

@ -15,8 +15,6 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent; import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.Utils; import WayofTime.bloodmagic.util.Utils;
public class RitualZephyr extends Ritual public class RitualZephyr extends Ritual
@ -38,8 +36,7 @@ public class RitualZephyr extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone) public void performRitual(IMasterRitualStone masterRitualStone)
{ {
World world = masterRitualStone.getWorldObj(); World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner()); int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
int currentEssence = network.getCurrentEssence();
BlockPos masterPos = masterRitualStone.getBlockPos(); BlockPos masterPos = masterRitualStone.getBlockPos();
AreaDescriptor chestRange = getBlockRange(CHEST_RANGE); AreaDescriptor chestRange = getBlockRange(CHEST_RANGE);
TileEntity tileInventory = world.getTileEntity(chestRange.getContainedPositions(masterPos).get(0)); TileEntity tileInventory = world.getTileEntity(chestRange.getContainedPositions(masterPos).get(0));
@ -47,7 +44,7 @@ public class RitualZephyr extends Ritual
{ {
if (currentEssence < getRefreshCost()) if (currentEssence < getRefreshCost())
{ {
network.causeNausea(); masterRitualStone.getOwnerNetwork().causeNausea();
return; return;
} }
@ -82,7 +79,7 @@ public class RitualZephyr extends Ritual
} }
} }
network.syphon(this.getRefreshCost() * Math.min(count, 100)); masterRitualStone.getOwnerNetwork().syphon(this.getRefreshCost() * Math.min(count, 100));
} }
} }

View file

@ -38,6 +38,7 @@ import com.google.common.base.Strings;
public class TileMasterRitualStone extends TileTicking implements IMasterRitualStone public class TileMasterRitualStone extends TileTicking implements IMasterRitualStone
{ {
private String owner; private String owner;
private SoulNetwork cachedNetwork;
private boolean active; private boolean active;
private boolean redstoned; private boolean redstoned;
private int activeTime; private int activeTime;
@ -84,6 +85,8 @@ public class TileMasterRitualStone extends TileTicking implements IMasterRitualS
public void deserialize(NBTTagCompound tag) public void deserialize(NBTTagCompound tag)
{ {
owner = tag.getString(Constants.NBT.OWNER_UUID); owner = tag.getString(Constants.NBT.OWNER_UUID);
if (!Strings.isNullOrEmpty(owner))
cachedNetwork = NetworkHelper.getSoulNetwork(owner);
currentRitual = RitualRegistry.getRitualForId(tag.getString(Constants.NBT.CURRENT_RITUAL)); currentRitual = RitualRegistry.getRitualForId(tag.getString(Constants.NBT.CURRENT_RITUAL));
if (currentRitual != null) if (currentRitual != null)
{ {
@ -140,7 +143,6 @@ public class TileMasterRitualStone extends TileTicking implements IMasterRitualS
activationCrystal = NBTHelper.checkNBT(activationCrystal); activationCrystal = NBTHelper.checkNBT(activationCrystal);
String crystalOwner = activationCrystal.getTagCompound().getString(Constants.NBT.OWNER_UUID); String crystalOwner = activationCrystal.getTagCompound().getString(Constants.NBT.OWNER_UUID);
// crystalOwner = PlayerHelper.getUUIDFromPlayer(activator).toString(); //Temporary patch job
if (!Strings.isNullOrEmpty(crystalOwner) && ritual != null) if (!Strings.isNullOrEmpty(crystalOwner) && ritual != null)
{ {
@ -179,6 +181,7 @@ public class TileMasterRitualStone extends TileTicking implements IMasterRitualS
this.active = true; this.active = true;
this.owner = crystalOwner; this.owner = crystalOwner;
this.cachedNetwork = network;
this.currentRitual = ritual; this.currentRitual = ritual;
notifyUpdate(); notifyUpdate();
@ -281,6 +284,12 @@ public class TileMasterRitualStone extends TileTicking implements IMasterRitualS
return owner; return owner;
} }
@Override
public SoulNetwork getOwnerNetwork()
{
return cachedNetwork;
}
@Override @Override
public World getWorld() public World getWorld()
{ {