private void Awake()
 {
     Debug.Log("Radar sender awoken for object " + gameObject.name);
     lr = gameObject.GetComponentInChildren <LockingRadar>();
     if (lr == null)
     {
         Debug.LogError($"LockingRadar on networkUID {networkUID} is null");
         return;
     }
     lr.radar = gameObject.GetComponentInChildren <Radar>();
     if (lr.radar == null)
     {
         Debug.LogError($"Radar null on netUID {networkUID}");
     }
     else
     {
         lr.radar.OnDetectedActor += RadarDetectedActor;
         // Debug.Log($"Radar sender successfully attached to object {gameObject.name}.");
     }
     controller = gameObject.GetComponentInChildren <TacticalSituationController>();
     if (controller != null)
     {
         Debug.Log($"{networkUID} is a player F45.");
         controller.OnAutoRadarLocked   += F45LockedUpdate;
         controller.OnAutoRadarUnlocked += F45UnlockedUpdate;
     }
     lastRadarMessage   = new Message_RadarUpdate(true, 0, networkUID);
     lastLockingMessage = new Message_LockingRadarUpdate(0, false, networkUID);
 }
    public void LockingRadarUpdate(Packet packet)
    {
        lastLockingMessage = (Message_LockingRadarUpdate)((PacketSingle)packet).message;
        // Debug.Log("Got a new locking radar update intended for id " + lastLockingMessage.senderUID);
        if (lastLockingMessage.senderUID != networkUID)
        {
            return;
        }
        if (lockingRadar == null)
        {
            Debug.Log($"Locking radar on networkUID {networkUID} is null.");
            return;
        }
        if (lockingRadar.radar == null)
        {
            lockingRadar.radar = gameObject.GetComponentInChildren <Radar>();
            if (lockingRadar.radar == null)
            {
                Debug.Log($"Radar was null on network uID {networkUID}");
            }
        }
        if (!lockingRadar.radar.radarEnabled)
        {
            lockingRadar.radar.radarEnabled = true;
        }
        Debug.Log($"Doing LockingRadarupdate for uid {networkUID} which is intended for uID {lastLockingMessage.senderUID}");
        if (!lastLockingMessage.isLocked && lockingRadar.IsLocked())
        {
            Debug.Log("Unlocking radar " + gameObject.name);
            lockingRadar.Unlock();
            lastLock   = 0;
            lastLocked = false;
            return;
        }
        else if (lastLockingMessage.actorUID != lastLock || (lastLockingMessage.isLocked && !lockingRadar.IsLocked()))
        {
            Debug.Log("Trying to lock radar.");

            if (VTOLVR_Multiplayer.AIDictionaries.allActors.TryGetValue(lastLockingMessage.actorUID, out lastActor))
            {
                if (gameObject.name == null)
                {
                    Debug.Log($"Radar {networkUID} found its lock " + lastActor.name + $" with an id of {lastLock} while trying to lock id {lastLockingMessage.actorUID}. Trying to force a lock.");
                }
                else
                {
                    Debug.Log($"Radar " + gameObject.name + " found its lock " + lastActor.name + $" with an id of {lastLock} while trying to lock id {lastLockingMessage.actorUID}. Trying to force a lock.");
                }
                lockingRadar.ForceLock(lastActor, out radarLockData);
                lastLock   = lastLockingMessage.actorUID;
                lastLocked = true;
                Debug.Log($"The lock data is Locked: {radarLockData.locked}, Locked Actor: " + radarLockData.actor.name);
            }
            else
            {
                Debug.Log($"Could not resolve a lock on uID {lastLockingMessage.actorUID} from sender {lastLockingMessage.senderUID}.");
            }
        }
    }