/// <summary>
/// 获取一个地块对象
/// </summary>
/// <param name="coordinate">地块坐标</param>
/// <returns></returns>
public Place GetPlace(Coordinate coordinate)
{
lock ( _sync )
{
Place place;
if (places.TryGetValue(coordinate, out place))
{
return(place);
}
var filepath = Path.ChangeExtension(Path.Combine(placesDirectory, coordinate.ToString()), _extensions);
var data = JsonDataItem.LoadData(filepath, new { CheckPoint = DateTime.UtcNow });
place = GameHost.GameRules.CreatePlace(coordinate);
place.InitializeData(this, data);
return(place);
}
}