diff -Nur OpenSim-/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs --- OpenSim-/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs 2017-09-11 20:48:41.879838852 +0900 +++ OpenSim/Region/CoreModules/Scripting/DynamicTexture/DynamicTextureModule.cs 2017-09-11 21:07:20.691541767 +0900 @@ -46,6 +46,8 @@ { // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private UUID newTextureID = UUID.Zero; + private const int ALL_SIDES = -1; public const int DISP_EXPIRE = 1; @@ -125,7 +127,7 @@ if (RegisteredScenes.ContainsKey(updater.SimUUID)) { Scene scene = RegisteredScenes[updater.SimUUID]; - UUID newTextureID = updater.DataReceived(texture.Data, scene); + newTextureID = updater.DataReceived(texture.Data, scene); if (ReuseTextures && !updater.BlendWithOldTexture @@ -192,7 +194,7 @@ updater.ContentType = contentType; updater.Url = url; updater.UpdaterID = UUID.Random(); - updater.Params = extraParams; + updater.Params = extraParams.Trim().ToLower(); updater.BlendWithOldTexture = SetBlending; updater.FrontAlpha = AlphaValue; updater.Face = face; @@ -206,8 +208,16 @@ } } + newTextureID = UUID.Zero; RenderPlugins[contentType].AsyncConvertUrl(updater.UpdaterID, url, extraParams); - return updater.newTextureID; + + int lcount = 0; + while (newTextureID==UUID.Zero && lcount<20) { + System.Threading.Thread.Sleep(500); + lcount++; + } + return newTextureID; + //return updater.newTextureID; } return UUID.Zero; } @@ -254,7 +264,7 @@ updater.ContentType = contentType; updater.BodyData = data; updater.UpdaterID = UUID.Random(); - updater.Params = extraParams; + updater.Params = extraParams.Trim().ToLower(); updater.BlendWithOldTexture = SetBlending; updater.FrontAlpha = AlphaValue; updater.Face = face; @@ -418,6 +428,10 @@ /// public UUID UpdatePart(SceneObjectPart part, UUID textureID) { + char[] paramDelimiter = {',', ' '}; + string[] prms = Params.Split(paramDelimiter); + if (Array.IndexOf(prms, "noupdatepart")>=0) return UUID.Zero; + UUID oldID; lock (part) diff -Nur OpenSim-/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs --- OpenSim-/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs 2017-09-11 20:48:41.879838852 +0900 +++ OpenSim/Region/CoreModules/Scripting/HttpRequest/ScriptsHttpRequests.cs 2017-09-11 20:55:38.603135390 +0900 @@ -453,10 +453,13 @@ get { return _finished; } } - public static int HttpBodyMaxLenMAX = 16384; + // Fumi.Hax for OpenSim Diorama System + //public static int HttpBodyMaxLenMAX = 16384; + public static int HttpBodyMaxLenMAX = 409600; // Parameter members and default values - public int HttpBodyMaxLen = 2048; + //public int HttpBodyMaxLen = 2048; + public int HttpBodyMaxLen = HttpBodyMaxLenMAX - 1024; public string HttpMethod = "GET"; public string HttpMIMEType = "text/plain;charset=utf-8"; public int HttpTimeout; diff -Nur OpenSim-/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs --- OpenSim-/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs 2017-09-11 20:48:41.943837976 +0900 +++ OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs 2017-09-11 20:55:38.604135377 +0900 @@ -543,6 +543,97 @@ if (terrainModule != null) terrainModule.TaintTerrain(); } + + // Fumi.Iseki + public void osTerrainSetByString(string str, double rate) + { + CheckThreatLevel(ThreatLevel.High, "osTerrainSetByString"); + + m_host.AddScriptLPS(1); + if (!World.Permissions.IsAdministrator(m_host.OwnerID)) return; + + int i, j; + + int lnno = (int)(World.Heightmap.Height*rate+1); + double[,] hgt = new double[World.Heightmap.Width, lnno]; + for (i=0; i=lnno) break; + i = 0; + string line = rec.Trim(' '); + foreach(string itm in System.Text.RegularExpressions.Regex.Split(line, " {1,}")) { + if (i>=World.Heightmap.Width) break; + hgt[i, j] = double.Parse(itm); + i++; + } + j++; + } + + for (j=0; j3) return new LSL_Key(UUID.Zero.ToString()); + + IDynamicTextureManager textureManager = World.RequestModuleInterface(); + if (textureManager==null) return new LSL_Key(UUID.Zero.ToString()); + UUID textureID = textureManager.AddDynamicTextureURL(World.RegionInfo.RegionID, m_host.UUID, "image", url, "noUpdatePart"); + + // + IEstateModule estate = World.RequestModuleInterface(); + if (estate==null) return new LSL_Key(UUID.Zero.ToString()); + estate.setEstateTerrainBaseTexture(level, textureID); + + return new LSL_Key(textureID.ToString()); + } + + + // Fumi.Iseki + public void osTerrainFill(double height) + { + CheckThreatLevel(ThreatLevel.High, "osTerrainFill"); + + m_host.AddScriptLPS(1); + if (!World.Permissions.IsAdministrator(m_host.OwnerID)) return; + // + for (int j=0; j