mirror of
https://github.com/bjornbytes/lovr.git
synced 2024-07-02 12:33:52 +00:00
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;
|
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) {
|
int l_lovrAnimatorGetSpeed(lua_State* L) {
|
||||||
Animator* animator = luax_checktype(L, 1, Animator);
|
Animator* animator = luax_checktype(L, 1, Animator);
|
||||||
if (lua_type(L, 2) == LUA_TSTRING) {
|
if (lua_type(L, 2) == LUA_TSTRING) {
|
||||||
|
@ -174,6 +190,8 @@ const luaL_Reg lovrAnimator[] = {
|
||||||
{ "isPlaying", l_lovrAnimatorIsPlaying },
|
{ "isPlaying", l_lovrAnimatorIsPlaying },
|
||||||
{ "isLooping", l_lovrAnimatorIsLooping },
|
{ "isLooping", l_lovrAnimatorIsLooping },
|
||||||
{ "setLooping", l_lovrAnimatorSetLooping },
|
{ "setLooping", l_lovrAnimatorSetLooping },
|
||||||
|
{ "getPriority", l_lovrAnimatorGetPriority },
|
||||||
|
{ "setPriority", l_lovrAnimatorSetPriority },
|
||||||
{ "getSpeed", l_lovrAnimatorGetSpeed },
|
{ "getSpeed", l_lovrAnimatorGetSpeed },
|
||||||
{ "setSpeed", l_lovrAnimatorSetSpeed },
|
{ "setSpeed", l_lovrAnimatorSetSpeed },
|
||||||
{ NULL, NULL }
|
{ NULL, NULL }
|
||||||
|
|
|
@ -21,6 +21,7 @@ Animator* lovrAnimatorCreate(AnimationData* animationData) {
|
||||||
.animation = &animationData->animations.data[i],
|
.animation = &animationData->animations.data[i],
|
||||||
.time = 0,
|
.time = 0,
|
||||||
.speed = 1,
|
.speed = 1,
|
||||||
|
.priority = 0,
|
||||||
.playing = false,
|
.playing = false,
|
||||||
.looping = false
|
.looping = false
|
||||||
};
|
};
|
||||||
|
@ -144,6 +145,16 @@ void lovrAnimatorSetLooping(Animator* animator, const char* animation, bool loop
|
||||||
track->looping = looping;
|
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) {
|
float lovrAnimatorGetSpeed(Animator* animator, const char* animation) {
|
||||||
if (!animation) {
|
if (!animation) {
|
||||||
return animator->speed;
|
return animator->speed;
|
||||||
|
|
|
@ -10,6 +10,7 @@ typedef struct {
|
||||||
float time;
|
float time;
|
||||||
float speed;
|
float speed;
|
||||||
float alpha;
|
float alpha;
|
||||||
|
int priority;
|
||||||
bool playing;
|
bool playing;
|
||||||
bool looping;
|
bool looping;
|
||||||
} Track;
|
} Track;
|
||||||
|
@ -41,5 +42,7 @@ float lovrAnimatorGetDuration(Animator* animator, const char* animation);
|
||||||
bool lovrAnimatorIsPlaying(Animator* animator, const char* animation);
|
bool lovrAnimatorIsPlaying(Animator* animator, const char* animation);
|
||||||
bool lovrAnimatorIsLooping(Animator* animator, const char* animation);
|
bool lovrAnimatorIsLooping(Animator* animator, const char* animation);
|
||||||
void lovrAnimatorSetLooping(Animator* animator, const char* animation, bool looping);
|
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);
|
float lovrAnimatorGetSpeed(Animator* animator, const char* animation);
|
||||||
void lovrAnimatorSetSpeed(Animator* animator, const char* animation, float speed);
|
void lovrAnimatorSetSpeed(Animator* animator, const char* animation, float speed);
|
||||||
|
|
Loading…
Reference in a new issue