mirror of https://github.com/bjornbytes/lovr.git
Animator:getPriority; Animator:setPriority;
This commit is contained in:
parent
5809a39a12
commit
03d3a9f77d
|
@ -131,6 +131,22 @@ int l_lovrAnimatorSetLooping(lua_State* L) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int l_lovrAnimatorGetPriority(lua_State* L) {
|
||||
Animator* animator = luax_checktype(L, 1, Animator);
|
||||
const char* animation = luaL_checkstring(L, 2);
|
||||
int priority = lovrAnimatorGetPriority(animator, animation);
|
||||
lua_pushinteger(L, priority);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int l_lovrAnimatorSetPriority(lua_State* L) {
|
||||
Animator* animator = luax_checktype(L, 1, Animator);
|
||||
const char* animation = luaL_checkstring(L, 2);
|
||||
int priority = luaL_checkinteger(L, 3);
|
||||
lovrAnimatorSetPriority(animator, animation, priority);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int l_lovrAnimatorGetSpeed(lua_State* L) {
|
||||
Animator* animator = luax_checktype(L, 1, Animator);
|
||||
if (lua_type(L, 2) == LUA_TSTRING) {
|
||||
|
@ -174,6 +190,8 @@ const luaL_Reg lovrAnimator[] = {
|
|||
{ "isPlaying", l_lovrAnimatorIsPlaying },
|
||||
{ "isLooping", l_lovrAnimatorIsLooping },
|
||||
{ "setLooping", l_lovrAnimatorSetLooping },
|
||||
{ "getPriority", l_lovrAnimatorGetPriority },
|
||||
{ "setPriority", l_lovrAnimatorSetPriority },
|
||||
{ "getSpeed", l_lovrAnimatorGetSpeed },
|
||||
{ "setSpeed", l_lovrAnimatorSetSpeed },
|
||||
{ NULL, NULL }
|
||||
|
|
|
@ -21,6 +21,7 @@ Animator* lovrAnimatorCreate(AnimationData* animationData) {
|
|||
.animation = &animationData->animations.data[i],
|
||||
.time = 0,
|
||||
.speed = 1,
|
||||
.priority = 0,
|
||||
.playing = false,
|
||||
.looping = false
|
||||
};
|
||||
|
@ -144,6 +145,16 @@ void lovrAnimatorSetLooping(Animator* animator, const char* animation, bool loop
|
|||
track->looping = looping;
|
||||
}
|
||||
|
||||
int lovrAnimatorGetPriority(Animator* animator, const char* animation) {
|
||||
Track* track = lovrAnimatorEnsureTrack(animator, animation);
|
||||
return track->priority;
|
||||
}
|
||||
|
||||
void lovrAnimatorSetPriority(Animator* animator, const char* animation, int priority) {
|
||||
Track* track = lovrAnimatorEnsureTrack(animator, animation);
|
||||
track->priority = priority;
|
||||
}
|
||||
|
||||
float lovrAnimatorGetSpeed(Animator* animator, const char* animation) {
|
||||
if (!animation) {
|
||||
return animator->speed;
|
||||
|
|
|
@ -10,6 +10,7 @@ typedef struct {
|
|||
float time;
|
||||
float speed;
|
||||
float alpha;
|
||||
int priority;
|
||||
bool playing;
|
||||
bool looping;
|
||||
} Track;
|
||||
|
@ -41,5 +42,7 @@ float lovrAnimatorGetDuration(Animator* animator, const char* animation);
|
|||
bool lovrAnimatorIsPlaying(Animator* animator, const char* animation);
|
||||
bool lovrAnimatorIsLooping(Animator* animator, const char* animation);
|
||||
void lovrAnimatorSetLooping(Animator* animator, const char* animation, bool looping);
|
||||
int lovrAnimatorGetPriority(Animator* animator, const char* animation);
|
||||
void lovrAnimatorSetPriority(Animator* animator, const char* animation, int priority);
|
||||
float lovrAnimatorGetSpeed(Animator* animator, const char* animation);
|
||||
void lovrAnimatorSetSpeed(Animator* animator, const char* animation, float speed);
|
||||
|
|
Loading…
Reference in New Issue