// Texture changer. Will cycle through all textures
// in the prims inventory.
//
// Kimm Paulino
// Written for Bebelou Naidoo, April 2010
float TIMER_PERIOD = 5.0; // in seconds.
integer RANDOM = 1; // 0 = sequential, 1 = random
// globals
integer gNumTextures;
integer gLastTexture;
default
{
on_rez (integer n)
{
llResetScript();
}
state_entry()
{
gLastTexture = 0;
gNumTextures = llGetInventoryNumber(INVENTORY_TEXTURE);
llSetTimerEvent(TIMER_PERIOD);
}
timer()
{
integer nextTexture;
if (RANDOM)
{
// Randomly choose one
nextTexture = (integer)llFrand (gNumTextures);
}
else
{
// Move on from the last one
gLastTexture ++;
if (gLastTexture > gNumTextures)
{
gLastTexture = 0;
}
nextTexture = gLastTexture;
}
string texture = llGetInventoryName(INVENTORY_TEXTURE, nextTexture);
if (texture != "")
{
llSetTexture(texture, ALL_SIDES);
}
}
changed (integer change)
{
if (change & CHANGED_INVENTORY)
{
llResetScript();
}
}
}