mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-01-27 01:14:46 +00:00
Allow turtle upgrades to act as tools and peripherals
This may be useful when you want your tool to also provide additional methods. For instance, a pickaxe could provide methods to check whether it can break the block in front.
This commit is contained in:
parent
58e6e9ea46
commit
a021a072b5
@ -24,4 +24,22 @@ public enum TurtleUpgradeType
|
|||||||
* and can be interacted with the peripheral API (Such as the modem on Wireless Turtles).
|
* and can be interacted with the peripheral API (Such as the modem on Wireless Turtles).
|
||||||
*/
|
*/
|
||||||
Peripheral,
|
Peripheral,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An upgrade which provides both a tool and a peripheral. This can be used when you wish
|
||||||
|
* your upgrade to also provide methods. For example, a pickaxe could provide methods
|
||||||
|
* determining whether it can break the given block or not.
|
||||||
|
*/
|
||||||
|
Both,
|
||||||
|
;
|
||||||
|
|
||||||
|
public boolean isTool()
|
||||||
|
{
|
||||||
|
return this == Tool || this == Both;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isPeripheral()
|
||||||
|
{
|
||||||
|
return this == Peripheral || this == Both;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ public abstract class CCTurtleProxyCommon implements ICCTurtleProxy
|
|||||||
{
|
{
|
||||||
if( family == ComputerFamily.Beginners )
|
if( family == ComputerFamily.Beginners )
|
||||||
{
|
{
|
||||||
return upgrade.getType() == TurtleUpgradeType.Tool;
|
return upgrade.getType().isTool();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -649,7 +649,7 @@ public class TileTurtle extends TileComputerBase
|
|||||||
case 5: upgrade = getUpgrade( TurtleSide.Left ); break;
|
case 5: upgrade = getUpgrade( TurtleSide.Left ); break;
|
||||||
default: return false;
|
default: return false;
|
||||||
}
|
}
|
||||||
if( upgrade != null && upgrade.getType() == TurtleUpgradeType.Peripheral )
|
if( upgrade != null && upgrade.getType().isPeripheral() )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -950,7 +950,7 @@ public class TurtleBrain implements ITurtleAccess
|
|||||||
{
|
{
|
||||||
ITurtleUpgrade upgrade = getUpgrade( side );
|
ITurtleUpgrade upgrade = getUpgrade( side );
|
||||||
IPeripheral peripheral = null;
|
IPeripheral peripheral = null;
|
||||||
if( upgrade != null && upgrade.getType() == TurtleUpgradeType.Peripheral )
|
if( upgrade != null && upgrade.getType().isPeripheral() )
|
||||||
{
|
{
|
||||||
peripheral = upgrade.createPeripheral( this, side );
|
peripheral = upgrade.createPeripheral( this, side );
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ public class TurtleToolCommand implements ITurtleCommand
|
|||||||
if( !m_side.isPresent() || m_side.get() == side )
|
if( !m_side.isPresent() || m_side.get() == side )
|
||||||
{
|
{
|
||||||
ITurtleUpgrade upgrade = turtle.getUpgrade( side );
|
ITurtleUpgrade upgrade = turtle.getUpgrade( side );
|
||||||
if( upgrade != null && upgrade.getType() == TurtleUpgradeType.Tool )
|
if( upgrade != null && upgrade.getType().isTool() )
|
||||||
{
|
{
|
||||||
TurtleCommandResult result = upgrade.useTool( turtle, side, m_verb, m_direction.toWorldDir( turtle ) );
|
TurtleCommandResult result = upgrade.useTool( turtle, side, m_verb, m_direction.toWorldDir( turtle ) );
|
||||||
if( result.isSuccess() )
|
if( result.isSuccess() )
|
||||||
|
Loading…
Reference in New Issue
Block a user