e4s-sdk/gamedata/scripts/state_mgr_animstate.script
2026-06-17 23:06:51 +03:00

94 lines
2.6 KiB
Text

--' Ñêðèïòîâîå ïîëîæåíèå ó òåëà
--' ìû óæå íàõîäèìñÿ â íåîáõîäèìîì ñîñòîÿíèè?
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