public void LoadFinish() { state = CtrlState.Inactive; this.finishCallback?.Invoke(); //this.finishCallback = null; this.OnLoadFinish(); }
/// <summary> /// Change female animation/position /// </summary> /// <param name="path"></param> /// <param name="name"></param> private IEnumerator ChangeMotion(string path, string name) { PushLimbAutoAttachButton(true); if (femaleSpinePos == null) { femaleSpinePos = new GameObject("femaleSpinePos"); } femaleSpinePos.transform.position = femaleBase.transform.position; femaleSpinePos.transform.rotation = femaleBase.transform.rotation; CtrlState oldState = currentCtrlstate; currentCtrlstate = CtrlState.Following; Animator component = female_p_cf_bodybone.GetComponent <Animator>(); RuntimeAnimatorController runtimeAnimatorController = CommonLib.LoadAsset <RuntimeAnimatorController>(path, name, false, string.Empty); AnimatorOverrideController animatorOverrideController = new AnimatorOverrideController(component.runtimeAnimatorController); foreach (AnimationClip animationClip in new AnimatorOverrideController(runtimeAnimatorController).animationClips) { animatorOverrideController[animationClip.name] = animationClip; } animatorOverrideController.name = runtimeAnimatorController.name; component.runtimeAnimatorController = animatorOverrideController; AssetBundleManager.UnloadAssetBundle(path, true, null, false); for (int k = 0; k < 2; k++) { yield return(null); } currentCtrlstate = oldState; yield break; }
private void FirePollEvent(uint port, CtrlState state) { if (Interrupt != null) { Interrupt(port, state, _controllerNumber); } }
public void Pause() { if (pd != null && state != CtrlState.Stop) { state = CtrlState.Pause; } }
void DIO8_MCP22_Manager_Interrupt(uint port, CtrlState state, uint controller) { if (Interrupt != null) { Interrupt(port, state, controller); } }
public Ctrl() { number = new PNumber(); editor = new PEditor(number.ToString()); proc = new Processor(); memory = new Memory(new PNumber()); state = CtrlState.Editing; }
public void CopyFrom(VesselFlightStateUpdate update) { VesselId = update.VesselId; GameTimeStamp = update.GameTimeStamp; SubspaceId = update.SubspaceId; CtrlState.CopyFrom(update.CtrlState); }
public VesselFlightStateUpdate(VesselFlightStateMsgData msgData) { VesselId = msgData.VesselId; GameTimeStamp = msgData.GameTime; SubspaceId = msgData.SubspaceId; CtrlState.CopyFrom(msgData); }
public void Exit() { if (loadRequest != null) { loadRequest.Release(); } state = CtrlState.Release; this.OnExit(); }
public void CopyFrom(Vessel vessel) { if (vessel == null) { return; } CtrlState.CopyFrom(vessel.ctrlState); }
//当前帧执行什么动画 void DoActor() { //根据walk的方向决定图片朝向 if (actor.walk > 0) { if (spriteRenderer.flipX == true) { spriteRenderer.flipX = false; } } else if (actor.walk < 0) { if (spriteRenderer.flipX == false) { spriteRenderer.flipX = true; } } //如果只是走,就播放 走的动画 if (actor.walk != 0 && grounded) { anim.SetFloat("Speed", Math.Abs(actor.walk)); } //如果不动,就不动 else if (actor.walk == 0 && grounded) { anim.SetFloat("Speed", actor.walk); } //如果是跳,就播放 跳的动画,并让actor中的jump失效 anim.SetBool("Ground", grounded); //如果是互动,就播放 互动的动画,并让actor中的attack失效 if (actor.attack == 1) { anim.SetTrigger("attack"); soundEffects.clip = attackAudio; soundEffects.Play(); if (gender == Network.m_Actor.gender) { isDoingAttack = 1; } actor.attack = -1; } //如果死了,就播放 死的动画 if (actor.LifeState == -1) { ctrlState = CtrlState.NonPlayer; anim.SetBool("Dead", true); Invoke("ReStart", 2); } }
protected EnableEventArg EArg(CtrlState state, bool condition) { if (state == CtrlState.Enabled) { return(EventArg.Enable(true)); } if (state == CtrlState.Disabled) { return(EventArg.Enable(false)); } return(EventArg.Enable(condition)); }
/// <summary> /// Call this method to apply a vessel update using interpolation /// </summary> public FlightCtrlState GetInterpolatedValue() { if (!VesselCommon.IsSpectating && FlightGlobals.ActiveVessel && FlightGlobals.ActiveVessel.id == VesselId) { //Do not apply flight states updates to our OWN controlled vessel return(FlightGlobals.ActiveVessel.ctrlState); } if (InterpolationFinished && VesselFlightStateSystem.TargetFlightStateQueue.TryGetValue(VesselId, out var queue) && queue.TryDequeue(out var targetUpdate)) { if (Target == null) { //This is the case of first iteration GameTimeStamp = targetUpdate.GameTimeStamp - TimeSpan.FromMilliseconds(SettingsSystem.ServerSettings.SecondaryVesselUpdatesMsInterval).TotalSeconds; CopyFrom(FlightGlobals.FindVessel(VesselId)); } else { GameTimeStamp = Target.GameTimeStamp; SubspaceId = Target.SubspaceId; CtrlState.CopyFrom(Target.CtrlState); } LerpPercentage = 0; if (Target != null) { Target.CopyFrom(targetUpdate); VesselFlightStateSystem.TargetFlightStateQueue[VesselId].Recycle(targetUpdate); } else { Target = targetUpdate; } AdjustExtraInterpolationTimes(); //UpdateProtoVesselValues(); } if (Target == null) { return(InterpolatedCtrlState); } InterpolatedCtrlState.Lerp(CtrlState, Target.CtrlState, LerpPercentage); LerpPercentage += (float)(Time.fixedDeltaTime / InterpolationDuration); return(InterpolatedCtrlState); }
public unsafe CtrlState[] GetAllPortStateArray(ref byte portState) { CtrlState[] retVal = new CtrlState[8]; byte states = 0; GetAllPortState(ref states); for (int i = 0; i < 8; i++) { retVal[i] = ((states >> i) & 0x01) == 0x01 ? CtrlState.High : CtrlState.Low; } portState = (byte)states; return(retVal); }
public void SetPortState(uint port, CtrlState state) { if ((_ioModeMap & PortMask[port]) == PortMask[port]) { throw new ArgumentException("Port must be in output state to be set.", "port"); } if (state == CtrlState.High) { _ioStateMap |= PortMask[port]; } else { _ioStateMap &= (byte)~PortMask[port]; } SimpleIOClass.WritePort(_ioStateMap); }
/// <summary> /// Here we apply the CURRENT vessel flight state to this update. /// </summary> private void ProcessRestart() { if (Target != null) { GameTimeStamp = Target.GameTimeStamp; SubspaceId = Target.SubspaceId; CtrlState.CopyFrom(Target.CtrlState); } else { var vessel = FlightGlobals.fetch.LmpFindVessel(VesselId); if (vessel == null) { return; } CtrlState.CopyFrom(vessel.ctrlState); } }
public void Play() { if (pd != null) { switch (state) { case CtrlState.None: if (pd.timeUpdateMode != DirectorUpdateMode.Manual) { pd.timeUpdateMode = DirectorUpdateMode.Manual; } pd.Stop(); pd.Play(); state = CtrlState.Play; break; case CtrlState.Pause: state = CtrlState.Play; break; } } }
public CtrlState GetPortState(uint port) { CtrlState retVal = CtrlState.Floating; if ((_ioModeMap & PortMask[port]) != PortMask[port]) { throw new ArgumentException("Port must be in input state to be read.", "port"); } int stateVal = SimpleIOClass.ReadPortValue(); if (stateVal == 0x8000) { throw new Exception("Error reading port values"); } else { _ioStateMap = (byte)stateVal; retVal = ((_ioStateMap & PortMask[port]) == PortMask[port]) ? CtrlState.High : CtrlState.Low; } return(retVal); }
// Update is called once per frame protected void Update() { if (state == CtrlState.Play && pd != null) { int updateTimes = CalcEvaluateTimes(Time.deltaTime); if (updateTimes < 1) { var curTime = (float)pd.time + Time.deltaTime; if (curTime >= duration) { state = CtrlState.Stop; curTime = duration; } pd.time = curTime; pd.Evaluate(); } else { for (int i = 0; i < updateTimes; i++) { if (state != CtrlState.Play) { break; } var curTime = (float)pd.time + MinUpdateTime; if (curTime >= duration) { state = CtrlState.Stop; curTime = duration; } pd.time = curTime; pd.Evaluate(); } } } }
//生命周期------------------------------------------------------------------------- //供 ctrlManager 调用 public void StartLoad(Action finishCallback) { this.finishCallback = finishCallback; state = CtrlState.Loading; this.OnStartLoad(); }
public Chase(CtrlState _ctrlstate, GameObject tmonster) { ctrlState = _ctrlstate; this.tmonster = tmonster; }
public abstract void ToggleElements(CtrlState state);
/// <summary> /// Handles transition between controller-to-character parenting states /// </summary> /// <param name="fromState">initial state</param> /// <param name="toState">target state</param> /// <returns></returns> private CtrlState ChangeControlState(CtrlState fromState, CtrlState toState) { if (fromState == toState) { return(toState); } // Undo effects of the current state switch (fromState) { case CtrlState.None: break; case CtrlState.MaleControl: male_p_cf_bodybone.transform.parent = male.objTop.transform; break; case CtrlState.FemaleControl: if (SetParentMode.Value == ParentMode.AnimationOnly) { femaleSpinePos.transform.parent = null; } else { SetParentToController(femaleSpinePos, femaleBase, true); } break; case CtrlState.Following: if (SetParentMode.Value != ParentMode.PositionOnly) { AddAnimSpeedController(obj_chaF_001); } if (SetParentMode.Value == ParentMode.AnimationOnly) { femaleSpinePos.transform.parent = null; } male_p_cf_bodybone.transform.parent = male.objTop.transform; break; case CtrlState.Stationary: if (SetParentMode.Value != ParentMode.AnimationOnly) { SetParentToController(femaleSpinePos, femaleBase, true); } if (SetParentMode.Value != ParentMode.PositionOnly) { AddAnimSpeedController(obj_chaF_001); } break; } //Apply effects of the target state and update current state to target state switch (toState) { case CtrlState.None: return(CtrlState.None); case CtrlState.MaleControl: male_p_cf_bodybone.transform.parent = ParentSideController(oppositeSide: true).transform; return(CtrlState.MaleControl); case CtrlState.FemaleControl: SetParentToController(femaleSpinePos, femaleBase, false, notParentSide: true); return(CtrlState.FemaleControl); case CtrlState.Following: if (SetParentMode.Value == ParentMode.AnimationOnly) { SetParentToController(femaleSpinePos, femaleBase, false); } if (obj_chaF_001.GetComponent <AnimSpeedController>() != null) { UnityEngine.Object.Destroy(obj_chaF_001.GetComponent <AnimSpeedController>()); } male_p_cf_bodybone.transform.parent = female_p_cf_bodybone.transform; return(CtrlState.Following); case CtrlState.Stationary: if (SetParentMode.Value != ParentMode.AnimationOnly) { femaleSpinePos.transform.parent = null; } if (obj_chaF_001.GetComponent <AnimSpeedController>() != null) { UnityEngine.Object.Destroy(obj_chaF_001.GetComponent <AnimSpeedController>()); } return(CtrlState.Stationary); default: return(CtrlState.None); } }
private void ThreadPoolThreadProc(object state) { ICtrl ctrlr = (ICtrl)state; uint port = 0; CtrlMode curMode = CtrlMode.Output; CtrlState curState = CtrlState.High; for (uint i = 0; i < 8; i++) { ctrlr.SetPortMode(i, curMode); } while (true) { if (!stopShow.WaitOne(0, false)) { break; } ctrlr.SetAllPortState((byte)255); for (int j = 0; j < 8; j++) { if (++port > 7) { port = 0; } ctrlr.SetPortState(port, curState); curState = curState == CtrlState.High ? CtrlState.Low : CtrlState.High; Thread.Sleep(demoDelay); } for (int k = 0; k < 3; k++) { byte tempState = 0; ctrlr.GetAllPortState(ref tempState); tempState = (byte)~tempState; ctrlr.SetAllPortState(tempState); Thread.Sleep(demoDelay * 2); } for (int l = 0; l < 8; l++) { if (--port > 7) { port = 7; //port is a uint, so it will go high instead of negative } stopShow.WaitOne(); ctrlr.SetPortState(port, curState); curState = curState == CtrlState.High ? CtrlState.Low : CtrlState.High; Thread.Sleep(demoDelay); } for (int m = 0; m < 3; m++) { byte tempState = 0; ctrlr.GetAllPortState(ref tempState); tempState = (byte)~tempState; ctrlr.SetAllPortState(tempState); Thread.Sleep(demoDelay * 2); } } }
internal void Inactive() { state = CtrlState.Inactive; this.OnInactive(); }
protected EnableEventArg EArg(CtrlState state, bool condition) { if (state == CtrlState.Enabled) return EventArg.Enable(true); if (state == CtrlState.Disabled) return EventArg.Enable(false); return EventArg.Enable(condition); }
public Patrol(CtrlState _ctrlstate, GameObject tmonster) { ctrlState = _ctrlstate; this.tmonster = tmonster; }
public void Active() { state = CtrlState.Active; this.OnActive(); }
public void Init() { state = CtrlState.Inited; this.OnInit(); }
// Start is called before the first frame update protected void Awake() { state = CtrlState.None; pd = GetComponent <PlayableDirector>(); duration = (float)pd.duration - 0.01f; }
//public void OnTriggerEnter2D(Collider2D col) //{ // Debug.Log("123"); // if (col.tag == "Player") // { // Debug.Log("怪物碰到了主角"); // } // else // { // Debug.Log("NULL"); // } //} void Start() { ctrlstate = new CtrlState(); Patrol Monster = new Patrol(ctrlstate,this.gameObject); ctrlstate.SetEnemyState(Monster); }