Ejemplo n.º 1
0
        public void SaveCheckpoint()
        {
            foreach (SaveValue v in variablesToSave)
            {
                switch (v.name)
                {
                case "ACTIVE":
                    v.value = gameObject.activeInHierarchy.ToString();
                    break;

                case "POSITION":
                    v.value = transform.position.ToString();
                    break;

                case "ROTATION":
                    v.value = transform.rotation.ToString();
                    break;

                default:
                    EntityVariable entVariable = interactiveVariable.GetVariable(v.name, true);
                    if (entVariable == null)
                    {
                        Debug.LogWarning("Try to save a wrong variable (" + v + ") in gameObject : " + name, gameObject);
                        continue;
                    }
                    v.value = entVariable.Value;
                    break;
                }
            }
        }
Ejemplo n.º 2
0
 public void DisableCheckpoint()
 {
     if (player)
     {
         player.GetVariable("LIFE").RemoveOnSetValue(RespawnPlayer);
     }
     active = false;
 }
Ejemplo n.º 3
0
        public void Init()
        {
            if (active)
            {
                return;
            }

            associatedRespawnable.Clear();
            foreach (var obj in levelContainer.GetAllEntities())
            {
                associatedRespawnable.Add(obj);
            }

            player = levelContainer.Player?.GetComponent <InteractiveBehaviour>();
            if (player)
            {
                player.GetVariable("LIFE")?.AddOnSetValue(RespawnPlayer);
            }
            else
            {
                Debug.LogError("There is no player");
            }

            foreach (IRespawnable obj in associatedRespawnable)
            {
                obj.SaveCheckpoint();
            }
            active = true;
        }