Commit Graph

513 Commits

Author SHA1 Message Date
cinder
2d09df0b12 Add CancellationToken param to ParcelManager.RequestRemoteParcelIDAsync() 2024-12-29 11:40:30 -06:00
cinder
2fd85a10e1 Move to .NET 9.0, remove support for .NET7.0 because nuget.exe dropped it too. 2024-12-29 10:24:45 -06:00
cinder
79936981e2 Remove artificial chat length limitation. Thanks @stonejohnson for finding this. 2024-12-29 08:29:47 -06:00
Cinder Roxley
069ceac858 SL hated JP2, we'll send these J2K streams raw. Introduce J2K static conveneience class 2024-11-01 12:23:11 -05:00
Cinder Roxley
a2c54ff3b0 Update CoreJ2K to 1.0.4 2024-11-01 12:22:11 -05:00
Cinder Roxley
b33800fa7c Update all dependencies 2024-11-01 07:52:27 -05:00
Cinder Roxley
d7283dbee7 Update CoreJ2K to 1.0.3 2024-11-01 07:51:09 -05:00
Cinder Roxley
942c771aa8 Revert "Primitive does not have CRC member"
This reverts commit 20bb76ba7c.
2024-08-30 20:17:29 -05:00
Cinder Roxley
0c04995ee7 lock() is getting me down 2024-08-30 19:52:52 -05:00
Cinder Roxley
51287e8d40 InternalDictionary is now LockingDictionary 2024-08-30 15:34:50 -05:00
Cinder Roxley
8c402c1054 quit 2024-08-30 12:20:25 -05:00
Cinder Roxley
5db4357981 AppearanceManager fixes and revamp 2024-08-30 12:13:58 -05:00
Cinder Roxley
e8dbdb0955 Warning for nerds 2024-08-30 11:45:11 -05:00
Cinder Roxley
4e99975645 Fixing AppearanceManager... 2024-08-30 11:43:36 -05:00
Cinder Roxley
7be0a73bc1 Unreachable code, eww 2024-08-30 11:42:29 -05:00
Cinder Roxley
8d2a99b0ce Fix build... 2024-08-30 11:36:55 -05:00
Cinder Roxley
787a5ea38e This is handy and I missed it 2024-08-30 11:36:48 -05:00
Cinder Roxley
7cb36743cf Ok 2024-08-30 11:36:33 -05:00
Cinder Roxley
d7d726bc82 Implement IDictionary for InternalDictionary
In the future, work on this locking
2024-08-30 10:50:23 -05:00
Adam Frisby
bf70d5ff5d * Adds support for ExtendedMeshFlags to Primitive
* Adds the ability to check how many children a primitive has, and should have.
* Adds Primitive.GetChildren which returns all known children of a primitive.
* Known Gotcha: ChildCount will count the self as well.
* If ChildCount != Primitive.GetChildren(...).Count()+1 -- then the linkset is incomplete, and you may want to do a properties request on it to get sent the missing children.
2024-08-30 10:24:37 -05:00
Adam Frisby
5ae5c3c342 * Adds ChildCount property to AvatarManager for determining the number of attachments that should be present
* Improves reliability of AvatarAppearance messages
2024-08-30 10:20:49 -05:00
Adam Frisby
36a07fe308 * Renames Avatar.name to _cachedName, and Avatar.groupName to _cachedGroupName to better explain their purpose.
* Removes redundant assignment
2024-08-30 10:15:35 -05:00
Adam Frisby
66ef0080bd * Marks members of Attachment as read-only
* Implements IEquatable<Attachment> on Attachment
2024-08-30 10:15:20 -05:00
Adam Frisby
6e8c90ba0f * You can now check how many attachments an avatar should have via Avatar.Attachments - this needs a Simulator change to support it, as it is a new message property in Avatar messages.
* This can be used for determining if an avatar is "completely loaded" from the network side, along with the next commit...
2024-08-30 10:13:31 -05:00
Cinder Roxley
cee216425d Pick some EventQueueClient changes from SL 2024-08-30 10:08:57 -05:00
Adam Frisby
fe54a80a37 * Fixes avatar appearance baking, and appearance messages 2024-08-30 09:08:52 -05:00
Adam Frisby
b6e39a9aa9 * Fixes an off-by-one check causing an error in decoding AgentGroupDataUpdateMessage messages
* Fixes XML comments
2024-08-29 21:14:06 -05:00
Aech Linden
9cb4cb1ad5 * Fix some bugs in LibreMetaverse such that we weren't receiving changes to the displayed group title:
* Clear cached name, groupName in Avatar when an ObjectUpdate has new NameValues.
* Some message paths didn't maintain group title, while others did. (Although I don't think that affects this implementation.)
* In the proxy, do send an avatar update for group title changing to empty string.
* ActivateGroup and RequestAgentDataUpdate commands from UI to app to proxy to sim.
* Message back to UI OnAgentDataUpdate, so that we can tell whether a given group of this agent is already active.
2024-08-29 21:09:02 -05:00
Adam Frisby
e22e6c8a9c * Improves the reliability of teleports, especially while the Event Queue is down.
* Adds some functions to check if a message is a normal agent message, or a group message.
* Adds new RelativePositionEstimate to complement RelativePosition - RelativePosition actually ends up drifting badly. RelativePositionEstimate instead calculates each time it is requested, using known velocity, and is far more accurate in practice.
* Adds an override to ChatEventArgs.ToString to dump information about the chat.
* Improves reliability of Group Messages
* Teleports previously used GetGridRegion which is sometimes unreliable, request the full map, once, if it fails. The results will be cached.
* Adds AgentManager.LastPositionUpdate to tell you when the avatars position was last updated
2024-08-29 20:56:30 -05:00
Cinder Roxley
20bb76ba7c Primitive does not have CRC member 2024-08-28 17:06:06 -05:00
Cinder Roxley
30116e9caf Revert ObjectPrimitives InternalDirectory change for the moment to isolate other changes 2024-08-28 17:05:54 -05:00
Adam Frisby
fdab795023 * ObjectPrimitives now uses ConcurrentDictionary, why? Well, at large scale, locking so frequently actually results in a nasty performance issue.
* EventQueue be checked periodically to make sure it's running. Sometimes it dies. This is a blunt fix (along with the previous commit), but is needed to ensure that event queue-y things keep working.
* Adds a 500ms sleep between connecting to a simulator and CompleteAgentMovement - there's a race condition within the simulator which sometimes results in a faulty login, this seems to help.
* SetSeedCaps has an extra parameter, if the user's simulator hasn't changed, don't do anything.
* Add a lookup which lets you turn full Object UUIDs into LocalID, while LibreMetaverse prefers localID when referencing primitives, the official viewer uses UUIDs - and several things actually work better this way. (For example, avatars can spontaneously change LocalID sometimes). This way we can follow those changes.
2024-08-28 16:52:43 -05:00
Adam Frisby
9569a1dea8 * Fixes the EventQueue - it sometimes randomly dies and never recovers.
* I'm not a big fan of this code to be perfectly honest. It probably can be fixed better. There's possibly an error on the simulator side, or in this code, that I haven't managed to locate, when the EventQueue has an early return rather than long-polling as it should, and it's triggered by this code. Not sure if the official viewer suffers the same fault (possibly.)
2024-08-28 16:43:53 -05:00
Cinder Roxley
f9373fc523 Fix build after be4e6afc 2024-08-28 16:19:39 -05:00
Adam Frisby
be4e6afc6a * Adds several new settings
* DEFAULT_AGENT_UPDATE_INTERVAL is now configurable
* INTERPOLATION_INTERVAL is now configurable
* You can now disable periodic SEND_AGENT_UPDATES independently (SEND_AGENT_UPDATES_REGULARLY) of normal updates, such as in CompleteAgentMovement
* You can disable TexturePipeline if you don't need it
* Fixes a possible timing bug in AgentManagerMovement.TurnToward
2024-08-28 16:13:11 -05:00
Adam Frisby
8f7f8717de * Sync's _Packets_.cs with the message template file for the first time in 12 years. Preserves the OpenSim specific packets and additions. 2024-08-28 16:12:59 -05:00
Cinder Roxley
b3f16f34f0 Nullable reference types not allowed in .NETFramework, a shame 2024-08-28 16:01:57 -05:00
Adam Frisby
59b32018e2 * Fix two exceptions triggered by inventory requests 2024-08-28 16:01:29 -05:00
Adam Frisby
29209dc263 * Always cache groups, even if there is no event bound to them. 2024-08-28 16:01:23 -05:00
Adam Frisby
35db1333ee * Adds new function to GridManager - GetGridRegion by handle.
* GridManager requests now properly handle case sensitivity (i.e. all region lookups should be case invariant)
* Adds bidirectional lookups to GridManager allowing handle lookups as well as name. Caches.
2024-08-28 16:01:18 -05:00
Cinder Roxley
8947c3f45c Revert "From: Adam Frisby <adam@sinewavecompany.com>"
This reverts commit 01e70f152c.
2024-08-28 16:00:54 -05:00
Cinder Roxley
2efc1f64cd Revert "From a21aa6138dbf09967cdc2ac7a35f3d18ea4bc97f Mon Sep 17 00:00:00 2001"
This reverts commit 87feed5543.
2024-08-28 16:00:54 -05:00
Cinder Roxley
d801b611ea Revert "From 344c188a2bc7439c9068bbb99481ed81f6529b26 Mon Sep 17 00:00:00 2001"
This reverts commit 1aad3f4cfd.
2024-08-28 16:00:54 -05:00
Cinder Roxley
8c772df814 Revert "Nullable reference types not allowed in .NETFramework, a shame"
This reverts commit 6c835c17ac.
2024-08-28 16:00:54 -05:00
Adam Frisby
9377b4c12a * Adds a .CurrentParcel to ParcelManager to help locate the parcel an agent is currently on. 2024-08-28 15:56:36 -05:00
Adam Frisby
b6fe83965a * Fixes a subtle bug with TextureEntryFace where the face bits is incorrect. This is because it only uses 32-bits, the official viewer uses 64-bits, and the overflow matters.
* Adds a .Valid property to TextureEntryFace - sometimes it is not, and will throw exceptions if you actually try use anything in this class. At least have the ability to check first.
2024-08-28 15:56:30 -05:00
Adam Frisby
42cd98c393 * Changes logging to show UTC time, so logs can be more easily coordinated between various running apps. Time since startup is not a useful bit of information when coordinating with simulator and client logs. 2024-08-28 15:56:21 -05:00
Adam Frisby
fefe38f1a2 * Increase the maximum UDP data rate for Task from 0.5mbit to 1.5mbit. If you're living in the same data center as the simulators, this can go faster. 2024-08-28 15:52:53 -05:00
Adam Frisby
8ed54aebfb * Adds another overload to Login(...) which accepts an existing LoginResponseData 2024-08-28 15:52:24 -05:00
Adam Frisby
d753e15432 * Adds missing LegacyMaterial class and LegacyMaterialAlphaMode enum. 2024-08-28 15:51:04 -05:00