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); } } }
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); }