public StatesInstance(ReactEmoteChore master, GameObject emoter, EmoteReactable reactable, HashedString emote_kanim, HashedString[] emote_anims, KAnim.PlayMode mode) : base(master) { emoteKAnim = emote_kanim; emoteAnims = emote_anims; this.mode = mode; base.sm.reactable.Set(reactable, base.smi); base.sm.emoter.Set(emoter, base.smi); }
public ReactEmoteChore(IStateMachineTarget target, ChoreType chore_type, EmoteReactable reactable, HashedString emote_kanim, HashedString[] emote_anims, KAnim.PlayMode play_mode, Func <StatusItem> get_status_item) : base(chore_type, target, target.GetComponent <ChoreProvider>(), false, (Action <Chore>)null, (Action <Chore>)null, (Action <Chore>)null, PriorityScreen.PriorityClass.basic, 5, false, true, 0, false, ReportManager.ReportType.WorkTime) { AddPrecondition(ChorePreconditions.instance.IsMoving, null); AddPrecondition(ChorePreconditions.instance.IsOffLadder, null); AddPrecondition(ChorePreconditions.instance.NotInTube, null); AddPrecondition(ChorePreconditions.instance.IsAwake, null); getStatusItem = get_status_item; base.smi = new StatesInstance(this, target.gameObject, reactable, emote_kanim, emote_anims, play_mode); }
public static EmoteReactable CreateOneshotReactable(GameObject source, float lifetime, string id, ChoreType chore_type, HashedString animset, int range_width = 15, int range_height = 15, float min_reactor_time = 20f) { GameObject gameObject = Util.KInstantiate(Assets.GetPrefab(ID), source.transform.GetPosition()); EmoteReactable emoteReactable = new EmoteReactable(gameObject, id, chore_type, animset, range_width, range_height, 100000f, min_reactor_time, float.PositiveInfinity); emoteReactable.AddPrecondition(ReactorIsNotSource(source)); OneshotReactableHost component = gameObject.GetComponent <OneshotReactableHost>(); component.lifetime = lifetime; component.SetReactable(emoteReactable); gameObject.SetActive(true); return(emoteReactable); }