diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 4 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/ClientView.cs | 19 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 11 |
5 files changed, 49 insertions, 5 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index d163ae7..9bf1f9a 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -572,6 +572,10 @@ namespace OpenSim.Framework | |||
572 | 572 | ||
573 | void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, | 573 | void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, |
574 | LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color, | 574 | LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color, |
575 | uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction, byte[] textureanimation); | ||
576 | |||
577 | void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, | ||
578 | LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color, | ||
575 | uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction); | 579 | uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction); |
576 | 580 | ||
577 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 581 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index 370bdbb..c68c3c7 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -1588,13 +1588,24 @@ namespace OpenSim.Region.ClientStack | |||
1588 | OutPacket(attach, ThrottleOutPacketType.Task); | 1588 | OutPacket(attach, ThrottleOutPacketType.Task); |
1589 | } | 1589 | } |
1590 | 1590 | ||
1591 | |||
1592 | public void SendPrimitiveToClient( | 1591 | public void SendPrimitiveToClient( |
1593 | ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, | 1592 | ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, |
1594 | uint flags, | 1593 | uint flags, |
1595 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, | 1594 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, |
1596 | LLQuaternion rotation, byte clickAction) | 1595 | LLQuaternion rotation, byte clickAction) |
1597 | { | 1596 | { |
1597 | byte[] textureanim = new byte[0]; | ||
1598 | |||
1599 | SendPrimitiveToClient(regionHandle, timeDilation, localID, primShape, pos, flags, | ||
1600 | objectID, ownerID, text, color, parentID, particleSystem, | ||
1601 | rotation, clickAction, textureanim); | ||
1602 | } | ||
1603 | public void SendPrimitiveToClient( | ||
1604 | ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, | ||
1605 | uint flags, | ||
1606 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, | ||
1607 | LLQuaternion rotation, byte clickAction, byte[] textureanim) | ||
1608 | { | ||
1598 | ObjectUpdatePacket outPacket = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate); | 1609 | ObjectUpdatePacket outPacket = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate); |
1599 | // TODO: don't create new blocks if recycling an old packet | 1610 | // TODO: don't create new blocks if recycling an old packet |
1600 | outPacket.RegionData.RegionHandle = regionHandle; | 1611 | outPacket.RegionData.RegionHandle = regionHandle; |
@@ -1615,6 +1626,8 @@ namespace OpenSim.Region.ClientStack | |||
1615 | outPacket.ObjectData[0].PSBlock = particleSystem; | 1626 | outPacket.ObjectData[0].PSBlock = particleSystem; |
1616 | outPacket.ObjectData[0].ClickAction = clickAction; | 1627 | outPacket.ObjectData[0].ClickAction = clickAction; |
1617 | //outPacket.ObjectData[0].Flags = 0; | 1628 | //outPacket.ObjectData[0].Flags = 0; |
1629 | |||
1630 | // Sound Radius | ||
1618 | outPacket.ObjectData[0].Radius = 20; | 1631 | outPacket.ObjectData[0].Radius = 20; |
1619 | 1632 | ||
1620 | byte[] pb = pos.GetBytes(); | 1633 | byte[] pb = pos.GetBytes(); |
@@ -1623,6 +1636,10 @@ namespace OpenSim.Region.ClientStack | |||
1623 | byte[] rot = rotation.GetBytes(); | 1636 | byte[] rot = rotation.GetBytes(); |
1624 | Array.Copy(rot, 0, outPacket.ObjectData[0].ObjectData, 36, rot.Length); | 1637 | Array.Copy(rot, 0, outPacket.ObjectData[0].ObjectData, 36, rot.Length); |
1625 | 1638 | ||
1639 | if (textureanim.Length > 0) | ||
1640 | outPacket.ObjectData[0].TextureAnim = textureanim; | ||
1641 | |||
1642 | |||
1626 | OutPacket(outPacket, ThrottleOutPacketType.Task); | 1643 | OutPacket(outPacket, ThrottleOutPacketType.Task); |
1627 | } | 1644 | } |
1628 | 1645 | ||
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 452614c..9be75da 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -276,6 +276,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
276 | } | 276 | } |
277 | } | 277 | } |
278 | 278 | ||
279 | private byte[] m_TextureAnimation; | ||
280 | |||
279 | protected LLVector3 m_offsetPosition; | 281 | protected LLVector3 m_offsetPosition; |
280 | 282 | ||
281 | public LLVector3 OffsetPosition | 283 | public LLVector3 OffsetPosition |
@@ -600,6 +602,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
600 | { | 602 | { |
601 | // It's not necessary to persist this | 603 | // It's not necessary to persist this |
602 | m_inventoryFileName = "taskinventory" + LLUUID.Random().ToString(); | 604 | m_inventoryFileName = "taskinventory" + LLUUID.Random().ToString(); |
605 | m_TextureAnimation = new byte[0]; | ||
603 | } | 606 | } |
604 | 607 | ||
605 | public SceneObjectPart(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, | 608 | public SceneObjectPart(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, |
@@ -646,7 +649,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
646 | m_rotationalvelocity = new LLVector3(0, 0, 0); | 649 | m_rotationalvelocity = new LLVector3(0, 0, 0); |
647 | AngularVelocity = new LLVector3(0, 0, 0); | 650 | AngularVelocity = new LLVector3(0, 0, 0); |
648 | Acceleration = new LLVector3(0, 0, 0); | 651 | Acceleration = new LLVector3(0, 0, 0); |
649 | 652 | m_TextureAnimation = new byte[0]; | |
650 | m_inventoryFileName = "taskinventory" + LLUUID.Random().ToString(); | 653 | m_inventoryFileName = "taskinventory" + LLUUID.Random().ToString(); |
651 | m_folderID = LLUUID.Random(); | 654 | m_folderID = LLUUID.Random(); |
652 | 655 | ||
@@ -1364,6 +1367,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
1364 | UpdateTextureEntry(tex.ToBytes()); | 1367 | UpdateTextureEntry(tex.ToBytes()); |
1365 | } | 1368 | } |
1366 | 1369 | ||
1370 | public void AddTextureAnimation(Primitive.TextureAnimation pTexAnim) | ||
1371 | { | ||
1372 | m_TextureAnimation = pTexAnim.GetBytes(); | ||
1373 | } | ||
1374 | |||
1367 | #endregion | 1375 | #endregion |
1368 | 1376 | ||
1369 | #region ParticleSystem | 1377 | #region ParticleSystem |
@@ -1534,7 +1542,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1534 | byte[] color = new byte[] {m_color.R, m_color.G, m_color.B, m_color.A}; | 1542 | byte[] color = new byte[] {m_color.R, m_color.G, m_color.B, m_color.A}; |
1535 | remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, clientFlags, m_uuid, | 1543 | remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, clientFlags, m_uuid, |
1536 | OwnerID, | 1544 | OwnerID, |
1537 | m_text, color, ParentID, m_particleSystem, lRot, m_clickAction); | 1545 | m_text, color, ParentID, m_particleSystem, lRot, m_clickAction, m_TextureAnimation); |
1538 | } | 1546 | } |
1539 | 1547 | ||
1540 | /// Terse updates | 1548 | /// Terse updates |
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index ea1e28e..b5663de 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | |||
@@ -327,7 +327,13 @@ namespace SimpleApp | |||
327 | byte[] particleSystem, LLQuaternion rotation, byte clickAction) | 327 | byte[] particleSystem, LLQuaternion rotation, byte clickAction) |
328 | { | 328 | { |
329 | } | 329 | } |
330 | 330 | public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, | |
331 | PrimitiveBaseShape primShape, LLVector3 pos, uint flags, | ||
332 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, | ||
333 | uint parentID, | ||
334 | byte[] particleSystem, LLQuaternion rotation, byte clickAction, byte[] textureanimation) | ||
335 | { | ||
336 | } | ||
331 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, | 337 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, |
332 | LLVector3 position, LLQuaternion rotation) | 338 | LLVector3 position, LLQuaternion rotation) |
333 | { | 339 | { |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index bbf301d..3f719fb 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -2007,7 +2007,16 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2007 | 2007 | ||
2008 | public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) | 2008 | public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) |
2009 | { | 2009 | { |
2010 | NotImplemented("llSetTextureAnim"); | 2010 | Primitive.TextureAnimation pTexAnim = new Primitive.TextureAnimation(); |
2011 | pTexAnim.Flags = (uint)mode; | ||
2012 | pTexAnim.Face = (uint)face; | ||
2013 | pTexAnim.Length = (float)length; | ||
2014 | pTexAnim.Rate = (float)rate; | ||
2015 | pTexAnim.SizeX = (uint)sizex; | ||
2016 | pTexAnim.SizeY = (uint)sizey; | ||
2017 | pTexAnim.Start = (float)start; | ||
2018 | m_host.AddTextureAnimation(pTexAnim); | ||
2019 | m_host.SendFullUpdateToAllClients(); | ||
2011 | } | 2020 | } |
2012 | 2021 | ||
2013 | public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, | 2022 | public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, |