//* -----------------------------------------------------------------------* /// <summary>1フレーム分の更新処理を実行します。</summary> /// /// <param name="entity">この状態を適用されているオブジェクト。</param> /// <param name="privateMembers"> /// オブジェクトと状態クラスのみがアクセス可能なフィールド。 /// </param> /// <param name="gameTime">前フレームが開始してからの経過時間。</param> public override void update(CPresenceManager entity, object privateMembers, GameTime gameTime) { int phaseCount = entity.counter % entity.interval; if (phaseCount == 0) { IList <SPresence> presenceList = entity.presenceList; int length = presenceList.Count; bool trial = CGuideWrapper.instance.IsTrialMode; if (length > 0 || trial) { int phase = (entity.counter / entity.interval) % (length + (trial ? 1 : 0)); SPresence presence = phase == length ? SPresence.trialMode : presenceList[phase]; entity.setPresence(presence); #if TRACE CLogger.add(presence); #endif } } }
//* -----------------------------------------------------------------------* /// <summary>プレゼンス情報を設定します。</summary> /// /// <param name="presence">プレゼンス情報。</param> public void setPresence(SPresence presence) { setPresence(presence.mode, presence.value); }