public override void Update()
 {
     for (int i = 0; i < slots.Length; i++)
     {
         SlotEntry slotEntry         = slots[i];
         AssignableSlotInstance slot = slotEntry.slot;
         if (slot.IsAssigned())
         {
             bool        flag      = slot.assignable.GetNavigationCost(navigator) != -1;
             Operational component = slot.assignable.GetComponent <Operational>();
             if ((Object)component != (Object)null)
             {
                 flag = (flag && component.IsOperational);
             }
             if (flag != slotEntry.isReachable)
             {
                 slotEntry.isReachable = flag;
                 slots[i] = slotEntry;
                 Trigger(334784980, slotEntry);
             }
         }
         else if (slotEntry.isReachable)
         {
             slotEntry.isReachable = false;
             slots[i] = slotEntry;
             Trigger(334784980, slotEntry);
         }
     }
 }
Example #2
0
 public void Refresh(object data = null)
 {
     if (!sideScreen.targetAssignable.CanAssignTo(targetIdentity))
     {
         currentState        = AssignableState.Disabled;
         assignmentText.text = UI.UISIDESCREENS.ASSIGNABLESIDESCREEN.DISABLED;
     }
     else if (sideScreen.targetAssignable.assignee == targetIdentity)
     {
         currentState        = AssignableState.Selected;
         assignmentText.text = UI.UISIDESCREENS.ASSIGNABLESIDESCREEN.ASSIGNED;
     }
     else
     {
         bool           flag           = false;
         KMonoBehaviour kMonoBehaviour = targetIdentity as KMonoBehaviour;
         if ((UnityEngine.Object)kMonoBehaviour != (UnityEngine.Object)null)
         {
             Ownables component = kMonoBehaviour.GetComponent <Ownables>();
             if ((UnityEngine.Object)component != (UnityEngine.Object)null)
             {
                 AssignableSlotInstance slot = component.GetSlot(sideScreen.targetAssignable.slot);
                 if (slot != null && slot.IsAssigned())
                 {
                     currentState        = AssignableState.AssignedToOther;
                     assignmentText.text = slot.assignable.GetProperName();
                     flag = true;
                 }
             }
             Equipment component2 = kMonoBehaviour.GetComponent <Equipment>();
             if ((UnityEngine.Object)component2 != (UnityEngine.Object)null)
             {
                 AssignableSlotInstance slot2 = component2.GetSlot(sideScreen.targetAssignable.slot);
                 if (slot2 != null && slot2.IsAssigned())
                 {
                     currentState        = AssignableState.AssignedToOther;
                     assignmentText.text = slot2.assignable.GetProperName();
                     flag = true;
                 }
             }
         }
         if (!flag)
         {
             currentState        = AssignableState.Unassigned;
             assignmentText.text = UI.UISIDESCREENS.ASSIGNABLESIDESCREEN.UNASSIGNED;
         }
     }
     toggle.ChangeState((int)currentState);
 }