aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMW2007-07-18 20:29:06 +0000
committerMW2007-07-18 20:29:06 +0000
commitd2b459b8e592b48edbdd03a154dcaa7336d5ce8d (patch)
tree6431743dd3a7962ce22f788b15b869c6222b1ebe /OpenSim/Region
parentMore testing some ideas, to find best method for SceneObject Primitive classes. (diff)
downloadopensim-SC-d2b459b8e592b48edbdd03a154dcaa7336d5ce8d.zip
opensim-SC-d2b459b8e592b48edbdd03a154dcaa7336d5ce8d.tar.gz
opensim-SC-d2b459b8e592b48edbdd03a154dcaa7336d5ce8d.tar.bz2
opensim-SC-d2b459b8e592b48edbdd03a154dcaa7336d5ce8d.tar.xz
Sculpted Prims should now work.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/ClientView.API.cs2
-rw-r--r--OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs9
-rw-r--r--OpenSim/Region/Environment/Scenes/Primitive.cs18
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs16
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs1
-rw-r--r--OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs2
6 files changed, 46 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs
index 54ddd97..440f583 100644
--- a/OpenSim/Region/ClientStack/ClientView.API.cs
+++ b/OpenSim/Region/ClientStack/ClientView.API.cs
@@ -59,6 +59,7 @@ namespace OpenSim.Region.ClientStack
59 public event ObjectDuplicate OnObjectDuplicate; 59 public event ObjectDuplicate OnObjectDuplicate;
60 public event MoveObject OnGrapUpdate; 60 public event MoveObject OnGrapUpdate;
61 public event AddNewPrim OnAddPrim; 61 public event AddNewPrim OnAddPrim;
62 public event ObjectExtraParams OnUpdateExtraParams;
62 public event UpdateShape OnUpdatePrimShape; 63 public event UpdateShape OnUpdatePrimShape;
63 public event ObjectSelect OnObjectSelect; 64 public event ObjectSelect OnObjectSelect;
64 public event ObjectDeselect OnObjectDeselect; 65 public event ObjectDeselect OnObjectDeselect;
@@ -968,6 +969,7 @@ namespace OpenSim.Region.ClientStack
968 objectData.PathTaperY = primData.PathTaperY; 969 objectData.PathTaperY = primData.PathTaperY;
969 objectData.PathTwist = primData.PathTwist; 970 objectData.PathTwist = primData.PathTwist;
970 objectData.PathTwistBegin = primData.PathTwistBegin; 971 objectData.PathTwistBegin = primData.PathTwistBegin;
972 objectData.ExtraParams = primData.ExtraParams;
971 } 973 }
972 974
973 /// <summary> 975 /// <summary>
diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
index 338471e..c248b29 100644
--- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
+++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
@@ -218,8 +218,6 @@ namespace OpenSim.Region.ClientStack
218 if (OnAddPrim != null) 218 if (OnAddPrim != null)
219 { 219 {
220 ObjectAddPacket addPacket = (ObjectAddPacket) Pack ; 220 ObjectAddPacket addPacket = (ObjectAddPacket) Pack ;
221 Console.WriteLine(addPacket.ToString());
222
223 PrimitiveBaseShape shape = new PrimitiveBaseShape(); 221 PrimitiveBaseShape shape = new PrimitiveBaseShape();
224 222
225 shape.PCode = addPacket.ObjectData.PCode; 223 shape.PCode = addPacket.ObjectData.PCode;
@@ -258,6 +256,13 @@ namespace OpenSim.Region.ClientStack
258 } 256 }
259 } 257 }
260 break; 258 break;
259 case PacketType.ObjectExtraParams:
260 ObjectExtraParamsPacket extraPar = (ObjectExtraParamsPacket)Pack;
261 if (OnUpdateExtraParams != null)
262 {
263 OnUpdateExtraParams(extraPar.ObjectData[0].ObjectLocalID, extraPar.ObjectData[0].ParamType, extraPar.ObjectData[0].ParamInUse, extraPar.ObjectData[0].ParamData);
264 }
265 break;
261 case PacketType.ObjectDuplicate: 266 case PacketType.ObjectDuplicate:
262 ObjectDuplicatePacket dupe = (ObjectDuplicatePacket)Pack; 267 ObjectDuplicatePacket dupe = (ObjectDuplicatePacket)Pack;
263 for (int i = 0; i < dupe.ObjectData.Length; i++) 268 for (int i = 0; i < dupe.ObjectData.Length; i++)
diff --git a/OpenSim/Region/Environment/Scenes/Primitive.cs b/OpenSim/Region/Environment/Scenes/Primitive.cs
index 4818348..bca8e0c 100644
--- a/OpenSim/Region/Environment/Scenes/Primitive.cs
+++ b/OpenSim/Region/Environment/Scenes/Primitive.cs
@@ -588,6 +588,24 @@ namespace OpenSim.Region.Environment.Scenes
588 588
589 #endregion 589 #endregion
590 590
591 public void UpdateExtraParam(ushort type, bool inUse, byte[] data)
592 {
593 this.m_Shape.ExtraParams = new byte[data.Length + 7];
594 int i =0;
595 uint length = (uint) data.Length;
596 this.m_Shape.ExtraParams[i++] = 1;
597 this.m_Shape.ExtraParams[i++] = (byte)(type % 256);
598 this.m_Shape.ExtraParams[i++] = (byte)((type >> 8) % 256);
599
600 this.m_Shape.ExtraParams[i++] = (byte)(length % 256);
601 this.m_Shape.ExtraParams[i++] = (byte)((length >> 8) % 256);
602 this.m_Shape.ExtraParams[i++] = (byte)((length >> 16) % 256);
603 this.m_Shape.ExtraParams[i++] = (byte)((length >> 24) % 256);
604 Array.Copy(data, 0, this.m_Shape.ExtraParams, i, data.Length);
605
606 this.ScheduleFullUpdate();
607 }
608
591 #region Texture 609 #region Texture
592 610
593 /// <summary> 611 /// <summary>
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index f39d56a..5bfdccb 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -327,6 +327,22 @@ namespace OpenSim.Region.Environment.Scenes
327 } 327 }
328 } 328 }
329 329
330 public void UpdateExtraParam(uint primLocalID, ushort type, bool inUse, byte[] data)
331 {
332 Primitive prim = null;
333 foreach (EntityBase ent in Entities.Values)
334 {
335 if (ent is SceneObject)
336 {
337 prim = ((SceneObject)ent).HasChildPrim(primLocalID);
338 if (prim != null)
339 {
340 prim.UpdateExtraParam(type, inUse, data);
341 break;
342 }
343 }
344 }
345 }
330 /// <summary> 346 /// <summary>
331 /// 347 ///
332 /// </summary> 348 /// </summary>
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 70d2c6a..1ba23b4 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -548,6 +548,7 @@ namespace OpenSim.Region.Environment.Scenes
548 client.OnUpdatePrimGroupMouseRotation += UpdatePrimRotation; 548 client.OnUpdatePrimGroupMouseRotation += UpdatePrimRotation;
549 client.OnUpdatePrimSingleRotation += UpdatePrimSingleRotation; 549 client.OnUpdatePrimSingleRotation += UpdatePrimSingleRotation;
550 client.OnUpdatePrimScale += UpdatePrimScale; 550 client.OnUpdatePrimScale += UpdatePrimScale;
551 client.OnUpdateExtraParams += UpdateExtraParam;
551 client.OnUpdatePrimShape += UpdatePrimShape; 552 client.OnUpdatePrimShape += UpdatePrimShape;
552 client.OnRequestMapBlocks += RequestMapBlocks; 553 client.OnRequestMapBlocks += RequestMapBlocks;
553 client.OnUpdatePrimTexture += UpdatePrimTexture; 554 client.OnUpdatePrimTexture += UpdatePrimTexture;
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
index f7bf5d6..308dea7 100644
--- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
@@ -47,7 +47,9 @@ namespace SimpleApp
47 public event ObjectSelect OnDeGrapObject; 47 public event ObjectSelect OnDeGrapObject;
48 public event MoveObject OnGrapUpdate; 48 public event MoveObject OnGrapUpdate;
49 49
50
50 public event UpdateShape OnUpdatePrimShape; 51 public event UpdateShape OnUpdatePrimShape;
52 public event ObjectExtraParams OnUpdateExtraParams;
51 public event ObjectSelect OnObjectSelect; 53 public event ObjectSelect OnObjectSelect;
52 public event GenericCall7 OnObjectDescription; 54 public event GenericCall7 OnObjectDescription;
53 public event GenericCall7 OnObjectName; 55 public event GenericCall7 OnObjectName;