OsSetTerrainTexture
From OpenSimulator
(Difference between revisions)
m (Added note stating which version of OpenSim introduced this function) |
|||
| (9 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
{{osslfunc | {{osslfunc | ||
| − | |function_syntax= | + | |function_syntax= osSetTerrainTexture(integer level, key texture) |
| − | | | + | |description= |
| − | + | <span style="color:red"><b>Obsolete</b></span> use [[osSetTerrainTextures]]<br> | |
| + | Set the terrain texture of the estate to the texture given as key for legacy viewers and map. The level can be 0, 1, 2 or 3.<br> | ||
| + | This will not set the textures seen by recent viewers, use instead [[osSetTerrainTextures]] | ||
| + | |||
|threat_level=High | |threat_level=High | ||
|permissions=ESTATE_MANAGER,ESTATE_OWNER | |permissions=ESTATE_MANAGER,ESTATE_OWNER | ||
|delay=0 | |delay=0 | ||
| − | |ossl_example=<source lang = "lsl">// Default Terrain Textures by djphil 2018 | + | |ossl_example=<source lang = "lsl"> |
| + | // Default Terrain Textures by djphil 2018 | ||
default | default | ||
| Line 20: | Line 24: | ||
osSetTerrainTexture(3, "beb169c7-11ea-fff2-efe5-0f24dc881df2"); | osSetTerrainTexture(3, "beb169c7-11ea-fff2-efe5-0f24dc881df2"); | ||
osSetTerrainTextureHeight(3, 10.0, 60.0); | osSetTerrainTextureHeight(3, 10.0, 60.0); | ||
| + | } | ||
| + | } | ||
| + | </source> | ||
| + | <source lang = "lsl"> | ||
| + | // Random Terrain Texture | ||
| + | |||
| + | integer gTimerInterval = 300; // 300 seconds (5 minutes) | ||
| + | |||
| + | changeTextures() | ||
| + | { | ||
| + | // Get the number of terrain textures in the prim inventory | ||
| + | integer numTextures = llGetInventoryNumber(INVENTORY_TEXTURE); | ||
| + | |||
| + | // If there is at least one terrain texture | ||
| + | if (numTextures > 0) | ||
| + | { | ||
| + | // Loop through each corner | ||
| + | integer i; | ||
| + | for (i = 0; i < 4; ++i) | ||
| + | { | ||
| + | // Select a random terrain texture from the inventory | ||
| + | string randomTextureName = llGetInventoryName(INVENTORY_TEXTURE, llFloor(llFrand(numTextures))); | ||
| + | |||
| + | // Get the UUID | ||
| + | key randomTextureUUID = llGetInventoryKey(randomTextureName); | ||
| + | |||
| + | // Set the selected terrain texture for the current corner | ||
| + | osSetTerrainTexture(i, randomTextureUUID); | ||
| + | |||
| + | // Display the selected random texture UUID in chat | ||
| + | llOwnerSay("Selected random terrain texture" + (string)i + ": " + randomTextureName + " - " + randomTextureUUID); | ||
| + | } | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | llOwnerSay("No terrain textures found in the prim inventory."); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | default | ||
| + | { | ||
| + | state_entry() | ||
| + | { | ||
| + | // Start the timer to change textures every xxx seconds | ||
| + | llSetTimerEvent(gTimerInterval); | ||
| + | // Initial texture change | ||
| + | changeTextures(); | ||
| + | } | ||
| + | |||
| + | timer() | ||
| + | { | ||
| + | // Change textures when the timer fires | ||
| + | changeTextures(); | ||
| + | } | ||
| + | } | ||
| + | </source> | ||
| + | <source lang = "lsl"> | ||
| + | /* | ||
| + | osSetTerrainTexture(integer level, key texture) | ||
| + | osSetTerrainTextureHeight(integer corner, float low, float high) | ||
| + | |||
| + | Material: | ||
| + | Base Color | ||
| + | Metallic-Roughness | ||
| + | Emissive | ||
| + | Normal | ||
| + | */ | ||
| + | |||
| + | // This line defines an integer variable 'currentTextureSet'. | ||
| + | // This variable is used to store the current texture set. | ||
| + | // The value 0 represents Texture Set A, and the value 1 represents Texture Set B. | ||
| + | integer currentTextureSet = 0; | ||
| + | float TextureLow = 10.0; | ||
| + | float TextureHigh = 60.0; | ||
| + | |||
| + | // Standard Texture Set A (Base color only) | ||
| + | key Terrain_Dirt_A = "b8d3965a-ad78-bf43-699b-bff8eca6c975"; | ||
| + | key Terrain_Grass_A = "abb783e6-3e93-26c0-248a-247666855da3"; | ||
| + | key Terrain_Mountain_A = "179cdabd-398a-9b6b-1391-4dc333ba321f"; | ||
| + | key Terrain_Rock_A = "beb169c7-11ea-fff2-efe5-0f24dc881df2"; | ||
| + | |||
| + | // PBR Texture Set B (Material) | ||
| + | key Terrain_Dirt_B = "8da1cb17-8ced-4a70-94e8-41b2c45d952d"; | ||
| + | key Terrain_Grass_B = "4d1ec4f5-069a-4301-aa12-7d3cc5d46a70"; | ||
| + | key Terrain_Mountain_B = "95b317e4-c671-46d3-818a-270641aeb463"; | ||
| + | key Terrain_Rock_B = "f1bc94f2-f276-4aff-8687-5501e42148ac"; | ||
| + | |||
| + | // This function sets the texture to Texture Set A. | ||
| + | // It is called to set the default texture set. | ||
| + | setTextureSetA() | ||
| + | { | ||
| + | osSetTerrainTexture(0, Terrain_Dirt_A); | ||
| + | osSetTerrainTextureHeight(0, TextureLow, TextureHigh); | ||
| + | osSetTerrainTexture(1, Terrain_Grass_A); | ||
| + | osSetTerrainTextureHeight(1, TextureLow, TextureHigh); | ||
| + | osSetTerrainTexture(2, Terrain_Mountain_A); | ||
| + | osSetTerrainTextureHeight(2, TextureLow, TextureHigh); | ||
| + | osSetTerrainTexture(3, Terrain_Rock_A); | ||
| + | osSetTerrainTextureHeight(3, TextureLow, TextureHigh); | ||
| + | } | ||
| + | |||
| + | // This function sets the texture to Texture Set B. | ||
| + | // It is called to set the alternative texture set. | ||
| + | setTextureSetB() | ||
| + | { | ||
| + | osSetTerrainTexture(0, Terrain_Dirt_B); | ||
| + | osSetTerrainTextureHeight(0, TextureLow, TextureHigh); | ||
| + | osSetTerrainTexture(1, Terrain_Grass_B); | ||
| + | osSetTerrainTextureHeight(1, TextureLow, TextureHigh); | ||
| + | osSetTerrainTexture(2, Terrain_Mountain_B); | ||
| + | osSetTerrainTextureHeight(2, TextureLow, TextureHigh); | ||
| + | osSetTerrainTexture(3, Terrain_Rock_B); | ||
| + | osSetTerrainTextureHeight(3, TextureLow, TextureHigh); | ||
| + | } | ||
| + | |||
| + | default | ||
| + | { | ||
| + | state_entry() | ||
| + | { | ||
| + | // This function is called upon entering the state. | ||
| + | // It sets the initial texture set to Texture Set A. | ||
| + | setTextureSetA(); | ||
| + | } | ||
| + | |||
| + | touch_start(integer total_number) | ||
| + | { | ||
| + | // This function is called when the object is touched. | ||
| + | // It toggles between Texture Set A and B. | ||
| + | if (currentTextureSet == 0) | ||
| + | { | ||
| + | setTextureSetB(); | ||
| + | currentTextureSet = 1; | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | setTextureSetA(); | ||
| + | currentTextureSet = 0; | ||
| + | } | ||
} | } | ||
} | } | ||
Latest revision as of 14:33, 6 May 2025
osSetTerrainTexture(integer level, key texture)
| |
| Obsolete use osSetTerrainTextures Set the terrain texture of the estate to the texture given as key for legacy viewers and map. The level can be 0, 1, 2 or 3. | |
| Threat Level | High |
| Permissions | ESTATE_MANAGER,ESTATE_OWNER |
| Extra Delay | 0 seconds |
| Example(s) | |
// Default Terrain Textures by djphil 2018 default { state_entry() { osSetTerrainTexture(0, "b8d3965a-ad78-bf43-699b-bff8eca6c975"); osSetTerrainTextureHeight(0, 10.0, 60.0); osSetTerrainTexture(1, "abb783e6-3e93-26c0-248a-247666855da3"); osSetTerrainTextureHeight(1, 10.0, 60.0); osSetTerrainTexture(2, "179cdabd-398a-9b6b-1391-4dc333ba321f"); osSetTerrainTextureHeight(2, 10.0, 60.0); osSetTerrainTexture(3, "beb169c7-11ea-fff2-efe5-0f24dc881df2"); osSetTerrainTextureHeight(3, 10.0, 60.0); } } // Random Terrain Texture integer gTimerInterval = 300; // 300 seconds (5 minutes) changeTextures() { // Get the number of terrain textures in the prim inventory integer numTextures = llGetInventoryNumber(INVENTORY_TEXTURE); // If there is at least one terrain texture if (numTextures > 0) { // Loop through each corner integer i; for (i = 0; i < 4; ++i) { // Select a random terrain texture from the inventory string randomTextureName = llGetInventoryName(INVENTORY_TEXTURE, llFloor(llFrand(numTextures))); // Get the UUID key randomTextureUUID = llGetInventoryKey(randomTextureName); // Set the selected terrain texture for the current corner osSetTerrainTexture(i, randomTextureUUID); // Display the selected random texture UUID in chat llOwnerSay("Selected random terrain texture" + (string)i + ": " + randomTextureName + " - " + randomTextureUUID); } } else { llOwnerSay("No terrain textures found in the prim inventory."); } } default { state_entry() { // Start the timer to change textures every xxx seconds llSetTimerEvent(gTimerInterval); // Initial texture change changeTextures(); } timer() { // Change textures when the timer fires changeTextures(); } } /* osSetTerrainTexture(integer level, key texture) osSetTerrainTextureHeight(integer corner, float low, float high) Material: Base Color Metallic-Roughness Emissive Normal */ // This line defines an integer variable 'currentTextureSet'. // This variable is used to store the current texture set. // The value 0 represents Texture Set A, and the value 1 represents Texture Set B. integer currentTextureSet = 0; float TextureLow = 10.0; float TextureHigh = 60.0; // Standard Texture Set A (Base color only) key Terrain_Dirt_A = "b8d3965a-ad78-bf43-699b-bff8eca6c975"; key Terrain_Grass_A = "abb783e6-3e93-26c0-248a-247666855da3"; key Terrain_Mountain_A = "179cdabd-398a-9b6b-1391-4dc333ba321f"; key Terrain_Rock_A = "beb169c7-11ea-fff2-efe5-0f24dc881df2"; // PBR Texture Set B (Material) key Terrain_Dirt_B = "8da1cb17-8ced-4a70-94e8-41b2c45d952d"; key Terrain_Grass_B = "4d1ec4f5-069a-4301-aa12-7d3cc5d46a70"; key Terrain_Mountain_B = "95b317e4-c671-46d3-818a-270641aeb463"; key Terrain_Rock_B = "f1bc94f2-f276-4aff-8687-5501e42148ac"; // This function sets the texture to Texture Set A. // It is called to set the default texture set. setTextureSetA() { osSetTerrainTexture(0, Terrain_Dirt_A); osSetTerrainTextureHeight(0, TextureLow, TextureHigh); osSetTerrainTexture(1, Terrain_Grass_A); osSetTerrainTextureHeight(1, TextureLow, TextureHigh); osSetTerrainTexture(2, Terrain_Mountain_A); osSetTerrainTextureHeight(2, TextureLow, TextureHigh); osSetTerrainTexture(3, Terrain_Rock_A); osSetTerrainTextureHeight(3, TextureLow, TextureHigh); } // This function sets the texture to Texture Set B. // It is called to set the alternative texture set. setTextureSetB() { osSetTerrainTexture(0, Terrain_Dirt_B); osSetTerrainTextureHeight(0, TextureLow, TextureHigh); osSetTerrainTexture(1, Terrain_Grass_B); osSetTerrainTextureHeight(1, TextureLow, TextureHigh); osSetTerrainTexture(2, Terrain_Mountain_B); osSetTerrainTextureHeight(2, TextureLow, TextureHigh); osSetTerrainTexture(3, Terrain_Rock_B); osSetTerrainTextureHeight(3, TextureLow, TextureHigh); } default { state_entry() { // This function is called upon entering the state. // It sets the initial texture set to Texture Set A. setTextureSetA(); } touch_start(integer total_number) { // This function is called when the object is touched. // It toggles between Texture Set A and B. if (currentTextureSet == 0) { setTextureSetB(); currentTextureSet = 1; } else { setTextureSetA(); currentTextureSet = 0; } } } | |
| Notes | |
| This function was added in 0.7.4-post-fixes | |