Beispiel #1
0
        public void getAirports()
        {
            VTMapManager[] mm = FindObjectsOfType <VTMapManager>();
            foreach (AirportManager manager in mm[0].airports)
            {
                newEntry = actorProcessor.airportEntry(manager);

                dataLog.Append("\n" + newEntry.ACMIString());
            }
        }
Beispiel #2
0
        public void TacViewDataLogACMI()
        {
            actors = TargetManager.instance.allActors;

            acmiString = "";

            // Processing game actors

            foreach (var actor in actors)
            {
                if (actor != null)
                {
                    acmiString = "";
                    support.UpdateID(actor);

                    newEntry = buildDataEntry(actor);

                    // If this is already a tracked actor
                    if (knownActors.ContainsKey(support.GetObjectID(actor)))
                    {
                        oldEntry = knownActors[support.GetObjectID(actor)];

                        // Diff the old entry and the new entry. Update the old entry with the new entry.
                        //acmiString = newEntry.ACMIString();
                        acmiString = newEntry.ACMIString(oldEntry);
                        knownActors[support.GetObjectID(actor)] = newEntry;
                    }
                    else
                    {
                        acmiString = newEntry.ACMIString();
                        knownActors.Add(support.GetObjectID(actor), newEntry);
                    }
                    if ((acmiString != "") && (acmiString.Contains(",")))
                    {
                        dataLog.Append("\n" + acmiString);
                    }
                }
                else
                {
                    //support.WriteLog("Error - Got a null actor!");
                }
            }

            // Getting flares and processing them
            acmiString = "";
            foreach (var flare in getFlares())
            {
                acmiString = "";
                support.UpdateID(flare);

                newEntry = buildFlareEntry(flare);

                if (knownActors.ContainsKey(support.GetObjectID(flare)))
                {
                    oldEntry   = knownActors[support.GetObjectID(flare)];
                    acmiString = newEntry.ACMIString(oldEntry);
                    knownActors[support.GetObjectID(flare)] = newEntry;
                }
                else
                {
                    acmiString = newEntry.ACMIString();
                    knownActors.Add(support.GetObjectID(flare), newEntry);
                }
                if (acmiString != "")
                {
                    dataLog.Append("\n" + acmiString);
                }
            }
            // Getting Chaff and processing them
            acmiString = "";
            foreach (var chaff in getChaff())
            {
                acmiString = "";
                support.UpdateID(chaff);

                newEntry = buildChaffEntry(chaff);

                if (knownActors.ContainsKey(support.GetObjectID(chaff)))
                {
                    oldEntry   = knownActors[support.GetObjectID(chaff)];
                    acmiString = newEntry.ACMIString(oldEntry);
                    knownActors[support.GetObjectID(chaff)] = newEntry;
                }
                else
                {
                    acmiString = newEntry.ACMIString();
                    knownActors.Add(support.GetObjectID(chaff), newEntry);
                }
                if (acmiString != "")
                {
                    dataLog.Append("\n" + acmiString);
                }
            }

            // Getting bullets and processing them
            foreach (var bullet in getBullets())
            {
                /* If this isn't active, don't update it or use it */
                if (!bullet.isActiveAndEnabled)
                {
                    continue;
                }

                support.UpdateID(bullet);

                newEntry   = buildBulletEntry(bullet);
                acmiString = "";
                if (knownActors.ContainsKey(support.GetObjectID(bullet)))
                {
                    oldEntry   = knownActors[support.GetObjectID(bullet)];
                    acmiString = newEntry.ACMIString(oldEntry);
                    knownActors[support.GetObjectID(bullet)] = newEntry;
                }
                else
                {
                    acmiString = newEntry.ACMIString();
                    knownActors.Add(support.GetObjectID(bullet), newEntry);
                }
                if (acmiString != "")
                {
                    dataLog.Append("\n" + acmiString);
                }
            }

            foreach (var rocket in getRockets())
            {
                /* If this isn't active, don't update it or use it */
                if (!rocket.isActiveAndEnabled)
                {
                    continue;
                }

                support.UpdateID(rocket);

                newEntry   = buildRocketEntry(rocket);
                acmiString = "";
                if (knownActors.ContainsKey(support.GetObjectID(rocket)))
                {
                    oldEntry   = knownActors[support.GetObjectID(rocket)];
                    acmiString = newEntry.ACMIString(oldEntry);
                    knownActors[support.GetObjectID(rocket)] = newEntry;
                }
                else
                {
                    acmiString = newEntry.ACMIString();
                    knownActors.Add(support.GetObjectID(rocket), newEntry);
                }
                if (acmiString != "")
                {
                    dataLog.Append("\n" + acmiString);
                }
            }


            foreach (var actor in support.ClearAndGetOldObjectIds())
            {
                /* If we weren't updated, then we don't exist anymore */

                // Need to handle checks for non vehicle actors
                //if (knownActors[actor]._basicTypes.Contains("FixedWing") ||
                //    knownActors[actor]._basicTypes.Contains("Vehicle"))
                //{
                //    /* If this is a vehicle, we can send the destroyed ACMI event */
                //    dataLog.Append("\n" +acmi.ACMIEvent("Destroyed", null, actor));
                //}

                dataLog.Append("\n" + $"-{actor}");
                knownActors.Remove(actor);
            }
        }