コード例 #1
0
ファイル: BaseMapInstance.cs プロジェクト: Nomad1/flatphysics
        public void Leave(IBaseMapObject <TMapTile> objectBase)
        {
            TMapTile oldTile = objectBase.MapTile;

            if (oldTile != null)
            {
                oldTile.Leave(objectBase);
            }

            objectBase.MapTile = null;
        }
コード例 #2
0
ファイル: BaseMapInstance.cs プロジェクト: Nomad1/flatphysics
 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);
 }
コード例 #3
0
ファイル: BaseMapInstance.cs プロジェクト: Nomad1/flatphysics
        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);
        }
コード例 #4
0
 public virtual void Move(IBaseMapObject <TMapTile> obj)
 {
     Advance();
 }
コード例 #5
0
 public virtual void Leave(IBaseMapObject <TMapTile> objectBase)
 {
     m_objects.Remove(objectBase);
     Advance();
 }
コード例 #6
0
 public virtual void Enter(IBaseMapObject <TMapTile> objectBase)
 {
     m_objects.Add(objectBase);
     Advance();
     Move(objectBase);
 }