--' Скриптовое положение у тела --' мы уже находимся в необходимом состоянии? class "eva_state_mgr_animstate" (property_evaluator) function eva_state_mgr_animstate:__init(name, st) super (nil, name) self.st = st end function eva_state_mgr_animstate:evaluate() return state_lib.states[self.st.target_state].animstate == self.st.animstate.states.current_state end --' Заняли ли мы сейчас какое то скриптовое положение тела class "eva_state_mgr_animstate_play_now" (property_evaluator) function eva_state_mgr_animstate_play_now:__init(name, st) super (nil, name) self.st = st end function eva_state_mgr_animstate_play_now:evaluate() return self.st.animstate.states.current_state ~= nil end --' Мы не находимся ни в каком скриптовом положении тела class "eva_state_mgr_animstate_idle_now" (property_evaluator) function eva_state_mgr_animstate_idle_now:__init(name, st) super (nil, name) self.st = st end function eva_state_mgr_animstate_idle_now:evaluate() return self.st.animstate.states.current_state == nil end --' Мы начали отыгрывать анимацию и ждем коллбека от нее class "eva_state_mgr_animstate_locked" (property_evaluator) function eva_state_mgr_animstate_locked:__init(name, st) super (nil, name) self.st = st end function eva_state_mgr_animstate_locked:evaluate() -- if self.st.fast_set == true then -- return false -- end return self.st.animstate.states.anim_marker ~= nil and self.st.animstate.states.anim_marker ~= 3 -- MARKER_IDLE end --' Играем входную анимацию class "act_state_mgr_animstate_start" (action_base) function act_state_mgr_animstate_start:__init(name, st) super (nil, name) self.st = st end function act_state_mgr_animstate_start:initialize() action_base.initialize(self) self.st.animstate:set_state(state_lib.states[self.st.target_state].animstate) self.st.animstate:set_control() end function act_state_mgr_animstate_start:execute() action_base.execute(self) end function act_state_mgr_animstate_start:finalize() action_base.finalize(self) end --' Играем выходную анимацию class "act_state_mgr_animstate_stop" (action_base) function act_state_mgr_animstate_stop:__init(name, st) super (nil, name) self.st = st end function act_state_mgr_animstate_stop:initialize() action_base.initialize(self) self.st.animstate:set_state(nil, self.st.fast_set or state_lib.states[self.st.target_state].fast_set) self.st.animstate:set_control() end function act_state_mgr_animstate_stop:execute() action_base.execute(self) end function act_state_mgr_animstate_stop:finalize() action_base.finalize(self) end