mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-02-11 08:30:04 +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:
parent
c9b0894f26
commit
ca7fb8a0b4
@ -71,14 +71,21 @@ public class TileTurtle extends TileComputerBase
|
|||||||
private boolean m_inventoryChanged;
|
private boolean m_inventoryChanged;
|
||||||
private TurtleBrain m_brain;
|
private TurtleBrain m_brain;
|
||||||
private MoveState m_moveState;
|
private MoveState m_moveState;
|
||||||
|
private ComputerFamily m_family;
|
||||||
|
|
||||||
public TileTurtle()
|
public TileTurtle()
|
||||||
|
{
|
||||||
|
this( ComputerFamily.Normal );
|
||||||
|
}
|
||||||
|
|
||||||
|
public TileTurtle(ComputerFamily family)
|
||||||
{
|
{
|
||||||
m_inventory = NonNullList.withSize( INVENTORY_SIZE, ItemStack.EMPTY );
|
m_inventory = NonNullList.withSize( INVENTORY_SIZE, ItemStack.EMPTY );
|
||||||
m_previousInventory = NonNullList.withSize( INVENTORY_SIZE, ItemStack.EMPTY );
|
m_previousInventory = NonNullList.withSize( INVENTORY_SIZE, ItemStack.EMPTY );
|
||||||
m_inventoryChanged = false;
|
m_inventoryChanged = false;
|
||||||
m_brain = createBrain();
|
m_brain = createBrain();
|
||||||
m_moveState = MoveState.NOT_MOVED;
|
m_moveState = MoveState.NOT_MOVED;
|
||||||
|
m_family = family;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasMoved()
|
public boolean hasMoved()
|
||||||
@ -454,6 +461,13 @@ public class TileTurtle extends TileComputerBase
|
|||||||
return m_brain.getToolRenderAngle( side, f );
|
return m_brain.getToolRenderAngle( side, f );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IComputerTile
|
||||||
|
@Override
|
||||||
|
public ComputerFamily getFamily()
|
||||||
|
{
|
||||||
|
return m_family;
|
||||||
|
}
|
||||||
|
|
||||||
// IInventory
|
// IInventory
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
|
|
||||||
package dan200.computercraft.shared.turtle.blocks;
|
package dan200.computercraft.shared.turtle.blocks;
|
||||||
|
|
||||||
|
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
||||||
|
|
||||||
public class TileTurtleAdvanced extends TileTurtle
|
public class TileTurtleAdvanced extends TileTurtle
|
||||||
{
|
{
|
||||||
public TileTurtleAdvanced()
|
public TileTurtleAdvanced()
|
||||||
{
|
{
|
||||||
|
super( ComputerFamily.Advanced);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
|
|
||||||
package dan200.computercraft.shared.turtle.blocks;
|
package dan200.computercraft.shared.turtle.blocks;
|
||||||
|
|
||||||
|
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
||||||
|
|
||||||
public class TileTurtleExpanded extends TileTurtle
|
public class TileTurtleExpanded extends TileTurtle
|
||||||
{
|
{
|
||||||
public TileTurtleExpanded()
|
public TileTurtleExpanded()
|
||||||
{
|
{
|
||||||
|
super( ComputerFamily.Normal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user