Exemplo n.º 1
0
    private List <T> GetLinksOfType <T>(IDRef.Type type) where T : Component
    {
        List <T> toReturn = new List <T>();

        foreach (int link in links)
        {
            if (UFLevel.GetByID(link).type == type || type == IDRef.Type.All)
            {
                toReturn.Add(UFLevel.GetByID(link).objectRef.GetComponent <T>());
            }
        }
        return(toReturn);
    }
Exemplo n.º 2
0
    private void Trigger(bool positive, IDRef.Type ignoredType = IDRef.Type.None)
    {
        if (ignoredType == IDRef.Type.All)
        {
            return;
        }

        foreach (int link in links)
        {
            if (UFLevel.GetByID(link).type != ignoredType)
            {
                UFTrigger.Activate(link, positive);
            }
        }
    }
Exemplo n.º 3
0
 private void SetID(int id, IDRef.Type type)
 {
     if (idDictionary.Count <= id)
     {
         if (idDictionary.Capacity <= id)
         {
             idDictionary.Capacity = id + 1;
         }
         for (int i = idDictionary.Count; i <= id; i++)
         {
             idDictionary.Add(null);
         }
     }
     idDictionary[id] = new IDRef(id, type);
 }
Exemplo n.º 4
0
    private void Update()
    {
        if (GetEventTypeClass(type) == EventTypeClass.Detector)
        {
            if (Detect())
            {
                Trigger(true);
            }

            timer = 0f;
            return;
        }

        if (timer > 0f)
        {
            timer += Time.deltaTime;
        }

        if (timer > delay)
        {
            EventTypeClass etc = GetEventTypeClass(type);
            if (etc == EventTypeClass.Signal)
            {
                switch (type)
                {
                case UFLevelStructure.Event.EventType.Delay:
                    Trigger(positiveSignal);
                    timer = 0f;
                    break;

                case UFLevelStructure.Event.EventType.Cyclic_Timer:
                    Trigger(positiveSignal);
                    timer -= delay;
                    break;

                case UFLevelStructure.Event.EventType.Invert:
                    Trigger(!positiveSignal);
                    timer = 0f;
                    break;

                case UFLevelStructure.Event.EventType.Switch:
                    bool1 = !bool1;
                    Trigger(bool1);
                    timer = 0f;
                    break;
                }
            }
            else if (etc == EventTypeClass.Effect)
            {
                IDRef.Type ignoredType = DoEffect(positiveSignal);
                Trigger(positiveSignal, ignoredType);
                timer = 0f;
            }
            else if (etc == EventTypeClass.ContinuousEffect)
            {
                DoContinuousEffect();
            }
            else
            {
                Trigger(positiveSignal);
                timer = 0f;
            }
        }
    }