private static void RestoreHandler( Player player, Command cmd )
{
string fileName = cmd.Next();
if ( fileName == null ) {
CdRestore.PrintUsage( player );
return;
}
if ( cmd.HasNext ) {
CdRestore.PrintUsage( player );
return;
}
string fullFileName = WorldManager.FindMapFile( player, fileName );
if ( fullFileName == null )
return;
Map map;
if ( !MapUtility.TryLoad( fullFileName, out map ) ) {
player.Message( "Could not load the given map file ({0})", fileName );
return;
}
Map playerMap = player.WorldMap;
if ( playerMap.Width != map.Width || playerMap.Length != map.Length || playerMap.Height != map.Height ) {
player.Message( "Mapfile dimensions must match your current world's dimensions ({0}x{1}x{2})",
playerMap.Width,
playerMap.Length,
playerMap.Height );
return;
}
map.Metadata["fCraft.Temp", "FileName"] = fullFileName;
player.SelectionStart( 2, RestoreCallback, map, CdRestore.Permissions );
player.MessageNow( "Restore: Select the area to restore. To mark a corner, place/click a block or type &H/Mark" );
}