public static void CoreOnPostDerive(this Transitional @this, ObjectOnPostDerive method) { // Update PreviousObjectState and LastObjectState foreach (var transitionalConfiguration in @this.TransitionalConfigurations) { var objectState = @this.Strategy.GetCompositeRole(transitionalConfiguration.ObjectState); var lastObjectState = @this.Strategy.GetCompositeRole(transitionalConfiguration.LastObjectState); if (objectState != null && !objectState.Equals(lastObjectState)) { @this.Strategy.SetCompositeRole(transitionalConfiguration.PreviousObjectState, lastObjectState); } @this.Strategy.SetCompositeRole(transitionalConfiguration.LastObjectState, objectState); } // Rollup ObjectStates, PreviousObjectState and LastObjectStates @this.DerivedRoles.RemoveObjectStates(); @this.DerivedRoles.RemoveLastObjectStates(); @this.DerivedRoles.RemovePreviousObjectStates(); foreach (var transitionalConfiguration in @this.TransitionalConfigurations) { var objectState = (ObjectState)@this.Strategy.GetCompositeRole(transitionalConfiguration.ObjectState); var lastObjectState = (ObjectState)@this.Strategy.GetCompositeRole(transitionalConfiguration.LastObjectState); var previousObjectState = (ObjectState)@this.Strategy.GetCompositeRole(transitionalConfiguration.PreviousObjectState); @this.DerivedRoles.AddObjectState(objectState); @this.DerivedRoles.AddLastObjectState(lastObjectState); @this.DerivedRoles.AddPreviousObjectState(previousObjectState); } // Update security @this.DeniedPermissions = @this.ObjectStates.SelectMany(v => v.DeniedPermissions).ToArray(); }
public static void BaseOnPostDerive(this Transitional @this, ObjectOnPostDerive method) { if (@this.CurrentObjectState != null && [email protected](@this.LastObjectState)) { @this.PreviousObjectState = @this.LastObjectState; } @this.LastObjectState = @this.CurrentObjectState; @this.DeniedPermissions = @this.CurrentObjectState?.DeniedPermissions; }
public override void OnInspectorGUI() { DrawDefaultInspector(); Transitional transitionalScript = (Transitional)target; RectTransform rectTransform = transitionalScript.gameObject.GetComponent <RectTransform>(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Save In Position")) { transitionalScript.inPosition = rectTransform.anchoredPosition; } if (GUILayout.Button("Load In Position")) { rectTransform.anchoredPosition = transitionalScript.inPosition; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Save Out Position")) { transitionalScript.outPosition = rectTransform.anchoredPosition; } if (GUILayout.Button("Load Out Position")) { rectTransform.anchoredPosition = transitionalScript.outPosition; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Save Exit Position")) { transitionalScript.exitPosition = rectTransform.anchoredPosition; } if (GUILayout.Button("Load Exit Position")) { rectTransform.anchoredPosition = transitionalScript.exitPosition; } GUILayout.EndHorizontal(); }
public static void Process(this ObjectState objectState, Transitional transitional) { transitional.DeniedPermissions = objectState.DeniedPermissions; }
public static bool HasChangedStates(this Transitional @this) => @this.LastObjectStates.Count != @this.ObjectStates.Count || @this.LastObjectStates.Except(@this.ObjectStates).Count() != 0;