コード例 #1
0
 protected override void AddGeometry(ISceneGeometryObject Object)
 {
     Debug.Assert(Object is TiledPlatformerGeometryObject);
     // Of course we should use something like a QuadTree,
     // but we're not actually doing solid entities so too few to matter.
     _Geometry.Add(Object);
 }
コード例 #2
0
        protected override void RemoveGeometry(ISceneGeometryObject Object)
        {
            bool Removed = _Geometry.Remove(Object);

            if (!Removed)
            {
                throw new KeyNotFoundException();
            }
        }
コード例 #3
0
 protected override IGlobalPath PerformPathCalculation(Entity Entity, ISceneGeometryObject EndPoint)
 {
     return(null);
 }
コード例 #4
0
ファイル: SceneGeometry.cs プロジェクト: Octanum/Corvus
 /// <summary>
 /// Calculates a global path to take the given entity to the specified EndPoint.
 /// </summary>
 public virtual IGlobalPath CalculateGlobalPath(Entity Entity, ISceneGeometryObject EndPoint)
 {
     // We can do some stuff like caching here if we want.
     return CalculateGlobalPath(Entity, EndPoint);
 }
コード例 #5
0
ファイル: SceneGeometry.cs プロジェクト: Octanum/Corvus
 /// <summary>
 /// Called when the specified geometry should be added to this Scene's geometry.
 /// </summary>
 protected abstract void AddGeometry(ISceneGeometryObject Object);
コード例 #6
0
ファイル: SceneGeometry.cs プロジェクト: Octanum/Corvus
 /// <summary>
 /// Override to perform handling the actual calculation of a global path.
 /// </summary>
 protected abstract IGlobalPath PerformPathCalculation(Entity Entity, ISceneGeometryObject EndPoint);
コード例 #7
0
ファイル: SceneGeometry.cs プロジェクト: Octanum/Corvus
 /// <summary>
 /// Called when the specified geometry should be removed from this Scene's geometry.
 /// </summary>
 protected abstract void RemoveGeometry(ISceneGeometryObject Object);
コード例 #8
0
ファイル: SceneGeometry.cs プロジェクト: Octanum/Corvus
 /// <summary>
 /// Called when the specified geometry should be added to this Scene's geometry.
 /// </summary>
 protected abstract void AddGeometry(ISceneGeometryObject Object);
コード例 #9
0
ファイル: SceneGeometry.cs プロジェクト: Octanum/Corvus
 /// <summary>
 /// Override to perform handling the actual calculation of a global path.
 /// </summary>
 protected abstract IGlobalPath PerformPathCalculation(Entity Entity, ISceneGeometryObject EndPoint);
コード例 #10
0
ファイル: SceneGeometry.cs プロジェクト: Octanum/Corvus
 /// <summary>
 /// Calculates a global path to take the given entity to the specified EndPoint.
 /// </summary>
 public virtual IGlobalPath CalculateGlobalPath(Entity Entity, ISceneGeometryObject EndPoint)
 {
     // We can do some stuff like caching here if we want.
     return(CalculateGlobalPath(Entity, EndPoint));
 }
コード例 #11
0
ファイル: SceneGeometry.cs プロジェクト: Octanum/Corvus
 /// <summary>
 /// Called when the specified geometry should be removed from this Scene's geometry.
 /// </summary>
 protected abstract void RemoveGeometry(ISceneGeometryObject Object);
コード例 #12
0
 public void AdvanceNode()
 {
     this._CurrentNode = Nodes.Dequeue();
 }
コード例 #13
0
 public TiledPlatformerGlobalPath(Queue<TiledPlatformerGeometryObject> Nodes)
 {
     this.Nodes = Nodes;
     this._CurrentNode = Nodes.Count > 0 ? Nodes.Dequeue() : null;
 }
コード例 #14
0
 protected override void RemoveGeometry(ISceneGeometryObject Object)
 {
     bool Removed = _Geometry.Remove(Object);
     if(!Removed)
         throw new KeyNotFoundException();
 }
コード例 #15
0
 protected override IGlobalPath PerformPathCalculation(Entity Entity, ISceneGeometryObject EndPoint)
 {
     return null;
 }
コード例 #16
0
 protected override void AddGeometry(ISceneGeometryObject Object)
 {
     Debug.Assert(Object is TiledPlatformerGeometryObject);
     // Of course we should use something like a QuadTree,
     // but we're not actually doing solid entities so too few to matter.
     _Geometry.Add(Object);
 }