Fix compile chain, and add final FFF version of boards
This commit is contained in:
parent
b1fc57b931
commit
a1a93ea994
17 changed files with 421 additions and 172 deletions
179
LSL/raw/Flash.lsl
Normal file
179
LSL/raw/Flash.lsl
Normal file
|
@ -0,0 +1,179 @@
|
|||
#include "variables.lsl"
|
||||
#include "functions.lsl"
|
||||
|
||||
default
|
||||
{
|
||||
state_entry()
|
||||
{
|
||||
llSetObjectName("FFF Stall Board Flash Drive [ZNI]");
|
||||
llListen(5, "", "", "");
|
||||
llListen(99, "", llGetOwner(), "");
|
||||
//llSay(0, "Memory stick is ready");
|
||||
g_iProtocol = 0x2110b;
|
||||
llSetLinkColor(LINK_ROOT, <1,0,0>, 6);
|
||||
//llSay(0, "Flash Memory is empty");
|
||||
|
||||
llSetText("", ZERO_VECTOR, 0);
|
||||
llSetLinkTexture(2, TEXTURE_TRANSPARENT, 1);
|
||||
}
|
||||
listen(integer c,string n,key i,string m){
|
||||
if(c == 99){
|
||||
// This is the ID of the board to download
|
||||
llRegionSayTo((key)m, 5, llList2Json(JSON_OBJECT, ["cmd", "memcpy", "protocol", g_iProtocol]));
|
||||
}else if(c == 5){
|
||||
if(llJsonGetValue(m,["cmd"])=="set" || llJsonGetValue(m,["cmd"])=="set_memstick"){
|
||||
g_sPayload = m;
|
||||
state fill;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
state fill{
|
||||
state_entry(){
|
||||
llSetTimerEvent(1);
|
||||
}
|
||||
timer(){
|
||||
switch(g_iFill){
|
||||
case 0:{
|
||||
llSetText("[]",<1,1,1>,1);
|
||||
g_kLeasedTo = (key)llJsonGetValue(g_sPayload, ["leasee"]);
|
||||
llSetLinkColor(LINK_ROOT, <0.75,0.15,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 1:{
|
||||
llSetText("[->]",<1,1,1>,1);
|
||||
g_kTexture = (key)llJsonGetValue(g_sPayload, ["texture"]);
|
||||
llSetLinkColor(LINK_ROOT, <0.75,0.25,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 2:{
|
||||
llSetText("[->->]",<1,1,1>,1);
|
||||
g_iExpireAt = (integer)llJsonGetValue(g_sPayload, ["expire_time"]);
|
||||
llSetLinkColor(LINK_ROOT, <0.5,0.5,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 3:{
|
||||
llSetText("[->->->]",<1,1,1>,1);
|
||||
g_kOwner = (key)llJsonGetValue(g_sPayload, ["owner"]);
|
||||
llSetLinkColor(LINK_ROOT, <0.25,0.75,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 4:{
|
||||
llSetText("[->->->->]",<1,1,1>,1);
|
||||
g_iNotifFlags = (integer)llJsonGetValue(g_sPayload, ["notif"]);
|
||||
llSetLinkColor(LINK_ROOT, <0.15,0.75,0>, 6);
|
||||
break;
|
||||
}
|
||||
default:{
|
||||
state full;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
g_iFill++;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
state full
|
||||
{
|
||||
state_entry(){
|
||||
llSetText("[Saving...]",<1,1,1>,1);
|
||||
UpdateDSRequest(NULL, llRequestAgentData(g_kLeasedTo, DATA_NAME), SetDSMeta(["leased"]));
|
||||
llSetLinkColor(LINK_ROOT, <0,1,0>, 6);
|
||||
llSetLinkTexture(2, g_kTexture, 1);
|
||||
|
||||
llListen(0x9f, "", "", "");
|
||||
}
|
||||
dataserver(key k,string d){
|
||||
if(HasDSRequest(k)!=-1){
|
||||
list lMeta = GetMetaList(k);
|
||||
if(llList2String(lMeta,0) == "leased"){
|
||||
g_sLeasedTo = d;
|
||||
DeleteDSReq(k);
|
||||
llSetText(g_sLeasedTo+"\n----\nStall Board Settings: 1", <0,1,1>,1);
|
||||
llSetObjectName("["+d+"] Stall Board FlashMemory [ZNI]");
|
||||
}
|
||||
}
|
||||
}
|
||||
touch_start(integer t){
|
||||
llSay(0, "click and hold for 5 seconds or longer to erase");
|
||||
llResetTime();
|
||||
}
|
||||
touch(integer t){
|
||||
if(llGetTime()>5){
|
||||
state empty;
|
||||
}
|
||||
}
|
||||
listen(integer c,string n,key i,string m)
|
||||
{
|
||||
if(llJsonGetValue(m,["cmd"]) == "retrieve")
|
||||
{
|
||||
g_kTransferDest = i;
|
||||
|
||||
state package;
|
||||
}
|
||||
}
|
||||
}
|
||||
state package
|
||||
{
|
||||
state_entry(){
|
||||
llSetText("[scp /flash.raw newboard:/import.raw]",<1,1,1>,1);
|
||||
g_sPayload = llList2Json(JSON_OBJECT,["lease", g_kLeasedTo, "texture", g_kTexture, "expire", g_iExpireAt, "owner", g_kOwner]);
|
||||
|
||||
g_sPayload = llList2Json(JSON_OBJECT, ["target", g_kTransferDest, "payload", g_sPayload]);
|
||||
|
||||
state empty;
|
||||
}
|
||||
}
|
||||
state empty
|
||||
{
|
||||
state_entry(){
|
||||
g_iFill = 0;
|
||||
llSetTimerEvent(1);
|
||||
}
|
||||
timer(){
|
||||
switch(g_iFill){
|
||||
case 0:{
|
||||
llSetLinkColor(LINK_ROOT, <0.15,0.75,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 1:{
|
||||
llSetLinkTexture(2, TEXTURE_TRANSPARENT, 1);
|
||||
|
||||
llSetLinkColor(LINK_ROOT, <0.25,0.75,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 2:{
|
||||
|
||||
llSetLinkColor(LINK_ROOT, <0.5,0.5,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 3:{
|
||||
|
||||
llSetLinkColor(LINK_ROOT, <0.75,0.25,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 4:{
|
||||
|
||||
llSetLinkColor(LINK_ROOT, <0.75,0.15,0>, 6);
|
||||
break;
|
||||
}
|
||||
case 5:{
|
||||
if(g_kTransferDest != NULL)
|
||||
llRegionSayTo(g_kTransferDest, 0x9f, g_sPayload);
|
||||
llSleep(1);
|
||||
llSetText("", ZERO_VECTOR,0);
|
||||
break;
|
||||
}
|
||||
default:{
|
||||
llResetScript();
|
||||
break;
|
||||
}
|
||||
}
|
||||
g_iFill++;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue