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; _listDirty = true; }
private bool AddTriggerToGroup_PEGI(ValueIndex arg = null) { if ((Trigger.searchMatchesFound != 0) || (Trigger.searchField.Length <= 3)) { return(false); } var selectedTrig = arg?.Trigger; if (selectedTrig != null) { try { if (Regex.IsMatch(selectedTrig.name, Trigger.searchField, RegexOptions.IgnoreCase)) { return(false); } } catch { //Debug.LogError(ex); return(false); } } var changed = false; if (icon.Add.ClickUnFocus("CREATE [" + Trigger.searchField + "]").changes(ref changed)) { Add(Trigger.searchField, arg); } return(changed); }
public virtual bool InspectInList(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); }
public static ValueIndex SetLastUsedTrigger(this ValueIndex index) { if (index != null) { index.TriggerIndexes = TriggerGroup.TryGetLastUsedTrigger(); } return(index); }
public static bool Edit(this UnNullableCfg <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); }
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); }
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.ClickConfirm("rnmTrg", "Rename {0} if group {1} to {2}".F(selectedTrig.name, selectedTrig.Group.GetNameForInspector(), 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.GetNameForInspector(), selectedTrig.Group.GetNameForInspector(), Browsed.GetNameForInspector())); } 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); }
public bool SearchAndAdd_Triggers_PEGI(int index) { bool changed = false; Trigger t = Trigger; if (this == edited) { t.Inspect().changes(ref changed); } if (pegi.FocusedName.Equals(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 { // Debug.Log("Focused {0}, foucsed name {1}".F(pegi.FocusedName, focusName)); if (index == Trigger.focusIndex) { Trigger.focusIndex = -2; } } if (this == selected) { changed |= TriggerGroup.AddTrigger_PEGI(this); } return(changed); }
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; } }
public static void Set(this UnNullableCfg <CountlessInt> uc, ValueIndex ind, int value) => uc[ind.groupIndex][ind.triggerIndex] = value;
public static int Get(this UnNullableCfg <CountlessInt> uc, ValueIndex ind) => uc[ind.groupIndex][ind.triggerIndex];
public static bool Get(this UnNullableCfg <CountlessBool> uc, ValueIndex ind) => uc[ind.groupIndex][ind.triggerIndex];