コード例 #1
0
        public void UpdateSurfaceLocation(TrackedEntity pm)
        {
            //log.Debug("initial location to save: "+ pm.AttackPoint);
            var point = new PointOfInterest(pm.AttackPoint, pm.EntityID);

            //log.Debug(pm.AttackPoint+"");
            PlanetaryData planet = KnownPlanets.FirstOrDefault(x => x.PlanetCenter == pm.Location);
            Region        region = null;

            region = new Region(pm.EntityID, pm.Location, point, iscmd, cubeGrid.GetPosition(), log);
            if (planet != null)
            {
                planet.UpdatePlanetaryData(region, cubeGrid.GetPosition());
            }

            //if no planet
            if (planet == null)
            {
                planet = CreateNewPlanet(pm.EntityID, pm.Location, region, point, cubeGrid.GetPosition());


                //if point is in current region, update region
                if (currentRegion.EntityId == pm.EntityID)
                {
                    currentRegion.UpdatePoints(point);
                }

                //if point in another region, increase its scan density
                //log.Debug("Number of regions: " + nearestPlanet.Regions.Count);
            }
            if (KnownPlanets.Count > 1)
            {
                nearestPlanet = KnownPlanets.OrderBy(x => (x.PlanetCenter - pm.Location).Length()).FirstOrDefault();
            }
        }
コード例 #2
0
 public void UpdatePlanetData()
 {
     nearestPlanet = GetNearestPlanet();
     if (nearestPlanet != null)
     {
         altitude = Math.Abs((cubeGrid.GetPosition() - nearestPlanet.GetNearestPoint(cubeGrid.GetPosition())).Length());
     }
 }
コード例 #3
0
ファイル: AIShipBase.cs プロジェクト: ESearcy/ingame-fighters
 protected void UpdateTrackedTargets()
 {
     try
     {
         trackingSystems.Update();
         NearestPlanet = trackingSystems.GetNearestPlanet();
     }
     catch (Exception e) { log.Error("UpdateTrackedTargets " + e.Message); }
 }
コード例 #4
0
        private PlanetaryData CreateNewPlanet(long id, Vector3D loc, Region newregion, PointOfInterest point, Vector3D cubegridLoc)
        {
            PlanetaryData planet = null;

            //log.Debug("Logging new planet: "+ KnownPlanets.Count);

            planet = new PlanetaryData(log, loc, newregion, cubegridLoc);

            currentRegion = newregion;
            nearestPlanet = planet;
            KnownPlanets.Add(planet);


            return(planet);
        }