private bool DisposeLogicResult(SceneLogicResult ret) { switch (ret) { case SceneLogicResult.SceneLogicResult_Destroy: { return(false); } break; case SceneLogicResult.SceneLogicResult_Continue: { return(true); } break; case SceneLogicResult.SceneLogicResult_NextState: { int next = (int)mLogicState + 1; if (!System.Enum.IsDefined(typeof(SceneLogicState), next)) { return(false); } ChangeState((SceneLogicState)next); } break; default: break; } return(true); }
override public bool LogicUpdate(uint elapsed) { if (!base.LogicUpdate(elapsed)) { return(false); } mLogicRunTime += elapsed; SceneLogicResult ret = SceneLogicResult.SceneLogicResult_Continue; switch (mLogicState) { case SceneLogicState.SceneLogicState_Invalid: { ret = InitLogicState(); } break; case SceneLogicState.SceneLogicState_Ready: { ret = ReadyStateUpdate(elapsed); } break; case SceneLogicState.SceneLogicState_Working: { ret = WorkingStateUpdate(elapsed); } break; case SceneLogicState.SceneLogicState_Closing: { ret = ClosingStateUpdate(elapsed); } break; case SceneLogicState.SceneLogicState_Destroy: { ret = DestroyStateUpdate(elapsed); } break; default: break; } return(DisposeLogicResult(ret)); }