Log Entries
• November 2007
• December 2007
• January 2008
• February 2008
• March 2008
• May 2008
• June 2008
• July 2008
• August 2008
• September 2008
• October 2008
• November 2008
• The history of the SL Dumpster
Next improvement on the decay script:
// composter script by eteam vers 2.1
//mod from Growth Script
//By Floog Stuart
//Some parts of the script taken from Cid Jacob's Photosynthesis Script.
//
//Makes a prim shrink along its longest side (when the sun is out). Starts decaying when touched.
//If you edit this script please give credit to Floog Stuart and Cid Jacob and eteam.
vector direction; // States the variables used in the script
vector scale;
float growth;
vector pos;
float repos;
// trying to determine the largest scale value
float scale1;
float scale2;
string coord;
float growthx = 1.0;
float growthy = 1.0;
float growthz = 1.0;
comparexyz() {
vector scale = llGetScale();
if (scale.x > scale.y) {
scale1 = scale.x;
coord = "x";
}
else
{ scale1 = scale.y;
coord = "y";
}
if (scale1 > scale.z){
scale2 = scale1;
//llSay(0, "part21");
}
else
{
scale2 = scale.z;
coord = "z";
//llSay(0, "part22");
}
if (coord == "y"){
//llSay(0, "yyy");
growthy = llFrand(0.099) + 0.9;
}
if (coord == "x"){
//llSay(0, "xxx");
growthx = llFrand(0.099) + 0.9;
}
if (coord == "z"){
//llSay(0, "zzz");
growthz = llFrand(0.099) + 0.9;
}
}
findmin() {
if (coord == "y"){
//llSay(0, "yyy");
float growth_percent = scale.y / .100;
llSetText("Decay " + (string)growth_percent + "%",<1,1,1>,1.0 ); //Adds the Decay Percentage above the prim.
if ( scale.y < 0.02000 ) // checks for minimum?
{
llSetText("composted",<1,1,1>,1); //Says that the prim is pretty much gone.
state fullgrown; //Goes to state fullgrown
}
}
if (coord == "x"){
//llSay(0, "xxx");
float growth_percent = scale.x / .100;
llSetText("Decay " + (string)growth_percent + "%",<1,1,1>,1.0 ); //Adds the Decay Percentage above the prim.
if ( scale.x < 0.02000 ) // checks for minimum?
{
llSetText("composted",<1,1,1>,1); //Says that the prim is pretty much gone.
state fullgrown; //Goes to state fullgrown
}
}
if (coord == "z"){
//llSay(0, "zzz");
float growth_percent = scale.z / .100;
llSetText("Decay " + (string)growth_percent + "%",<1,1,1>,1.0 ); //Adds the Decay Percentage above the prim.
if ( scale.z < 0.02000 ) // checks for minimum?
{
llSetText("composted",<1,1,1>,1); //Says that the prim is pretty much gone.
state fullgrown; //Goes to state fullgrown
}
}
}
default
{
state_entry()
{
llSetText("",<1,1,1>,1); //Clears Text above prim.
}
touch_start(integer num_detected)
{
comparexyz();
llSetTimerEvent(15); //Starts growth in 15 seconds
}
timer()
{
//Growth Timer
float FloatValue = llFrand(1000); //Creates a random value between 1000 and 0 to be used to decide how many seconds to delay between growth
//float FloatValue = 1000;
if (FloatValue < 600) //if the random value is below 600 seconds
{
float AddedValue = FloatValue + 600; //it adds 600 more seconds
llSetTimerEvent(AddedValue); //Sets the new growth delay to AddedValue
}
else //If the random Value was above 600.
{
llSetTimerEvent(FloatValue); //Set the new growth delay to FloatValue
}
//Decay
direction = llGetSunDirection(); //Checks to make sure the sun is up.
if ( direction.z > 0 ) //If the sun is up.
{
scale = llGetScale(); //Gets the size of the plant.
llSetScale(<scale.x * growthx,scale.y * growthy,scale.z * growthz>); // Adds the amount it needs to decay along it's longest side.
//Decay Percentage
findmin();
}
}
}
state fullgrown //state fullgrown is used to delete the decayed "trash" object.
{
state_entry()
{
llSetText("composted",<1,1,1>,1);
llDie();
}
}