@caspertech/node-metaverse 0.7.50 → 0.7.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/examples/Camera/Camera.js +3 -14
- package/dist/examples/Camera/Camera.js.map +1 -1
- package/dist/examples/ExampleBot.js +66 -87
- package/dist/examples/ExampleBot.js.map +1 -1
- package/dist/examples/Friends/Friends.js +29 -44
- package/dist/examples/Friends/Friends.js.map +1 -1
- package/dist/examples/Grid/Name2Key.js +25 -36
- package/dist/examples/Grid/Name2Key.js.map +1 -1
- package/dist/examples/Groups/Group.js +42 -55
- package/dist/examples/Groups/Group.js.map +1 -1
- package/dist/examples/Groups/GroupChat.js +55 -68
- package/dist/examples/Groups/GroupChat.js.map +1 -1
- package/dist/examples/InstantMessages/InstantMessages.js +8 -21
- package/dist/examples/InstantMessages/InstantMessages.js.map +1 -1
- package/dist/examples/Inventory/Inventory.js +80 -97
- package/dist/examples/Inventory/Inventory.js.map +1 -1
- package/dist/examples/MFA/MFA.js +24 -40
- package/dist/examples/MFA/MFA.js.map +1 -1
- package/dist/examples/Money/Money.js +28 -41
- package/dist/examples/Money/Money.js.map +1 -1
- package/dist/examples/Objects/TaskInventory.js +13 -24
- package/dist/examples/Objects/TaskInventory.js.map +1 -1
- package/dist/examples/Region/Agents.js +6 -17
- package/dist/examples/Region/Agents.js.map +1 -1
- package/dist/examples/Region/Estate.js +9 -20
- package/dist/examples/Region/Estate.js.map +1 -1
- package/dist/examples/Region/Parcels.js +12 -23
- package/dist/examples/Region/Parcels.js.map +1 -1
- package/dist/examples/Region/Region.js +2 -13
- package/dist/examples/Region/Region.js.map +1 -1
- package/dist/examples/Region/Settings.js +15 -0
- package/dist/examples/Region/Settings.js.map +1 -0
- package/dist/examples/Teleports/Teleports.js +22 -35
- package/dist/examples/Teleports/Teleports.js.map +1 -1
- package/dist/lib/Bot.d.ts +14 -14
- package/dist/lib/Bot.js +217 -231
- package/dist/lib/Bot.js.map +1 -1
- package/dist/lib/LoginHandler.d.ts +3 -3
- package/dist/lib/LoginHandler.js +106 -116
- package/dist/lib/LoginHandler.js.map +1 -1
- package/dist/lib/classes/Agent.d.ts +23 -35
- package/dist/lib/classes/Agent.js +96 -108
- package/dist/lib/classes/Agent.js.map +1 -1
- package/dist/lib/classes/AssetMap.d.ts +18 -95
- package/dist/lib/classes/AssetMap.js +86 -16
- package/dist/lib/classes/AssetMap.js.map +1 -1
- package/dist/lib/classes/AssetRegistry.d.ts +31 -0
- package/dist/lib/classes/AssetRegistry.js +26 -0
- package/dist/lib/classes/AssetRegistry.js.map +1 -0
- package/dist/lib/classes/AssetTypeRegistry.d.ts +21 -0
- package/dist/lib/classes/AssetTypeRegistry.js +81 -0
- package/dist/lib/classes/AssetTypeRegistry.js.map +1 -0
- package/dist/lib/classes/BVH.js.map +1 -1
- package/dist/lib/classes/BVHJoint.js.map +1 -1
- package/dist/lib/classes/BVHJointKeyframe.d.ts +1 -1
- package/dist/lib/classes/BatchQueue.d.ts +2 -2
- package/dist/lib/classes/BatchQueue.js +66 -80
- package/dist/lib/classes/BatchQueue.js.map +1 -1
- package/dist/lib/classes/BatchQueue.spec.js +17 -26
- package/dist/lib/classes/BatchQueue.spec.js.map +1 -1
- package/dist/lib/classes/BinaryReader.d.ts +66 -0
- package/dist/lib/classes/BinaryReader.js +304 -0
- package/dist/lib/classes/BinaryReader.js.map +1 -0
- package/dist/lib/classes/BinaryReader.spec.js +241 -0
- package/dist/lib/classes/BinaryReader.spec.js.map +1 -0
- package/dist/lib/classes/BinaryWriter.d.ts +34 -0
- package/dist/lib/classes/BinaryWriter.js +192 -0
- package/dist/lib/classes/BinaryWriter.js.map +1 -0
- package/dist/lib/classes/BinaryWriter.spec.d.ts +1 -0
- package/dist/lib/classes/BinaryWriter.spec.js +328 -0
- package/dist/lib/classes/BinaryWriter.spec.js.map +1 -0
- package/dist/lib/classes/BitPack.d.ts +2 -2
- package/dist/lib/classes/BitPack.js +1 -1
- package/dist/lib/classes/BitPack.js.map +1 -1
- package/dist/lib/classes/BuildMap.d.ts +6 -6
- package/dist/lib/classes/BuildMap.js.map +1 -1
- package/dist/lib/classes/Caps.d.ts +18 -24
- package/dist/lib/classes/Caps.js +278 -297
- package/dist/lib/classes/Caps.js.map +1 -1
- package/dist/lib/classes/Circuit.d.ts +20 -28
- package/dist/lib/classes/Circuit.js +104 -91
- package/dist/lib/classes/Circuit.js.map +1 -1
- package/dist/lib/classes/ClientCommands.d.ts +3 -3
- package/dist/lib/classes/ClientCommands.js.map +1 -1
- package/dist/lib/classes/ClientEvents.d.ts +41 -32
- package/dist/lib/classes/ClientEvents.js +65 -0
- package/dist/lib/classes/ClientEvents.js.map +1 -1
- package/dist/lib/classes/CoalescedGameObject.d.ts +2 -2
- package/dist/lib/classes/CoalescedGameObject.js +37 -49
- package/dist/lib/classes/CoalescedGameObject.js.map +1 -1
- package/dist/lib/classes/Color4.d.ts +2 -2
- package/dist/lib/classes/Color4.js +42 -42
- package/dist/lib/classes/Color4.js.map +1 -1
- package/dist/lib/classes/Comms.d.ts +3 -3
- package/dist/lib/classes/Comms.js +236 -236
- package/dist/lib/classes/Comms.js.map +1 -1
- package/dist/lib/classes/ConcurrentQueue.d.ts +3 -3
- package/dist/lib/classes/ConcurrentQueue.js +16 -11
- package/dist/lib/classes/ConcurrentQueue.js.map +1 -1
- package/dist/lib/classes/EventQueueClient.d.ts +6 -6
- package/dist/lib/classes/EventQueueClient.js +189 -201
- package/dist/lib/classes/EventQueueClient.js.map +1 -1
- package/dist/lib/classes/GroupBan.d.ts +3 -3
- package/dist/lib/classes/GroupBan.js.map +1 -1
- package/dist/lib/classes/GroupMember.d.ts +2 -2
- package/dist/lib/classes/GroupRole.d.ts +2 -2
- package/dist/lib/classes/IPAddress.d.ts +3 -2
- package/dist/lib/classes/IPAddress.js +14 -13
- package/dist/lib/classes/IPAddress.js.map +1 -1
- package/dist/lib/classes/Inventory.d.ts +7 -15
- package/dist/lib/classes/Inventory.js +69 -80
- package/dist/lib/classes/Inventory.js.map +1 -1
- package/dist/lib/classes/InventoryFolder.d.ts +11 -11
- package/dist/lib/classes/InventoryFolder.js +539 -601
- package/dist/lib/classes/InventoryFolder.js.map +1 -1
- package/dist/lib/classes/InventoryItem.d.ts +15 -11
- package/dist/lib/classes/InventoryItem.js +494 -486
- package/dist/lib/classes/InventoryItem.js.map +1 -1
- package/dist/lib/classes/InventoryTypeRegistry.d.ts +19 -0
- package/dist/lib/classes/InventoryTypeRegistry.js +69 -0
- package/dist/lib/classes/InventoryTypeRegistry.js.map +1 -0
- package/dist/lib/classes/LLGLTFMaterial.d.ts +1 -1
- package/dist/lib/classes/LLGLTFMaterial.js +2 -2
- package/dist/lib/classes/LLGLTFMaterial.js.map +1 -1
- package/dist/lib/classes/LLGLTFMaterial.spec.js +17 -18
- package/dist/lib/classes/LLGLTFMaterial.spec.js.map +1 -1
- package/dist/lib/classes/LLGLTFMaterialOverride.d.ts +1 -1
- package/dist/lib/classes/LLGLTFMaterialOverride.js +119 -118
- package/dist/lib/classes/LLGLTFMaterialOverride.js.map +1 -1
- package/dist/lib/classes/LLGLTFMaterialOverride.spec.js +70 -71
- package/dist/lib/classes/LLGLTFMaterialOverride.spec.js.map +1 -1
- package/dist/lib/classes/LLGesture.d.ts +1 -1
- package/dist/lib/classes/LLGesture.js +1 -1
- package/dist/lib/classes/LLGesture.js.map +1 -1
- package/dist/lib/classes/LLGestureAnimationStep.d.ts +1 -1
- package/dist/lib/classes/LLGestureAnimationStep.js.map +1 -1
- package/dist/lib/classes/LLGestureChatStep.js.map +1 -1
- package/dist/lib/classes/LLGestureSoundStep.d.ts +1 -1
- package/dist/lib/classes/LLGestureSoundStep.js.map +1 -1
- package/dist/lib/classes/LLGestureStep.d.ts +1 -1
- package/dist/lib/classes/LLGestureWaitStep.js.map +1 -1
- package/dist/lib/classes/LLLindenText.d.ts +2 -4
- package/dist/lib/classes/LLLindenText.js +12 -8
- package/dist/lib/classes/LLLindenText.js.map +1 -1
- package/dist/lib/classes/LLSettings.d.ts +98 -83
- package/dist/lib/classes/LLSettings.js +244 -82
- package/dist/lib/classes/LLSettings.js.map +1 -1
- package/dist/lib/classes/LLSettings.spec.d.ts +1 -0
- package/dist/lib/classes/LLSettings.spec.js +27 -0
- package/dist/lib/classes/LLSettings.spec.js.map +1 -0
- package/dist/lib/classes/LLWearable.d.ts +4 -8
- package/dist/lib/classes/LLWearable.js +1 -1
- package/dist/lib/classes/LLWearable.js.map +1 -1
- package/dist/lib/classes/Logger.d.ts +3 -3
- package/dist/lib/classes/Logger.js +1 -1
- package/dist/lib/classes/Logger.js.map +1 -1
- package/dist/lib/classes/LoginParameters.js.map +1 -1
- package/dist/lib/classes/LoginResponse.d.ts +4 -9
- package/dist/lib/classes/LoginResponse.js +120 -113
- package/dist/lib/classes/LoginResponse.js.map +1 -1
- package/dist/lib/classes/MapBlock.d.ts +2 -2
- package/dist/lib/classes/MessageBase.d.ts +5 -5
- package/dist/lib/classes/MessageClasses.js.map +1 -1
- package/dist/lib/classes/ObjectResolver.d.ts +6 -6
- package/dist/lib/classes/ObjectResolver.js +127 -152
- package/dist/lib/classes/ObjectResolver.js.map +1 -1
- package/dist/lib/classes/ObjectStoreFull.d.ts +9 -9
- package/dist/lib/classes/ObjectStoreFull.js +176 -192
- package/dist/lib/classes/ObjectStoreFull.js.map +1 -1
- package/dist/lib/classes/ObjectStoreLite.d.ts +29 -31
- package/dist/lib/classes/ObjectStoreLite.js +485 -494
- package/dist/lib/classes/ObjectStoreLite.js.map +1 -1
- package/dist/lib/classes/Packet.d.ts +2 -2
- package/dist/lib/classes/Packet.js +2 -2
- package/dist/lib/classes/Packet.js.map +1 -1
- package/dist/lib/classes/ParticleSystem.js +1 -1
- package/dist/lib/classes/ParticleSystem.js.map +1 -1
- package/dist/lib/classes/PrimFacesHelper.d.ts +14 -0
- package/dist/lib/classes/PrimFacesHelper.js +75 -0
- package/dist/lib/classes/PrimFacesHelper.js.map +1 -0
- package/dist/lib/classes/Quaternion.d.ts +31 -6
- package/dist/lib/classes/Quaternion.js +237 -49
- package/dist/lib/classes/Quaternion.js.map +1 -1
- package/dist/lib/classes/Region.d.ts +22 -22
- package/dist/lib/classes/Region.js +449 -526
- package/dist/lib/classes/Region.js.map +1 -1
- package/dist/lib/classes/TarArchive.d.ts +1 -1
- package/dist/lib/classes/TarArchive.js.map +1 -1
- package/dist/lib/classes/TarFile.js +1 -1
- package/dist/lib/classes/TarFile.js.map +1 -1
- package/dist/lib/classes/TarReader.d.ts +1 -2
- package/dist/lib/classes/TarReader.js +15 -17
- package/dist/lib/classes/TarReader.js.map +1 -1
- package/dist/lib/classes/TarWriter.d.ts +1 -1
- package/dist/lib/classes/TarWriter.js +51 -68
- package/dist/lib/classes/TarWriter.js.map +1 -1
- package/dist/lib/classes/TextureEntry.d.ts +2 -3
- package/dist/lib/classes/TextureEntry.js +12 -12
- package/dist/lib/classes/TextureEntry.js.map +1 -1
- package/dist/lib/classes/TextureEntryFace.d.ts +4 -4
- package/dist/lib/classes/TextureEntryFace.js.map +1 -1
- package/dist/lib/classes/UUID.d.ts +2 -2
- package/dist/lib/classes/UUID.js +28 -28
- package/dist/lib/classes/UUID.js.map +1 -1
- package/dist/lib/classes/Utils.d.ts +2 -11
- package/dist/lib/classes/Utils.js +72 -328
- package/dist/lib/classes/Utils.js.map +1 -1
- package/dist/lib/classes/Vector2.d.ts +35 -6
- package/dist/lib/classes/Vector2.js +192 -28
- package/dist/lib/classes/Vector2.js.map +1 -1
- package/dist/lib/classes/Vector3.d.ts +38 -6
- package/dist/lib/classes/Vector3.js +230 -49
- package/dist/lib/classes/Vector3.js.map +1 -1
- package/dist/lib/classes/Vector4.d.ts +36 -6
- package/dist/lib/classes/Vector4.js +225 -21
- package/dist/lib/classes/Vector4.js.map +1 -1
- package/dist/lib/classes/Wearable.d.ts +1 -1
- package/dist/lib/classes/Zerocoder.js +2 -2
- package/dist/lib/classes/Zerocoder.js.map +1 -1
- package/dist/lib/classes/commands/AgentCommands.d.ts +7 -5
- package/dist/lib/classes/commands/AgentCommands.js +60 -76
- package/dist/lib/classes/commands/AgentCommands.js.map +1 -1
- package/dist/lib/classes/commands/AssetCommands.d.ts +5 -10
- package/dist/lib/classes/commands/AssetCommands.js +176 -179
- package/dist/lib/classes/commands/AssetCommands.js.map +1 -1
- package/dist/lib/classes/commands/CommandsBase.d.ts +4 -4
- package/dist/lib/classes/commands/CommandsBase.js.map +1 -1
- package/dist/lib/classes/commands/CommunicationsCommands.d.ts +3 -3
- package/dist/lib/classes/commands/CommunicationsCommands.js +350 -426
- package/dist/lib/classes/commands/CommunicationsCommands.js.map +1 -1
- package/dist/lib/classes/commands/FriendCommands.d.ts +9 -10
- package/dist/lib/classes/commands/FriendCommands.js +238 -236
- package/dist/lib/classes/commands/FriendCommands.js.map +1 -1
- package/dist/lib/classes/commands/GridCommands.d.ts +3 -3
- package/dist/lib/classes/commands/GridCommands.js +299 -336
- package/dist/lib/classes/commands/GridCommands.js.map +1 -1
- package/dist/lib/classes/commands/GroupCommands.d.ts +2 -2
- package/dist/lib/classes/commands/GroupCommands.js +293 -336
- package/dist/lib/classes/commands/GroupCommands.js.map +1 -1
- package/dist/lib/classes/commands/InventoryCommands.d.ts +4 -4
- package/dist/lib/classes/commands/InventoryCommands.js +54 -69
- package/dist/lib/classes/commands/InventoryCommands.js.map +1 -1
- package/dist/lib/classes/commands/MovementCommands.d.ts +2 -2
- package/dist/lib/classes/commands/MovementCommands.js +23 -38
- package/dist/lib/classes/commands/MovementCommands.js.map +1 -1
- package/dist/lib/classes/commands/NetworkCommands.js +35 -46
- package/dist/lib/classes/commands/NetworkCommands.js.map +1 -1
- package/dist/lib/classes/commands/ParcelCommands.d.ts +4 -4
- package/dist/lib/classes/commands/ParcelCommands.js +64 -77
- package/dist/lib/classes/commands/ParcelCommands.js.map +1 -1
- package/dist/lib/classes/commands/RegionCommands.d.ts +11 -10
- package/dist/lib/classes/commands/RegionCommands.js +1126 -1211
- package/dist/lib/classes/commands/RegionCommands.js.map +1 -1
- package/dist/lib/classes/commands/TeleportCommands.d.ts +8 -8
- package/dist/lib/classes/commands/TeleportCommands.js +58 -58
- package/dist/lib/classes/commands/TeleportCommands.js.map +1 -1
- package/dist/lib/classes/interfaces/IGameObjectData.d.ts +18 -20
- package/dist/lib/classes/interfaces/ILandBlock.d.ts +2 -2
- package/dist/lib/classes/interfaces/IObjectStore.d.ts +12 -12
- package/dist/lib/classes/interfaces/IResolveJob.d.ts +2 -2
- package/dist/lib/classes/interfaces/ITreeBoundingBox.d.ts +2 -2
- package/dist/lib/classes/llsd/LLSD.d.ts +12 -0
- package/dist/lib/classes/llsd/LLSD.js +135 -0
- package/dist/lib/classes/llsd/LLSD.js.map +1 -0
- package/dist/lib/classes/llsd/LLSD.spec.d.ts +1 -0
- package/dist/lib/classes/llsd/LLSD.spec.js +249 -0
- package/dist/lib/classes/llsd/LLSD.spec.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDArray.d.ts +26 -3
- package/dist/lib/classes/llsd/LLSDArray.js +182 -6
- package/dist/lib/classes/llsd/LLSDArray.js.map +1 -1
- package/dist/lib/classes/llsd/LLSDBinary.d.ts +7 -0
- package/dist/lib/classes/llsd/LLSDBinary.js +114 -0
- package/dist/lib/classes/llsd/LLSDBinary.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDInteger.d.ts +9 -0
- package/dist/lib/classes/llsd/LLSDInteger.js +25 -0
- package/dist/lib/classes/llsd/LLSDInteger.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDMap.d.ts +16 -5
- package/dist/lib/classes/llsd/LLSDMap.js +197 -16
- package/dist/lib/classes/llsd/LLSDMap.js.map +1 -1
- package/dist/lib/classes/llsd/LLSDNotation.d.ts +11 -0
- package/dist/lib/classes/llsd/LLSDNotation.js +271 -0
- package/dist/lib/classes/llsd/LLSDNotation.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDReal.d.ts +10 -0
- package/dist/lib/classes/llsd/LLSDReal.js +71 -0
- package/dist/lib/classes/llsd/LLSDReal.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDToken.d.ts +1 -1
- package/dist/lib/classes/llsd/LLSDTokenContainer.d.ts +2 -2
- package/dist/lib/classes/llsd/LLSDTokenGenerator.d.ts +1 -1
- package/dist/lib/classes/llsd/LLSDTokenSpec.d.ts +1 -1
- package/dist/lib/classes/llsd/LLSDTokenType.d.ts +18 -18
- package/dist/lib/classes/llsd/LLSDTokenType.js +18 -18
- package/dist/lib/classes/llsd/LLSDTokenType.js.map +1 -1
- package/dist/lib/classes/llsd/LLSDType.d.ts +6 -3
- package/dist/lib/classes/llsd/LLSDURI.d.ts +7 -0
- package/dist/lib/classes/llsd/LLSDURI.js +19 -0
- package/dist/lib/classes/llsd/LLSDURI.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDXML.d.ts +5 -0
- package/dist/lib/classes/llsd/LLSDXML.js +245 -0
- package/dist/lib/classes/llsd/LLSDXML.js.map +1 -0
- package/dist/lib/classes/messages/ObjectUpdate.d.ts +4 -5
- package/dist/lib/classes/messages/ObjectUpdate.js +115 -115
- package/dist/lib/classes/messages/ObjectUpdate.js.map +1 -1
- package/dist/lib/classes/messages/SimStats.d.ts +3 -2
- package/dist/lib/classes/messages/SimStats.js +17 -17
- package/dist/lib/classes/messages/SimStats.js.map +1 -1
- package/dist/lib/classes/public/Avatar.d.ts +4 -4
- package/dist/lib/classes/public/Avatar.js +39 -33
- package/dist/lib/classes/public/Avatar.js.map +1 -1
- package/dist/lib/classes/public/AvatarQueryResult.d.ts +4 -4
- package/dist/lib/classes/public/AvatarQueryResult.js.map +1 -1
- package/dist/lib/classes/public/ExtendedMeshData.d.ts +1 -1
- package/dist/lib/classes/public/ExtendedMeshData.js.map +1 -1
- package/dist/lib/classes/public/ExtraParams.d.ts +6 -6
- package/dist/lib/classes/public/ExtraParams.js +36 -39
- package/dist/lib/classes/public/ExtraParams.js.map +1 -1
- package/dist/lib/classes/public/ExtraParams.spec.js +2 -11
- package/dist/lib/classes/public/ExtraParams.spec.js.map +1 -1
- package/dist/lib/classes/public/FlexibleData.js.map +1 -1
- package/dist/lib/classes/public/Friend.js.map +1 -1
- package/dist/lib/classes/public/GameObject.d.ts +23 -21
- package/dist/lib/classes/public/GameObject.js +1294 -1306
- package/dist/lib/classes/public/GameObject.js.map +1 -1
- package/dist/lib/classes/public/GameObject.spec.js +8 -18
- package/dist/lib/classes/public/GameObject.spec.js.map +1 -1
- package/dist/lib/classes/public/LLMesh.d.ts +5 -7
- package/dist/lib/classes/public/LLMesh.js +194 -213
- package/dist/lib/classes/public/LLMesh.js.map +1 -1
- package/dist/lib/classes/public/LightData.js.map +1 -1
- package/dist/lib/classes/public/LightImageData.js.map +1 -1
- package/dist/lib/classes/public/Material.js +45 -56
- package/dist/lib/classes/public/Material.js.map +1 -1
- package/dist/lib/classes/public/MeshData.js.map +1 -1
- package/dist/lib/classes/public/Parcel.d.ts +4 -4
- package/dist/lib/classes/public/Parcel.js +1 -2
- package/dist/lib/classes/public/Parcel.js.map +1 -1
- package/dist/lib/classes/public/ReflectionProbeData.d.ts +1 -1
- package/dist/lib/classes/public/ReflectionProbeData.js.map +1 -1
- package/dist/lib/classes/public/RegionEnvironment.d.ts +14 -13
- package/dist/lib/classes/public/RegionEnvironment.js +94 -53
- package/dist/lib/classes/public/RegionEnvironment.js.map +1 -1
- package/dist/lib/classes/public/RegionEnvironmentSky.d.ts +2 -0
- package/dist/lib/classes/public/RegionEnvironmentSky.js +7 -0
- package/dist/lib/classes/public/RegionEnvironmentSky.js.map +1 -0
- package/dist/lib/classes/public/RegionEnvironmentWater.d.ts +2 -0
- package/dist/lib/classes/public/RegionEnvironmentWater.js +7 -0
- package/dist/lib/classes/public/RegionEnvironmentWater.js.map +1 -0
- package/dist/lib/classes/public/RenderMaterialData.js.map +1 -1
- package/dist/lib/classes/public/RenderMaterialParam.d.ts +1 -1
- package/dist/lib/classes/public/SculptData.js.map +1 -1
- package/dist/lib/classes/public/TextureAnim.js +2 -1
- package/dist/lib/classes/public/TextureAnim.js.map +1 -1
- package/dist/lib/classes/public/interfaces/GlobalPosition.d.ts +1 -1
- package/dist/lib/classes/public/interfaces/LLPhysicsConvex.d.ts +1 -1
- package/dist/lib/classes/public/interfaces/LLSkin.d.ts +1 -1
- package/dist/lib/classes/public/interfaces/LLSubMesh.d.ts +3 -5
- package/dist/lib/classes/public/interfaces/MapLocation.d.ts +3 -3
- package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.d.ts +26 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.js +3 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.js.map +1 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.d.ts +15 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.js +3 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.js.map +1 -0
- package/dist/lib/classes/public/interfaces/SkyPreset.d.ts +3 -3
- package/dist/lib/classes/public/interfaces/WaterPreset.d.ts +4 -4
- package/dist/lib/deviceToken.json +1 -0
- package/dist/lib/enums/AssetType.d.ts +6 -4
- package/dist/lib/enums/AssetType.js +5 -3
- package/dist/lib/enums/AssetType.js.map +1 -1
- package/dist/lib/enums/AttachmentPoint.d.ts +0 -1
- package/dist/lib/enums/AttachmentPoint.js +0 -1
- package/dist/lib/enums/AttachmentPoint.js.map +1 -1
- package/dist/lib/enums/InventoryType.d.ts +3 -5
- package/dist/lib/enums/InventoryType.js +2 -4
- package/dist/lib/enums/InventoryType.js.map +1 -1
- package/dist/lib/enums/LayerType.d.ts +1 -1
- package/dist/lib/enums/LayerType.js +1 -1
- package/dist/lib/events/AvatarPropertiesReplyEvent.d.ts +1 -1
- package/dist/lib/events/BalanceUpdatedEvent.d.ts +2 -2
- package/dist/lib/events/BulkUpdateInventoryEvent.d.ts +2 -2
- package/dist/lib/events/BulkUpdateInventoryEvent.js.map +1 -1
- package/dist/lib/events/ChatEvent.d.ts +5 -5
- package/dist/lib/events/FriendOnlineEvent.d.ts +1 -1
- package/dist/lib/events/FriendRemovedEvent.d.ts +1 -1
- package/dist/lib/events/FriendRequestEvent.d.ts +1 -1
- package/dist/lib/events/FriendResponseEvent.d.ts +1 -1
- package/dist/lib/events/FriendRightsEvent.d.ts +2 -2
- package/dist/lib/events/GroupChatClosedEvent.d.ts +1 -1
- package/dist/lib/events/GroupChatEvent.d.ts +1 -1
- package/dist/lib/events/GroupChatSessionAgentListEvent.d.ts +1 -1
- package/dist/lib/events/GroupChatSessionJoinEvent.d.ts +1 -1
- package/dist/lib/events/GroupInviteEvent.d.ts +1 -1
- package/dist/lib/events/GroupNoticeEvent.d.ts +1 -1
- package/dist/lib/events/GroupProfileReplyEvent.d.ts +2 -2
- package/dist/lib/events/InstantMessageEvent.d.ts +3 -3
- package/dist/lib/events/InventoryOfferedEvent.d.ts +3 -3
- package/dist/lib/events/InventoryResponseEvent.d.ts +1 -1
- package/dist/lib/events/LandStatsEvent.d.ts +4 -4
- package/dist/lib/events/LandStatsEvent.js.map +1 -1
- package/dist/lib/events/LureEvent.d.ts +2 -2
- package/dist/lib/events/MapInfoRangeReplyEvent.d.ts +1 -1
- package/dist/lib/events/MapInfoReplyEvent.d.ts +2 -2
- package/dist/lib/events/NewObjectEvent.d.ts +2 -2
- package/dist/lib/events/ObjectKilledEvent.d.ts +2 -2
- package/dist/lib/events/ObjectPhysicsDataEvent.d.ts +1 -1
- package/dist/lib/events/ObjectResolvedEvent.d.ts +1 -1
- package/dist/lib/events/ObjectUpdatedEvent.d.ts +2 -2
- package/dist/lib/events/ParcelInfoReplyEvent.d.ts +3 -3
- package/dist/lib/events/ParcelPropertiesEvent.d.ts +3 -3
- package/dist/lib/events/RegionInfoReplyEvent.d.ts +2 -2
- package/dist/lib/events/ScriptDialogEvent.d.ts +1 -1
- package/dist/lib/events/SelectedObjectEvent.d.ts +1 -1
- package/dist/lib/events/TeleportEvent.d.ts +1 -1
- package/dist/lib/index.d.ts +6 -8
- package/dist/lib/index.js +4 -7
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/tsm/common.d.ts +1 -1
- package/dist/lib/tsm/common.js +3 -1
- package/dist/lib/tsm/common.js.map +1 -1
- package/dist/lib/tsm/mat2.d.ts +8 -8
- package/dist/lib/tsm/mat2.js +8 -7
- package/dist/lib/tsm/mat2.js.map +1 -1
- package/dist/lib/tsm/mat3.d.ts +7 -7
- package/dist/lib/tsm/mat3.js +8 -7
- package/dist/lib/tsm/mat3.js.map +1 -1
- package/dist/lib/tsm/mat4.d.ts +9 -9
- package/dist/lib/tsm/mat4.js +8 -7
- package/dist/lib/tsm/mat4.js.map +1 -1
- package/dist/lib/tsm/quat.d.ts +19 -19
- package/dist/lib/tsm/quat.js +69 -68
- package/dist/lib/tsm/quat.js.map +1 -1
- package/dist/lib/tsm/vec2.d.ts +13 -13
- package/dist/lib/tsm/vec2.js +30 -29
- package/dist/lib/tsm/vec2.js.map +1 -1
- package/dist/lib/tsm/vec3.d.ts +16 -16
- package/dist/lib/tsm/vec3.js +48 -47
- package/dist/lib/tsm/vec3.js.map +1 -1
- package/dist/lib/tsm/vec4.d.ts +22 -22
- package/dist/lib/tsm/vec4.js +94 -93
- package/dist/lib/tsm/vec4.js.map +1 -1
- package/eslint.config.mjs +104 -0
- package/examples/Inventory/Inventory.ts +4 -2
- package/examples/Money/Money.ts +6 -6
- package/examples/Objects/TaskInventory.ts +4 -3
- package/examples/Region/Settings.ts +19 -0
- package/package.json +10 -9
- package/.eslintrc +0 -224
- package/dist/lib/classes/llsd/LLSDNotationParser.d.ts +0 -9
- package/dist/lib/classes/llsd/LLSDNotationParser.js +0 -177
- package/dist/lib/classes/llsd/LLSDNotationParser.js.map +0 -1
- package/dist/lib/classes/llsd/LLSDNotationParser.spec.js +0 -167
- package/dist/lib/classes/llsd/LLSDNotationParser.spec.js.map +0 -1
- package/dist/lib/enums/AssetTypeLL.d.ts +0 -27
- package/dist/lib/enums/AssetTypeLL.js +0 -32
- package/dist/lib/enums/AssetTypeLL.js.map +0 -1
- package/dist/lib/enums/HTTPAssets.d.ts +0 -24
- package/dist/lib/enums/HTTPAssets.js +0 -29
- package/dist/lib/enums/HTTPAssets.js.map +0 -1
- package/dist/lib/tsm/test.js +0 -11
- package/dist/lib/tsm/test.js.map +0 -1
- /package/dist/{lib/classes/llsd/LLSDNotationParser.spec.d.ts → examples/Region/Settings.d.ts} +0 -0
- /package/dist/lib/{tsm/test.d.ts → classes/BinaryReader.spec.d.ts} +0 -0
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.Region = void 0;
|
|
13
4
|
const Circuit_1 = require("./Circuit");
|
|
@@ -28,9 +19,6 @@ const builder = require("xmlbuilder");
|
|
|
28
19
|
const SimAccessFlags_1 = require("../enums/SimAccessFlags");
|
|
29
20
|
const ParcelDwellRequest_1 = require("./messages/ParcelDwellRequest");
|
|
30
21
|
const Parcel_1 = require("./public/Parcel");
|
|
31
|
-
const RegionEnvironment_1 = require("./public/RegionEnvironment");
|
|
32
|
-
const Color4_1 = require("./Color4");
|
|
33
|
-
const Vector4_1 = require("./Vector4");
|
|
34
22
|
const LandFlags_1 = require("../enums/LandFlags");
|
|
35
23
|
const ParcelPropertiesRequest_1 = require("./messages/ParcelPropertiesRequest");
|
|
36
24
|
const UUID_1 = require("./UUID");
|
|
@@ -38,7 +26,6 @@ const RegionFlags_1 = require("../enums/RegionFlags");
|
|
|
38
26
|
const BotOptionFlags_1 = require("../enums/BotOptionFlags");
|
|
39
27
|
const PacketFlags_1 = require("../enums/PacketFlags");
|
|
40
28
|
const Vector3_1 = require("./Vector3");
|
|
41
|
-
const Vector2_1 = require("./Vector2");
|
|
42
29
|
const ObjectResolver_1 = require("./ObjectResolver");
|
|
43
30
|
const SimStatsEvent_1 = require("../events/SimStatsEvent");
|
|
44
31
|
const StatID_1 = require("../enums/StatID");
|
|
@@ -46,110 +33,9 @@ const Avatar_1 = require("./public/Avatar");
|
|
|
46
33
|
const BalanceUpdatedEvent_1 = require("../events/BalanceUpdatedEvent");
|
|
47
34
|
const Logger_1 = require("./Logger");
|
|
48
35
|
const EconomyDataRequest_1 = require("./messages/EconomyDataRequest");
|
|
36
|
+
const RegionEnvironment_1 = require("./public/RegionEnvironment");
|
|
37
|
+
const LLSD_1 = require("./llsd/LLSD");
|
|
49
38
|
class Region {
|
|
50
|
-
static IDCTColumn16(linein, lineout, column) {
|
|
51
|
-
let total;
|
|
52
|
-
let usize;
|
|
53
|
-
for (let n = 0; n < 16; n++) {
|
|
54
|
-
total = this.OO_SQRT_2 * linein[column];
|
|
55
|
-
for (let u = 1; u < 16; u++) {
|
|
56
|
-
usize = u * 16;
|
|
57
|
-
total += linein[usize + column] * this.CosineTable16[usize + n];
|
|
58
|
-
}
|
|
59
|
-
lineout[16 * n + column] = total;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
static IDCTLine16(linein, lineout, line) {
|
|
63
|
-
const oosob = 2.0 / 16.0;
|
|
64
|
-
const lineSize = line * 16;
|
|
65
|
-
let total = 0;
|
|
66
|
-
for (let n = 0; n < 16; n++) {
|
|
67
|
-
total = this.OO_SQRT_2 * linein[lineSize];
|
|
68
|
-
for (let u = 1; u < 16; u++) {
|
|
69
|
-
total += linein[lineSize + u] * this.CosineTable16[u * 16 + n];
|
|
70
|
-
}
|
|
71
|
-
lineout[lineSize + n] = total * oosob;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
static InitialSetup() {
|
|
75
|
-
{
|
|
76
|
-
let diag = false;
|
|
77
|
-
let right = true;
|
|
78
|
-
let i = 0;
|
|
79
|
-
let j = 0;
|
|
80
|
-
let count = 0;
|
|
81
|
-
for (let x = 0; x < 16 * 16; x++) {
|
|
82
|
-
this.CopyMatrix16.push(0);
|
|
83
|
-
this.DequantizeTable16.push(0);
|
|
84
|
-
this.CosineTable16.push(0);
|
|
85
|
-
}
|
|
86
|
-
while (i < 16 && j < 16) {
|
|
87
|
-
this.CopyMatrix16[j * 16 + i] = count++;
|
|
88
|
-
if (!diag) {
|
|
89
|
-
if (right) {
|
|
90
|
-
if (i < 16 - 1) {
|
|
91
|
-
i++;
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
j++;
|
|
95
|
-
}
|
|
96
|
-
right = false;
|
|
97
|
-
diag = true;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
if (j < 16 - 1) {
|
|
101
|
-
j++;
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
i++;
|
|
105
|
-
}
|
|
106
|
-
right = true;
|
|
107
|
-
diag = true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
if (right) {
|
|
112
|
-
i++;
|
|
113
|
-
j--;
|
|
114
|
-
if (i === 16 - 1 || j === 0) {
|
|
115
|
-
diag = false;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
i--;
|
|
120
|
-
j++;
|
|
121
|
-
if (j === 16 - 1 || i === 0) {
|
|
122
|
-
diag = false;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
{
|
|
129
|
-
for (let j = 0; j < 16; j++) {
|
|
130
|
-
for (let i = 0; i < 16; i++) {
|
|
131
|
-
this.DequantizeTable16[j * 16 + i] = 1.0 + 2.0 * (i + j);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
{
|
|
136
|
-
const hposz = Math.PI * 0.5 / 16.0;
|
|
137
|
-
for (let u = 0; u < 16; u++) {
|
|
138
|
-
for (let n = 0; n < 16; n++) {
|
|
139
|
-
this.CosineTable16[u * 16 + n] = Math.cos((2.0 * n + 1.0) * u * hposz);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
this.setup = true;
|
|
144
|
-
}
|
|
145
|
-
static doesBitmapContainCoordinate(bitmap, x, y) {
|
|
146
|
-
const mapBlockX = Math.floor(x / 4);
|
|
147
|
-
const mapBlockY = Math.floor(y / 4);
|
|
148
|
-
let index = (mapBlockY * 64) + mapBlockX;
|
|
149
|
-
const bit = index % 8;
|
|
150
|
-
index >>= 3;
|
|
151
|
-
return ((bitmap[index] & (1 << bit)) !== 0);
|
|
152
|
-
}
|
|
153
39
|
constructor(agent, clientEvents, options) {
|
|
154
40
|
this.regionSizeX = 256;
|
|
155
41
|
this.regionSizeY = 256;
|
|
@@ -167,10 +53,11 @@ class Region {
|
|
|
167
53
|
this.parcels = {};
|
|
168
54
|
this.parcelsByUUID = {};
|
|
169
55
|
this.parcelMap = [];
|
|
56
|
+
this.textures = {};
|
|
170
57
|
this.parcelCoordinates = [];
|
|
171
58
|
this.timeOffset = 0;
|
|
172
59
|
this.resolver = new ObjectResolver_1.ObjectResolver(this);
|
|
173
|
-
this.agents =
|
|
60
|
+
this.agents = new Map();
|
|
174
61
|
this.parcelOverlayReceived = {};
|
|
175
62
|
if (!Region.setup) {
|
|
176
63
|
Region.InitialSetup();
|
|
@@ -198,9 +85,10 @@ class Region {
|
|
|
198
85
|
this.objects = new ObjectStoreFull_1.ObjectStoreFull(this.circuit, agent, clientEvents, options);
|
|
199
86
|
}
|
|
200
87
|
this.comms = new Comms_1.Comms(this.circuit, agent, clientEvents);
|
|
201
|
-
this.parcelPropertiesSubscription = this.clientEvents.onParcelPropertiesEvent.subscribe((parcelProperties) =>
|
|
202
|
-
|
|
203
|
-
|
|
88
|
+
this.parcelPropertiesSubscription = this.clientEvents.onParcelPropertiesEvent.subscribe((parcelProperties) => {
|
|
89
|
+
this.resolveParcel(parcelProperties).catch((_e) => {
|
|
90
|
+
});
|
|
91
|
+
});
|
|
204
92
|
this.messageSubscription = this.circuit.subscribeToMessages([
|
|
205
93
|
Message_1.Message.ParcelOverlay,
|
|
206
94
|
Message_1.Message.LayerData,
|
|
@@ -208,7 +96,7 @@ class Region {
|
|
|
208
96
|
Message_1.Message.SimStats,
|
|
209
97
|
Message_1.Message.CoarseLocationUpdate,
|
|
210
98
|
Message_1.Message.MoneyBalanceReply
|
|
211
|
-
], (packet) =>
|
|
99
|
+
], async (packet) => {
|
|
212
100
|
switch (packet.message.id) {
|
|
213
101
|
case Message_1.Message.MoneyBalanceReply:
|
|
214
102
|
{
|
|
@@ -240,28 +128,29 @@ class Region {
|
|
|
240
128
|
const location = locations.Location[x];
|
|
241
129
|
const newPosition = new Vector3_1.Vector3([location.X, location.Y, location.Z * 4]);
|
|
242
130
|
foundAgents[agentData.AgentID.toString()] = newPosition;
|
|
243
|
-
|
|
244
|
-
|
|
131
|
+
const foundAgent = this.agents.get(agentData.AgentID.toString());
|
|
132
|
+
if (foundAgent === undefined) {
|
|
133
|
+
let resolved = await this.clientCommands.grid.avatarKey2Name(agentData.AgentID);
|
|
245
134
|
if (Array.isArray(resolved)) {
|
|
246
135
|
resolved = resolved[0];
|
|
247
136
|
}
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
else {
|
|
253
|
-
this.agents[agentData.AgentID.toString()].coarsePosition = newPosition;
|
|
254
|
-
}
|
|
137
|
+
const ag = new Avatar_1.Avatar(agentData.AgentID, resolved.getFirstName(), resolved.getLastName());
|
|
138
|
+
ag.coarsePosition = newPosition;
|
|
139
|
+
this.agents.set(agentData.AgentID.toString(), ag);
|
|
140
|
+
this.clientEvents.onAvatarEnteredRegion.next(ag);
|
|
255
141
|
}
|
|
256
142
|
else {
|
|
257
|
-
|
|
143
|
+
foundAgent.coarsePosition = newPosition;
|
|
258
144
|
}
|
|
259
145
|
}
|
|
260
|
-
const keys =
|
|
146
|
+
const keys = this.agents.keys();
|
|
261
147
|
for (const agentID of keys) {
|
|
262
148
|
if (foundAgents[agentID] === undefined) {
|
|
263
|
-
this.agents
|
|
264
|
-
|
|
149
|
+
const foundAgent = this.agents.get(agentID);
|
|
150
|
+
if (foundAgent !== undefined) {
|
|
151
|
+
foundAgent.coarseLeftRegion();
|
|
152
|
+
this.agents.delete(agentID);
|
|
153
|
+
}
|
|
265
154
|
}
|
|
266
155
|
}
|
|
267
156
|
break;
|
|
@@ -468,100 +357,104 @@ class Region {
|
|
|
468
357
|
const headerLayerType = nibbler.UnpackBits(8);
|
|
469
358
|
switch (type) {
|
|
470
359
|
case LayerType_1.LayerType.Land:
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
while (true) {
|
|
479
|
-
const quantWBits = nibbler.UnpackBits(8);
|
|
480
|
-
if (quantWBits === 97) {
|
|
481
|
-
break;
|
|
482
|
-
}
|
|
483
|
-
const dcOffset = nibbler.UnpackFloat();
|
|
484
|
-
const range = nibbler.UnpackBits(16);
|
|
485
|
-
const patchIDs = nibbler.UnpackBits(10);
|
|
486
|
-
const wordBits = (quantWBits & 0x0f) + 2;
|
|
487
|
-
x = patchIDs >> 5;
|
|
488
|
-
y = patchIDs & 0x1F;
|
|
489
|
-
if (x >= 16 || y >= 16) {
|
|
490
|
-
console.error('Invalid land packet. x: ' + x + ', y: ' + y + ', patchSize: ' + patchSize);
|
|
491
|
-
return;
|
|
360
|
+
{
|
|
361
|
+
if (headerLayerType === type) {
|
|
362
|
+
let x = 0;
|
|
363
|
+
let y = 0;
|
|
364
|
+
const patches = [];
|
|
365
|
+
for (let xi = 0; xi < 32 * 32; xi++) {
|
|
366
|
+
patches.push(0);
|
|
492
367
|
}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
368
|
+
while (true) {
|
|
369
|
+
const quantWBits = nibbler.UnpackBits(8);
|
|
370
|
+
if (quantWBits === 97) {
|
|
371
|
+
break;
|
|
372
|
+
}
|
|
373
|
+
const dcOffset = nibbler.UnpackFloat();
|
|
374
|
+
const range = nibbler.UnpackBits(16);
|
|
375
|
+
const patchIDs = nibbler.UnpackBits(10);
|
|
376
|
+
const wordBits = (quantWBits & 0x0f) + 2;
|
|
377
|
+
x = patchIDs >> 5;
|
|
378
|
+
y = patchIDs & 0x1F;
|
|
379
|
+
if (x >= 16 || y >= 16) {
|
|
380
|
+
console.error('Invalid land packet. x: ' + x + ', y: ' + y + ', patchSize: ' + patchSize);
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
let temp = 0;
|
|
385
|
+
for (let n = 0; n < patchSize * patchSize; n++) {
|
|
498
386
|
temp = nibbler.UnpackBits(1);
|
|
499
387
|
if (temp !== 0) {
|
|
500
388
|
temp = nibbler.UnpackBits(1);
|
|
501
389
|
if (temp !== 0) {
|
|
502
|
-
temp = nibbler.UnpackBits(
|
|
503
|
-
|
|
390
|
+
temp = nibbler.UnpackBits(1);
|
|
391
|
+
if (temp !== 0) {
|
|
392
|
+
temp = nibbler.UnpackBits(wordBits);
|
|
393
|
+
patches[n] = temp * -1;
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
temp = nibbler.UnpackBits(wordBits);
|
|
397
|
+
patches[n] = temp;
|
|
398
|
+
}
|
|
504
399
|
}
|
|
505
400
|
else {
|
|
506
|
-
|
|
507
|
-
|
|
401
|
+
for (let o = n; o < patchSize * patchSize; o++) {
|
|
402
|
+
patches[o] = 0;
|
|
403
|
+
}
|
|
404
|
+
break;
|
|
508
405
|
}
|
|
509
406
|
}
|
|
510
407
|
else {
|
|
511
|
-
|
|
512
|
-
patches[o] = 0;
|
|
513
|
-
}
|
|
514
|
-
break;
|
|
408
|
+
patches[n] = 0;
|
|
515
409
|
}
|
|
516
410
|
}
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
411
|
+
const block = [];
|
|
412
|
+
const output = [];
|
|
413
|
+
const prequant = (quantWBits >> 4) + 2;
|
|
414
|
+
const quantize = 1 << prequant;
|
|
415
|
+
const ooq = 1.0 / quantize;
|
|
416
|
+
const mult = ooq * range;
|
|
417
|
+
const addVal = mult * (1 << (prequant - 1)) + dcOffset;
|
|
418
|
+
if (patchSize === 16) {
|
|
419
|
+
for (let n = 0; n < 16 * 16; n++) {
|
|
420
|
+
block.push(patches[Region.CopyMatrix16[n]] * Region.DequantizeTable16[n]);
|
|
421
|
+
}
|
|
422
|
+
const ftemp = [];
|
|
423
|
+
for (let o = 0; o < 16 * 16; o++) {
|
|
424
|
+
ftemp.push(o);
|
|
425
|
+
}
|
|
426
|
+
for (let o = 0; o < 16; o++) {
|
|
427
|
+
Region.IDCTColumn16(block, ftemp, o);
|
|
428
|
+
}
|
|
429
|
+
for (let o = 0; o < 16; o++) {
|
|
430
|
+
Region.IDCTLine16(ftemp, block, o);
|
|
431
|
+
}
|
|
535
432
|
}
|
|
536
|
-
|
|
537
|
-
|
|
433
|
+
else {
|
|
434
|
+
throw new Error('IDCTPatchLarge not implemented');
|
|
538
435
|
}
|
|
539
|
-
for (
|
|
540
|
-
|
|
436
|
+
for (const bl of block) {
|
|
437
|
+
output.push(bl * mult + addVal);
|
|
541
438
|
}
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
let outputIndex = 0;
|
|
550
|
-
for (let yPoint = y * 16; yPoint < (y + 1) * 16; yPoint++) {
|
|
551
|
-
for (let xPoint = x * 16; xPoint < (x + 1) * 16; xPoint++) {
|
|
552
|
-
if (this.terrain[yPoint][xPoint] === -1) {
|
|
553
|
-
this.tilesReceived++;
|
|
439
|
+
let outputIndex = 0;
|
|
440
|
+
for (let yPoint = y * 16; yPoint < (y + 1) * 16; yPoint++) {
|
|
441
|
+
for (let xPoint = x * 16; xPoint < (x + 1) * 16; xPoint++) {
|
|
442
|
+
if (this.terrain[yPoint][xPoint] === -1) {
|
|
443
|
+
this.tilesReceived++;
|
|
444
|
+
}
|
|
445
|
+
this.terrain[yPoint][xPoint] = output[outputIndex++];
|
|
554
446
|
}
|
|
555
|
-
this.terrain[yPoint][xPoint] = output[outputIndex++];
|
|
556
447
|
}
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
448
|
+
if (this.tilesReceived === 65536) {
|
|
449
|
+
this.terrainComplete = true;
|
|
450
|
+
this.terrainCompleteEvent.next();
|
|
451
|
+
}
|
|
561
452
|
}
|
|
562
453
|
}
|
|
563
454
|
}
|
|
455
|
+
break;
|
|
564
456
|
}
|
|
457
|
+
default:
|
|
565
458
|
break;
|
|
566
459
|
}
|
|
567
460
|
break;
|
|
@@ -573,160 +466,119 @@ class Region {
|
|
|
573
466
|
this.timeOffset = (new Date().getTime() / 1000) - timeStamp;
|
|
574
467
|
break;
|
|
575
468
|
}
|
|
469
|
+
default:
|
|
470
|
+
break;
|
|
576
471
|
}
|
|
577
|
-
})
|
|
472
|
+
});
|
|
578
473
|
}
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
474
|
+
static IDCTColumn16(linein, lineout, column) {
|
|
475
|
+
let total = 0;
|
|
476
|
+
let usize = 0;
|
|
477
|
+
for (let n = 0; n < 16; n++) {
|
|
478
|
+
total = this.OO_SQRT_2 * linein[column];
|
|
479
|
+
for (let u = 1; u < 16; u++) {
|
|
480
|
+
usize = u * 16;
|
|
481
|
+
total += linein[usize + column] * this.CosineTable16[usize + n];
|
|
482
|
+
}
|
|
483
|
+
lineout[16 * n + column] = total;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
static IDCTLine16(linein, lineout, line) {
|
|
487
|
+
const oosob = 2.0 / 16.0;
|
|
488
|
+
const lineSize = line * 16;
|
|
489
|
+
let total = 0;
|
|
490
|
+
for (let n = 0; n < 16; n++) {
|
|
491
|
+
total = this.OO_SQRT_2 * linein[lineSize];
|
|
492
|
+
for (let u = 1; u < 16; u++) {
|
|
493
|
+
total += linein[lineSize + u] * this.CosineTable16[u * 16 + n];
|
|
494
|
+
}
|
|
495
|
+
lineout[lineSize + n] = total * oosob;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
static InitialSetup() {
|
|
499
|
+
{
|
|
500
|
+
let diag = false;
|
|
501
|
+
let right = true;
|
|
502
|
+
let i = 0;
|
|
503
|
+
let j = 0;
|
|
504
|
+
let count = 0;
|
|
505
|
+
for (let x = 0; x < 16 * 16; x++) {
|
|
506
|
+
this.CopyMatrix16.push(0);
|
|
507
|
+
this.DequantizeTable16.push(0);
|
|
508
|
+
this.CosineTable16.push(0);
|
|
509
|
+
}
|
|
510
|
+
while (i < 16 && j < 16) {
|
|
511
|
+
this.CopyMatrix16[j * 16 + i] = count++;
|
|
512
|
+
if (!diag) {
|
|
513
|
+
if (right) {
|
|
514
|
+
if (i < 16 - 1) {
|
|
515
|
+
i++;
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
j++;
|
|
519
|
+
}
|
|
520
|
+
right = false;
|
|
521
|
+
diag = true;
|
|
522
|
+
}
|
|
523
|
+
else {
|
|
524
|
+
if (j < 16 - 1) {
|
|
525
|
+
j++;
|
|
526
|
+
}
|
|
527
|
+
else {
|
|
528
|
+
i++;
|
|
529
|
+
}
|
|
530
|
+
right = true;
|
|
531
|
+
diag = true;
|
|
532
|
+
}
|
|
594
533
|
}
|
|
595
534
|
else {
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
parcel = this.parcelsByUUID[parcelID];
|
|
603
|
-
}
|
|
604
|
-
parcel.LocalID = parcelProperties.LocalID;
|
|
605
|
-
parcel.ParcelID = new UUID_1.UUID(dwellReply.Data.ParcelID.toString());
|
|
606
|
-
parcel.RegionDenyAgeUnverified = parcelProperties.RegionDenyTransacted;
|
|
607
|
-
parcel.MediaDesc = parcelProperties.MediaDesc;
|
|
608
|
-
parcel.MediaHeight = parcelProperties.MediaHeight;
|
|
609
|
-
parcel.MediaLoop = parcelProperties.MediaLoop;
|
|
610
|
-
parcel.MediaType = parcelProperties.MediaType;
|
|
611
|
-
parcel.MediaWidth = parcelProperties.MediaWidth;
|
|
612
|
-
parcel.ObscureMedia = parcelProperties.ObscureMedia;
|
|
613
|
-
parcel.ObscureMusic = parcelProperties.ObscureMusic;
|
|
614
|
-
parcel.AABBMax = parcelProperties.AABBMax;
|
|
615
|
-
parcel.AABBMin = parcelProperties.AABBMin;
|
|
616
|
-
parcel.AnyAVSounds = parcelProperties.AnyAVSounds;
|
|
617
|
-
parcel.Area = parcelProperties.Area;
|
|
618
|
-
parcel.AuctionID = parcelProperties.AuctionID;
|
|
619
|
-
parcel.AuthBuyerID = new UUID_1.UUID(parcelProperties.AuthBuyerID.toString());
|
|
620
|
-
parcel.Bitmap = parcelProperties.Bitmap;
|
|
621
|
-
parcel.Category = parcelProperties.Category;
|
|
622
|
-
parcel.ClaimDate = parcelProperties.ClaimDate;
|
|
623
|
-
parcel.ClaimPrice = parcelProperties.ClaimPrice;
|
|
624
|
-
parcel.Desc = parcelProperties.Desc;
|
|
625
|
-
parcel.Dwell = dwellReply.Data.Dwell;
|
|
626
|
-
parcel.GroupAVSounds = parcelProperties.GroupAVSounds;
|
|
627
|
-
parcel.GroupID = new UUID_1.UUID(parcelProperties.GroupID.toString());
|
|
628
|
-
parcel.GroupPrims = parcelProperties.GroupPrims;
|
|
629
|
-
parcel.IsGroupOwned = parcelProperties.IsGroupOwned;
|
|
630
|
-
parcel.LandingType = parcelProperties.LandingType;
|
|
631
|
-
parcel.MaxPrims = parcelProperties.MaxPrims;
|
|
632
|
-
parcel.MediaAutoScale = parcelProperties.MediaAutoScale;
|
|
633
|
-
parcel.MediaID = new UUID_1.UUID(parcelProperties.MediaID.toString());
|
|
634
|
-
parcel.MediaURL = parcelProperties.MediaURL;
|
|
635
|
-
parcel.MusicURL = parcelProperties.MusicURL;
|
|
636
|
-
parcel.Name = parcelProperties.Name;
|
|
637
|
-
parcel.OtherCleanTime = parcelProperties.OtherCleanTime;
|
|
638
|
-
parcel.OtherCount = parcelProperties.OtherCount;
|
|
639
|
-
parcel.OtherPrims = parcelProperties.OtherPrims;
|
|
640
|
-
parcel.OwnerID = new UUID_1.UUID(parcelProperties.OwnerID.toString());
|
|
641
|
-
parcel.OwnerPrims = parcelProperties.OwnerPrims;
|
|
642
|
-
parcel.ParcelFlags = parcelProperties.ParcelFlags;
|
|
643
|
-
parcel.ParcelPrimBonus = parcelProperties.ParcelPrimBonus;
|
|
644
|
-
parcel.PassHours = parcelProperties.PassHours;
|
|
645
|
-
parcel.PassPrice = parcelProperties.PassPrice;
|
|
646
|
-
parcel.PublicCount = parcelProperties.PublicCount;
|
|
647
|
-
parcel.RegionDenyAnonymous = parcelProperties.RegionDenyAnonymous;
|
|
648
|
-
parcel.RegionDenyIdentified = parcelProperties.RegionDenyIdentified;
|
|
649
|
-
parcel.RegionPushOverride = parcelProperties.RegionPushOverride;
|
|
650
|
-
parcel.RegionDenyTransacted = parcelProperties.RegionDenyTransacted;
|
|
651
|
-
parcel.RentPrice = parcelProperties.RentPrice;
|
|
652
|
-
parcel.RequestResult = parcelProperties.RequestResult;
|
|
653
|
-
parcel.SalePrice = parcelProperties.SalePrice;
|
|
654
|
-
parcel.SeeAvs = parcelProperties.SeeAvs;
|
|
655
|
-
parcel.SelectedPrims = parcelProperties.SelectedPrims;
|
|
656
|
-
parcel.SelfCount = parcelProperties.SelfCount;
|
|
657
|
-
parcel.SequenceID = parcelProperties.SequenceID;
|
|
658
|
-
parcel.SimWideMaxPrims = parcelProperties.SimWideMaxPrims;
|
|
659
|
-
parcel.SimWideTotalPrims = parcelProperties.SimWideTotalPrims;
|
|
660
|
-
parcel.SnapSelection = parcelProperties.SnapSelection;
|
|
661
|
-
parcel.SnapshotID = new UUID_1.UUID(parcelProperties.SnapshotID.toString());
|
|
662
|
-
parcel.Status = parcelProperties.Status;
|
|
663
|
-
parcel.TotalPrims = parcelProperties.TotalPrims;
|
|
664
|
-
parcel.UserLocation = parcelProperties.UserLocation;
|
|
665
|
-
parcel.UserLookAt = parcelProperties.UserLookAt;
|
|
666
|
-
parcel.RegionAllowAccessOverride = parcelProperties.RegionAllowAccessOverride;
|
|
667
|
-
this.parcels[parcelProperties.LocalID] = parcel;
|
|
668
|
-
let foundEmpty = false;
|
|
669
|
-
for (let y = 0; y < 64; y++) {
|
|
670
|
-
for (let x = 0; x < 64; x++) {
|
|
671
|
-
if (Region.doesBitmapContainCoordinate(parcel.Bitmap, x * 4, y * 4)) {
|
|
672
|
-
this.parcelMap[y][x] = parcel.LocalID;
|
|
535
|
+
if (right) {
|
|
536
|
+
i++;
|
|
537
|
+
j--;
|
|
538
|
+
if (i === 16 - 1 || j === 0) {
|
|
539
|
+
diag = false;
|
|
540
|
+
}
|
|
673
541
|
}
|
|
674
542
|
else {
|
|
675
|
-
|
|
676
|
-
|
|
543
|
+
i--;
|
|
544
|
+
j++;
|
|
545
|
+
if (j === 16 - 1 || i === 0) {
|
|
546
|
+
diag = false;
|
|
677
547
|
}
|
|
678
548
|
}
|
|
679
549
|
}
|
|
680
550
|
}
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
551
|
+
}
|
|
552
|
+
{
|
|
553
|
+
for (let j = 0; j < 16; j++) {
|
|
554
|
+
for (let i = 0; i < 16; i++) {
|
|
555
|
+
this.DequantizeTable16[j * 16 + i] = 1.0 + 2.0 * (i + j);
|
|
685
556
|
}
|
|
686
557
|
}
|
|
687
|
-
else if (this.parcelsComplete) {
|
|
688
|
-
this.parcelsComplete = false;
|
|
689
|
-
}
|
|
690
|
-
return parcel;
|
|
691
|
-
});
|
|
692
|
-
}
|
|
693
|
-
fillParcel(parcelID, x, y) {
|
|
694
|
-
if (x < 0 || y < 0 || x > 63 || y > 63) {
|
|
695
|
-
return;
|
|
696
|
-
}
|
|
697
|
-
if (this.parcelOverlay[(y * 64) + x].parcelID !== -1) {
|
|
698
|
-
return;
|
|
699
558
|
}
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
}
|
|
708
|
-
if (x < 63 && !(this.parcelOverlay[(y * 64) + (x + 1)].landFlags & LandFlags_1.LandFlags.BorderWest)) {
|
|
709
|
-
this.fillParcel(parcelID, x + 1, y);
|
|
710
|
-
}
|
|
711
|
-
if (y < 63 && !(this.parcelOverlay[((y + 1) * 64) + x].landFlags & LandFlags_1.LandFlags.BorderSouth)) {
|
|
712
|
-
this.fillParcel(parcelID, x, y + 1);
|
|
559
|
+
{
|
|
560
|
+
const hposz = Math.PI * 0.5 / 16.0;
|
|
561
|
+
for (let u = 0; u < 16; u++) {
|
|
562
|
+
for (let n = 0; n < 16; n++) {
|
|
563
|
+
this.CosineTable16[u * 16 + n] = Math.cos((2.0 * n + 1.0) * u * hposz);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
713
566
|
}
|
|
567
|
+
this.setup = true;
|
|
714
568
|
}
|
|
715
|
-
getUploadCost() {
|
|
716
|
-
|
|
717
|
-
if (this.uploadCost !== undefined) {
|
|
718
|
-
return this.uploadCost;
|
|
719
|
-
}
|
|
720
|
-
const msg = new EconomyDataRequest_1.EconomyDataRequestMessage();
|
|
721
|
-
this.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
722
|
-
const economyReply = yield this.circuit.waitForMessage(Message_1.Message.EconomyData, 10000, (_message) => {
|
|
723
|
-
return FilterResponse_1.FilterResponse.Finish;
|
|
724
|
-
});
|
|
725
|
-
this.uploadCost = economyReply.Info.PriceUpload;
|
|
569
|
+
async getUploadCost() {
|
|
570
|
+
if (this.uploadCost !== undefined) {
|
|
726
571
|
return this.uploadCost;
|
|
572
|
+
}
|
|
573
|
+
const msg = new EconomyDataRequest_1.EconomyDataRequestMessage();
|
|
574
|
+
this.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
575
|
+
const economyReply = await this.circuit.waitForMessage(Message_1.Message.EconomyData, 10000, (_message) => {
|
|
576
|
+
return FilterResponse_1.FilterResponse.Finish;
|
|
727
577
|
});
|
|
578
|
+
this.uploadCost = economyReply.Info.PriceUpload;
|
|
579
|
+
return this.uploadCost;
|
|
728
580
|
}
|
|
729
|
-
getParcelProperties(x, y) {
|
|
581
|
+
async getParcelProperties(x, y) {
|
|
730
582
|
return new Promise((resolve, reject) => {
|
|
731
583
|
const request = new ParcelPropertiesRequest_1.ParcelPropertiesRequestMessage();
|
|
732
584
|
request.AgentData = {
|
|
@@ -744,7 +596,7 @@ class Region {
|
|
|
744
596
|
this.circuit.sendMessage(request, PacketFlags_1.PacketFlags.Reliable);
|
|
745
597
|
let messageAwait = undefined;
|
|
746
598
|
let messageWaitTimer = undefined;
|
|
747
|
-
messageAwait = this.clientEvents.onParcelPropertiesEvent.subscribe((parcelProperties) =>
|
|
599
|
+
messageAwait = this.clientEvents.onParcelPropertiesEvent.subscribe((parcelProperties) => {
|
|
748
600
|
if (Region.doesBitmapContainCoordinate(parcelProperties.Bitmap, x, y)) {
|
|
749
601
|
if (messageAwait !== undefined) {
|
|
750
602
|
messageAwait.unsubscribe();
|
|
@@ -754,9 +606,13 @@ class Region {
|
|
|
754
606
|
clearTimeout(messageWaitTimer);
|
|
755
607
|
messageWaitTimer = undefined;
|
|
756
608
|
}
|
|
757
|
-
|
|
609
|
+
this.resolveParcel(parcelProperties).then((value) => {
|
|
610
|
+
resolve(value);
|
|
611
|
+
}).catch((e) => {
|
|
612
|
+
reject(e);
|
|
613
|
+
});
|
|
758
614
|
}
|
|
759
|
-
})
|
|
615
|
+
});
|
|
760
616
|
messageWaitTimer = setTimeout(() => {
|
|
761
617
|
if (messageAwait !== undefined) {
|
|
762
618
|
messageAwait.unsubscribe();
|
|
@@ -770,20 +626,18 @@ class Region {
|
|
|
770
626
|
}, 10000);
|
|
771
627
|
});
|
|
772
628
|
}
|
|
773
|
-
getParcels() {
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
parcels.push(yield this.getParcelProperties(parcel.x * 4.0, parcel.y * 4.0));
|
|
780
|
-
}
|
|
781
|
-
catch (error) {
|
|
782
|
-
console.error(error);
|
|
783
|
-
}
|
|
629
|
+
async getParcels() {
|
|
630
|
+
await this.waitForParcelOverlay();
|
|
631
|
+
const parcels = [];
|
|
632
|
+
for (const parcel of this.parcelCoordinates) {
|
|
633
|
+
try {
|
|
634
|
+
parcels.push(await this.getParcelProperties(parcel.x * 4.0, parcel.y * 4.0));
|
|
784
635
|
}
|
|
785
|
-
|
|
786
|
-
|
|
636
|
+
catch (error) {
|
|
637
|
+
console.error(error);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
return parcels;
|
|
787
641
|
}
|
|
788
642
|
resetParcels() {
|
|
789
643
|
this.parcelMap = [];
|
|
@@ -797,7 +651,7 @@ class Region {
|
|
|
797
651
|
this.parcelsByUUID = {};
|
|
798
652
|
this.parcelsComplete = false;
|
|
799
653
|
}
|
|
800
|
-
waitForParcelOverlay() {
|
|
654
|
+
async waitForParcelOverlay() {
|
|
801
655
|
return new Promise((resolve, reject) => {
|
|
802
656
|
if (this.parcelOverlayComplete) {
|
|
803
657
|
resolve();
|
|
@@ -818,7 +672,7 @@ class Region {
|
|
|
818
672
|
}
|
|
819
673
|
});
|
|
820
674
|
}
|
|
821
|
-
waitForParcels() {
|
|
675
|
+
async waitForParcels() {
|
|
822
676
|
return new Promise((resolve, reject) => {
|
|
823
677
|
if (this.parcelsComplete) {
|
|
824
678
|
resolve();
|
|
@@ -839,7 +693,7 @@ class Region {
|
|
|
839
693
|
}
|
|
840
694
|
});
|
|
841
695
|
}
|
|
842
|
-
waitForTerrain() {
|
|
696
|
+
async waitForTerrain() {
|
|
843
697
|
return new Promise((resolve, reject) => {
|
|
844
698
|
if (this.terrainComplete) {
|
|
845
699
|
resolve();
|
|
@@ -907,7 +761,10 @@ class Region {
|
|
|
907
761
|
terrain.ele('UseEstateSun', (this.useEstateSun) ? 'True' : 'False');
|
|
908
762
|
terrain.ele('FixedSun', (this.regionFlags & RegionFlags_1.RegionFlags.SunFixed) ? 'True' : 'False');
|
|
909
763
|
terrain.ele('SunPosition', this.sunHour);
|
|
910
|
-
this.environment
|
|
764
|
+
if (this.environment) {
|
|
765
|
+
const env = document.ele('Environment');
|
|
766
|
+
env.ele('data', this.environment.toNotation());
|
|
767
|
+
}
|
|
911
768
|
return document.end({ pretty: true, allowEmpty: true });
|
|
912
769
|
}
|
|
913
770
|
activateCaps(seedURL) {
|
|
@@ -916,171 +773,95 @@ class Region {
|
|
|
916
773
|
}
|
|
917
774
|
this.caps = new Caps_1.Caps(this.agent, seedURL, this.clientEvents);
|
|
918
775
|
}
|
|
919
|
-
handshake(handshake) {
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
return FilterResponse_1.FilterResponse.Finish;
|
|
994
|
-
}
|
|
995
|
-
}
|
|
996
|
-
return FilterResponse_1.FilterResponse.NoMatch;
|
|
997
|
-
});
|
|
998
|
-
this.environment = new RegionEnvironment_1.RegionEnvironment();
|
|
999
|
-
this.environment.dayCycleKeyframes = [];
|
|
1000
|
-
this.environment.skyPresets = {};
|
|
1001
|
-
this.environment.water = {
|
|
1002
|
-
blurMultiplier: 0,
|
|
1003
|
-
fresnelOffset: 0,
|
|
1004
|
-
fresnelScale: 0,
|
|
1005
|
-
normalScale: Vector3_1.Vector3.getZero(),
|
|
1006
|
-
normalMap: UUID_1.UUID.zero(),
|
|
1007
|
-
scaleAbove: 0,
|
|
1008
|
-
scaleBelow: 0,
|
|
1009
|
-
underWaterFogMod: 0,
|
|
1010
|
-
waterFogColor: Color4_1.Color4.white,
|
|
1011
|
-
waterFogDensity: 0,
|
|
1012
|
-
wave1Dir: Vector2_1.Vector2.getZero(),
|
|
1013
|
-
wave2Dir: Vector2_1.Vector2.getZero()
|
|
1014
|
-
};
|
|
1015
|
-
yield this.caps.waitForSeedCapability();
|
|
1016
|
-
try {
|
|
1017
|
-
const response = yield this.caps.capsGetXML('EnvironmentSettings');
|
|
1018
|
-
if (response.length >= 4) {
|
|
1019
|
-
if (Array.isArray(response[1]) && typeof response[2] === 'object' && typeof response[3] === 'object') {
|
|
1020
|
-
for (const kf of response[1]) {
|
|
1021
|
-
this.environment.dayCycleKeyframes.push({
|
|
1022
|
-
time: kf[0],
|
|
1023
|
-
preset: kf[1]
|
|
1024
|
-
});
|
|
1025
|
-
}
|
|
1026
|
-
for (const presetKey of Object.keys(response[2])) {
|
|
1027
|
-
const preset = response[2][presetKey];
|
|
1028
|
-
this.environment.skyPresets[presetKey] = new class {
|
|
1029
|
-
constructor() {
|
|
1030
|
-
this.ambient = new Vector4_1.Vector4(preset['ambient']);
|
|
1031
|
-
this.blueDensity = new Vector4_1.Vector4(preset['blue_density']);
|
|
1032
|
-
this.blueHorizon = new Vector4_1.Vector4(preset['blue_horizon']);
|
|
1033
|
-
this.cloudColor = new Color4_1.Color4(preset['cloud_color']);
|
|
1034
|
-
this.cloudPosDensity1 = new Vector4_1.Vector4(preset['cloud_pos_density1']);
|
|
1035
|
-
this.cloudPosDensity2 = new Vector4_1.Vector4(preset['cloud_pos_density2']);
|
|
1036
|
-
this.cloudScale = new Vector4_1.Vector4(preset['cloud_scale']);
|
|
1037
|
-
this.cloudScrollRate = new Vector2_1.Vector2(preset['cloud_scroll_rate']);
|
|
1038
|
-
this.cloudShadow = new Vector4_1.Vector4(preset['cloud_shadow']);
|
|
1039
|
-
this.densityMultiplier = new Vector4_1.Vector4(preset['density_multiplier']);
|
|
1040
|
-
this.distanceMultiplier = new Vector4_1.Vector4(preset['distance_multiplier']);
|
|
1041
|
-
this.eastAngle = preset['east_angle'];
|
|
1042
|
-
this.enableCloudScroll = {
|
|
1043
|
-
x: preset['enable_cloud_scroll'][0],
|
|
1044
|
-
y: preset['enable_cloud_scroll'][1]
|
|
1045
|
-
};
|
|
1046
|
-
this.gamma = new Vector4_1.Vector4(preset['gamma']);
|
|
1047
|
-
this.glow = new Vector4_1.Vector4(preset['glow']);
|
|
1048
|
-
this.hazeDensity = new Vector4_1.Vector4(preset['haze_density']);
|
|
1049
|
-
this.hazeHorizon = new Vector4_1.Vector4(preset['haze_horizon']);
|
|
1050
|
-
this.lightNormal = new Vector4_1.Vector4(preset['lightnorm']);
|
|
1051
|
-
this.maxY = new Vector4_1.Vector4(preset['max_y']);
|
|
1052
|
-
this.starBrightness = preset['start_brightness'];
|
|
1053
|
-
this.sunAngle = preset['sun_angle'];
|
|
1054
|
-
this.sunlightColor = new Color4_1.Color4(preset['sunlight_color']);
|
|
1055
|
-
}
|
|
1056
|
-
};
|
|
1057
|
-
}
|
|
1058
|
-
const wat = response[3];
|
|
1059
|
-
this.environment.water = new class {
|
|
1060
|
-
constructor() {
|
|
1061
|
-
this.blurMultiplier = wat['blurMultiplier'];
|
|
1062
|
-
this.fresnelOffset = wat['fresnelOffset'];
|
|
1063
|
-
this.fresnelScale = wat['fresnelScale'];
|
|
1064
|
-
this.normalScale = new Vector3_1.Vector3(wat['normScale']);
|
|
1065
|
-
this.normalMap = new UUID_1.UUID(wat['normalMap'].toString());
|
|
1066
|
-
this.scaleAbove = wat['scaleAbove'];
|
|
1067
|
-
this.scaleBelow = wat['scaleBelow'];
|
|
1068
|
-
this.underWaterFogMod = wat['underWaterFogMod'];
|
|
1069
|
-
this.waterFogColor = new Color4_1.Color4(wat['waterFogColor']);
|
|
1070
|
-
this.waterFogDensity = wat['waterFogDensity'];
|
|
1071
|
-
this.wave1Dir = new Vector2_1.Vector2(wat['wave1Dir']);
|
|
1072
|
-
this.wave2Dir = new Vector2_1.Vector2(wat['wave2Dir']);
|
|
1073
|
-
}
|
|
1074
|
-
};
|
|
1075
|
-
}
|
|
776
|
+
async handshake(handshake) {
|
|
777
|
+
this.regionName = Utils_1.Utils.BufferToStringSimple(handshake.RegionInfo.SimName);
|
|
778
|
+
this.simAccess = handshake.RegionInfo.SimAccess;
|
|
779
|
+
this.regionFlags = handshake.RegionInfo.RegionFlags;
|
|
780
|
+
this.regionOwner = handshake.RegionInfo.SimOwner;
|
|
781
|
+
this.agent.setIsEstateManager(handshake.RegionInfo.IsEstateManager);
|
|
782
|
+
this.waterHeight = handshake.RegionInfo.WaterHeight;
|
|
783
|
+
this.billableFactor = handshake.RegionInfo.BillableFactor;
|
|
784
|
+
this.cacheID = handshake.RegionInfo.CacheID;
|
|
785
|
+
this.terrainBase0 = handshake.RegionInfo.TerrainBase0;
|
|
786
|
+
this.terrainBase1 = handshake.RegionInfo.TerrainBase1;
|
|
787
|
+
this.terrainBase2 = handshake.RegionInfo.TerrainBase2;
|
|
788
|
+
this.terrainBase3 = handshake.RegionInfo.TerrainBase3;
|
|
789
|
+
this.terrainDetail0 = handshake.RegionInfo.TerrainDetail0;
|
|
790
|
+
this.terrainDetail1 = handshake.RegionInfo.TerrainDetail1;
|
|
791
|
+
this.terrainDetail2 = handshake.RegionInfo.TerrainDetail2;
|
|
792
|
+
this.terrainDetail3 = handshake.RegionInfo.TerrainDetail3;
|
|
793
|
+
this.terrainStartHeight00 = handshake.RegionInfo.TerrainStartHeight00;
|
|
794
|
+
this.terrainStartHeight01 = handshake.RegionInfo.TerrainStartHeight01;
|
|
795
|
+
this.terrainStartHeight10 = handshake.RegionInfo.TerrainStartHeight10;
|
|
796
|
+
this.terrainStartHeight11 = handshake.RegionInfo.TerrainStartHeight11;
|
|
797
|
+
this.terrainHeightRange00 = handshake.RegionInfo.TerrainHeightRange00;
|
|
798
|
+
this.terrainHeightRange01 = handshake.RegionInfo.TerrainHeightRange01;
|
|
799
|
+
this.terrainHeightRange10 = handshake.RegionInfo.TerrainHeightRange10;
|
|
800
|
+
this.terrainHeightRange11 = handshake.RegionInfo.TerrainHeightRange11;
|
|
801
|
+
this.regionID = handshake.RegionInfo2.RegionID;
|
|
802
|
+
this.cpuClassID = handshake.RegionInfo3.CPUClassID;
|
|
803
|
+
this.cpuRatio = handshake.RegionInfo3.CPURatio;
|
|
804
|
+
this.coloName = Utils_1.Utils.BufferToStringSimple(handshake.RegionInfo3.ColoName);
|
|
805
|
+
this.productSKU = Utils_1.Utils.BufferToStringSimple(handshake.RegionInfo3.ProductSKU);
|
|
806
|
+
this.productName = Utils_1.Utils.BufferToStringSimple(handshake.RegionInfo3.ProductName);
|
|
807
|
+
const request = new RequestRegionInfo_1.RequestRegionInfoMessage();
|
|
808
|
+
request.AgentData = {
|
|
809
|
+
AgentID: this.agent.agentID,
|
|
810
|
+
SessionID: this.circuit.sessionID
|
|
811
|
+
};
|
|
812
|
+
this.circuit.sendMessage(request, PacketFlags_1.PacketFlags.Reliable);
|
|
813
|
+
const regionInfo = await this.circuit.waitForMessage(Message_1.Message.RegionInfo, 30000);
|
|
814
|
+
this.estateID = regionInfo.RegionInfo.EstateID;
|
|
815
|
+
this.parentEstateID = regionInfo.RegionInfo.ParentEstateID;
|
|
816
|
+
this.maxAgents = regionInfo.RegionInfo.MaxAgents;
|
|
817
|
+
this.objectBonusFactor = regionInfo.RegionInfo.ObjectBonusFactor;
|
|
818
|
+
this.terrainRaiseLimit = regionInfo.RegionInfo.TerrainRaiseLimit;
|
|
819
|
+
this.terrainLowerLimit = regionInfo.RegionInfo.TerrainLowerLimit;
|
|
820
|
+
this.pricePerMeter = regionInfo.RegionInfo.PricePerMeter;
|
|
821
|
+
this.redirectGridX = regionInfo.RegionInfo.RedirectGridX;
|
|
822
|
+
this.redirectGridY = regionInfo.RegionInfo.RedirectGridY;
|
|
823
|
+
this.useEstateSun = regionInfo.RegionInfo.UseEstateSun;
|
|
824
|
+
this.sunHour = regionInfo.RegionInfo.SunHour;
|
|
825
|
+
this.maxAgents32 = regionInfo.RegionInfo2.MaxAgents32;
|
|
826
|
+
this.hardMaxAgents = regionInfo.RegionInfo2.HardMaxAgents;
|
|
827
|
+
this.hardMaxObjects = regionInfo.RegionInfo2.HardMaxObjects;
|
|
828
|
+
const msg = new MapNameRequest_1.MapNameRequestMessage();
|
|
829
|
+
msg.AgentData = {
|
|
830
|
+
AgentID: this.agent.agentID,
|
|
831
|
+
SessionID: this.circuit.sessionID,
|
|
832
|
+
Flags: GridLayerType_1.GridLayerType.Objects,
|
|
833
|
+
EstateID: 0,
|
|
834
|
+
Godlike: false
|
|
835
|
+
};
|
|
836
|
+
msg.NameData = {
|
|
837
|
+
Name: handshake.RegionInfo.SimName
|
|
838
|
+
};
|
|
839
|
+
this.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
840
|
+
await this.circuit.waitForMessage(Message_1.Message.MapBlockReply, 30000, (filterMsg) => {
|
|
841
|
+
for (const region of filterMsg.Data) {
|
|
842
|
+
const name = Utils_1.Utils.BufferToStringSimple(region.Name);
|
|
843
|
+
if (name.trim().toLowerCase() === this.regionName.trim().toLowerCase()) {
|
|
844
|
+
this.xCoordinate = region.X;
|
|
845
|
+
this.yCoordinate = region.Y;
|
|
846
|
+
this.mapImage = region.MapImageID;
|
|
847
|
+
const globalPos = Utils_1.Utils.RegionCoordinatesToHandle(this.xCoordinate, this.yCoordinate);
|
|
848
|
+
this.regionHandle = globalPos.regionHandle;
|
|
849
|
+
return FilterResponse_1.FilterResponse.Finish;
|
|
1076
850
|
}
|
|
1077
851
|
}
|
|
1078
|
-
|
|
1079
|
-
Logger_1.Logger.Warn('Unable to get environment settings from region');
|
|
1080
|
-
}
|
|
1081
|
-
this.handshakeComplete = true;
|
|
1082
|
-
this.handshakeCompleteEvent.next();
|
|
852
|
+
return FilterResponse_1.FilterResponse.NoMatch;
|
|
1083
853
|
});
|
|
854
|
+
await this.caps.waitForSeedCapability();
|
|
855
|
+
try {
|
|
856
|
+
const extResponse = await this.caps.capsGetString('ExtEnvironment');
|
|
857
|
+
this.environment = new RegionEnvironment_1.RegionEnvironment(LLSD_1.LLSD.parseXML(extResponse));
|
|
858
|
+
}
|
|
859
|
+
catch (e) {
|
|
860
|
+
Logger_1.Logger.Error(e);
|
|
861
|
+
Logger_1.Logger.Warn('Unable to get environment settings from region');
|
|
862
|
+
}
|
|
863
|
+
this.handshakeComplete = true;
|
|
864
|
+
this.handshakeCompleteEvent.next();
|
|
1084
865
|
}
|
|
1085
866
|
shutdown() {
|
|
1086
867
|
this.parcelPropertiesSubscription.unsubscribe();
|
|
@@ -1091,11 +872,153 @@ class Region {
|
|
|
1091
872
|
this.resolver.shutdown();
|
|
1092
873
|
this.circuit.shutdown();
|
|
1093
874
|
}
|
|
875
|
+
static doesBitmapContainCoordinate(bitmap, x, y) {
|
|
876
|
+
const mapBlockX = Math.floor(x / 4);
|
|
877
|
+
const mapBlockY = Math.floor(y / 4);
|
|
878
|
+
let index = (mapBlockY * 64) + mapBlockX;
|
|
879
|
+
const bit = index % 8;
|
|
880
|
+
index >>= 3;
|
|
881
|
+
return ((bitmap[index] & (1 << bit)) !== 0);
|
|
882
|
+
}
|
|
883
|
+
async resolveParcel(parcelProperties) {
|
|
884
|
+
const msg = new ParcelDwellRequest_1.ParcelDwellRequestMessage();
|
|
885
|
+
msg.AgentData = {
|
|
886
|
+
AgentID: this.agent.agentID,
|
|
887
|
+
SessionID: this.circuit.sessionID
|
|
888
|
+
};
|
|
889
|
+
msg.Data = {
|
|
890
|
+
LocalID: parcelProperties.LocalID,
|
|
891
|
+
ParcelID: UUID_1.UUID.zero()
|
|
892
|
+
};
|
|
893
|
+
this.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
894
|
+
const dwellReply = await this.circuit.waitForMessage(Message_1.Message.ParcelDwellReply, 10000, (message) => {
|
|
895
|
+
if (message.Data.LocalID === parcelProperties.LocalID) {
|
|
896
|
+
return FilterResponse_1.FilterResponse.Finish;
|
|
897
|
+
}
|
|
898
|
+
else {
|
|
899
|
+
return FilterResponse_1.FilterResponse.NoMatch;
|
|
900
|
+
}
|
|
901
|
+
});
|
|
902
|
+
const parcelID = dwellReply.Data.ParcelID.toString();
|
|
903
|
+
let parcel = new Parcel_1.Parcel(this);
|
|
904
|
+
if (this.parcelsByUUID[parcelID]) {
|
|
905
|
+
parcel = this.parcelsByUUID[parcelID];
|
|
906
|
+
}
|
|
907
|
+
parcel.LocalID = parcelProperties.LocalID;
|
|
908
|
+
parcel.ParcelID = new UUID_1.UUID(dwellReply.Data.ParcelID.toString());
|
|
909
|
+
parcel.RegionDenyAgeUnverified = parcelProperties.RegionDenyTransacted;
|
|
910
|
+
parcel.MediaDesc = parcelProperties.MediaDesc;
|
|
911
|
+
parcel.MediaHeight = parcelProperties.MediaHeight;
|
|
912
|
+
parcel.MediaLoop = parcelProperties.MediaLoop;
|
|
913
|
+
parcel.MediaType = parcelProperties.MediaType;
|
|
914
|
+
parcel.MediaWidth = parcelProperties.MediaWidth;
|
|
915
|
+
parcel.ObscureMedia = parcelProperties.ObscureMedia;
|
|
916
|
+
parcel.ObscureMusic = parcelProperties.ObscureMusic;
|
|
917
|
+
parcel.AABBMax = parcelProperties.AABBMax;
|
|
918
|
+
parcel.AABBMin = parcelProperties.AABBMin;
|
|
919
|
+
parcel.AnyAVSounds = parcelProperties.AnyAVSounds;
|
|
920
|
+
parcel.Area = parcelProperties.Area;
|
|
921
|
+
parcel.AuctionID = parcelProperties.AuctionID;
|
|
922
|
+
parcel.AuthBuyerID = new UUID_1.UUID(parcelProperties.AuthBuyerID.toString());
|
|
923
|
+
parcel.Bitmap = parcelProperties.Bitmap;
|
|
924
|
+
parcel.Category = parcelProperties.Category;
|
|
925
|
+
parcel.ClaimDate = parcelProperties.ClaimDate;
|
|
926
|
+
parcel.ClaimPrice = parcelProperties.ClaimPrice;
|
|
927
|
+
parcel.Desc = parcelProperties.Desc;
|
|
928
|
+
parcel.Dwell = dwellReply.Data.Dwell;
|
|
929
|
+
parcel.GroupAVSounds = parcelProperties.GroupAVSounds;
|
|
930
|
+
parcel.GroupID = new UUID_1.UUID(parcelProperties.GroupID.toString());
|
|
931
|
+
parcel.GroupPrims = parcelProperties.GroupPrims;
|
|
932
|
+
parcel.IsGroupOwned = parcelProperties.IsGroupOwned;
|
|
933
|
+
parcel.LandingType = parcelProperties.LandingType;
|
|
934
|
+
parcel.MaxPrims = parcelProperties.MaxPrims;
|
|
935
|
+
parcel.MediaAutoScale = parcelProperties.MediaAutoScale;
|
|
936
|
+
parcel.MediaID = new UUID_1.UUID(parcelProperties.MediaID.toString());
|
|
937
|
+
parcel.MediaURL = parcelProperties.MediaURL;
|
|
938
|
+
parcel.MusicURL = parcelProperties.MusicURL;
|
|
939
|
+
parcel.Name = parcelProperties.Name;
|
|
940
|
+
parcel.OtherCleanTime = parcelProperties.OtherCleanTime;
|
|
941
|
+
parcel.OtherCount = parcelProperties.OtherCount;
|
|
942
|
+
parcel.OtherPrims = parcelProperties.OtherPrims;
|
|
943
|
+
parcel.OwnerID = new UUID_1.UUID(parcelProperties.OwnerID.toString());
|
|
944
|
+
parcel.OwnerPrims = parcelProperties.OwnerPrims;
|
|
945
|
+
parcel.ParcelFlags = parcelProperties.ParcelFlags;
|
|
946
|
+
parcel.ParcelPrimBonus = parcelProperties.ParcelPrimBonus;
|
|
947
|
+
parcel.PassHours = parcelProperties.PassHours;
|
|
948
|
+
parcel.PassPrice = parcelProperties.PassPrice;
|
|
949
|
+
parcel.PublicCount = parcelProperties.PublicCount;
|
|
950
|
+
parcel.RegionDenyAnonymous = parcelProperties.RegionDenyAnonymous;
|
|
951
|
+
parcel.RegionDenyIdentified = parcelProperties.RegionDenyIdentified;
|
|
952
|
+
parcel.RegionPushOverride = parcelProperties.RegionPushOverride;
|
|
953
|
+
parcel.RegionDenyTransacted = parcelProperties.RegionDenyTransacted;
|
|
954
|
+
parcel.RentPrice = parcelProperties.RentPrice;
|
|
955
|
+
parcel.RequestResult = parcelProperties.RequestResult;
|
|
956
|
+
parcel.SalePrice = parcelProperties.SalePrice;
|
|
957
|
+
parcel.SeeAvs = parcelProperties.SeeAvs;
|
|
958
|
+
parcel.SelectedPrims = parcelProperties.SelectedPrims;
|
|
959
|
+
parcel.SelfCount = parcelProperties.SelfCount;
|
|
960
|
+
parcel.SequenceID = parcelProperties.SequenceID;
|
|
961
|
+
parcel.SimWideMaxPrims = parcelProperties.SimWideMaxPrims;
|
|
962
|
+
parcel.SimWideTotalPrims = parcelProperties.SimWideTotalPrims;
|
|
963
|
+
parcel.SnapSelection = parcelProperties.SnapSelection;
|
|
964
|
+
parcel.SnapshotID = new UUID_1.UUID(parcelProperties.SnapshotID.toString());
|
|
965
|
+
parcel.Status = parcelProperties.Status;
|
|
966
|
+
parcel.TotalPrims = parcelProperties.TotalPrims;
|
|
967
|
+
parcel.UserLocation = parcelProperties.UserLocation;
|
|
968
|
+
parcel.UserLookAt = parcelProperties.UserLookAt;
|
|
969
|
+
parcel.RegionAllowAccessOverride = parcelProperties.RegionAllowAccessOverride;
|
|
970
|
+
this.parcels[parcelProperties.LocalID] = parcel;
|
|
971
|
+
let foundEmpty = false;
|
|
972
|
+
for (let y = 0; y < 64; y++) {
|
|
973
|
+
for (let x = 0; x < 64; x++) {
|
|
974
|
+
if (Region.doesBitmapContainCoordinate(parcel.Bitmap, x * 4, y * 4)) {
|
|
975
|
+
this.parcelMap[y][x] = parcel.LocalID;
|
|
976
|
+
}
|
|
977
|
+
else {
|
|
978
|
+
if (this.parcelMap[y][x] === 0) {
|
|
979
|
+
foundEmpty = true;
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
if (!foundEmpty) {
|
|
985
|
+
if (!this.parcelsComplete) {
|
|
986
|
+
this.parcelsComplete = true;
|
|
987
|
+
this.parcelsCompleteEvent.next();
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
else if (this.parcelsComplete) {
|
|
991
|
+
this.parcelsComplete = false;
|
|
992
|
+
}
|
|
993
|
+
return parcel;
|
|
994
|
+
}
|
|
995
|
+
fillParcel(parcelID, x, y) {
|
|
996
|
+
if (x < 0 || y < 0 || x > 63 || y > 63) {
|
|
997
|
+
return;
|
|
998
|
+
}
|
|
999
|
+
if (this.parcelOverlay[(y * 64) + x].parcelID !== -1) {
|
|
1000
|
+
return;
|
|
1001
|
+
}
|
|
1002
|
+
this.parcelOverlay[(y * 64) + x].parcelID = parcelID;
|
|
1003
|
+
const flags = this.parcelOverlay[(y * 64) + x].landFlags;
|
|
1004
|
+
if (!(flags & LandFlags_1.LandFlags.BorderSouth)) {
|
|
1005
|
+
this.fillParcel(parcelID, x, y - 1);
|
|
1006
|
+
}
|
|
1007
|
+
if (!(flags & LandFlags_1.LandFlags.BorderWest)) {
|
|
1008
|
+
this.fillParcel(parcelID, x - 1, y);
|
|
1009
|
+
}
|
|
1010
|
+
if (x < 63 && !(this.parcelOverlay[(y * 64) + (x + 1)].landFlags & LandFlags_1.LandFlags.BorderWest)) {
|
|
1011
|
+
this.fillParcel(parcelID, x + 1, y);
|
|
1012
|
+
}
|
|
1013
|
+
if (y < 63 && !(this.parcelOverlay[((y + 1) * 64) + x].landFlags & LandFlags_1.LandFlags.BorderSouth)) {
|
|
1014
|
+
this.fillParcel(parcelID, x, y + 1);
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1094
1017
|
}
|
|
1095
1018
|
exports.Region = Region;
|
|
1096
1019
|
Region.CopyMatrix16 = [];
|
|
1097
1020
|
Region.CosineTable16 = [];
|
|
1098
1021
|
Region.DequantizeTable16 = [];
|
|
1099
1022
|
Region.setup = false;
|
|
1100
|
-
Region.OO_SQRT_2 = 0.
|
|
1023
|
+
Region.OO_SQRT_2 = 0.707106781186547;
|
|
1101
1024
|
//# sourceMappingURL=Region.js.map
|