Commit Graph

22 Commits

Author SHA1 Message Date
Casper Warden
2ff00a30f8 Extensive work on building, wearables, assets, inventory, attachments, serialization, etc.
Resolves #36
2020-11-19 17:13:28 +00:00
Casper Warden
b248fa17ed Significant tidy-up. Update msg_template and add new ObjectAnimation message. Tidy up imports. Added buffer overrun check to the packet decoders since the message template doesn't seem to always correspond with what we receive (Specifically, MapBlockReply's new Size parameter) 2020-01-06 12:56:01 +00:00
Casper Warden
4740b07e11 - Add LLWearable parsing
- Remove ExtraParams, TextureAnim, ParticleSystem binary data from GameObjects, instead encode on the fly when needed
- Add XML object decoding (WIP)
- Move FlexibleData, LightDate, LightImageData, MeshData, SculptData inside ExtraParams class
-
2018-11-05 11:45:04 +00:00
Casper Warden
65e3aef3f9 - Fix buffers out of order issue with Transfer system
- Remove debug
- Add cap invocation rate limiter (need to work out which caps require this)
- Fix initial login timing out after just one second
2018-11-03 14:39:20 +00:00
Casper Warden
da4cd459f1 - Add "GET" method to Caps
- New events: ObjectPhysicsDataEvent, ParcelPropertiesEvent, NewObjectEvent, ObjectUpdateEvent, ObjectKilledEvent
- Added getXML function to Color4, Vector2, Vector3, Vector4, GameObject, Region, Quaternion, UUID for opensim-compatible XML export
- Added TextureAnim and ParticleSystem decoding to the "full" ObjectStore
- Object store will automatically request missing "parent" prims
- "setPersist" - When persist is TRUE, the ObjectStore will not forget about "killed" prims - useful for region scanning
- Support for Flexible params, Light params, LightImage params, Mesh data, Sculpt maps
- Fixed object scale being incorrectly calculated
- Add terrain decoding (this was a ballache)
- Add parcel map decoding
- Add support for region windlight settings (region.environment)
- Add support for materials (normal / specular maps)
- Add getBuffer, getLong and bitwiseOr to UUID
- Added a circular-reference-safe JSONStringify to Utils
- Add XferFile capability to Circuit

PUBLIC API:

AssetCommands:
- Rework "downloadAsset" to detect failures
- NEW: downloadInventoryAsset() - uses TransferRequest for prim inventory items
- NEW: getMaterials() - resolves material UUIDs

RegionCommands:
- NEW: getTerrainTextures()
- NEW: exportSettings() - OpenSim XML export of region settings
- NEW: async getTerrain() - Get binary terrain heightmap, 256x256 float32
- resolveObjects() - now fetches task inventory contents too.
- resolveObjects() - fix calculation of land impact
- NEW: getObjectByLocalID(localID: number, timeout: number)
- NEW: getObjectByUUID(uuid: UUID, timeout: number)
- NEW: getParcels();
- NEW: pruneObjects - removes missing GameObjects from a list
- NEW: setPersist - prevent objectstore from forgetting about killed gameobjects
2018-10-31 11:28:24 +00:00
Casper Warden
4c6cbfc45b - When resolving objects, populate object costs (land impact)
- Add a function to find objects by name (regex or micromatch *glob style)
2018-10-20 14:32:33 +01:00
Casper Warden
2a0c4dc3e8 [BREAKING CHANGES] - Add new commands module for the Friends list, add new events for friends online/offline, friend rights management, friend map lookup 2018-10-12 14:34:43 +01:00
Casper Warden
c6c6768dc9 Bring deps up to date 2018-10-10 10:12:20 +01:00
Casper Warden
fefdada38e bot.stayPut( .. ); - The bot will constantly attempt to teleport back to its set position. Good for recovery after region restarts. 2018-10-09 20:17:32 +01:00
Casper Warden
da9fe9710c Teleport and EventQueue reliability improvements. Start plumbing for stayPut() 2018-10-09 20:03:28 +01:00
Casper Warden
960f024ea4 More refactoring stuff
- Add a waitForEventQueue promise, to get rid of the 5 second fudge from testBot.js
- Async'ify testBot.js
- Complete plumbing for Hint's ScriptDialog support (see changes to ScriptDialogEvent.ts and Comms.ts
- Fix: The EventQueue was pausing for 5 seconds every 30 seconds
2018-10-07 17:06:54 +01:00
Casper Warden
1137868932 Refactor: Async-ify a bunch of stuff. Change waitForMessage to template style. Disable strictPropertyInitialization in typescript config. 2018-10-07 14:59:07 +01:00
Casper Warden
11f2f9b320 Refactor waitForMessage to waitForPacket (since it returns a packet) and add a new waitForMessage which return the MessageBase, which makes usage a little tidier with async. 2018-10-06 16:03:10 +01:00
Casper Warden
52c0691b71 Get group member list, Get group roles, Send group invite 2017-12-15 21:28:45 +00:00
Casper Warden
2bd3b9a789 Refine the object culling a little so we don't lose avatar information 2017-12-14 02:37:47 +00:00
Casper Warden
60e300f052 Add ObjectStoreLite to reduce memory footprint if the full object data is not needed 2017-12-14 02:06:28 +00:00
Casper Warden
c9831ab427 Handle disconnects gracefully! Handle KillObject to prevent perpetually inflating object store. Unsubscribe from rxjs subscription in bot.ts on disconnect. Stop ping timer. Don't re-create clientEvents on each login. 2017-12-14 01:21:18 +00:00
Casper Warden
4e8feb181f Ping / circuit latency, break out commands, add typing function for IM, add thinkingTime and charactersPerSecond parameters to typing functions 2017-12-13 19:55:08 +00:00
Casper Warden
d0658438b9 Teleports, Asset upload / download, Restructure stuff, Fix varlength read bug, BVH parser, agent initial appearance and animation glitches, LLSD + Caps + Event queue 2017-11-30 04:11:59 +00:00
Casper Warden
fc6d77a893 Fix zerocoder, use buffers instead of strings for vardata, add util for null-terminated string<->buffer conversion 2017-11-26 19:47:41 +00:00
Casper Warden
d2ea9ce40b Message parser 2017-11-24 01:00:56 +00:00
Casper Warden
e529b3c993 Login working and prepare LoginResponse class and associated types 2017-11-21 15:09:26 +00:00