User:Meyermagic Salome

From Second Life Wiki
Revision as of 14:15, 27 September 2007 by Meyermagic Salome (talk | contribs)
Jump to navigation Jump to search

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