From 8039c31e88fff3fb5edb57ebaa164d3d20e4b939 Mon Sep 17 00:00:00 2001 From: Dalien Talbot Date: Sun, 11 Nov 2007 22:23:34 +0000 Subject: Patch from Mathias Soeken (thanks Mathias!) to take care of the color and alpha argument of the llSetText command. --- .../Region/Environment/Scenes/SceneObjectGroup.cs | 11 +++++++++++ .../Region/Environment/Scenes/SceneObjectPart.cs | 23 +++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment') diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index b00d465..e2415b9 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -37,6 +37,7 @@ using libsecondlife.Packets; using OpenSim.Framework; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Physics.Manager; +using System.Drawing; namespace OpenSim.Region.Environment.Scenes { @@ -166,6 +167,12 @@ namespace OpenSim.Region.Environment.Scenes get { return m_rootPart.OwnerID; } } + public Color Color + { + get { return m_rootPart.Color; } + set { m_rootPart.Color = value; } + } + public string Text { get { return m_rootPart.Text; } @@ -1417,6 +1424,10 @@ namespace OpenSim.Region.Environment.Scenes public override void SetText(string text, Vector3 color, double alpha) { + Color = Color.FromArgb (0xff - (int)(alpha * 0xff), + (int)(color.x * 0xff), + (int)(color.y * 0xff), + (int)(color.z * 0xff)); Text = text; } } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 1604dad..52bea40 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs @@ -37,6 +37,7 @@ using OpenSim.Framework; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Scenes.Scripting; using OpenSim.Region.Physics.Manager; +using System.Drawing; namespace OpenSim.Region.Environment.Scenes { @@ -303,6 +304,21 @@ namespace OpenSim.Region.Environment.Scenes set { m_description = value; } } + private Color m_color = Color.Black; + + public Color Color + { + get { return m_color; } + set + { + m_color = value; + /* ScheduleFullUpdate() need not be called b/c after + * setting the color, the text will be set, so then + * ScheduleFullUpdate() will be called. */ + //ScheduleFullUpdate(); + } + } + private string m_text = ""; public string Text @@ -1003,9 +1019,10 @@ namespace OpenSim.Region.Environment.Scenes } } + byte[] color = new byte[] { m_color.R, m_color.G, m_color.B, m_color.A }; remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, clientFlags, m_uuid, OwnerID, - m_text, ParentID, m_particleSystem, lRot); + m_text, color, ParentID, m_particleSystem, lRot); } /// Terse updates @@ -1092,6 +1109,10 @@ namespace OpenSim.Region.Environment.Scenes public void SetText(string text, Vector3 color, double alpha) { + Color = Color.FromArgb (0xff - (int)(alpha * 0xff), + (int)(color.x * 0xff), + (int)(color.y * 0xff), + (int)(color.z * 0xff)); Text = text; } -- cgit v1.1