add vector osGetLinkColor(LSL_Integer linknum, LSL_Integer face)
add vector osGetLinkColor(LSL_Integer linknum, LSL_Integer face)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 53d6215..7cd4573 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -2068,7 +2068,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return GetColor(m_host, face);
}
- protected static LSL_Vector GetColor(SceneObjectPart part, int face)
+ public LSL_Vector GetColor(SceneObjectPart part, int face)
{
Primitive.TextureEntry tex = part.Shape.Textures;
Color4 texcolor;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 7ea1e5f..1ccbc4c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -6571,5 +6571,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
return ret.ToString();
}
+
+ public LSL_Vector osGetLinkColor(LSL_Integer link, LSL_Integer face)
+ {
+ SceneObjectPart linkedPart = link.value switch
+ {
+ ScriptBaseClass.LINK_ROOT => m_host.ParentGroup.RootPart,
+ ScriptBaseClass.LINK_THIS => m_host,
+ _ => m_host.ParentGroup.GetLinkNumPart(link.value)
+ };
+
+ if (linkedPart != null)
+ {
+ InitLSL();
+ return m_LSL_Api.GetColor(linkedPart, face.value);
+ }
+
+ return LSL_Vector.Zero;
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 72af1bc..ea38af8 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -626,5 +626,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
LSL_String osAESEncryptTo(string secret, string plainText, string ivString);
LSL_String osAESDecrypt(string secret, string encryptedText);
LSL_String osAESDecryptFrom(string secret, string encryptedText, string ivString);
+ vector osGetLinkColor(LSL_Integer linknum, LSL_Integer face);
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index 7895b02..a76385c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -1802,5 +1802,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
return m_OSSL_Functions.osAESDecryptFrom(secret, encryptedText, ivString);
}
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public vector osGetLinkColor(LSL_Integer link, LSL_Integer face)
+ {
+ return m_OSSL_Functions.osGetLinkColor(link, face);
+ }
}
}