Last improvements on the save front
This commit is contained in:
committed by
Michal Pikulski
parent
b3e0f90e09
commit
64253c1048
@@ -1,44 +1,82 @@
|
||||
using Core.Lifecycle;
|
||||
using Core.SaveLoad;
|
||||
using UnityEngine;
|
||||
using Pixelplacement;
|
||||
|
||||
public class BirdEyesBehavior : MonoBehaviour
|
||||
public class BirdEyesBehavior : ManagedBehaviour
|
||||
{
|
||||
private AppleMachine statemachine;
|
||||
private Animator animator;
|
||||
// Animator Hashes
|
||||
private static readonly int RightGuess = Animator.StringToHash("RightGuess");
|
||||
private static readonly int WrongGuess = Animator.StringToHash("WrongGuess");
|
||||
private static readonly int NoGuess = Animator.StringToHash("NoGuess");
|
||||
private static readonly int Wolterisout = Animator.StringToHash("wolterisout");
|
||||
|
||||
private AppleMachine _statemachine;
|
||||
private Animator _animator;
|
||||
public bool correctItemIsIn;
|
||||
[SerializeField] private Animator bushAnimator; // Assign in Inspector
|
||||
|
||||
// Save state
|
||||
private bool _wolterisoutTriggered;
|
||||
|
||||
// Enable save/load participation
|
||||
public override bool AutoRegisterForSave => true;
|
||||
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
statemachine = GetComponent<AppleMachine>();
|
||||
animator = GetComponentInChildren<Animator>();
|
||||
_statemachine = GetComponent<AppleMachine>();
|
||||
_animator = GetComponentInChildren<Animator>();
|
||||
}
|
||||
|
||||
public void CorrectItem()
|
||||
{
|
||||
correctItemIsIn = true;
|
||||
animator.SetTrigger("RightGuess");
|
||||
_animator.SetTrigger(RightGuess);
|
||||
BirdReveal();
|
||||
}
|
||||
|
||||
public void IncorrectItem()
|
||||
{
|
||||
correctItemIsIn = false;
|
||||
animator.SetTrigger("WrongGuess");
|
||||
_animator.SetTrigger(WrongGuess);
|
||||
}
|
||||
|
||||
public void NoItem()
|
||||
{
|
||||
animator.SetTrigger("NoGuess");
|
||||
_animator.SetTrigger(NoGuess);
|
||||
}
|
||||
|
||||
public void BirdReveal()
|
||||
{
|
||||
if (bushAnimator != null)
|
||||
{
|
||||
bushAnimator.SetTrigger("wolterisout");
|
||||
statemachine.ChangeState("BirdSpawned");
|
||||
return;
|
||||
bushAnimator.SetTrigger(Wolterisout);
|
||||
_wolterisoutTriggered = true;
|
||||
}
|
||||
statemachine.ChangeState ("BirdSpawned");
|
||||
_statemachine.ChangeState("BirdSpawned");
|
||||
}
|
||||
|
||||
protected override void OnSceneRestoreRequested(string serializedData)
|
||||
{
|
||||
base.OnSceneRestoreRequested(serializedData);
|
||||
|
||||
if (!string.IsNullOrEmpty(serializedData))
|
||||
{
|
||||
if (bool.TryParse(serializedData, out bool wasTriggered))
|
||||
{
|
||||
_wolterisoutTriggered = wasTriggered;
|
||||
|
||||
// If it was triggered before, set it again on restore
|
||||
if (_wolterisoutTriggered && bushAnimator != null)
|
||||
{
|
||||
bushAnimator.SetTrigger(Wolterisout);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override string OnSceneSaveRequested()
|
||||
{
|
||||
return _wolterisoutTriggered.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user