internal static void Add(PedHandle ped, State.Machine state) { Shiv.Log($"[StateScript] Add {state} to ped {ped}"); if (!machines.ContainsKey(ped)) { machines.Add(ped, state); } else { machines[ped].Add(state); } }
internal static void Set(PedHandle ped, State.Machine state) { Shiv.Log($"[StateScript] Interrupt {ped} with {state}"); if (!machines.ContainsKey(ped)) { machines.Add(ped, state); } else { machines[ped].Abort(); machines[ped] = state; } }
.Each((k) => machines.Remove(k)); // and remove them private static State Tick(PedHandle ped, State.Machine m) { UI.DrawHeadline(ped, $"State: {m.ToString()}"); return(m.OnTick()); }