From 75479092567ed643ea1aaa231d87e6aeb829c068 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 6 Dec 2023 22:47:14 +0000 Subject: [PATCH] a few changes to materials --- .../ClientStack/Linden/UDP/LLClientView.cs | 34 +++++++++++-------- .../Region/Framework/Scenes/UuidGatherer.cs | 4 ++- bin/assets/AssetSets.xml | 4 +++ 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 86b8424047..04f23bf5f5 100755 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -5497,30 +5497,36 @@ namespace OpenSim.Region.ClientStack.LindenUDP { if(sop.Shape.RenderMaterials is null) continue; - OSDMap data = new(3) - { - ["id"] = (int)sop.LocalId - }; - OSDArray sides = new(); - OSDArray sidesdata = new(); - if( sop.Shape.RenderMaterials.overrides is not null && + + string inner; + if (sop.Shape.RenderMaterials.overrides is not null && sop.Shape.RenderMaterials.overrides.Length > 0) { + OSDMap data = new(3) + { + ["id"] = (int)sop.LocalId + }; + OSDArray sides = new(); + OSDArray sidesdata = new(); + foreach (Primitive.RenderMaterials.RenderMaterialOverrideEntry ovr in sop.Shape.RenderMaterials.overrides) { sides.Add(ovr.te_index); sidesdata.Add(string.IsNullOrEmpty(ovr.data) ? new OSD() : new OSDllsdxml(ovr.data)); } - } - data["te"] = sides; - data["od"] = sidesdata; - string inner = OSDParser.SerializeLLSDNotation(data); - if (inner.Length < 4) - continue; + data["te"] = sides; + data["od"] = sidesdata; + + inner = OSDParser.SerializeLLSDNotation(data); + if (inner.Length < 4) + continue; + } + else + inner = $"{{'id':i{sop.LocalId},'od':[],'te':[]}}"; byte[] innerB = Util.UTF8NBGetbytes(inner); - if (innerB.Length > 4096 - 32) + if (innerB.Length > 4096 - 16) { m_log.Debug($"[LLCLIENTVIEW]: GenericStreamingMessage packet too large ({innerB.Length})"); continue; diff --git a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs index 9c3a39fe07..6511207878 100644 --- a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs +++ b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs @@ -217,7 +217,9 @@ namespace OpenSim.Region.Framework.Scenes new UUID("9f496bd2-589a-709f-16cc-69bf7df1d36c"), new UUID("15dd911d-be82-2856-26db-27659b142875"), new UUID("b8c8b2a3-9008-1771-3bfc-90924955ab2d"), - new UUID("42ecd00b-9947-a97c-400a-bbc9174c7aeb") + new UUID("42ecd00b-9947-a97c-400a-bbc9174c7aeb"), + new UUID("ffffffff-ffff-ffff-ffff-ffffffffffff"), + Constants.DefaultMaterialID }; /// diff --git a/bin/assets/AssetSets.xml b/bin/assets/AssetSets.xml index 2fbf660560..839e709caf 100644 --- a/bin/assets/AssetSets.xml +++ b/bin/assets/AssetSets.xml @@ -27,6 +27,10 @@ +
+ +
+