private void Refresh(List <MinionAssignablesProxy> identities, bool rebuild)
    {
        Rotatable component = target.GetComponent <Rotatable>();
        bool      rotated   = (UnityEngine.Object)component != (UnityEngine.Object)null && component.IsRotated;

        defaultsRow.SetRotated(rotated);
        defaultsRow.SetContent(target.DefaultPermission, OnDefaultPermissionChanged);
        if (rebuild)
        {
            ClearContent();
        }
        foreach (MinionAssignablesProxy identity in identities)
        {
            AccessControlSideScreenRow accessControlSideScreenRow;
            if (rebuild)
            {
                accessControlSideScreenRow = rowPool.GetFreeElement(rowGroup, true);
                identityRowMap.Add(identity, accessControlSideScreenRow);
            }
            else
            {
                accessControlSideScreenRow = identityRowMap[identity];
            }
            AccessControl.Permission setPermission = target.GetSetPermission(identity);
            bool isDefault = target.IsDefaultPermission(identity);
            accessControlSideScreenRow.SetRotated(rotated);
            accessControlSideScreenRow.SetMinionContent(identity, setPermission, isDefault, OnPermissionChanged, OnPermissionDefault);
        }
        RefreshOnline();
        ContentContainer.SetActive(target.controlEnabled);
    }
 public void SetContent(AccessControl.Permission permission, Action <MinionAssignablesProxy, AccessControl.Permission> onPermissionChange)
 {
     permissionChangedCallback = onPermissionChange;
     leftButton.isOn           = (permission == AccessControl.Permission.Both || permission == AccessControl.Permission.GoLeft);
     rightButton.isOn          = (permission == AccessControl.Permission.Both || permission == AccessControl.Permission.GoRight);
     UpdateButtonStates(false);
 }
 private void OnDefaultPermissionChanged(MinionAssignablesProxy identity, AccessControl.Permission permission)
 {
     target.DefaultPermission = permission;
     Refresh(identityList, false);
     foreach (MinionAssignablesProxy identity2 in identityList)
     {
         if (target.IsDefaultPermission(identity2))
         {
             target.ClearPermission(identity2);
         }
     }
 }
Example #4
0
 public void SetMinionContent(MinionAssignablesProxy identity, AccessControl.Permission permission, bool isDefault, Action <MinionAssignablesProxy, AccessControl.Permission> onPermissionChange, Action <MinionAssignablesProxy, bool> onDefaultClick)
 {
     SetContent(permission, onPermissionChange);
     if ((UnityEngine.Object)identity == (UnityEngine.Object)null)
     {
         Debug.LogError("Invalid data received.");
     }
     else
     {
         if ((UnityEngine.Object)portraitInstance == (UnityEngine.Object)null)
         {
             portraitInstance = Util.KInstantiateUI <CrewPortrait>(crewPortraitPrefab.gameObject, defaultButton.gameObject, false);
             portraitInstance.SetAlpha(1f);
         }
         targetIdentity = identity;
         portraitInstance.SetIdentityObject(identity, false);
         portraitInstance.SetSubTitle((!isDefault) ? UI.UISIDESCREENS.ACCESS_CONTROL_SIDE_SCREEN.USING_CUSTOM : UI.UISIDESCREENS.ACCESS_CONTROL_SIDE_SCREEN.USING_DEFAULT);
         defaultClickedCallback = null;
         defaultButton.isOn     = !isDefault;
         defaultClickedCallback = onDefaultClick;
     }
 }
 private void OnPermissionChanged(MinionAssignablesProxy identity, AccessControl.Permission permission)
 {
     target.SetPermission(identity, permission);
 }
 private void OnPermissionButtonClicked()
 {
     AccessControl.Permission arg = leftButton.isOn ? ((!rightButton.isOn) ? AccessControl.Permission.GoLeft : AccessControl.Permission.Both) : ((!rightButton.isOn) ? AccessControl.Permission.Neither : AccessControl.Permission.GoRight);
     UpdateButtonStates(false);
     permissionChangedCallback(targetIdentity, arg);
 }