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

@ -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()
{