public void Leave(IBaseMapObject <TMapTile> objectBase) { TMapTile oldTile = objectBase.MapTile; if (oldTile != null) { oldTile.Leave(objectBase); } objectBase.MapTile = null; }
public IBaseMapObject <TMapTile> GetObject(TMapTile sourceTile, ulong id) { foreach (TMapTile tile in GetNearestTiles(sourceTile, false)) { if (tile != null) { IBaseMapObject <TMapTile> obj = tile.GetObject(id); if (obj != null) { return(obj); } } } return(null); }
public void Enter(IBaseMapObject <TMapTile> objectBase) { TMapTile oldTile = objectBase.MapTile; TMapTile mapTile = GetTileByPosition(objectBase.Position.X, objectBase.Position.Y, true); if (oldTile == mapTile) { mapTile.Move(objectBase); return; // already entered } if (oldTile != null) { oldTile.Leave(objectBase); } objectBase.MapTile = mapTile; mapTile.Enter(objectBase); }
public virtual void Move(IBaseMapObject <TMapTile> obj) { Advance(); }
public virtual void Leave(IBaseMapObject <TMapTile> objectBase) { m_objects.Remove(objectBase); Advance(); }
public virtual void Enter(IBaseMapObject <TMapTile> objectBase) { m_objects.Add(objectBase); Advance(); Move(objectBase); }