diff options
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 73 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 69 | ||||
-rw-r--r-- | OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | 15 |
4 files changed, 110 insertions, 58 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 09c6329..a01ee0b 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -941,6 +941,17 @@ namespace OpenSim.Framework | |||
941 | 941 | ||
942 | void SendShutdownConnectionNotice(); | 942 | void SendShutdownConnectionNotice(); |
943 | void SendSimStats(Packet pack); | 943 | void SendSimStats(Packet pack); |
944 | void SendObjectPropertiesFamilyData(uint RequestFlags, LLUUID ObjectUUID, LLUUID OwnerID, LLUUID GroupID, | ||
945 | uint BaseMask, uint OwnerMask, uint GroupMask, uint EveryoneMask, | ||
946 | uint NextOwnerMask, int OwnershipCost, byte SaleType, int SalePrice, uint Category, | ||
947 | LLUUID LastOwnerID, string ObjectName, string Description); | ||
948 | |||
949 | void SendObjectPropertiesReply(LLUUID ItemID, ulong CreationDate, LLUUID CreatorUUID, LLUUID FolderUUID, LLUUID FromTaskUUID, | ||
950 | LLUUID GroupUUID, short InventorySerial, LLUUID LastOwnerUUID, LLUUID ObjectUUID, | ||
951 | LLUUID OwnerUUID, string TouchTitle, byte[] TextureID, string SitTitle, string ItemName, | ||
952 | string ItemDescription, uint OwnerMask, uint NextOwnerMask, uint GroupMask, uint EveryoneMask, | ||
953 | uint BaseMask); | ||
954 | |||
944 | 955 | ||
945 | byte[] GetThrottlesPacked(float multiplier); | 956 | byte[] GetThrottlesPacked(float multiplier); |
946 | 957 | ||
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index aff43d5..bf45006 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -2257,6 +2257,79 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
2257 | OutPacket(pack, ThrottleOutPacketType.Task); | 2257 | OutPacket(pack, ThrottleOutPacketType.Task); |
2258 | } | 2258 | } |
2259 | 2259 | ||
2260 | public void SendObjectPropertiesFamilyData(uint RequestFlags, LLUUID ObjectUUID, LLUUID OwnerID, LLUUID GroupID, | ||
2261 | uint BaseMask, uint OwnerMask, uint GroupMask, uint EveryoneMask, | ||
2262 | uint NextOwnerMask, int OwnershipCost, byte SaleType,int SalePrice, uint Category, | ||
2263 | LLUUID LastOwnerID, string ObjectName, string Description) | ||
2264 | { | ||
2265 | ObjectPropertiesFamilyPacket objPropFamilyPack = (ObjectPropertiesFamilyPacket)PacketPool.Instance.GetPacket(PacketType.ObjectPropertiesFamily); | ||
2266 | // TODO: don't create new blocks if recycling an old packet | ||
2267 | |||
2268 | ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock(); | ||
2269 | objPropDB.RequestFlags = RequestFlags; | ||
2270 | objPropDB.ObjectID = ObjectUUID; | ||
2271 | objPropDB.OwnerID = OwnerID; | ||
2272 | objPropDB.GroupID = GroupID; | ||
2273 | objPropDB.BaseMask = BaseMask; | ||
2274 | objPropDB.OwnerMask = OwnerMask; | ||
2275 | objPropDB.GroupMask = GroupMask; | ||
2276 | objPropDB.EveryoneMask = EveryoneMask; | ||
2277 | objPropDB.NextOwnerMask = NextOwnerMask; | ||
2278 | |||
2279 | // TODO: More properties are needed in SceneObjectPart! | ||
2280 | objPropDB.OwnershipCost = OwnershipCost; | ||
2281 | objPropDB.SaleType = SaleType; | ||
2282 | objPropDB.SalePrice = SalePrice; | ||
2283 | objPropDB.Category = Category; | ||
2284 | objPropDB.LastOwnerID = LastOwnerID; | ||
2285 | objPropDB.Name = Helpers.StringToField(ObjectName); | ||
2286 | objPropDB.Description = Helpers.StringToField(Description); | ||
2287 | objPropFamilyPack.ObjectData = objPropDB; | ||
2288 | objPropFamilyPack.Header.Zerocoded = true; | ||
2289 | OutPacket(objPropFamilyPack, ThrottleOutPacketType.Task); | ||
2290 | } | ||
2291 | |||
2292 | public void SendObjectPropertiesReply(LLUUID ItemID, ulong CreationDate, LLUUID CreatorUUID, LLUUID FolderUUID, LLUUID FromTaskUUID, | ||
2293 | LLUUID GroupUUID, short InventorySerial, LLUUID LastOwnerUUID, LLUUID ObjectUUID, | ||
2294 | LLUUID OwnerUUID, string TouchTitle, byte[] TextureID, string SitTitle, string ItemName, | ||
2295 | string ItemDescription, uint OwnerMask, uint NextOwnerMask, uint GroupMask, uint EveryoneMask, | ||
2296 | uint BaseMask) | ||
2297 | { | ||
2298 | ObjectPropertiesPacket proper = (ObjectPropertiesPacket)PacketPool.Instance.GetPacket(PacketType.ObjectProperties); | ||
2299 | // TODO: don't create new blocks if recycling an old packet | ||
2300 | |||
2301 | proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; | ||
2302 | proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); | ||
2303 | proper.ObjectData[0].ItemID = ItemID; | ||
2304 | proper.ObjectData[0].CreationDate = CreationDate; | ||
2305 | proper.ObjectData[0].CreatorID = CreatorUUID; | ||
2306 | proper.ObjectData[0].FolderID = FolderUUID; | ||
2307 | proper.ObjectData[0].FromTaskID = FromTaskUUID; | ||
2308 | proper.ObjectData[0].GroupID = GroupUUID; | ||
2309 | proper.ObjectData[0].InventorySerial = InventorySerial; | ||
2310 | |||
2311 | proper.ObjectData[0].LastOwnerID = LastOwnerUUID; | ||
2312 | // proper.ObjectData[0].LastOwnerID = LLUUID.Zero; | ||
2313 | |||
2314 | proper.ObjectData[0].ObjectID = ObjectUUID; | ||
2315 | proper.ObjectData[0].OwnerID = OwnerUUID; | ||
2316 | proper.ObjectData[0].TouchName = Helpers.StringToField(TouchTitle); | ||
2317 | proper.ObjectData[0].TextureID = TextureID; | ||
2318 | proper.ObjectData[0].SitName = Helpers.StringToField(SitTitle); | ||
2319 | proper.ObjectData[0].Name = Helpers.StringToField(ItemName); | ||
2320 | proper.ObjectData[0].Description = Helpers.StringToField(ItemDescription); | ||
2321 | proper.ObjectData[0].OwnerMask = OwnerMask; | ||
2322 | proper.ObjectData[0].NextOwnerMask = NextOwnerMask; | ||
2323 | proper.ObjectData[0].GroupMask = GroupMask; | ||
2324 | proper.ObjectData[0].EveryoneMask = EveryoneMask; | ||
2325 | proper.ObjectData[0].BaseMask = BaseMask; | ||
2326 | // proper.ObjectData[0].AggregatePerms = 53; | ||
2327 | // proper.ObjectData[0].AggregatePermTextures = 0; | ||
2328 | // proper.ObjectData[0].AggregatePermTexturesOwner = 0; | ||
2329 | proper.Header.Zerocoded = true; | ||
2330 | OutPacket(proper, ThrottleOutPacketType.Task); | ||
2331 | } | ||
2332 | |||
2260 | #endregion | 2333 | #endregion |
2261 | 2334 | ||
2262 | #region Estate Data Sending Methods | 2335 | #region Estate Data Sending Methods |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 1ba17dc..3844793 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -1400,32 +1400,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
1400 | /// <param name="part"></param> | 1400 | /// <param name="part"></param> |
1401 | public void ServiceObjectPropertiesFamilyRequest(IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags) | 1401 | public void ServiceObjectPropertiesFamilyRequest(IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags) |
1402 | { | 1402 | { |
1403 | //RootPart.ServiceObjectPropertiesFamilyRequest(remoteClient, AgentID, RequestFlags); | 1403 | |
1404 | ObjectPropertiesFamilyPacket objPropFamilyPack = (ObjectPropertiesFamilyPacket) PacketPool.Instance.GetPacket(PacketType.ObjectPropertiesFamily); | 1404 | remoteClient.SendObjectPropertiesFamilyData(RequestFlags, RootPart.UUID, RootPart.ObjectOwner, RootPart.GroupID, RootPart.BaseMask, |
1405 | // TODO: don't create new blocks if recycling an old packet | 1405 | RootPart.OwnerMask, RootPart.GroupMask, RootPart.EveryoneMask, RootPart.NextOwnerMask, |
1406 | 1406 | RootPart.OwnershipCost, RootPart.ObjectSaleType, RootPart.SalePrice, RootPart.Category, | |
1407 | ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock(); | 1407 | RootPart.CreatorID, RootPart.Name, RootPart.Description); |
1408 | objPropDB.RequestFlags = RequestFlags; | ||
1409 | objPropDB.ObjectID = RootPart.UUID; | ||
1410 | objPropDB.OwnerID = RootPart.ObjectOwner; | ||
1411 | objPropDB.GroupID = RootPart.GroupID; | ||
1412 | objPropDB.BaseMask = RootPart.BaseMask; | ||
1413 | objPropDB.OwnerMask = RootPart.OwnerMask; | ||
1414 | objPropDB.GroupMask = RootPart.GroupMask; | ||
1415 | objPropDB.EveryoneMask = RootPart.EveryoneMask; | ||
1416 | objPropDB.NextOwnerMask = RootPart.NextOwnerMask; | ||
1417 | |||
1418 | // TODO: More properties are needed in SceneObjectPart! | ||
1419 | objPropDB.OwnershipCost = RootPart.OwnershipCost; | ||
1420 | objPropDB.SaleType = RootPart.ObjectSaleType; | ||
1421 | objPropDB.SalePrice = RootPart.SalePrice; | ||
1422 | objPropDB.Category = RootPart.Category; | ||
1423 | objPropDB.LastOwnerID = RootPart.CreatorID; | ||
1424 | objPropDB.Name = Helpers.StringToField(RootPart.Name); | ||
1425 | objPropDB.Description = Helpers.StringToField(RootPart.Description); | ||
1426 | objPropFamilyPack.ObjectData = objPropDB; | ||
1427 | objPropFamilyPack.Header.Zerocoded = true; | ||
1428 | remoteClient.OutPacket(objPropFamilyPack, ThrottleOutPacketType.Task); | ||
1429 | } | 1408 | } |
1430 | 1409 | ||
1431 | public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) | 1410 | public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) |
@@ -1945,39 +1924,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1945 | /// <param name="client"></param> | 1924 | /// <param name="client"></param> |
1946 | public void GetProperties(IClientAPI client) | 1925 | public void GetProperties(IClientAPI client) |
1947 | { | 1926 | { |
1948 | ObjectPropertiesPacket proper = (ObjectPropertiesPacket) PacketPool.Instance.GetPacket(PacketType.ObjectProperties); | 1927 | |
1949 | // TODO: don't create new blocks if recycling an old packet | 1928 | client.SendObjectPropertiesReply(LLUUID.Zero, (ulong)m_rootPart.CreationDate, m_rootPart.CreatorID, LLUUID.Zero, LLUUID.Zero, |
1950 | 1929 | LLUUID.Zero, (short)m_rootPart.InventorySerial, m_rootPart.LastOwnerID, UUID, m_rootPart.OwnerID, | |
1951 | proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; | 1930 | m_rootPart.TouchName, new byte[0], m_rootPart.SitName, m_rootPart.Name, m_rootPart.Description, |
1952 | proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); | 1931 | m_rootPart.OwnerMask, m_rootPart.NextOwnerMask, m_rootPart.GroupMask, m_rootPart.EveryoneMask, |
1953 | proper.ObjectData[0].ItemID = LLUUID.Zero; | 1932 | m_rootPart.BaseMask); |
1954 | proper.ObjectData[0].CreationDate = (ulong) m_rootPart.CreationDate; | ||
1955 | proper.ObjectData[0].CreatorID = m_rootPart.CreatorID; | ||
1956 | proper.ObjectData[0].FolderID = LLUUID.Zero; | ||
1957 | proper.ObjectData[0].FromTaskID = LLUUID.Zero; | ||
1958 | proper.ObjectData[0].GroupID = LLUUID.Zero; | ||
1959 | proper.ObjectData[0].InventorySerial = (short) m_rootPart.InventorySerial; | ||
1960 | |||
1961 | proper.ObjectData[0].LastOwnerID = m_rootPart.LastOwnerID; | ||
1962 | // proper.ObjectData[0].LastOwnerID = LLUUID.Zero; | ||
1963 | 1933 | ||
1964 | proper.ObjectData[0].ObjectID = UUID; | ||
1965 | proper.ObjectData[0].OwnerID = m_rootPart.OwnerID; | ||
1966 | proper.ObjectData[0].TouchName = Helpers.StringToField(m_rootPart.TouchName); | ||
1967 | proper.ObjectData[0].TextureID = new byte[0]; | ||
1968 | proper.ObjectData[0].SitName = Helpers.StringToField(m_rootPart.SitName); | ||
1969 | proper.ObjectData[0].Name = Helpers.StringToField(m_rootPart.Name); | ||
1970 | proper.ObjectData[0].Description = Helpers.StringToField(m_rootPart.Description); | ||
1971 | proper.ObjectData[0].OwnerMask = m_rootPart.OwnerMask; | ||
1972 | proper.ObjectData[0].NextOwnerMask = m_rootPart.NextOwnerMask; | ||
1973 | proper.ObjectData[0].GroupMask = m_rootPart.GroupMask; | ||
1974 | proper.ObjectData[0].EveryoneMask = m_rootPart.EveryoneMask; | ||
1975 | proper.ObjectData[0].BaseMask = m_rootPart.BaseMask; | ||
1976 | // proper.ObjectData[0].AggregatePerms = 53; | ||
1977 | // proper.ObjectData[0].AggregatePermTextures = 0; | ||
1978 | // proper.ObjectData[0].AggregatePermTexturesOwner = 0; | ||
1979 | proper.Header.Zerocoded = true; | ||
1980 | client.OutPacket(proper, ThrottleOutPacketType.Task); | ||
1981 | } | 1934 | } |
1982 | 1935 | ||
1983 | /// <summary> | 1936 | /// <summary> |
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 05f963a..42912e7 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs | |||
@@ -543,6 +543,21 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
543 | { | 543 | { |
544 | } | 544 | } |
545 | 545 | ||
546 | public void SendObjectPropertiesFamilyData(uint RequestFlags, LLUUID ObjectUUID, LLUUID OwnerID, LLUUID GroupID, | ||
547 | uint BaseMask, uint OwnerMask, uint GroupMask, uint EveryoneMask, | ||
548 | uint NextOwnerMask, int OwnershipCost, byte SaleType,int SalePrice, uint Category, | ||
549 | LLUUID LastOwnerID, string ObjectName, string Description) | ||
550 | { | ||
551 | } | ||
552 | |||
553 | public void SendObjectPropertiesReply(LLUUID ItemID, ulong CreationDate, LLUUID CreatorUUID, LLUUID FolderUUID, LLUUID FromTaskUUID, | ||
554 | LLUUID GroupUUID, short InventorySerial, LLUUID LastOwnerUUID, LLUUID ObjectUUID, | ||
555 | LLUUID OwnerUUID, string TouchTitle, byte[] TextureID, string SitTitle, string ItemName, | ||
556 | string ItemDescription, uint OwnerMask, uint NextOwnerMask, uint GroupMask, uint EveryoneMask, | ||
557 | uint BaseMask) | ||
558 | { | ||
559 | } | ||
560 | |||
546 | private void Update() | 561 | private void Update() |
547 | { | 562 | { |
548 | frame++; | 563 | frame++; |