70 lines
1.7 KiB
Java
70 lines
1.7 KiB
Java
/*
|
|
* This file is part of ComputerCraft - http://www.computercraft.info
|
|
* Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
|
|
* Send enquiries to dratcliffe@gmail.com
|
|
*/
|
|
package dan200.computercraft.shared.integration.crafttweaker.actions;
|
|
|
|
import com.blamejared.crafttweaker.api.actions.IUndoableAction;
|
|
import com.blamejared.crafttweaker.api.logger.ILogger;
|
|
import dan200.computercraft.api.turtle.ITurtleUpgrade;
|
|
import dan200.computercraft.shared.TurtleUpgrades;
|
|
import net.minecraftforge.fml.LogicalSide;
|
|
|
|
/**
|
|
* Removes a turtle upgrade with the given id.
|
|
*/
|
|
public class RemoveTurtleUpgradeByName implements IUndoableAction
|
|
{
|
|
private final String id;
|
|
private ITurtleUpgrade upgrade;
|
|
|
|
public RemoveTurtleUpgradeByName( String id )
|
|
{
|
|
this.id = id;
|
|
}
|
|
|
|
@Override
|
|
public void apply()
|
|
{
|
|
ITurtleUpgrade upgrade = this.upgrade = TurtleUpgrades.get( id );
|
|
if( upgrade != null ) TurtleUpgrades.disable( upgrade );
|
|
}
|
|
|
|
@Override
|
|
public String describe()
|
|
{
|
|
return String.format( "Remove turtle upgrade '%s'", id );
|
|
}
|
|
|
|
@Override
|
|
public void undo()
|
|
{
|
|
if( upgrade != null ) TurtleUpgrades.enable( upgrade );
|
|
}
|
|
|
|
@Override
|
|
public String describeUndo()
|
|
{
|
|
return String.format( "Adding back turtle upgrade '%s'", id );
|
|
}
|
|
|
|
@Override
|
|
public boolean validate( ILogger logger )
|
|
{
|
|
if( TurtleUpgrades.get( id ) == null )
|
|
{
|
|
logger.error( String.format( "Unknown turtle upgrade '%s'.", id ) );
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldApplyOn( LogicalSide side )
|
|
{
|
|
return true;
|
|
}
|
|
}
|