public IStateSnippet GetState() { var state = new PlayerControllerStateSnippet { Clothes = this.Clothes.ToList().ConvertAll(x => x.Id), Appliances = this.Appliances.ConvertAll(x => new MedicalBodyApplianceSnippet { BodyPart = x.BodyPart, ItemId = x.Item.Id }), WarmthLevelTimeoutCounter = _warmthLevelTimeoutCounter, WetnessLevelTimeoutCounter = _wetnessLevelTimeoutCounter, WarmthLerpTarget = _warmthLerpTarget, WarmthLerpCounter = _warmthLerpCounter, WarmthLerpBase = _warmthLerpBase, SleepingCounter = _sleepingCounter, SleepDurationGameHours = _sleepDurationGameHours, SleepHealthCheckPeriod = _sleepHealthCheckPeriod, SleepHealthChecksLeft = _sleepHealthChecksLeft, SleepStartTime = _sleepStartTime, FatigueValueAfterSleep = _fatigueValueAfterSleep }; state.ChildStates.Add("WetnessController", _wetnessController.GetState()); return(state); }
public static void RestoreState(IGameController gc, ZaraEngine.StateManaging.ZaraEngineState state, Action <DateTime> restoreWorldTime) { restoreWorldTime?.Invoke(state.WorldTime.ToDateTime()); var inventoryData = new InventoryControllerStateSnippet(state.Inventory); var playerData = new PlayerControllerStateSnippet(state.Body); playerData.SetInventoryData(inventoryData); gc.Health.RestoreState(new HealthControllerStateSnippet(state.Health)); gc.Inventory.RestoreState(inventoryData); gc.Body.RestoreState(playerData); }