Adds osGetMapTexture() and osGetRegionMapTexture() methods to retrieve region map texture uuids
0.6.8-post-fixes
Justin Clark-Casey (justincc) 2009-11-12 19:42:35 +00:00
parent d95df603df
commit fe82471c2b
3 changed files with 81 additions and 32 deletions

View File

@ -199,7 +199,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
//Dumps an error message on the debug console. //Dumps an error message on the debug console.
// //
internal void OSSLShoutError(string message) internal void OSSLShoutError(string message)
{ {
if (message.Length > 1023) if (message.Length > 1023)
message = message.Substring(0, 1023); message = message.Substring(0, 1023);
@ -1176,7 +1176,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
land.SetMediaUrl(url); land.SetMediaUrl(url);
} }
public void osSetParcelSIPAddress(string SIPAddress) public void osSetParcelSIPAddress(string SIPAddress)
{ {
// What actually is the difference to the LL function? // What actually is the difference to the LL function?
@ -1184,7 +1184,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
CheckThreatLevel(ThreatLevel.VeryLow, "osSetParcelMediaURL"); CheckThreatLevel(ThreatLevel.VeryLow, "osSetParcelMediaURL");
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
ILandObject land ILandObject land
= World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
@ -1194,16 +1194,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
OSSLError("osSetParcelSIPAddress: Sorry, you need to own the land to use this function"); OSSLError("osSetParcelSIPAddress: Sorry, you need to own the land to use this function");
return; return;
} }
// get the voice module // get the voice module
IVoiceModule voiceModule = World.RequestModuleInterface<IVoiceModule>(); IVoiceModule voiceModule = World.RequestModuleInterface<IVoiceModule>();
if (voiceModule != null) if (voiceModule != null)
voiceModule.setLandSIPAddress(SIPAddress,land.LandData.GlobalID); voiceModule.setLandSIPAddress(SIPAddress,land.LandData.GlobalID);
else else
OSSLError("osSetParcelSIPAddress: No voice module enabled for this land"); OSSLError("osSetParcelSIPAddress: No voice module enabled for this land");
} }
public string osGetScriptEngineName() public string osGetScriptEngineName()
@ -1525,10 +1525,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
/*Instead of using the LSL Dataserver event to pull notecard data, /*Instead of using the LSL Dataserver event to pull notecard data,
this will simply read the requested line and return its data as a string. this will simply read the requested line and return its data as a string.
Warning - due to the synchronous method this function uses to fetch assets, its use Warning - due to the synchronous method this function uses to fetch assets, its use
may be dangerous and unreliable while running in grid mode. may be dangerous and unreliable while running in grid mode.
*/ */
public string osGetNotecardLine(string name, int line) public string osGetNotecardLine(string name, int line)
@ -1576,10 +1576,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
/*Instead of using the LSL Dataserver event to pull notecard data line by line, /*Instead of using the LSL Dataserver event to pull notecard data line by line,
this will simply read the entire notecard and return its data as a string. this will simply read the entire notecard and return its data as a string.
Warning - due to the synchronous method this function uses to fetch assets, its use Warning - due to the synchronous method this function uses to fetch assets, its use
may be dangerous and unreliable while running in grid mode. may be dangerous and unreliable while running in grid mode.
*/ */
@ -1634,10 +1634,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
} }
/*Instead of using the LSL Dataserver event to pull notecard data, /*Instead of using the LSL Dataserver event to pull notecard data,
this will simply read the number of note card lines and return this data as an integer. this will simply read the number of note card lines and return this data as an integer.
Warning - due to the synchronous method this function uses to fetch assets, its use Warning - due to the synchronous method this function uses to fetch assets, its use
may be dangerous and unreliable while running in grid mode. may be dangerous and unreliable while running in grid mode.
*/ */
@ -1837,7 +1837,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return World.RegionInfo.RegionSettings.LoadedCreationID; return World.RegionInfo.RegionSettings.LoadedCreationID;
} }
// Threat level is 'Low' because certain users could possibly be tricked into // Threat level is 'Low' because certain users could possibly be tricked into
// dropping an unverified script into one of their own objects, which could // dropping an unverified script into one of their own objects, which could
// then gather the physical construction details of the object and transmit it // then gather the physical construction details of the object and transmit it
@ -1861,7 +1861,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, LSL_Key cloneFrom) public LSL_Key osNpcCreate(string firstname, string lastname, LSL_Vector position, LSL_Key cloneFrom)
{ {
CheckThreatLevel(ThreatLevel.High, "osNpcCreate"); CheckThreatLevel(ThreatLevel.High, "osNpcCreate");
//QueueUserWorkItem //QueueUserWorkItem
INPCModule module = World.RequestModuleInterface<INPCModule>(); INPCModule module = World.RequestModuleInterface<INPCModule>();
if (module != null) if (module != null)
@ -1910,5 +1910,42 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
module.DeleteNPC(new UUID(npc.m_string), World); module.DeleteNPC(new UUID(npc.m_string), World);
} }
} }
/// <summary>
/// Get current region's map texture UUID
/// </summary>
/// <returns></returns>
public LSL_Key osGetMapTexture()
{
CheckThreatLevel(ThreatLevel.None, "osGetMapTexture");
return m_ScriptEngine.World.RegionInfo.RegionSettings.TerrainImageID.ToString();
}
/// <summary>
/// Get a region's map texture UUID by region UUID or name.
/// </summary>
/// <param name="regionName"></param>
/// <returns></returns>
public LSL_Key osGetRegionMapTexture(string regionName)
{
CheckThreatLevel(ThreatLevel.High, "osGetRegionMapTexture");
Scene scene = m_ScriptEngine.World;
UUID key = UUID.Zero;
GridRegion region;
//If string is a key, use it. Otherwise, try to locate region by name.
if (UUID.TryParse(regionName, out key))
region = scene.GridService.GetRegionByUUID(UUID.Zero, key);
else
region = scene.GridService.GetRegionByName(UUID.Zero, regionName);
// If region was found, return the regions map texture key.
if (region != null)
key = region.TerrainImage;
ScriptSleep(1000);
return key.ToString();
}
} }
} }

View File

@ -79,7 +79,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
// Avatar Info Commands // Avatar Info Commands
string osGetAgentIP(string agent); string osGetAgentIP(string agent);
LSL_List osGetAgents(); LSL_List osGetAgents();
// Teleport commands // Teleport commands
void osTeleportAgent(string agent, string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat); void osTeleportAgent(string agent, string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat);
@ -127,7 +127,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
string osGetScriptEngineName(); string osGetScriptEngineName();
string osGetSimulatorVersion(); string osGetSimulatorVersion();
Hashtable osParseJSON(string JSON); Hashtable osParseJSON(string JSON);
void osMessageObject(key objectUUID,string message); void osMessageObject(key objectUUID,string message);
void osMakeNotecard(string notecardName, LSL_Types.list contents); void osMakeNotecard(string notecardName, LSL_Types.list contents);
@ -138,7 +138,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
string osAvatarName2Key(string firstname, string lastname); string osAvatarName2Key(string firstname, string lastname);
string osKey2Name(string id); string osKey2Name(string id);
// Grid Info Functions // Grid Info Functions
string osGetGridNick(); string osGetGridNick();
string osGetGridName(); string osGetGridName();
@ -151,7 +151,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
string osLoadedCreationDate(); string osLoadedCreationDate();
string osLoadedCreationTime(); string osLoadedCreationTime();
string osLoadedCreationID(); string osLoadedCreationID();
LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules); LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules);
@ -160,5 +160,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
void osNpcSay(key npc, string message); void osNpcSay(key npc, string message);
void osNpcRemove(key npc); void osNpcRemove(key npc);
key osGetMapTexture();
key osGetRegionMapTexture(string regionName);
} }
} }

View File

@ -94,7 +94,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{ {
return m_OSSL_Functions.osWindActiveModelPluginName(); return m_OSSL_Functions.osWindActiveModelPluginName();
} }
// Not yet plugged in as available OSSL functions, so commented out // Not yet plugged in as available OSSL functions, so commented out
// void osWindParamSet(string plugin, string param, float value) // void osWindParamSet(string plugin, string param, float value)
// { // {
@ -138,14 +138,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public string osSetDynamicTextureURLBlendFace(string dynamicID, string contentType, string url, string extraParams, public string osSetDynamicTextureURLBlendFace(string dynamicID, string contentType, string url, string extraParams,
bool blend, int disp, int timer, int alpha, int face) bool blend, int disp, int timer, int alpha, int face)
{ {
return m_OSSL_Functions.osSetDynamicTextureURLBlendFace(dynamicID, contentType, url, extraParams, return m_OSSL_Functions.osSetDynamicTextureURLBlendFace(dynamicID, contentType, url, extraParams,
blend, disp, timer, alpha, face); blend, disp, timer, alpha, face);
} }
public string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams, public string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams,
bool blend, int disp, int timer, int alpha, int face) bool blend, int disp, int timer, int alpha, int face)
{ {
return m_OSSL_Functions.osSetDynamicTextureDataBlendFace(dynamicID, contentType, data, extraParams, return m_OSSL_Functions.osSetDynamicTextureDataBlendFace(dynamicID, contentType, data, extraParams,
blend, disp, timer, alpha, face); blend, disp, timer, alpha, face);
} }
@ -183,7 +183,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{ {
m_OSSL_Functions.osSetParcelMediaURL(url); m_OSSL_Functions.osSetParcelMediaURL(url);
} }
public void osSetParcelSIPAddress(string SIPAddress) public void osSetParcelSIPAddress(string SIPAddress)
{ {
m_OSSL_Functions.osSetParcelSIPAddress(SIPAddress); m_OSSL_Functions.osSetParcelSIPAddress(SIPAddress);
@ -211,7 +211,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
m_OSSL_Functions.osTeleportAgent(agent, position, lookat); m_OSSL_Functions.osTeleportAgent(agent, position, lookat);
} }
// Avatar info functions // Avatar info functions
public string osGetAgentIP(string agent) public string osGetAgentIP(string agent)
{ {
return m_OSSL_Functions.osGetAgentIP(agent); return m_OSSL_Functions.osGetAgentIP(agent);
@ -326,17 +326,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{ {
return m_OSSL_Functions.osGetScriptEngineName(); return m_OSSL_Functions.osGetScriptEngineName();
} }
public string osGetSimulatorVersion() public string osGetSimulatorVersion()
{ {
return m_OSSL_Functions.osGetSimulatorVersion(); return m_OSSL_Functions.osGetSimulatorVersion();
} }
public Hashtable osParseJSON(string JSON) public Hashtable osParseJSON(string JSON)
{ {
return m_OSSL_Functions.osParseJSON(JSON); return m_OSSL_Functions.osParseJSON(JSON);
} }
public void osMessageObject(key objectUUID,string message) public void osMessageObject(key objectUUID,string message)
{ {
m_OSSL_Functions.osMessageObject(objectUUID,message); m_OSSL_Functions.osMessageObject(objectUUID,message);
@ -412,7 +412,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
{ {
return m_OSSL_Functions.osLoadedCreationID(); return m_OSSL_Functions.osLoadedCreationID();
} }
public LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules) public LSL_List osGetLinkPrimitiveParams(int linknumber, LSL_List rules)
{ {
return m_OSSL_Functions.osGetLinkPrimitiveParams(linknumber, rules); return m_OSSL_Functions.osGetLinkPrimitiveParams(linknumber, rules);
@ -622,5 +622,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
} }
} }
} }
public key osGetMapTexture()
{
return m_OSSL_Functions.osGetMapTexture();
}
public key osGetRegionMapTexture(string regionName)
{
return m_OSSL_Functions.osGetRegionMapTexture(regionName);
}
} }
} }