internal void Reset() { bytes.Reset(); if (_userRestorable != null) { _userRestorable.Clear(); _userRestorable = null; } }
/// <summary> /// Register a new restorable object to the game state /// </summary> /// <param name="restorable">The restorable to be added</param> /// <exception cref="ArgumentException"> /// Thrown when the name of the restorable object is duplicated defined or the name of the restorable object /// is null /// </exception> public void AddRestorable(IRestorable restorable) { try { restorables.Add(restorable.restorableObjectName, restorable); } catch (ArgumentException ex) { throw new ArgumentException("Nova: a restorable should have an unique and not null name", ex); } }
protected override void OnZoneEntered(Collider player) { playerInZone = true; if (restorable == null) { restorable = player.GetComponent <IRestorable>(); } audioClipTranquilizer.PlayAudio(); StartCoroutine(RestoreHealth(healthPerSecond)); }
void RestoreToConfirmedFrame() { //skip the first frame because there is no systemData to restore to if (_currentInputFrameNumber > 1) { SWConsole.Crit($"Engine: RestoreToConfirmedFrame {_currentInputFrameNumber}"); SWSystemDataFrame systemDataFrame = systemDataFrames[_currentInputFrameNumber]; IRestorable restorable = systemDataFrame.GetUserRestorable(); if (restorable != null) { restorable.Restore(); } ReloadSystemDataSnapshot(systemDataFrame.bytes); systemDataFrame.bytes.SetReadIndex(0); } }
void ExportSimulationResult() { SWSystemDataFrame systemDataFrame = systemDataFrames[_currentInputFrameNumber]; if (systemDataFrame == null) { systemDataFrame = new SWSystemDataFrame(_currentInputFrameNumber); systemDataFrames[_currentInputFrameNumber] = systemDataFrame; } systemDataFrame.FrameNumber = _currentInputFrameNumber; systemDataFrame.Reset(); if (OnEngineWillExportEvent != null) { IRestorable restorable = OnEngineWillExportEvent(_currentInputFrameNumber); systemDataFrame.SetUserRestorable(restorable); } TakeSystemDataSnapshot(systemDataFrame.bytes); }
internal void SetUserRestorable(IRestorable restorable) { _userRestorable = restorable; }
/// <summary> /// remove a restorable /// </summary> /// <param name="restorable">the restorable to be removed</param> public void RemoveRestorable(IRestorable restorable) { restorables.Remove(restorable.restorableObjectName); }