User:Meyermagic Salome
About me
Name: Meyer S. Jacobs
Alias: Meyermagic, if(x), |-1|
Age: 472794735 as of 1175103075 (seconds since the Unix Epoch)
Avoids: Carbonated drinks, dressing up, political parties, organized religion
Is drawn to: Math, physics, technology, interesting people, old cartoons, sci-fi, anime, good books, things that spin, magnets, food
My plot in TG SL: TransGrid Corporation HQ🖈
My DeviantART Page: Meyermagic on DeviantART
My last.fm Page: Meyermagic's Music Profile
Projects
Perception - A four part story
⇒ Part One: The Crystals of Power
⇒ Part Two: The Tower Archive
⇒ Part Three: Perpetual*
⇒ Part Four: Transcend
The WeFiki - A next generation web protocol
null_Void - My personal site; not yet online
Some code
My Single-prim, scrollable Image Gallery:
integer texture_count;
list textures;
integer current = 0;
string str_repeat(string src, integer count)
{
string output;
integer i;
for(i = 0; i < count; i++)
{
output += src;
}
return output;
}
next()
{
if(current < texture_count - 1)
{
current++;
}
else
{
current = 0;
}
llSetTexture(llList2String(textures, current), ALL_SIDES);
}
prev()
{
if(current > 0)
{
current--;
}
else
{
current = texture_count - 1;
}
llSetTexture(llList2String(textures, current), ALL_SIDES);
}
//list image_data()
//{
// return [];
//}
vector grab;
integer gc;
default
{
state_entry()
{
texture_count = llGetInventoryNumber(INVENTORY_TEXTURE);
integer i;
for(i = 0; i < texture_count; i++)
{
textures += [llGetInventoryKey(llGetInventoryName(INVENTORY_TEXTURE, i))];
}
llSetTexture(llList2String(textures, current), ALL_SIDES);
}
touch(integer num_detected)
{
grab = llDetectedGrab(0);
gc++;
float scroll = grab.x;
//float shift = grab.y;
float trans = scroll * (float)llPow(gc, 0.5);
//float vtrans = shift * (float)llPow(gc, 0.5);
if(trans > 5.0)
{
next();
gc = 0;
}
if(trans < -5.0)
{
prev();
gc = 0;
}
trans = trans / 5.0;
string prev_char;
string next_char;
if(trans > 0.0)
{
next_char = ">";
prev_char = "|";
trans = llFabs(trans);
if(trans > 1.0)
{
trans = 1.0;
}
llSetText(prev_char + str_repeat("-", (integer)(trans * 50)) + next_char + str_repeat("-", 50 - (integer)(trans * 50)) + "|", <1,1,1>, trans);
}
if(trans < 0.0)
{
next_char = "|";
prev_char = "<";
trans = llFabs(trans);
if(trans > 1.0)
{
trans = 1.0;
}
llSetText("|" + str_repeat("-", 50 - (integer)(trans * 50)) + prev_char + str_repeat("-", (integer)(trans * 50)) + next_char, <1,1,1>, trans);
}
}
touch_end(integer num_detected)
{
gc = 0;
llSetText("", <1,1,1>, 10.0);
}
changed(integer change)
{
if(change == CHANGED_INVENTORY)
{
key old = llList2Key(textures, current);
texture_count = llGetInventoryNumber(INVENTORY_TEXTURE);
textures = [];
integer i;
for(i = 0; i < texture_count; i++)
{
textures += [llGetInventoryKey(llGetInventoryName(INVENTORY_TEXTURE, i))];
}
if((current = llListFindList(textures, [old])) == -1)
{
current = 0;
}
llSetTexture(llList2String(textures, current), ALL_SIDES);
}
}
}
Notes
- *Title tentative