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 WayofTime.bloodmagic.api.saving.SoulNetwork;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
@ -18,6 +19,8 @@ public interface IMasterRitualStone
{
String getOwner();
SoulNetwork getOwnerNetwork();
boolean activateRitual(ItemStack activationCrystal, EntityPlayer activator, Ritual ritual);
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.EnumAltarComponent;
import WayofTime.bloodmagic.api.altar.EnumAltarTier;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.block.BlockBloodRune;
import WayofTime.bloodmagic.registry.ModBlocks;
import WayofTime.bloodmagic.util.Utils;
@ -47,15 +45,14 @@ public class RitualAltarBuilder extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
TileEntity tileEntity = world.getTileEntity(masterRitualStone.getBlockPos().up());
BlockPos altarPos = masterRitualStone.getBlockPos().up(2);
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
if (currentEssence < getRefreshCost())
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
return;
}
@ -68,7 +65,7 @@ public class RitualAltarBuilder extends Ritual
{
world.setBlockState(altarPos, ModBlocks.ALTAR.getDefaultState());
lightning(world, altarPos);
network.syphon(getRefreshCost());
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
}
if (altarComponentsIterator.hasNext())
@ -87,7 +84,7 @@ public class RitualAltarBuilder extends Ritual
{
world.setBlockState(currentPos, blockStack.getState(), 3);
lightning(world, currentPos);
network.syphon(getRefreshCost());
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
}
break;
}
@ -98,7 +95,7 @@ public class RitualAltarBuilder extends Ritual
{
world.setBlockState(currentPos, blockStack.getState(), 3);
lightning(world, currentPos);
network.syphon(getRefreshCost());
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
}
break;
}
@ -109,7 +106,7 @@ public class RitualAltarBuilder extends Ritual
{
world.setBlockState(currentPos, blockStack.getState(), 3);
lightning(world, currentPos);
network.syphon(getRefreshCost());
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
}
break;
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -24,8 +24,6 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual;
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.util.Utils;
@ -46,12 +44,11 @@ public class RitualExpulsion extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
if (currentEssence < getRefreshCost())
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
return;
}
@ -90,7 +87,7 @@ public class RitualExpulsion extends Ritual
continue;
if (teleportRandomly(player, teleportDistance))
network.syphon(getRefreshCost() * 1000);
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * 1000);
}
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.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.api.util.helper.PlayerSacrificeHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
@ -62,12 +60,11 @@ public class RitualFeatheredKnife extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
if (currentEssence < getRefreshCost())
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
return;
}
@ -195,7 +192,7 @@ public class RitualFeatheredKnife extends Ritual
}
}
network.syphon(getRefreshCost() * totalEffects);
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
if (totalEffects > 0 && consumeRawWill)
{
WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.DEFAULT, rawWillDrain, true);

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.Utils;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.item.EntityItem;
@ -44,8 +42,7 @@ public class RitualFelling extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
BlockPos masterPos = masterRitualStone.getBlockPos();
AreaDescriptor chestRange = getBlockRange(CHEST_RANGE);
@ -53,7 +50,7 @@ public class RitualFelling extends Ritual
if (currentEssence < getRefreshCost())
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
return;
}
@ -74,7 +71,7 @@ public class RitualFelling extends Ritual
if (blockPosIterator.hasNext() && tileInventory != null && tileInventory instanceof IInventory)
{
network.syphon(getRefreshCost());
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
currentPos = blockPosIterator.next();
placeInInventory(world.getBlockState(currentPos), world, currentPos, chestRange.getContainedPositions(masterPos).get(0));
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.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.tile.TileDemonCrystal;
public class RitualForsakenSoul extends Ritual
@ -84,13 +82,12 @@ public class RitualForsakenSoul extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
BlockPos pos = masterRitualStone.getBlockPos();
if (currentEssence < getRefreshCost())
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
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;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemFood;
@ -36,8 +34,7 @@ public class RitualFullStomach extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
BlockPos pos = masterRitualStone.getBlockPos();
@ -91,13 +88,12 @@ public class RitualFullStomach extends Ritual
if (totalEffects >= maxEffects)
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
break;
}
}
network.syphon(getRefreshCost() * totalEffects);
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost() * totalEffects);
}
@Override

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,9 +1,7 @@
package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import net.minecraft.block.BlockLiquid;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
@ -40,13 +38,12 @@ public class RitualPump extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
TileEntity tileEntity = world.getTileEntity(masterRitualStone.getBlockPos().up());
if (currentEssence < getRefreshCost())
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
return;
}
@ -79,7 +76,7 @@ public class RitualPump extends Ritual
if (blockPosIterator.hasNext())
{
network.syphon(getRefreshCost());
masterRitualStone.getOwnerNetwork().syphon(getRefreshCost());
currentPos = blockPosIterator.next();
fluidHandler.fill(fluidHandler.drain(1000, false), true);
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.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.demonAura.WorldDemonWillHandler;
import WayofTime.bloodmagic.util.Utils;
@ -47,12 +45,11 @@ public class RitualRegeneration extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
if (currentEssence < getRefreshCost())
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
return;
}
@ -165,7 +162,7 @@ public class RitualRegeneration extends Ritual
WorldDemonWillHandler.drainWill(world, pos, EnumDemonWillType.CORROSIVE, corrosiveDrain, true);
}
network.syphon(totalCost);
masterRitualStone.getOwnerNetwork().syphon(totalCost);
}
@Override

View file

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

View file

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

View file

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

View file

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

View file

@ -15,8 +15,6 @@ import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.util.Utils;
public class RitualZephyr extends Ritual
@ -38,8 +36,7 @@ public class RitualZephyr extends Ritual
public void performRitual(IMasterRitualStone masterRitualStone)
{
World world = masterRitualStone.getWorldObj();
SoulNetwork network = NetworkHelper.getSoulNetwork(masterRitualStone.getOwner());
int currentEssence = network.getCurrentEssence();
int currentEssence = masterRitualStone.getOwnerNetwork().getCurrentEssence();
BlockPos masterPos = masterRitualStone.getBlockPos();
AreaDescriptor chestRange = getBlockRange(CHEST_RANGE);
TileEntity tileInventory = world.getTileEntity(chestRange.getContainedPositions(masterPos).get(0));
@ -47,7 +44,7 @@ public class RitualZephyr extends Ritual
{
if (currentEssence < getRefreshCost())
{
network.causeNausea();
masterRitualStone.getOwnerNetwork().causeNausea();
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
{
private String owner;
private SoulNetwork cachedNetwork;
private boolean active;
private boolean redstoned;
private int activeTime;
@ -84,6 +85,8 @@ public class TileMasterRitualStone extends TileTicking implements IMasterRitualS
public void deserialize(NBTTagCompound tag)
{
owner = tag.getString(Constants.NBT.OWNER_UUID);
if (!Strings.isNullOrEmpty(owner))
cachedNetwork = NetworkHelper.getSoulNetwork(owner);
currentRitual = RitualRegistry.getRitualForId(tag.getString(Constants.NBT.CURRENT_RITUAL));
if (currentRitual != null)
{
@ -140,7 +143,6 @@ public class TileMasterRitualStone extends TileTicking implements IMasterRitualS
activationCrystal = NBTHelper.checkNBT(activationCrystal);
String crystalOwner = activationCrystal.getTagCompound().getString(Constants.NBT.OWNER_UUID);
// crystalOwner = PlayerHelper.getUUIDFromPlayer(activator).toString(); //Temporary patch job
if (!Strings.isNullOrEmpty(crystalOwner) && ritual != null)
{
@ -179,6 +181,7 @@ public class TileMasterRitualStone extends TileTicking implements IMasterRitualS
this.active = true;
this.owner = crystalOwner;
this.cachedNetwork = network;
this.currentRitual = ritual;
notifyUpdate();
@ -281,6 +284,12 @@ public class TileMasterRitualStone extends TileTicking implements IMasterRitualS
return owner;
}
@Override
public SoulNetwork getOwnerNetwork()
{
return cachedNetwork;
}
@Override
public World getWorld()
{