Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // V START Multi texture line rendering V
- list lines = [-1,-1,-1,-1,-1,-1];
- list faceordering = [3,7,4,6,1];
- list repeats = [<2.48,1,0>,<1,1,0>,<-15.15000,1,0>,<1,1,0>,<2.48000,1,0>];
- list offsets = [<-0.2559,0,0>,<0,0,0>,<1,0,0>,<0,0,0>,<-0.74,0,0>];
- list preload_multitexture_faces = [2,0,5];
- preload_multi(list data)
- {
- if(llGetListLength(data) == 4)
- {
- integer line = llList2Integer(data,0);
- if((line >= 1) && (line <= 6))
- {
- integer loop = 1;
- while(loop < 4)
- {
- integer face = llList2Integer(preload_multitexture_faces,loop-1);
- llSetLinkPrimitiveParamsFast(llList2Integer(lines,line-1),[PRIM_TEXTURE,face,llList2String(data,loop),<1,1,1>,<1,1,1>,0,PRIM_COLOR,face,<0,0,0>,0]);
- loop++;
- }
- }
- else llOwnerSay("Debug: unsupported preload_multi passed "+(string)line+"");
- }
- else llOwnerSay("Debug: incorrect data amount passed to preload_multi");
- }
- grayout(list data)
- {
- if(llGetListLength(data) == 2)
- {
- integer line = llList2Integer(data,0);
- integer block = llList2Integer(data,1);
- if((line >= 1) && (line <= 6) && (block >= 1) && (block <= 5))
- {
- llSetLinkPrimitiveParamsFast(llList2Integer(lines,line-1),[PRIM_COLOR,llList2Integer(faceordering,block-1),<0.2,0.2,0.2>,1]);
- }
- else llOwnerSay("Debug: unsupported grayout command passed "+(string)line+","+(string)block+"");
- }
- else llOwnerSay("Debug: incorrect data amount passed to grayout");
- }
- swaptexture(list data)
- {
- if(llGetListLength(data) == 3)
- {
- integer line = llList2Integer(data,0);
- integer block = llList2Integer(data,1);
- string texture = llList2String(data,2);
- if((line >= 1) && (line <= 6) && (block >= 1) && (block <= 5))
- {
- integer face = llList2Integer(faceordering,block-1);
- llSetLinkPrimitiveParamsFast(llList2Integer(lines,line-1),[PRIM_TEXTURE,face,texture,llList2Vector(repeats,block-1),llList2Vector(offsets,block-1),0,PRIM_COLOR,face,<1,1,1>,1]);
- }
- else llOwnerSay("Debug: unsupported swaptexture command passed "+(string)line+","+(string)block+"");
- }
- else llOwnerSay("Debug: incorrect data amount passed to swaptexture");
- }
- renderline(list data)
- {
- if(llGetListLength(data) == 6)
- {
- integer line = llList2Integer(data,0);
- if((line >= 1) && (line <= 6))
- {
- integer loop = 0;
- while(loop < 5)
- {
- integer face = llList2Integer(faceordering,loop);
- llSetLinkPrimitiveParamsFast(llList2Integer(lines,line-1),[PRIM_TEXTURE,face,llList2String(data,loop+1),llList2Vector(repeats,loop),llList2Vector(offsets,loop),0,PRIM_COLOR,face,<1,1,1>,1]);
- loop++;
- }
- }
- else llOwnerSay("Debug: unsupported renderline command passed "+(string)line+"");
- }
- else llOwnerSay("Debug: incorrect data amount passed to renderline");
- }
- // ^ END Multi texture line rendering ^
- // V START touchscreen rendering V
- list touch_screen_preload_faces = [0,2,4,3,5,1];
- integer touch_screen_active_face = 1;
- integer main_screen_link_id = -1;
- integer sub_screen_link_id = -1;
- preload(integer linkid,list textures)
- {
- if(llGetListLength(textures) == 6)
- {
- integer loop = 0;
- while(loop < 6)
- {
- integer face = llList2Integer(touch_screen_preload_faces,loop);
- llSetLinkPrimitiveParamsFast(linkid,[PRIM_TEXTURE,face,llList2String(textures,loop),<1,1,1>,<0,0,0>,0,PRIM_COLOR,face,<0,0,0>,1]);
- loop++;
- }
- }
- else llOwnerSay("Debug: incorrect data passed to preload");
- }
- render(integer linkid,string texture)
- {
- llSetLinkPrimitiveParamsFast(linkid,[PRIM_TEXTURE,touch_screen_active_face,texture,<1,1,1>,<0,0,0>,0,PRIM_COLOR,touch_screen_active_face,<1,1,1>,1]);
- }
- colorize(integer linkid,vector color)
- {
- llSetLinkPrimitiveParamsFast(linkid,[PRIM_COLOR,touch_screen_active_face,color,1]);
- }
- show(integer linkid)
- {
- llSetLinkAlpha(linkid,0,touch_screen_active_face);
- }
- hide(integer linkid)
- {
- llSetLinkAlpha(linkid,1,touch_screen_active_face);
- }
- // ^ END touchscreen rendering ^
- default
- {
- state_entry()
- {
- integer loop = 1;
- integer total = llGetNumberOfPrims();
- while(loop <= total)
- {
- string name = llGetLinkName(loop);
- if(name == "mainscreen") main_screen_link_id = loop;
- else if(name == "subscreen") sub_screen_link_id = loop;
- else
- {
- integer id = (integer)name;
- if(id > 0) lines = llListReplaceList(lines,[loop],id-1,id-1);
- }
- loop++;
- }
- }
- link_message(integer sender,integer num,string str,key id)
- {
- if(num == -1) // rendering commands
- {
- list data = llParseString2List(str,["@@"],[""]);
- if(id == "gray_out") grayout(data);
- else if(id == "swap_texture") swaptexture(data);
- else if(id == "render_line") renderline(data);
- else if(id == "preload_multi") preload_multi(data);
- else if(id == "preload_mainscreen") preload(main_screen_link_id,data);
- else if(id == "preload_subscreen") preload(sub_screen_link_id,data);
- else if(id == "render_mainscreen") render(main_screen_link_id,str);
- else if(id == "render_subscreen") render(sub_screen_link_id,str);
- else if(id == "blackout_mainscreen") colorize(main_screen_link_id,<0,0,0>);
- else if(id == "blackout_subscreen") colorize(sub_screen_link_id,<0,0,0>);
- else if(id == "show_mainscreen") show(main_screen_link_id);
- else if(id == "show_subscreen") show(sub_screen_link_id);
- else if(id == "hide_mainscreen") hide(main_screen_link_id);
- else if(id == "hide_subscreen") hide(sub_screen_link_id);
- else llOwnerSay("Debug: unsupported render command passed ["+(string)id+" / "+str+"]");
- }
- else if(num == 0) // system commands
- {
- if(id == "reset") llResetScript();
- }
- }
- }
Add Comment
Please, Sign In to add comment