Esempio n. 1
0
        private void Add(string name, ValueIndex arg = null)
        {
            var ind = _triggers.AddNew();
            var t   = this[ind];

            t.name         = name;
            t.groupIndex   = IndexForPEGI;
            t.triggerIndex = ind;

            if (arg != null)
            {
                if (arg.IsBoolean)
                {
                    t.Usage = TriggerUsage.Boolean;
                }
                else
                {
                    t.Usage = TriggerUsage.Number;
                }

                arg.Trigger = t;
            }

            _lastUsedTrigger = ind;

#if !NO_PEGI
            _listDirty = true;
#endif
        }
Esempio n. 2
0
        public virtual bool PEGI_inList(IList list, int ind, ref int inspected)
        {
            var changed = false;

            if (this != edited)
            {
                changed = PEGI_inList_Sub(list, ind, ref inspected);

                if (icon.Edit.ClickUnFocus())
                {
                    edited = this;
                }

                changed |= SearchAndAdd_Triggers_PEGI(ind);
            }
            else
            {
                if (icon.FoldedOut.Click())
                {
                    edited = null;
                }

                Trigger.inspected = Trigger;

                Trigger.Inspect_AsInList();

                if (Trigger.inspected != Trigger)
                {
                    edited = null;
                }
            }


            return(changed);
        }
Esempio n. 3
0
 public static ValueIndex SetLastUsedTrigger(this ValueIndex index)
 {
     if (index != null)
     {
         index.TriggerIndexes = TriggerGroup.TryGetLastUsedTrigger();
     }
     return(index);
 }
Esempio n. 4
0
        public static bool Edit(this UnnullableSTD <CountlessInt> uc, ValueIndex ind)
        {
            var tmp = uc.Get(ind);//[ind.groupIndex][ind.triggerIndex];

            if (pegi.edit(ref tmp))
            {
                uc.Set(ind, tmp);
                return(true);
            }
            return(false);
        }
Esempio n. 5
0
        public static bool Toggle(this UnNullableCfg <CountlessBool> uc, ValueIndex ind)
        {
            var tmp = uc.Get(ind);//[ind.groupIndex][ind.triggerIndex];

            if (pegi.toggleIcon(ref tmp))
            {
                uc.Set(ind, tmp);
                return(true);
            }
            return(false);
        }
Esempio n. 6
0
        public bool AddTrigger_PEGI(ValueIndex arg)
        {
            bool changed = false;

            Trigger selectedTrig = arg?.Trigger;

            if ((Trigger.searchMatchesFound == 0) && (Trigger.searchField.Length > 3))
            {
                if ((selectedTrig != null && !selectedTrig.name.SameAs(Trigger.searchField)) &&
                    pegi.Click("Rename " + selectedTrig.name))
                {
                    selectedTrig.name = Trigger.searchField;
                    changed           = true;
                }

                if (selectedTrig == null || !Trigger.searchField.IsIncludedIn(selectedTrig.name))
                {
                    if (icon.Add.Click("CREATE [" + Trigger.searchField + "]"))
                    {
                        int     ind = triggers.AddNew();
                        Trigger t   = this[ind];
                        t.name         = Trigger.searchField;
                        t.groupIndex   = IndexForPEGI;
                        t.triggerIndex = ind;

                        if (arg != null)
                        {
                            arg.Trigger = t;
                        }

                        changed = true;
                    }

                    if (Browsed != null)
                    {
                        int slctd = Browsed.IndexForPEGI;
                        if (pegi.select(ref slctd, all))
                        {
                            Browsed = all[slctd];
                        }
                    }
                    else
                    {
                        "No Trigger Groups found".nl();
                    }
                }
                pegi.newLine();
            }

            return(changed);
        }
Esempio n. 7
0
        public static bool AddTrigger_PEGI(ValueIndex arg = null)
        {
            var changed = false;

            var selectedTrig = arg?.Trigger;

            if (Trigger.searchMatchesFound == 0 && selectedTrig != null && !selectedTrig.name.SameAs(Trigger.searchField))
            {
                var goodLength = Trigger.searchField.Length > 3;

                pegi.nl();

                if (goodLength && icon.Replace.ClickUnFocus(
                        "Rename {0} if group {1} to {2}".F(selectedTrig.name, selectedTrig.Group.ToPegiString(), Trigger.searchField)
                        ).changes(ref changed))
                {
                    selectedTrig.Using().name = Trigger.searchField;
                }

                var differentGroup = selectedTrig.Group != Browsed && Browsed != null;

                if (goodLength && differentGroup)
                {
                    icon.Warning.write("Trigger {0} is of group {1} not {2}".F(selectedTrig.ToPegiString(), selectedTrig.Group.ToPegiString(), Browsed.ToPegiString()));
                }

                var groupLost = all.GetAllObjsNoOrder();
                if (groupLost.Count > 0)
                {
                    var selected = Browsed?.IndexForPEGI ?? -1;

                    if (pegi.select(ref selected, all))
                    {
                        Browsed = all[selected];
                    }
                }
                else
                {
                    "No Trigger Groups found".nl();
                }

                if (goodLength)
                {
                    Browsed?.AddTriggerToGroup_PEGI(arg);
                }
            }

            pegi.nl();

            return(changed);
        }
Esempio n. 8
0
        public bool SearchAndAdd_PEGI(int index)
        {
            bool changed = false;

            pegi.newLine();
            pegi.Space();
            pegi.newLine();

            Trigger t = Trigger;

            if (this == edited)
            {
                t.PEGI();
            }

            if ((pegi.nameFocused == (focusName)) && (this != edited))
            {
                selected = this;

                if (Trigger.focusIndex != index)
                {
                    Trigger.focusIndex  = index;
                    Trigger.searchField = Trigger.name;
                }

                pegi.newLine();

                if (Search_PEGI(Trigger.searchField, Values.current))
                {
                    Trigger.searchField = Trigger.name;
                }

                selectedTrig = Trigger;
            }
            else if (index == Trigger.focusIndex)
            {
                Trigger.focusIndex = -2;
            }


            pegi.newLine();

            if (this == selected)
            {
                changed |= Group.AddTrigger_PEGI(this);
            }

            return(changed);
        }
Esempio n. 9
0
        public static void Apply(this ResultType type, int updateValue, ValueIndex dest, Values so)
        {
            switch (type)
            {
            case ResultType.SetBool:        dest.SetBool(so, (updateValue > 0));                                break;

            case ResultType.Set:            dest.SetInt(so, updateValue);                                       break;

            case ResultType.Add:            so.ints[dest.groupIndex].Add(dest.triggerIndex, updateValue);       break;

            case ResultType.Subtract:       so.ints[dest.groupIndex].Add(dest.triggerIndex, -updateValue);      break;

            case ResultType.SetTimeReal:    dest.SetInt(so, LogicMGMT.RealTimeNow());                           break;

            case ResultType.SetTimeGame:    dest.SetInt(so, (int)Time.time);                                    break;
                //   case ResultType.SetTagBool:     so.SetTagBool(dest.groupIndex, dest.triggerIndex, updateValue > 0); break;
                //   case ResultType.SetTagInt:      so.SetTagEnum(dest.groupIndex, dest.triggerIndex, updateValue);     break;
            }
        }
Esempio n. 10
0
        public bool SearchAndAdd_Triggers_PEGI(int index)
        {
            bool changed = false;

            Trigger t = Trigger;

            if (this == edited)
            {
                changed |= t.Inspect();
            }

            if ((pegi.nameFocused == (focusName)) && (this != edited))
            {
                selected = this;

                if (Trigger.focusIndex != index)
                {
                    Trigger.focusIndex  = index;
                    Trigger.searchField = Trigger.name;
                }

                if (Search_Triggers_PEGI(Trigger.searchField, Values.global))
                {
                    Trigger.searchField = Trigger.name;
                }

                selectedTrig = Trigger;
            }
            else if (index == Trigger.focusIndex)
            {
                Trigger.focusIndex = -2;
            }

            if (this == selected)
            {
                changed |= TriggerGroup.AddTrigger_PEGI(this);
            }

            return(changed);
        }
Esempio n. 11
0
        private bool AddTriggerToGroup_PEGI(ValueIndex arg = null)
        {
            if ((Trigger.searchMatchesFound != 0) || (Trigger.searchField.Length <= 3))
            {
                return(false);
            }


            var selectedTrig = arg?.Trigger;

            if (selectedTrig != null && Trigger.searchField.IsIncludedIn(selectedTrig.name))
            {
                return(false);
            }

            var changed = false;

            if (icon.Add.ClickUnFocus("CREATE [" + Trigger.searchField + "]").changes(ref changed))
            {
                Add(Trigger.searchField, arg);
            }

            return(changed);
        }
Esempio n. 12
0
 public int GetTagEnum(ValueIndex ind) => enumTags.Get(ind);
Esempio n. 13
0
 public bool GetTagBool(ValueIndex ind) => boolTags.Get(ind);
Esempio n. 14
0
 public static void Set(this UnNullableCfg <CountlessBool> uc, ValueIndex ind, bool value) => uc[ind.groupIndex][ind.triggerIndex] = value;
Esempio n. 15
0
 public static void Set(this UnnullableSTD <CountlessInt> uc, ValueIndex ind, int value) => uc[ind.groupIndex][ind.triggerIndex] = value;
Esempio n. 16
0
 public static int Get(this UnnullableSTD <CountlessInt> uc, ValueIndex ind) => uc[ind.groupIndex][ind.triggerIndex];
Esempio n. 17
0
 public static bool Get(this UnnullableSTD <CountlessBool> uc, ValueIndex ind) => uc[ind.groupIndex][ind.triggerIndex];
Esempio n. 18
0
 public void SetTagBool(ValueIndex ind, bool value) => SetTagBool(ind.groupIndex, ind.triggerIndex, value);
Esempio n. 19
0
 public void SetTagEnum(ValueIndex ind, int value) => SetTagEnum(ind.groupIndex, ind.triggerIndex, value);
Esempio n. 20
0
 public bool Inspect(ValueIndex arg) => Inspect(arg.Trigger);