1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-02-11 00:20:05 +00:00

Cache turtle family within the tile

This means one can call .getFamily() in a thread-safe manner, ensuring
turtle.getFuelLimit() does not cause issues. As we use a specialist
TE class for each family this does not require any specialist caching.
This commit is contained in:
SquidDev 2018-01-16 14:24:31 +00:00
parent c9b0894f26
commit ca7fb8a0b4
3 changed files with 20 additions and 0 deletions

View File

@ -71,14 +71,21 @@ public class TileTurtle extends TileComputerBase
private boolean m_inventoryChanged;
private TurtleBrain m_brain;
private MoveState m_moveState;
private ComputerFamily m_family;
public TileTurtle()
{
this( ComputerFamily.Normal );
}
public TileTurtle(ComputerFamily family)
{
m_inventory = NonNullList.withSize( INVENTORY_SIZE, ItemStack.EMPTY );
m_previousInventory = NonNullList.withSize( INVENTORY_SIZE, ItemStack.EMPTY );
m_inventoryChanged = false;
m_brain = createBrain();
m_moveState = MoveState.NOT_MOVED;
m_family = family;
}
public boolean hasMoved()
@ -454,6 +461,13 @@ public class TileTurtle extends TileComputerBase
return m_brain.getToolRenderAngle( side, f );
}
// IComputerTile
@Override
public ComputerFamily getFamily()
{
return m_family;
}
// IInventory
@Override

View File

@ -6,9 +6,12 @@
package dan200.computercraft.shared.turtle.blocks;
import dan200.computercraft.shared.computer.core.ComputerFamily;
public class TileTurtleAdvanced extends TileTurtle
{
public TileTurtleAdvanced()
{
super( ComputerFamily.Advanced);
}
}

View File

@ -6,9 +6,12 @@
package dan200.computercraft.shared.turtle.blocks;
import dan200.computercraft.shared.computer.core.ComputerFamily;
public class TileTurtleExpanded extends TileTurtle
{
public TileTurtleExpanded()
{
super( ComputerFamily.Normal);
}
}