public Constructor(GameStateSlot prototype, string id, GameStateMap state = null, OnClicked onClicked = null, OnDeleteClicked onDeleteClicked = null) : base(prototype, id, onClicked) { ConstructedSlot.State = state; ConstructedSlot.onDeleteClickedAction = onDeleteClicked; }
protected override async UniTask DeserializeState(GameStateMap stateMap) { // Invoked when the game is loaded. await base.DeserializeState(stateMap); RemoveAllItems(); var state = stateMap.GetState <GameState>(); if (state is null) { return; // empty state, do nothing } // Restore UI state. if (state.Slots?.Length > 0) { var tasks = new List <UniTask>(); for (int i = 0; i < state.Slots.Length; i++) { if (!string.IsNullOrEmpty(state.Slots[i].ItemId)) { tasks.Add(AddItemAtAsync(state.Slots[i].ItemId, i, state.Slots[i].StackCount)); } } await UniTask.WhenAll(tasks); } content.transform.position = state.Position; }
protected override async UniTask DeserializeState(GameStateMap stateMap) { await base.DeserializeState(stateMap); var state = stateMap.GetState <GameState>(name); if (state is null) { return; } var existingButtonIds = choiceButtons.Select(b => b.ChoiceState.Id).ToList(); foreach (var buttonId in existingButtonIds) { if (state.Buttons.All(s => s.Id != buttonId)) { RemoveChoiceButton(buttonId); } } foreach (var buttonState in state.Buttons) { if (choiceButtons.All(b => b.ChoiceState != buttonState)) { AddChoiceButton(buttonState); } } removeAllButtonsPending = state.RemoveAllButtonsPending; }
private UniTask DeserializeState(GameStateMap stateMap) { var state = stateMap.GetState <GameState>(name); if (state is null) { return(UniTask.CompletedTask); } var existingButtonIds = choiceButtons.Select(b => b.ChoiceState.Id).ToList(); foreach (var buttonId in existingButtonIds) { if (!state.Buttons.Any(s => s.Id == buttonId)) { RemoveChoiceButton(buttonId); } } foreach (var buttonState in state.Buttons) { if (!choiceButtons.Any(b => b.ChoiceState == buttonState)) { AddChoiceButton(buttonState); } } removeAllButtonsPending = state.RemoveAllButtonsPending; return(UniTask.CompletedTask); }
public virtual void SetEmptyState() { deleteButton.gameObject.SetActive(false); titleText.text = $"{NumberInGrid}. {EmptySlotLabel}"; thumbnailImage.texture = emptySlotThambnail; State = null; }
protected override void SerializeState(GameStateMap stateMap) { base.SerializeState(stateMap); var state = new GameState { Messages = messages.TakeLast(SaveCapacity).Select(m => m.GetState()).ToList() }; stateMap.SetState(state); }
private void SerializeState(GameStateMap stateMap) { var state = new GameState() { RemoveAllButtonsPending = removeAllButtonsPending, Buttons = choiceButtons.Select(b => b.ChoiceState).ToList() }; stateMap.SetState(state, name); }
private Task SerializeState(GameStateMap stateMap) { var state = new GameState() { RemoveAllButtonsPending = removeAllButtonsPending }; stateMap.SetState(state, name); return(Task.CompletedTask); }
protected virtual void SerializeState(GameStateMap stateMap) { if (SaveVisibilityState) { var state = new GameState { Visible = Visible }; stateMap.SetState(state, name); } }
private Task DeserializeState(GameStateMap stateMap) { var state = stateMap.GetState <GameState>(name); if (state is null) { return(Task.CompletedTask); } removeAllButtonsPending = state.RemoveAllButtonsPending; return(Task.CompletedTask); }
protected virtual void SerializeState(GameStateMap stateMap) { var state = new GameState() { Visible = Visible, HideOnClick = hideOnClick, AllowedSamplers = allowedSamplers }; stateMap.SetState(state, name); }
protected override void SerializeState(GameStateMap stateMap) { base.SerializeState(stateMap); var state = new GameState { RemoveAllButtonsPending = removeAllButtonsPending, Buttons = choiceButtons.Select(b => b.ChoiceState).ToList() }; stateMap.SetState(state, name); }
protected override void SerializeState(GameStateMap stateMap) { base.SerializeState(stateMap); var state = new GameState() { CurrentDate = varMan.GetVariableValue(date) }; stateMap.SetState(state); }
protected override async Task SerializeState(GameStateMap stateMap) { await base.SerializeState(stateMap); var state = new GameState() { Messages = messageStack.Take(saveCapacity).Select(m => m.GetState()).Reverse().ToList() }; stateMap.SetState(state); }
protected virtual Task SerializeState(GameStateMap stateMap) { if (saveVisibilityState) { var state = new GameState() { IsVisible = IsVisible }; stateMap.SetState(state, name); } return(Task.CompletedTask); }
protected virtual Task DeserializeState(GameStateMap stateMap) { if (saveVisibilityState) { var state = stateMap.GetState <GameState>(name); if (state is null) { return(Task.CompletedTask); } IsVisible = state.IsVisible; } return(Task.CompletedTask); }
protected override void SerializeState(GameStateMap stateMap) { base.SerializeState(stateMap); var state = new GameState { VariableName = variableName, SummaryText = summaryText.text, InputFieldText = inputField.text, PlayOnSubmit = playOnSubmit }; stateMap.SetState(state); }
public virtual void SetState(GameStateMap state) { if (state is null) { SetEmptyState(); return; } deleteButton.gameObject.SetActive(true); titleText.text = $"{NumberInGrid}. {state.SaveDateTime:yyyy-MM-dd HH:mm:ss}"; thumbnailImage.texture = state.Thumbnail; State = state; }
protected override void SerializeState(GameStateMap stateMap) { // Invoked when the game is saved. base.SerializeState(stateMap); // Serialize UI state. var state = new GameState { Position = content.transform.position, Slots = grid.InventorySlots.Select(s => s.GetSate()).ToArray() }; stateMap.SetState(state); }
protected override async UniTask DeserializeState(GameStateMap stateMap) { await base.DeserializeState(stateMap); var state = stateMap.GetState <GameState>(); if (state is null) { return; } variableName = state.VariableName; SetSummary(state.SummaryText); InputField.text = state.InputFieldText; playOnSubmit = state.PlayOnSubmit; }
protected override UniTask DeserializeState(GameStateMap stateMap) { base.DeserializeState(stateMap); var state = stateMap.GetState <GameState>(); if (state is null) { return(UniTask.CompletedTask); } varMan.SetVariableValue(date, state.CurrentDate); ConvertDate(); UpdateDate(); return(UniTask.CompletedTask); }
protected override async UniTask DeserializeState(GameStateMap stateMap) { await base.DeserializeState(stateMap); var state = stateMap.GetState <GameState>(); if (state is null) { return; } variableName = state.VariableName; summaryText.text = state.SummaryText; summaryText.gameObject.SetActive(!string.IsNullOrWhiteSpace(state.SummaryText)); inputField.text = state.InputFieldText; playOnSubmit = state.PlayOnSubmit; }
protected virtual UniTask DeserializeState(GameStateMap stateMap) { var state = stateMap.GetState <GameState>(name); if (state is null) { return(UniTask.CompletedTask); } Hide(); if (state.Visible) // TODO: Serialize onClick action. { Show(state.HideOnClick, null, state.AllowedSamplers); } return(UniTask.CompletedTask); }
public virtual void Bind(int slotNumber, GameStateMap state) { State = state; SlotNumber = slotNumber; if (state is null) { DeleteButton.gameObject.SetActive(false); SetTitleText(titleTemplate.Replace("{N}", SlotNumber.ToString()).Replace("{D}", EmptySlotLabel)); ThumbnailImage.texture = EmptySlotThumbnail; } else { DeleteButton.gameObject.SetActive(true); var date = state.SaveDateTime.ToString(dateFormat); SetTitleText(titleTemplate.Replace("{N}", SlotNumber.ToString()).Replace("{D}", date)); ThumbnailImage.texture = state.Thumbnail; } }
protected override async Task DeserializeState(GameStateMap stateMap) { await base.DeserializeState(stateMap); Clear(); var state = stateMap.GetState <GameState>(); if (state is null) { return; } if (state.Messages?.Count > 0) { foreach (var messageState in state.Messages) { SpawnMessage(messageState.MessageText, messageState.ActorNameText, messageState.VoiceClipNames); } } }
public virtual void BindSlot(int slotNumber, GameStateMap state) { Slots.FirstOrDefault(s => s.SlotNumber == slotNumber)?.Bind(slotNumber, state); }