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 }
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); }
public static ValueIndex SetLastUsedTrigger(this ValueIndex index) { if (index != null) { index.TriggerIndexes = TriggerGroup.TryGetLastUsedTrigger(); } return(index); }
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); }
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 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); }
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); }
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); }
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 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); }
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); }
public int GetTagEnum(ValueIndex ind) => enumTags.Get(ind);
public bool GetTagBool(ValueIndex ind) => boolTags.Get(ind);
public static void Set(this UnNullableCfg <CountlessBool> uc, ValueIndex ind, bool value) => uc[ind.groupIndex][ind.triggerIndex] = value;
public static void Set(this UnnullableSTD <CountlessInt> uc, ValueIndex ind, int value) => uc[ind.groupIndex][ind.triggerIndex] = value;
public static int Get(this UnnullableSTD <CountlessInt> uc, ValueIndex ind) => uc[ind.groupIndex][ind.triggerIndex];
public static bool Get(this UnnullableSTD <CountlessBool> uc, ValueIndex ind) => uc[ind.groupIndex][ind.triggerIndex];
public void SetTagBool(ValueIndex ind, bool value) => SetTagBool(ind.groupIndex, ind.triggerIndex, value);
public void SetTagEnum(ValueIndex ind, int value) => SetTagEnum(ind.groupIndex, ind.triggerIndex, value);
public bool Inspect(ValueIndex arg) => Inspect(arg.Trigger);