Make scripts LSL compliant.
parent
230a7ecaec
commit
2558f8ac31
|
@ -6,13 +6,40 @@
|
||||||
|
|
||||||
string text = "";
|
string text = "";
|
||||||
|
|
||||||
int LISTENING_CHANNEL = 43;
|
integer LISTENING_CHANNEL = 43;
|
||||||
|
|
||||||
// XXX Only putting this here as well to get around OpenSim's int -> string casting oddness
|
// XXX Only putting this here as well to get around OpenSim's int -> string casting oddness
|
||||||
string LISTENING_CHANNEL_STRING = "43";
|
string LISTENING_CHANNEL_STRING = "43";
|
||||||
|
|
||||||
// FIXME: Should be dynamic!
|
// FIXME: Should be dynamic!
|
||||||
int CHARS_WIDTH = 42;
|
integer CHARS_WIDTH = 42;
|
||||||
|
|
||||||
|
// Add some additional graffiti
|
||||||
|
addGraffiti(string message)
|
||||||
|
{
|
||||||
|
while (llStringLength(message) > CHARS_WIDTH)
|
||||||
|
{
|
||||||
|
text += "\n\n" + llGetSubString(message, 0, CHARS_WIDTH - 1);
|
||||||
|
message = llDeleteSubString(message, 0, CHARS_WIDTH - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
text += "\n\n" + message;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear the existing graffiti
|
||||||
|
clearGraffiti()
|
||||||
|
{
|
||||||
|
text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Actually fires the graffiti out to the dynamic texture module
|
||||||
|
draw()
|
||||||
|
{
|
||||||
|
//llSay(0, text);
|
||||||
|
string drawList = "PenColour BLACK; MoveTo 40,220; FontSize 32; Text " + text + ";";
|
||||||
|
|
||||||
|
osSetDynamicTextureData("", "vector", drawList, "1024", 0);
|
||||||
|
}
|
||||||
|
|
||||||
default
|
default
|
||||||
{
|
{
|
||||||
|
@ -45,30 +72,3 @@ default
|
||||||
draw();
|
draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add some additional graffiti
|
|
||||||
void addGraffiti(string message)
|
|
||||||
{
|
|
||||||
while (llStringLength(message) > CHARS_WIDTH)
|
|
||||||
{
|
|
||||||
text += "\n\n" + llGetSubString(message, 0, CHARS_WIDTH - 1);
|
|
||||||
message = llDeleteSubString(message, 0, CHARS_WIDTH - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
text += "\n\n" + message;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear the existing graffiti
|
|
||||||
void clearGraffiti()
|
|
||||||
{
|
|
||||||
text = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Actually fires the graffiti out to the dynamic texture module
|
|
||||||
void draw()
|
|
||||||
{
|
|
||||||
//llSay(0, text);
|
|
||||||
string drawList = "PenColour BLACK; MoveTo 40,220; FontSize 32; Text " + text + ";";
|
|
||||||
|
|
||||||
osSetDynamicTextureData("", "vector", drawList, "1024", 0);
|
|
||||||
}
|
|
||||||
|
|
|
@ -4,6 +4,33 @@ string text = "";
|
||||||
string add = "";
|
string add = "";
|
||||||
integer channel = 0; // if this is >= 0, llSay on that channel on updates
|
integer channel = 0; // if this is >= 0, llSay on that channel on updates
|
||||||
|
|
||||||
|
push_text()
|
||||||
|
{
|
||||||
|
compile_text();
|
||||||
|
draw_text();
|
||||||
|
}
|
||||||
|
|
||||||
|
compile_text()
|
||||||
|
{
|
||||||
|
title = "Some Title";
|
||||||
|
subtitle = "Some subtitle";
|
||||||
|
|
||||||
|
text = "Plenty of text for the main body.\n";
|
||||||
|
text += "You need to manual do line breaks\n";
|
||||||
|
text += "here. No word wrap yet.";
|
||||||
|
|
||||||
|
add = "Additional text at the bottom";
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_text()
|
||||||
|
{
|
||||||
|
string drawList = "MoveTo 40,80; PenColour RED; FontSize 48; Text " + title + ";";
|
||||||
|
drawList += "MoveTo 160,160; FontSize 32; Text " + subtitle + ";";
|
||||||
|
drawList += "PenColour BLACK; MoveTo 40,220; FontSize 24; Text " + text + ";";
|
||||||
|
drawList += "PenColour RED; FontName Times New Roman; MoveTo 40,900; Text " + add + ";";
|
||||||
|
osSetDynamicTextureData("", "vector", drawList, "1024", 0);
|
||||||
|
}
|
||||||
|
|
||||||
default {
|
default {
|
||||||
state_entry()
|
state_entry()
|
||||||
{
|
{
|
||||||
|
@ -18,30 +45,4 @@ default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void push_text()
|
|
||||||
{
|
|
||||||
compile_text();
|
|
||||||
draw_text();
|
|
||||||
}
|
|
||||||
|
|
||||||
void compile_text()
|
|
||||||
{
|
|
||||||
title = "Some Title";
|
|
||||||
subtitle = "Some subtitle";
|
|
||||||
|
|
||||||
text = "Plenty of text for the main body.\n";
|
|
||||||
text += "You need to manual do line breaks\n";
|
|
||||||
text += "here. No word wrap yet.";
|
|
||||||
|
|
||||||
add = "Additional text at the bottom";
|
|
||||||
}
|
|
||||||
|
|
||||||
void draw_text()
|
|
||||||
{
|
|
||||||
string drawList = "MoveTo 40,80; PenColour RED; FontSize 48; Text " + title + ";";
|
|
||||||
drawList += "MoveTo 160,160; FontSize 32; Text " + subtitle + ";";
|
|
||||||
drawList += "PenColour BLACK; MoveTo 40,220; FontSize 24; Text " + text + ";";
|
|
||||||
drawList += "PenColour RED; FontName Times New Roman; MoveTo 40,900; Text " + add + ";";
|
|
||||||
osSetDynamicTextureData("", "vector", drawList, "1024", 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,30 @@
|
||||||
|
integer count = 0;
|
||||||
|
integer refreshRate = 300;
|
||||||
|
string URL1 = "http://icons.wunderground.com/data/640x480/2xus_rd.gif";
|
||||||
|
string URL2 = "http://icons.wunderground.com/data/640x480/2xus_sf.gif";
|
||||||
|
string URL3 = "http://icons.wunderground.com/data/640x480/2xus_st.gif";
|
||||||
|
string dynamicID="";
|
||||||
|
string contentType="image";
|
||||||
|
|
||||||
|
void refresh_texture()
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
string url = "";
|
||||||
|
integer c = count % 3;
|
||||||
|
|
||||||
|
if (c == 0) {
|
||||||
|
url = URL1;
|
||||||
|
} else if (c == 1) {
|
||||||
|
url = URL2;
|
||||||
|
} else {
|
||||||
|
url = URL3;
|
||||||
|
}
|
||||||
|
// refresh rate is not yet respected here, which is why we need the timer
|
||||||
|
osSetDynamicTextureURL(dynamicID, contentType ,url , "", refreshRate );
|
||||||
|
}
|
||||||
|
|
||||||
default
|
default
|
||||||
{
|
{
|
||||||
integer count = 0;
|
|
||||||
integer refreshRate = 300;
|
|
||||||
string URL1 = "http://icons.wunderground.com/data/640x480/2xus_rd.gif";
|
|
||||||
string URL2 = "http://icons.wunderground.com/data/640x480/2xus_sf.gif";
|
|
||||||
string URL3 = "http://icons.wunderground.com/data/640x480/2xus_st.gif";
|
|
||||||
string dynamicID="";
|
|
||||||
string contentType="image";
|
|
||||||
|
|
||||||
state_entry()
|
state_entry()
|
||||||
{
|
{
|
||||||
refresh_texture();
|
refresh_texture();
|
||||||
|
@ -23,21 +40,4 @@ default
|
||||||
{
|
{
|
||||||
refresh_texture();
|
refresh_texture();
|
||||||
}
|
}
|
||||||
|
|
||||||
void refresh_texture()
|
|
||||||
{
|
|
||||||
count++;
|
|
||||||
string url = "";
|
|
||||||
integer c = count % 3;
|
|
||||||
|
|
||||||
if (c == 0) {
|
|
||||||
url = URL1;
|
|
||||||
} else if (c == 1) {
|
|
||||||
url = URL2;
|
|
||||||
} else {
|
|
||||||
url = URL3;
|
|
||||||
}
|
|
||||||
// refresh rate is not yet respected here, which is why we need the timer
|
|
||||||
osSetDynamicTextureURL(dynamicID, contentType ,url , "", refreshRate );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue