@wiredsnippets/wsproom 0.0.0-stage → 2.0.0

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.
Files changed (640) hide show
  1. package/COPYING +674 -0
  2. package/COPYING.LESSER +165 -0
  3. package/README.md +76 -2
  4. package/dist/__mocks__/setupTests.d.ts +0 -0
  5. package/dist/__mocks__/setupTests.js +34 -0
  6. package/dist/assets/IAssetBundle.d.ts +4 -0
  7. package/dist/assets/IAssetBundle.js +2 -0
  8. package/dist/assets/LegacyAssetBundle.d.ts +9 -0
  9. package/dist/assets/LegacyAssetBundle.js +29 -0
  10. package/dist/assets/WsproomAssetBundle.d.ts +18 -0
  11. package/dist/assets/WsproomAssetBundle.js +86 -0
  12. package/dist/data/XmlData.d.ts +6 -0
  13. package/dist/data/XmlData.js +15 -0
  14. package/dist/index.d.ts +45 -0
  15. package/dist/index.js +73 -0
  16. package/dist/interfaces/IAnimationTicker.d.ts +4 -0
  17. package/dist/interfaces/IAnimationTicker.js +2 -0
  18. package/dist/interfaces/IAvatarLoader.d.ts +12 -0
  19. package/dist/interfaces/IAvatarLoader.js +2 -0
  20. package/dist/interfaces/IConfiguration.d.ts +13 -0
  21. package/dist/interfaces/IConfiguration.js +2 -0
  22. package/dist/interfaces/IFurnitureData.d.ts +13 -0
  23. package/dist/interfaces/IFurnitureData.js +2 -0
  24. package/dist/interfaces/IFurnitureLoader.d.ts +13 -0
  25. package/dist/interfaces/IFurnitureLoader.js +2 -0
  26. package/dist/interfaces/IHitDetection.d.ts +0 -0
  27. package/dist/interfaces/IHitDetection.js +1 -0
  28. package/dist/interfaces/IRoomContext.d.ts +26 -0
  29. package/dist/interfaces/IRoomContext.js +2 -0
  30. package/dist/interfaces/IRoomGeometry.d.ts +6 -0
  31. package/dist/interfaces/IRoomGeometry.js +2 -0
  32. package/dist/interfaces/IRoomObject.d.ts +5 -0
  33. package/dist/interfaces/IRoomObject.js +2 -0
  34. package/dist/interfaces/IRoomObjectContainer.d.ts +5 -0
  35. package/dist/interfaces/IRoomObjectContainer.js +2 -0
  36. package/dist/interfaces/IRoomVisualization.d.ts +25 -0
  37. package/dist/interfaces/IRoomVisualization.js +2 -0
  38. package/dist/interfaces/ITextureable.d.ts +5 -0
  39. package/dist/interfaces/ITextureable.js +2 -0
  40. package/dist/interfaces/ITileMap.d.ts +5 -0
  41. package/dist/interfaces/ITileMap.js +2 -0
  42. package/dist/objects/RoomObject.d.ts +24 -0
  43. package/dist/objects/RoomObject.js +69 -0
  44. package/dist/objects/Wsproom.d.ts +22 -0
  45. package/dist/objects/Wsproom.js +86 -0
  46. package/dist/objects/animation/AnimationTicker.d.ts +13 -0
  47. package/dist/objects/animation/AnimationTicker.js +37 -0
  48. package/dist/objects/animation/ObjectAnimation.d.ts +36 -0
  49. package/dist/objects/animation/ObjectAnimation.js +93 -0
  50. package/dist/objects/avatar/Avatar.d.ts +244 -0
  51. package/dist/objects/avatar/Avatar.js +548 -0
  52. package/dist/objects/avatar/AvatarAssetLibraryCollection.d.ts +20 -0
  53. package/dist/objects/avatar/AvatarAssetLibraryCollection.js +70 -0
  54. package/dist/objects/avatar/AvatarEffectBundle.d.ts +15 -0
  55. package/dist/objects/avatar/AvatarEffectBundle.js +34 -0
  56. package/dist/objects/avatar/AvatarLoader.d.ts +33 -0
  57. package/dist/objects/avatar/AvatarLoader.js +218 -0
  58. package/dist/objects/avatar/BaseAvatar.d.ts +84 -0
  59. package/dist/objects/avatar/BaseAvatar.js +386 -0
  60. package/dist/objects/avatar/data/AvatarActionsData.d.ts +12 -0
  61. package/dist/objects/avatar/data/AvatarActionsData.js +84 -0
  62. package/dist/objects/avatar/data/AvatarAnimationData.d.ts +14 -0
  63. package/dist/objects/avatar/data/AvatarAnimationData.js +126 -0
  64. package/dist/objects/avatar/data/AvatarData.d.ts +6 -0
  65. package/dist/objects/avatar/data/AvatarData.js +15 -0
  66. package/dist/objects/avatar/data/AvatarEffectData.d.ts +31 -0
  67. package/dist/objects/avatar/data/AvatarEffectData.js +186 -0
  68. package/dist/objects/avatar/data/AvatarEffectMap.d.ts +9 -0
  69. package/dist/objects/avatar/data/AvatarEffectMap.js +38 -0
  70. package/dist/objects/avatar/data/AvatarGeometryData.d.ts +17 -0
  71. package/dist/objects/avatar/data/AvatarGeometryData.js +122 -0
  72. package/dist/objects/avatar/data/AvatarManifestData.d.ts +12 -0
  73. package/dist/objects/avatar/data/AvatarManifestData.js +55 -0
  74. package/dist/objects/avatar/data/AvatarOffsetsData.d.ts +10 -0
  75. package/dist/objects/avatar/data/AvatarOffsetsData.js +17 -0
  76. package/dist/objects/avatar/data/AvatarPartSetsData.d.ts +12 -0
  77. package/dist/objects/avatar/data/AvatarPartSetsData.js +38 -0
  78. package/dist/objects/avatar/data/FigureData.d.ts +14 -0
  79. package/dist/objects/avatar/data/FigureData.js +106 -0
  80. package/dist/objects/avatar/data/FigureMapData.d.ts +11 -0
  81. package/dist/objects/avatar/data/FigureMapData.js +47 -0
  82. package/dist/objects/avatar/data/ManifestLibrary.d.ts +12 -0
  83. package/dist/objects/avatar/data/ManifestLibrary.js +29 -0
  84. package/dist/objects/avatar/data/interfaces/IAvatarActionsData.d.ts +18 -0
  85. package/dist/objects/avatar/data/interfaces/IAvatarActionsData.js +2 -0
  86. package/dist/objects/avatar/data/interfaces/IAvatarAnimationData.d.ts +10 -0
  87. package/dist/objects/avatar/data/interfaces/IAvatarAnimationData.js +2 -0
  88. package/dist/objects/avatar/data/interfaces/IAvatarEffectBundle.d.ts +9 -0
  89. package/dist/objects/avatar/data/interfaces/IAvatarEffectBundle.js +2 -0
  90. package/dist/objects/avatar/data/interfaces/IAvatarEffectData.d.ts +49 -0
  91. package/dist/objects/avatar/data/interfaces/IAvatarEffectData.js +2 -0
  92. package/dist/objects/avatar/data/interfaces/IAvatarEffectMap.d.ts +9 -0
  93. package/dist/objects/avatar/data/interfaces/IAvatarEffectMap.js +2 -0
  94. package/dist/objects/avatar/data/interfaces/IAvatarGeometryData.d.ts +23 -0
  95. package/dist/objects/avatar/data/interfaces/IAvatarGeometryData.js +2 -0
  96. package/dist/objects/avatar/data/interfaces/IAvatarManifestData.d.ts +18 -0
  97. package/dist/objects/avatar/data/interfaces/IAvatarManifestData.js +2 -0
  98. package/dist/objects/avatar/data/interfaces/IAvatarOffsetsData.d.ts +6 -0
  99. package/dist/objects/avatar/data/interfaces/IAvatarOffsetsData.js +2 -0
  100. package/dist/objects/avatar/data/interfaces/IAvatarPartSetsData.d.ts +7 -0
  101. package/dist/objects/avatar/data/interfaces/IAvatarPartSetsData.js +2 -0
  102. package/dist/objects/avatar/data/interfaces/IFigureData.d.ts +11 -0
  103. package/dist/objects/avatar/data/interfaces/IFigureData.js +2 -0
  104. package/dist/objects/avatar/data/interfaces/IFigureMapData.d.ts +4 -0
  105. package/dist/objects/avatar/data/interfaces/IFigureMapData.js +2 -0
  106. package/dist/objects/avatar/data/interfaces/IManifestLibrary.d.ts +6 -0
  107. package/dist/objects/avatar/data/interfaces/IManifestLibrary.js +2 -0
  108. package/dist/objects/avatar/data/static/actions.xml.d.ts +1 -0
  109. package/dist/objects/avatar/data/static/actions.xml.js +4 -0
  110. package/dist/objects/avatar/data/static/animation.xml.d.ts +1 -0
  111. package/dist/objects/avatar/data/static/animation.xml.js +4 -0
  112. package/dist/objects/avatar/data/static/geometry.xml.d.ts +1 -0
  113. package/dist/objects/avatar/data/static/geometry.xml.js +4 -0
  114. package/dist/objects/avatar/data/static/partsets.xml.d.ts +1 -0
  115. package/dist/objects/avatar/data/static/partsets.xml.js +4 -0
  116. package/dist/objects/avatar/enum/AvatarAction.d.ts +29 -0
  117. package/dist/objects/avatar/enum/AvatarAction.js +33 -0
  118. package/dist/objects/avatar/enum/AvatarFigurePartType.d.ts +27 -0
  119. package/dist/objects/avatar/enum/AvatarFigurePartType.js +31 -0
  120. package/dist/objects/avatar/structure/AvatarAdditionPart.d.ts +32 -0
  121. package/dist/objects/avatar/structure/AvatarAdditionPart.js +136 -0
  122. package/dist/objects/avatar/structure/AvatarBodyPart.d.ts +30 -0
  123. package/dist/objects/avatar/structure/AvatarBodyPart.js +96 -0
  124. package/dist/objects/avatar/structure/AvatarBodyPartList.d.ts +36 -0
  125. package/dist/objects/avatar/structure/AvatarBodyPartList.js +91 -0
  126. package/dist/objects/avatar/structure/AvatarDrawDefinition.d.ts +39 -0
  127. package/dist/objects/avatar/structure/AvatarDrawDefinition.js +135 -0
  128. package/dist/objects/avatar/structure/AvatarEffectPart.d.ts +25 -0
  129. package/dist/objects/avatar/structure/AvatarEffectPart.js +118 -0
  130. package/dist/objects/avatar/structure/AvatarPart.d.ts +54 -0
  131. package/dist/objects/avatar/structure/AvatarPart.js +162 -0
  132. package/dist/objects/avatar/structure/AvatarPartList.d.ts +30 -0
  133. package/dist/objects/avatar/structure/AvatarPartList.js +80 -0
  134. package/dist/objects/avatar/structure/BodyPartDrawOrder.d.ts +3 -0
  135. package/dist/objects/avatar/structure/BodyPartDrawOrder.js +170 -0
  136. package/dist/objects/avatar/structure/interface/IAvatarDrawablePart.d.ts +4 -0
  137. package/dist/objects/avatar/structure/interface/IAvatarDrawablePart.js +2 -0
  138. package/dist/objects/avatar/structure/interface/IAvatarEffectPart.d.ts +7 -0
  139. package/dist/objects/avatar/structure/interface/IAvatarEffectPart.js +2 -0
  140. package/dist/objects/avatar/types/index.d.ts +43 -0
  141. package/dist/objects/avatar/types/index.js +2 -0
  142. package/dist/objects/avatar/util/createLookServer.d.ts +18 -0
  143. package/dist/objects/avatar/util/createLookServer.js +18 -0
  144. package/dist/objects/avatar/util/getAssetForFrame.d.ts +21 -0
  145. package/dist/objects/avatar/util/getAssetForFrame.js +42 -0
  146. package/dist/objects/avatar/util/getAssetFromPartMeta.d.ts +30 -0
  147. package/dist/objects/avatar/util/getAssetFromPartMeta.js +50 -0
  148. package/dist/objects/avatar/util/getAvatarDirection.d.ts +1 -0
  149. package/dist/objects/avatar/util/getAvatarDirection.js +18 -0
  150. package/dist/objects/avatar/util/getAvatarDrawDefinition.d.ts +22 -0
  151. package/dist/objects/avatar/util/getAvatarDrawDefinition.js +31 -0
  152. package/dist/objects/avatar/util/getDrawOrderForActions.d.ts +4 -0
  153. package/dist/objects/avatar/util/getDrawOrderForActions.js +22 -0
  154. package/dist/objects/avatar/util/getEffectSprite.d.ts +9 -0
  155. package/dist/objects/avatar/util/getEffectSprite.js +27 -0
  156. package/dist/objects/avatar/util/getFlippedMetaData.d.ts +36 -0
  157. package/dist/objects/avatar/util/getFlippedMetaData.js +95 -0
  158. package/dist/objects/avatar/util/getLibrariesForLook.d.ts +7 -0
  159. package/dist/objects/avatar/util/getLibrariesForLook.js +32 -0
  160. package/dist/objects/avatar/util/index.d.ts +1 -0
  161. package/dist/objects/avatar/util/index.js +17 -0
  162. package/dist/objects/avatar/util/parseLookString.d.ts +5 -0
  163. package/dist/objects/avatar/util/parseLookString.js +15 -0
  164. package/dist/objects/events/EventEmitter.d.ts +11 -0
  165. package/dist/objects/events/EventEmitter.js +31 -0
  166. package/dist/objects/events/EventManager.d.ts +27 -0
  167. package/dist/objects/events/EventManager.js +248 -0
  168. package/dist/objects/events/EventManagerContainer.d.ts +11 -0
  169. package/dist/objects/events/EventManagerContainer.js +36 -0
  170. package/dist/objects/events/EventManagerNode.d.ts +16 -0
  171. package/dist/objects/events/EventManagerNode.js +55 -0
  172. package/dist/objects/events/EventOverOutHandler.d.ts +24 -0
  173. package/dist/objects/events/EventOverOutHandler.js +90 -0
  174. package/dist/objects/events/interfaces/IEventGroup.d.ts +7 -0
  175. package/dist/objects/events/interfaces/IEventGroup.js +6 -0
  176. package/dist/objects/events/interfaces/IEventHandler.d.ts +9 -0
  177. package/dist/objects/events/interfaces/IEventHandler.js +2 -0
  178. package/dist/objects/events/interfaces/IEventHittable.d.ts +9 -0
  179. package/dist/objects/events/interfaces/IEventHittable.js +2 -0
  180. package/dist/objects/events/interfaces/IEventManager.d.ts +8 -0
  181. package/dist/objects/events/interfaces/IEventManager.js +2 -0
  182. package/dist/objects/events/interfaces/IEventManagerEvent.d.ts +11 -0
  183. package/dist/objects/events/interfaces/IEventManagerEvent.js +2 -0
  184. package/dist/objects/events/interfaces/IEventManagerNode.d.ts +3 -0
  185. package/dist/objects/events/interfaces/IEventManagerNode.js +2 -0
  186. package/dist/objects/events/interfaces/IEventTarget.d.ts +4 -0
  187. package/dist/objects/events/interfaces/IEventTarget.js +2 -0
  188. package/dist/objects/furniture/BaseFurniture.d.ts +152 -0
  189. package/dist/objects/furniture/BaseFurniture.js +519 -0
  190. package/dist/objects/furniture/FloorFurniture.d.ts +163 -0
  191. package/dist/objects/furniture/FloorFurniture.js +320 -0
  192. package/dist/objects/furniture/FurnitureData.d.ts +14 -0
  193. package/dist/objects/furniture/FurnitureData.js +73 -0
  194. package/dist/objects/furniture/FurnitureExtraData.d.ts +4 -0
  195. package/dist/objects/furniture/FurnitureExtraData.js +2 -0
  196. package/dist/objects/furniture/FurnitureFetchInfo.d.ts +5 -0
  197. package/dist/objects/furniture/FurnitureFetchInfo.js +2 -0
  198. package/dist/objects/furniture/FurnitureHelper.d.ts +17 -0
  199. package/dist/objects/furniture/FurnitureHelper.js +90 -0
  200. package/dist/objects/furniture/FurnitureLoader.d.ts +22 -0
  201. package/dist/objects/furniture/FurnitureLoader.js +85 -0
  202. package/dist/objects/furniture/FurnitureRoomVisualization.d.ts +10 -0
  203. package/dist/objects/furniture/FurnitureRoomVisualization.js +26 -0
  204. package/dist/objects/furniture/FurnitureSprite.d.ts +25 -0
  205. package/dist/objects/furniture/FurnitureSprite.js +69 -0
  206. package/dist/objects/furniture/FurnitureVisualizationView.d.ts +66 -0
  207. package/dist/objects/furniture/FurnitureVisualizationView.js +482 -0
  208. package/dist/objects/furniture/IFurniture.d.ts +26 -0
  209. package/dist/objects/furniture/IFurniture.js +2 -0
  210. package/dist/objects/furniture/IFurnitureAssetBundle.d.ts +12 -0
  211. package/dist/objects/furniture/IFurnitureAssetBundle.js +2 -0
  212. package/dist/objects/furniture/IFurnitureVisualization.d.ts +11 -0
  213. package/dist/objects/furniture/IFurnitureVisualization.js +2 -0
  214. package/dist/objects/furniture/IFurnitureVisualizationView.d.ts +63 -0
  215. package/dist/objects/furniture/IFurnitureVisualizationView.js +2 -0
  216. package/dist/objects/furniture/JsonFurnitureAssetBundle.d.ts +18 -0
  217. package/dist/objects/furniture/JsonFurnitureAssetBundle.js +89 -0
  218. package/dist/objects/furniture/WallFurniture.d.ts +90 -0
  219. package/dist/objects/furniture/WallFurniture.js +229 -0
  220. package/dist/objects/furniture/XmlFurnitureAssetBundle.d.ts +17 -0
  221. package/dist/objects/furniture/XmlFurnitureAssetBundle.js +35 -0
  222. package/dist/objects/furniture/data/FurnitureAssetsData.d.ts +11 -0
  223. package/dist/objects/furniture/data/FurnitureAssetsData.js +51 -0
  224. package/dist/objects/furniture/data/FurnitureAssetsJson.d.ts +4 -0
  225. package/dist/objects/furniture/data/FurnitureAssetsJson.js +2 -0
  226. package/dist/objects/furniture/data/FurnitureIndexData.d.ts +14 -0
  227. package/dist/objects/furniture/data/FurnitureIndexData.js +30 -0
  228. package/dist/objects/furniture/data/FurnitureIndexJson.d.ts +4 -0
  229. package/dist/objects/furniture/data/FurnitureIndexJson.js +2 -0
  230. package/dist/objects/furniture/data/FurnitureJson.d.ts +11 -0
  231. package/dist/objects/furniture/data/FurnitureJson.js +2 -0
  232. package/dist/objects/furniture/data/FurnitureLogicData.d.ts +10 -0
  233. package/dist/objects/furniture/data/FurnitureLogicData.js +43 -0
  234. package/dist/objects/furniture/data/FurnitureLogicJson.d.ts +3 -0
  235. package/dist/objects/furniture/data/FurnitureLogicJson.js +2 -0
  236. package/dist/objects/furniture/data/FurnitureVisualizationData.d.ts +26 -0
  237. package/dist/objects/furniture/data/FurnitureVisualizationData.js +281 -0
  238. package/dist/objects/furniture/data/FurnitureVisualizationJson.d.ts +37 -0
  239. package/dist/objects/furniture/data/FurnitureVisualizationJson.js +2 -0
  240. package/dist/objects/furniture/data/JsonFurnitureAssetsData.d.ts +8 -0
  241. package/dist/objects/furniture/data/JsonFurnitureAssetsData.js +16 -0
  242. package/dist/objects/furniture/data/JsonFurnitureLogicData.d.ts +7 -0
  243. package/dist/objects/furniture/data/JsonFurnitureLogicData.js +12 -0
  244. package/dist/objects/furniture/data/JsonFurnitureVisualizationData.d.ts +18 -0
  245. package/dist/objects/furniture/data/JsonFurnitureVisualizationData.js +95 -0
  246. package/dist/objects/furniture/data/interfaces/IFurnitureAssetsData.d.ts +12 -0
  247. package/dist/objects/furniture/data/interfaces/IFurnitureAssetsData.js +2 -0
  248. package/dist/objects/furniture/data/interfaces/IFurnitureIndexData.d.ts +4 -0
  249. package/dist/objects/furniture/data/interfaces/IFurnitureIndexData.js +2 -0
  250. package/dist/objects/furniture/data/interfaces/IFurnitureLogicData.d.ts +13 -0
  251. package/dist/objects/furniture/data/interfaces/IFurnitureLogicData.js +2 -0
  252. package/dist/objects/furniture/data/interfaces/IFurnitureVisualizationData.d.ts +37 -0
  253. package/dist/objects/furniture/data/interfaces/IFurnitureVisualizationData.js +2 -0
  254. package/dist/objects/furniture/filter/ActiveWiredFilter.d.ts +4 -0
  255. package/dist/objects/furniture/filter/ActiveWiredFilter.js +77 -0
  256. package/dist/objects/furniture/filter/HighlightFilter.d.ts +6 -0
  257. package/dist/objects/furniture/filter/HighlightFilter.js +93 -0
  258. package/dist/objects/furniture/filter/filterVertex.d.ts +1 -0
  259. package/dist/objects/furniture/filter/filterVertex.js +32 -0
  260. package/dist/objects/furniture/util/DrawDefinition.d.ts +18 -0
  261. package/dist/objects/furniture/util/DrawDefinition.js +2 -0
  262. package/dist/objects/furniture/util/IFurnitureEventHandlers.d.ts +9 -0
  263. package/dist/objects/furniture/util/IFurnitureEventHandlers.js +2 -0
  264. package/dist/objects/furniture/util/getDirectionForFurniture.d.ts +1 -0
  265. package/dist/objects/furniture/util/getDirectionForFurniture.js +18 -0
  266. package/dist/objects/furniture/util/getFurniDrawDefinition.d.ts +14 -0
  267. package/dist/objects/furniture/util/getFurniDrawDefinition.js +101 -0
  268. package/dist/objects/furniture/util/getFurnitureFetch.d.ts +3 -0
  269. package/dist/objects/furniture/util/getFurnitureFetch.js +14 -0
  270. package/dist/objects/furniture/util/index.d.ts +4 -0
  271. package/dist/objects/furniture/util/index.js +21 -0
  272. package/dist/objects/furniture/util/loadFurni.d.ts +20 -0
  273. package/dist/objects/furniture/util/loadFurni.js +49 -0
  274. package/dist/objects/furniture/util/visualization/VisualizationXml.d.ts +73 -0
  275. package/dist/objects/furniture/util/visualization/VisualizationXml.js +2 -0
  276. package/dist/objects/furniture/util/visualization/parseAnimations.d.ts +10 -0
  277. package/dist/objects/furniture/util/visualization/parseAnimations.js +35 -0
  278. package/dist/objects/furniture/util/visualization/parseColors.d.ts +2 -0
  279. package/dist/objects/furniture/util/visualization/parseColors.js +19 -0
  280. package/dist/objects/furniture/util/visualization/parseDirections.d.ts +5 -0
  281. package/dist/objects/furniture/util/visualization/parseDirections.js +27 -0
  282. package/dist/objects/furniture/util/visualization/parseLayers.d.ts +9 -0
  283. package/dist/objects/furniture/util/visualization/parseLayers.js +19 -0
  284. package/dist/objects/furniture/util/visualization/parseVisualization.d.ts +17 -0
  285. package/dist/objects/furniture/util/visualization/parseVisualization.js +44 -0
  286. package/dist/objects/furniture/visualization/AnimatedFurnitureVisualization.d.ts +40 -0
  287. package/dist/objects/furniture/visualization/AnimatedFurnitureVisualization.js +214 -0
  288. package/dist/objects/furniture/visualization/BasicFurnitureVisualization.d.ts +19 -0
  289. package/dist/objects/furniture/visualization/BasicFurnitureVisualization.js +54 -0
  290. package/dist/objects/furniture/visualization/FurnitureBottleVisualization.d.ts +17 -0
  291. package/dist/objects/furniture/visualization/FurnitureBottleVisualization.js +65 -0
  292. package/dist/objects/furniture/visualization/FurnitureGuildCustomizedVisualization.d.ts +28 -0
  293. package/dist/objects/furniture/visualization/FurnitureGuildCustomizedVisualization.js +87 -0
  294. package/dist/objects/furniture/visualization/FurnitureVisualization.d.ts +16 -0
  295. package/dist/objects/furniture/visualization/FurnitureVisualization.js +24 -0
  296. package/dist/objects/hitdetection/ClickHandler.d.ts +25 -0
  297. package/dist/objects/hitdetection/ClickHandler.js +79 -0
  298. package/dist/objects/hitdetection/HitSprite.d.ts +65 -0
  299. package/dist/objects/hitdetection/HitSprite.js +223 -0
  300. package/dist/objects/hitdetection/HitTexture.d.ts +21 -0
  301. package/dist/objects/hitdetection/HitTexture.js +153 -0
  302. package/dist/objects/interfaces/IMoveable.d.ts +4 -0
  303. package/dist/objects/interfaces/IMoveable.js +2 -0
  304. package/dist/objects/interfaces/IScreenPositioned.d.ts +6 -0
  305. package/dist/objects/interfaces/IScreenPositioned.js +2 -0
  306. package/dist/objects/room/ILandscapeContainer.d.ts +6 -0
  307. package/dist/objects/room/ILandscapeContainer.js +2 -0
  308. package/dist/objects/room/IRoomRectangle.d.ts +9 -0
  309. package/dist/objects/room/IRoomRectangle.js +2 -0
  310. package/dist/objects/room/ITileColorable.d.ts +7 -0
  311. package/dist/objects/room/ITileColorable.js +2 -0
  312. package/dist/objects/room/IWallColorable.d.ts +7 -0
  313. package/dist/objects/room/IWallColorable.js +2 -0
  314. package/dist/objects/room/Landscape.d.ts +92 -0
  315. package/dist/objects/room/Landscape.js +389 -0
  316. package/dist/objects/room/ParsedTileMap.d.ts +14 -0
  317. package/dist/objects/room/ParsedTileMap.js +26 -0
  318. package/dist/objects/room/Pathfinding.d.ts +31 -0
  319. package/dist/objects/room/Pathfinding.js +241 -0
  320. package/dist/objects/room/Room.d.ts +182 -0
  321. package/dist/objects/room/Room.js +394 -0
  322. package/dist/objects/room/RoomCamera.d.ts +56 -0
  323. package/dist/objects/room/RoomCamera.js +358 -0
  324. package/dist/objects/room/RoomLandscapeMaskSprite.d.ts +38 -0
  325. package/dist/objects/room/RoomLandscapeMaskSprite.js +100 -0
  326. package/dist/objects/room/RoomModelVisualization.d.ts +132 -0
  327. package/dist/objects/room/RoomModelVisualization.js +561 -0
  328. package/dist/objects/room/RoomObjectContainer.d.ts +12 -0
  329. package/dist/objects/room/RoomObjectContainer.js +35 -0
  330. package/dist/objects/room/TileMapEditorLayer.d.ts +44 -0
  331. package/dist/objects/room/TileMapEditorLayer.js +331 -0
  332. package/dist/objects/room/data/LandscapeData.d.ts +26 -0
  333. package/dist/objects/room/data/LandscapeData.js +132 -0
  334. package/dist/objects/room/matrixes.d.ts +9 -0
  335. package/dist/objects/room/matrixes.js +35 -0
  336. package/dist/objects/room/parts/IRoomPart.d.ts +4 -0
  337. package/dist/objects/room/parts/IRoomPart.js +2 -0
  338. package/dist/objects/room/parts/RoomPartData.d.ts +15 -0
  339. package/dist/objects/room/parts/RoomPartData.js +2 -0
  340. package/dist/objects/room/parts/Stair.d.ts +23 -0
  341. package/dist/objects/room/parts/Stair.js +127 -0
  342. package/dist/objects/room/parts/StairCorner.d.ts +22 -0
  343. package/dist/objects/room/parts/StairCorner.js +192 -0
  344. package/dist/objects/room/parts/Tile.d.ts +33 -0
  345. package/dist/objects/room/parts/Tile.js +138 -0
  346. package/dist/objects/room/parts/TileCursor.d.ts +43 -0
  347. package/dist/objects/room/parts/TileCursor.js +193 -0
  348. package/dist/objects/room/parts/WallLeft.d.ts +47 -0
  349. package/dist/objects/room/parts/WallLeft.js +179 -0
  350. package/dist/objects/room/parts/WallOuterCorner.d.ts +16 -0
  351. package/dist/objects/room/parts/WallOuterCorner.js +84 -0
  352. package/dist/objects/room/parts/WallRight.d.ts +5 -0
  353. package/dist/objects/room/parts/WallRight.js +18 -0
  354. package/dist/objects/room/util/LegacyWallGeometry.d.ts +33 -0
  355. package/dist/objects/room/util/LegacyWallGeometry.js +93 -0
  356. package/dist/objects/room/util/createPlaneMatrix.d.ts +26 -0
  357. package/dist/objects/room/util/createPlaneMatrix.js +63 -0
  358. package/dist/objects/room/util/getMaskId.d.ts +1 -0
  359. package/dist/objects/room/util/getMaskId.js +13 -0
  360. package/dist/objects/room/util/getPosition.d.ts +7 -0
  361. package/dist/objects/room/util/getPosition.js +14 -0
  362. package/dist/objects/room/util/getTileColors.d.ts +10 -0
  363. package/dist/objects/room/util/getTileColors.js +34 -0
  364. package/dist/objects/room/util/getTileMapBounds.d.ts +10 -0
  365. package/dist/objects/room/util/getTileMapBounds.js +40 -0
  366. package/dist/objects/room/util/getTilePosition.d.ts +2 -0
  367. package/dist/objects/room/util/getTilePosition.js +42 -0
  368. package/dist/objects/room/util/getTilePositionForTile.d.ts +11 -0
  369. package/dist/objects/room/util/getTilePositionForTile.js +11 -0
  370. package/dist/types/RoomPosition.d.ts +44 -0
  371. package/dist/types/RoomPosition.js +2 -0
  372. package/dist/types/TileType.d.ts +2 -0
  373. package/dist/types/TileType.js +2 -0
  374. package/dist/types/WallPosition.d.ts +23 -0
  375. package/dist/types/WallPosition.js +2 -0
  376. package/dist/types/types.d.ts +0 -0
  377. package/dist/types/types.js +1 -0
  378. package/dist/util/applyTextureProperties.d.ts +2 -0
  379. package/dist/util/applyTextureProperties.js +6 -0
  380. package/dist/util/associateBy.d.ts +1 -0
  381. package/dist/util/associateBy.js +11 -0
  382. package/dist/util/furnitureDataTransformers.d.ts +27 -0
  383. package/dist/util/furnitureDataTransformers.js +58 -0
  384. package/dist/util/getIntFromHex.d.ts +1 -0
  385. package/dist/util/getIntFromHex.js +6 -0
  386. package/dist/util/getNumberFromAttribute.d.ts +1 -0
  387. package/dist/util/getNumberFromAttribute.js +11 -0
  388. package/dist/util/getTileInfo.d.ts +31 -0
  389. package/dist/util/getTileInfo.js +107 -0
  390. package/dist/util/getZOrder.d.ts +1 -0
  391. package/dist/util/getZOrder.js +6 -0
  392. package/dist/util/isPointInside.d.ts +1 -0
  393. package/dist/util/isPointInside.js +18 -0
  394. package/dist/util/isSetEqual.d.ts +1 -0
  395. package/dist/util/isSetEqual.js +11 -0
  396. package/dist/util/isTile.d.ts +1 -0
  397. package/dist/util/isTile.js +5 -0
  398. package/dist/util/loadImageFromBlob.d.ts +1 -0
  399. package/dist/util/loadImageFromBlob.js +13 -0
  400. package/dist/util/loadImageFromUrl.d.ts +1 -0
  401. package/dist/util/loadImageFromUrl.js +14 -0
  402. package/dist/util/loadRoomTexture.d.ts +2 -0
  403. package/dist/util/loadRoomTexture.js +51 -0
  404. package/dist/util/mock.d.ts +1 -0
  405. package/dist/util/mock.js +6 -0
  406. package/dist/util/notNullOrUndefined.d.ts +1 -0
  407. package/dist/util/notNullOrUndefined.js +6 -0
  408. package/dist/util/parseTileMap.d.ts +49 -0
  409. package/dist/util/parseTileMap.js +188 -0
  410. package/dist/util/parseTileMapString.d.ts +2 -0
  411. package/dist/util/parseTileMapString.js +16 -0
  412. package/dist/util/tilemap/findEntranceTile.d.ts +5 -0
  413. package/dist/util/tilemap/findEntranceTile.js +24 -0
  414. package/dist/util/tilemap/getColumnWalls.d.ts +8 -0
  415. package/dist/util/tilemap/getColumnWalls.js +43 -0
  416. package/dist/util/tilemap/getRowWalls.d.ts +8 -0
  417. package/dist/util/tilemap/getRowWalls.js +43 -0
  418. package/dist/util/tilemap/hasWallTiles.d.ts +2 -0
  419. package/dist/util/tilemap/hasWallTiles.js +9 -0
  420. package/dist/util/tilemap/padTileMap.d.ts +6 -0
  421. package/dist/util/tilemap/padTileMap.js +24 -0
  422. package/dist/util/tilemap/traceWalls.d.ts +25 -0
  423. package/dist/util/tilemap/traceWalls.js +379 -0
  424. package/dist/util/tilemap/wallsFromContour.d.ts +20 -0
  425. package/dist/util/tilemap/wallsFromContour.js +48 -0
  426. package/dist/util/traverseDOMTree.d.ts +4 -0
  427. package/dist/util/traverseDOMTree.js +8 -0
  428. package/dist-esm/__mocks__/setupTests.js +34 -0
  429. package/dist-esm/assets/IAssetBundle.js +1 -0
  430. package/dist-esm/assets/LegacyAssetBundle.js +25 -0
  431. package/dist-esm/assets/WsproomAssetBundle.js +79 -0
  432. package/dist-esm/data/XmlData.js +11 -0
  433. package/dist-esm/index.js +33 -0
  434. package/dist-esm/interfaces/IAnimationTicker.js +1 -0
  435. package/dist-esm/interfaces/IAvatarLoader.js +1 -0
  436. package/dist-esm/interfaces/IConfiguration.js +1 -0
  437. package/dist-esm/interfaces/IFurnitureData.js +1 -0
  438. package/dist-esm/interfaces/IFurnitureLoader.js +1 -0
  439. package/dist-esm/interfaces/IHitDetection.js +1 -0
  440. package/dist-esm/interfaces/IRoomContext.js +1 -0
  441. package/dist-esm/interfaces/IRoomGeometry.js +1 -0
  442. package/dist-esm/interfaces/IRoomObject.js +1 -0
  443. package/dist-esm/interfaces/IRoomObjectContainer.js +1 -0
  444. package/dist-esm/interfaces/IRoomVisualization.js +1 -0
  445. package/dist-esm/interfaces/ITextureable.js +1 -0
  446. package/dist-esm/interfaces/ITileMap.js +1 -0
  447. package/dist-esm/objects/RoomObject.js +65 -0
  448. package/dist-esm/objects/Wsproom.js +49 -0
  449. package/dist-esm/objects/animation/AnimationTicker.js +33 -0
  450. package/dist-esm/objects/animation/ObjectAnimation.js +89 -0
  451. package/dist-esm/objects/avatar/Avatar.js +544 -0
  452. package/dist-esm/objects/avatar/AvatarAssetLibraryCollection.js +66 -0
  453. package/dist-esm/objects/avatar/AvatarEffectBundle.js +30 -0
  454. package/dist-esm/objects/avatar/AvatarLoader.js +211 -0
  455. package/dist-esm/objects/avatar/BaseAvatar.js +349 -0
  456. package/dist-esm/objects/avatar/data/AvatarActionsData.js +80 -0
  457. package/dist-esm/objects/avatar/data/AvatarAnimationData.js +122 -0
  458. package/dist-esm/objects/avatar/data/AvatarData.js +11 -0
  459. package/dist-esm/objects/avatar/data/AvatarEffectData.js +182 -0
  460. package/dist-esm/objects/avatar/data/AvatarEffectMap.js +34 -0
  461. package/dist-esm/objects/avatar/data/AvatarGeometryData.js +118 -0
  462. package/dist-esm/objects/avatar/data/AvatarManifestData.js +51 -0
  463. package/dist-esm/objects/avatar/data/AvatarOffsetsData.js +13 -0
  464. package/dist-esm/objects/avatar/data/AvatarPartSetsData.js +34 -0
  465. package/dist-esm/objects/avatar/data/FigureData.js +102 -0
  466. package/dist-esm/objects/avatar/data/FigureMapData.js +43 -0
  467. package/dist-esm/objects/avatar/data/ManifestLibrary.js +25 -0
  468. package/dist-esm/objects/avatar/data/interfaces/IAvatarActionsData.js +1 -0
  469. package/dist-esm/objects/avatar/data/interfaces/IAvatarAnimationData.js +1 -0
  470. package/dist-esm/objects/avatar/data/interfaces/IAvatarEffectBundle.js +1 -0
  471. package/dist-esm/objects/avatar/data/interfaces/IAvatarEffectData.js +1 -0
  472. package/dist-esm/objects/avatar/data/interfaces/IAvatarEffectMap.js +1 -0
  473. package/dist-esm/objects/avatar/data/interfaces/IAvatarGeometryData.js +1 -0
  474. package/dist-esm/objects/avatar/data/interfaces/IAvatarManifestData.js +1 -0
  475. package/dist-esm/objects/avatar/data/interfaces/IAvatarOffsetsData.js +1 -0
  476. package/dist-esm/objects/avatar/data/interfaces/IAvatarPartSetsData.js +1 -0
  477. package/dist-esm/objects/avatar/data/interfaces/IFigureData.js +1 -0
  478. package/dist-esm/objects/avatar/data/interfaces/IFigureMapData.js +1 -0
  479. package/dist-esm/objects/avatar/data/interfaces/IManifestLibrary.js +1 -0
  480. package/dist-esm/objects/avatar/data/static/actions.xml.js +1 -0
  481. package/dist-esm/objects/avatar/data/static/animation.xml.js +1 -0
  482. package/dist-esm/objects/avatar/data/static/geometry.xml.js +1 -0
  483. package/dist-esm/objects/avatar/data/static/partsets.xml.js +1 -0
  484. package/dist-esm/objects/avatar/enum/AvatarAction.js +30 -0
  485. package/dist-esm/objects/avatar/enum/AvatarFigurePartType.js +28 -0
  486. package/dist-esm/objects/avatar/structure/AvatarAdditionPart.js +132 -0
  487. package/dist-esm/objects/avatar/structure/AvatarBodyPart.js +92 -0
  488. package/dist-esm/objects/avatar/structure/AvatarBodyPartList.js +87 -0
  489. package/dist-esm/objects/avatar/structure/AvatarDrawDefinition.js +131 -0
  490. package/dist-esm/objects/avatar/structure/AvatarEffectPart.js +113 -0
  491. package/dist-esm/objects/avatar/structure/AvatarPart.js +158 -0
  492. package/dist-esm/objects/avatar/structure/AvatarPartList.js +76 -0
  493. package/dist-esm/objects/avatar/structure/BodyPartDrawOrder.js +166 -0
  494. package/dist-esm/objects/avatar/structure/interface/IAvatarDrawablePart.js +1 -0
  495. package/dist-esm/objects/avatar/structure/interface/IAvatarEffectPart.js +1 -0
  496. package/dist-esm/objects/avatar/types/index.js +1 -0
  497. package/dist-esm/objects/avatar/util/createLookServer.js +15 -0
  498. package/dist-esm/objects/avatar/util/getAssetForFrame.js +39 -0
  499. package/dist-esm/objects/avatar/util/getAssetFromPartMeta.js +46 -0
  500. package/dist-esm/objects/avatar/util/getAvatarDirection.js +15 -0
  501. package/dist-esm/objects/avatar/util/getAvatarDrawDefinition.js +27 -0
  502. package/dist-esm/objects/avatar/util/getDrawOrderForActions.js +19 -0
  503. package/dist-esm/objects/avatar/util/getEffectSprite.js +24 -0
  504. package/dist-esm/objects/avatar/util/getFlippedMetaData.js +89 -0
  505. package/dist-esm/objects/avatar/util/getLibrariesForLook.js +29 -0
  506. package/dist-esm/objects/avatar/util/index.js +1 -0
  507. package/dist-esm/objects/avatar/util/parseLookString.js +12 -0
  508. package/dist-esm/objects/events/EventEmitter.js +27 -0
  509. package/dist-esm/objects/events/EventManager.js +241 -0
  510. package/dist-esm/objects/events/EventManagerContainer.js +32 -0
  511. package/dist-esm/objects/events/EventManagerNode.js +51 -0
  512. package/dist-esm/objects/events/EventOverOutHandler.js +86 -0
  513. package/dist-esm/objects/events/interfaces/IEventGroup.js +3 -0
  514. package/dist-esm/objects/events/interfaces/IEventHandler.js +1 -0
  515. package/dist-esm/objects/events/interfaces/IEventHittable.js +1 -0
  516. package/dist-esm/objects/events/interfaces/IEventManager.js +1 -0
  517. package/dist-esm/objects/events/interfaces/IEventManagerEvent.js +1 -0
  518. package/dist-esm/objects/events/interfaces/IEventManagerNode.js +1 -0
  519. package/dist-esm/objects/events/interfaces/IEventTarget.js +1 -0
  520. package/dist-esm/objects/furniture/BaseFurniture.js +482 -0
  521. package/dist-esm/objects/furniture/FloorFurniture.js +316 -0
  522. package/dist-esm/objects/furniture/FurnitureData.js +69 -0
  523. package/dist-esm/objects/furniture/FurnitureExtraData.js +1 -0
  524. package/dist-esm/objects/furniture/FurnitureFetchInfo.js +1 -0
  525. package/dist-esm/objects/furniture/FurnitureHelper.js +53 -0
  526. package/dist-esm/objects/furniture/FurnitureLoader.js +81 -0
  527. package/dist-esm/objects/furniture/FurnitureRoomVisualization.js +22 -0
  528. package/dist-esm/objects/furniture/FurnitureSprite.js +65 -0
  529. package/dist-esm/objects/furniture/FurnitureVisualizationView.js +478 -0
  530. package/dist-esm/objects/furniture/IFurniture.js +1 -0
  531. package/dist-esm/objects/furniture/IFurnitureAssetBundle.js +1 -0
  532. package/dist-esm/objects/furniture/IFurnitureVisualization.js +1 -0
  533. package/dist-esm/objects/furniture/IFurnitureVisualizationView.js +1 -0
  534. package/dist-esm/objects/furniture/JsonFurnitureAssetBundle.js +52 -0
  535. package/dist-esm/objects/furniture/WallFurniture.js +225 -0
  536. package/dist-esm/objects/furniture/XmlFurnitureAssetBundle.js +31 -0
  537. package/dist-esm/objects/furniture/data/FurnitureAssetsData.js +47 -0
  538. package/dist-esm/objects/furniture/data/FurnitureAssetsJson.js +1 -0
  539. package/dist-esm/objects/furniture/data/FurnitureIndexData.js +26 -0
  540. package/dist-esm/objects/furniture/data/FurnitureIndexJson.js +1 -0
  541. package/dist-esm/objects/furniture/data/FurnitureJson.js +1 -0
  542. package/dist-esm/objects/furniture/data/FurnitureLogicData.js +39 -0
  543. package/dist-esm/objects/furniture/data/FurnitureLogicJson.js +1 -0
  544. package/dist-esm/objects/furniture/data/FurnitureVisualizationData.js +277 -0
  545. package/dist-esm/objects/furniture/data/FurnitureVisualizationJson.js +1 -0
  546. package/dist-esm/objects/furniture/data/JsonFurnitureAssetsData.js +12 -0
  547. package/dist-esm/objects/furniture/data/JsonFurnitureLogicData.js +8 -0
  548. package/dist-esm/objects/furniture/data/JsonFurnitureVisualizationData.js +91 -0
  549. package/dist-esm/objects/furniture/data/interfaces/IFurnitureAssetsData.js +1 -0
  550. package/dist-esm/objects/furniture/data/interfaces/IFurnitureIndexData.js +1 -0
  551. package/dist-esm/objects/furniture/data/interfaces/IFurnitureLogicData.js +1 -0
  552. package/dist-esm/objects/furniture/data/interfaces/IFurnitureVisualizationData.js +1 -0
  553. package/dist-esm/objects/furniture/filter/ActiveWiredFilter.js +40 -0
  554. package/dist-esm/objects/furniture/filter/HighlightFilter.js +56 -0
  555. package/dist-esm/objects/furniture/filter/filterVertex.js +29 -0
  556. package/dist-esm/objects/furniture/util/DrawDefinition.js +1 -0
  557. package/dist-esm/objects/furniture/util/IFurnitureEventHandlers.js +1 -0
  558. package/dist-esm/objects/furniture/util/getDirectionForFurniture.js +15 -0
  559. package/dist-esm/objects/furniture/util/getFurniDrawDefinition.js +98 -0
  560. package/dist-esm/objects/furniture/util/getFurnitureFetch.js +11 -0
  561. package/dist-esm/objects/furniture/util/index.js +4 -0
  562. package/dist-esm/objects/furniture/util/loadFurni.js +46 -0
  563. package/dist-esm/objects/furniture/util/visualization/VisualizationXml.js +1 -0
  564. package/dist-esm/objects/furniture/util/visualization/parseAnimations.js +32 -0
  565. package/dist-esm/objects/furniture/util/visualization/parseColors.js +16 -0
  566. package/dist-esm/objects/furniture/util/visualization/parseDirections.js +24 -0
  567. package/dist-esm/objects/furniture/util/visualization/parseLayers.js +16 -0
  568. package/dist-esm/objects/furniture/util/visualization/parseVisualization.js +41 -0
  569. package/dist-esm/objects/furniture/visualization/AnimatedFurnitureVisualization.js +210 -0
  570. package/dist-esm/objects/furniture/visualization/BasicFurnitureVisualization.js +50 -0
  571. package/dist-esm/objects/furniture/visualization/FurnitureBottleVisualization.js +61 -0
  572. package/dist-esm/objects/furniture/visualization/FurnitureGuildCustomizedVisualization.js +83 -0
  573. package/dist-esm/objects/furniture/visualization/FurnitureVisualization.js +20 -0
  574. package/dist-esm/objects/hitdetection/ClickHandler.js +75 -0
  575. package/dist-esm/objects/hitdetection/HitSprite.js +186 -0
  576. package/dist-esm/objects/hitdetection/HitTexture.js +116 -0
  577. package/dist-esm/objects/interfaces/IMoveable.js +1 -0
  578. package/dist-esm/objects/interfaces/IScreenPositioned.js +1 -0
  579. package/dist-esm/objects/room/ILandscapeContainer.js +1 -0
  580. package/dist-esm/objects/room/IRoomRectangle.js +1 -0
  581. package/dist-esm/objects/room/ITileColorable.js +1 -0
  582. package/dist-esm/objects/room/IWallColorable.js +1 -0
  583. package/dist-esm/objects/room/Landscape.js +349 -0
  584. package/dist-esm/objects/room/ParsedTileMap.js +22 -0
  585. package/dist-esm/objects/room/Pathfinding.js +204 -0
  586. package/dist-esm/objects/room/Room.js +357 -0
  587. package/dist-esm/objects/room/RoomCamera.js +321 -0
  588. package/dist-esm/objects/room/RoomLandscapeMaskSprite.js +63 -0
  589. package/dist-esm/objects/room/RoomModelVisualization.js +524 -0
  590. package/dist-esm/objects/room/RoomObjectContainer.js +31 -0
  591. package/dist-esm/objects/room/TileMapEditorLayer.js +294 -0
  592. package/dist-esm/objects/room/data/LandscapeData.js +128 -0
  593. package/dist-esm/objects/room/matrixes.js +30 -0
  594. package/dist-esm/objects/room/parts/IRoomPart.js +1 -0
  595. package/dist-esm/objects/room/parts/RoomPartData.js +1 -0
  596. package/dist-esm/objects/room/parts/Stair.js +90 -0
  597. package/dist-esm/objects/room/parts/StairCorner.js +155 -0
  598. package/dist-esm/objects/room/parts/Tile.js +101 -0
  599. package/dist-esm/objects/room/parts/TileCursor.js +156 -0
  600. package/dist-esm/objects/room/parts/WallLeft.js +142 -0
  601. package/dist-esm/objects/room/parts/WallOuterCorner.js +47 -0
  602. package/dist-esm/objects/room/parts/WallRight.js +14 -0
  603. package/dist-esm/objects/room/util/LegacyWallGeometry.js +89 -0
  604. package/dist-esm/objects/room/util/createPlaneMatrix.js +27 -0
  605. package/dist-esm/objects/room/util/getMaskId.js +10 -0
  606. package/dist-esm/objects/room/util/getPosition.js +11 -0
  607. package/dist-esm/objects/room/util/getTileColors.js +30 -0
  608. package/dist-esm/objects/room/util/getTileMapBounds.js +37 -0
  609. package/dist-esm/objects/room/util/getTilePosition.js +6 -0
  610. package/dist-esm/objects/room/util/getTilePositionForTile.js +8 -0
  611. package/dist-esm/types/RoomPosition.js +1 -0
  612. package/dist-esm/types/TileType.js +1 -0
  613. package/dist-esm/types/WallPosition.js +1 -0
  614. package/dist-esm/types/types.js +1 -0
  615. package/dist-esm/util/applyTextureProperties.js +3 -0
  616. package/dist-esm/util/associateBy.js +8 -0
  617. package/dist-esm/util/furnitureDataTransformers.js +53 -0
  618. package/dist-esm/util/getIntFromHex.js +3 -0
  619. package/dist-esm/util/getNumberFromAttribute.js +8 -0
  620. package/dist-esm/util/getTileInfo.js +103 -0
  621. package/dist-esm/util/getZOrder.js +3 -0
  622. package/dist-esm/util/isPointInside.js +15 -0
  623. package/dist-esm/util/isSetEqual.js +8 -0
  624. package/dist-esm/util/isTile.js +1 -0
  625. package/dist-esm/util/loadImageFromBlob.js +10 -0
  626. package/dist-esm/util/loadImageFromUrl.js +11 -0
  627. package/dist-esm/util/loadRoomTexture.js +15 -0
  628. package/dist-esm/util/mock.js +3 -0
  629. package/dist-esm/util/notNullOrUndefined.js +3 -0
  630. package/dist-esm/util/parseTileMap.js +185 -0
  631. package/dist-esm/util/parseTileMapString.js +13 -0
  632. package/dist-esm/util/tilemap/findEntranceTile.js +21 -0
  633. package/dist-esm/util/tilemap/getColumnWalls.js +40 -0
  634. package/dist-esm/util/tilemap/getRowWalls.js +40 -0
  635. package/dist-esm/util/tilemap/hasWallTiles.js +6 -0
  636. package/dist-esm/util/tilemap/padTileMap.js +21 -0
  637. package/dist-esm/util/tilemap/traceWalls.js +376 -0
  638. package/dist-esm/util/tilemap/wallsFromContour.js +45 -0
  639. package/dist-esm/util/traverseDOMTree.js +5 -0
  640. package/package.json +102 -3
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRowWalls = getRowWalls;
4
+ const getTileInfo_1 = require("../getTileInfo");
5
+ function getRowWalls(tilemap) {
6
+ var _a;
7
+ const walls = [];
8
+ for (let x = 0; x < tilemap[0].length; x++) {
9
+ let wallEndY;
10
+ let wallStartY;
11
+ let height;
12
+ const flush = () => {
13
+ if (wallEndY != null && wallStartY != null) {
14
+ walls.push({
15
+ startY: wallStartY,
16
+ endY: wallEndY,
17
+ x: x - 1,
18
+ height: height !== null && height !== void 0 ? height : 0,
19
+ });
20
+ }
21
+ wallEndY = undefined;
22
+ wallStartY = undefined;
23
+ height = undefined;
24
+ };
25
+ for (let y = tilemap.length - 1; y >= 0; y--) {
26
+ const current = (0, getTileInfo_1.getTileInfo)(tilemap, x, y);
27
+ if (current.rowEdge && !current.rowDoor) {
28
+ if (wallEndY == null) {
29
+ wallEndY = y;
30
+ }
31
+ wallStartY = y;
32
+ if (height == null || ((_a = current.height) !== null && _a !== void 0 ? _a : 0) < height) {
33
+ height = current.height;
34
+ }
35
+ }
36
+ else {
37
+ flush();
38
+ }
39
+ }
40
+ flush();
41
+ }
42
+ return walls;
43
+ }
@@ -0,0 +1,2 @@
1
+ import { TileType } from "../../types/TileType";
2
+ export declare function hasWallTiles(tilemap: TileType[][]): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasWallTiles = hasWallTiles;
4
+ const parseTileMap_1 = require("../parseTileMap");
5
+ function hasWallTiles(tilemap) {
6
+ if (tilemap.length === 0)
7
+ return false;
8
+ return (0, parseTileMap_1.parseTileMap)(tilemap).tilemap.some((row) => row.some((tile) => tile.type === "wall"));
9
+ }
@@ -0,0 +1,6 @@
1
+ import { TileType } from "../../types/TileType";
2
+ export declare function padTileMap(tilemap: TileType[][]): {
3
+ tilemap: TileType[][];
4
+ offsetX: number;
5
+ offsetY: number;
6
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.padTileMap = padTileMap;
4
+ function padTileMap(tilemap) {
5
+ const firstRow = tilemap[0];
6
+ if (firstRow == null)
7
+ throw new Error("Invalid row");
8
+ let offsetY = 0;
9
+ let offsetX = 0;
10
+ if (firstRow.some((type) => type !== "x")) {
11
+ tilemap = [firstRow.map(() => "x"), ...tilemap];
12
+ offsetY += 1;
13
+ }
14
+ const nonPrefixedRows = tilemap.filter((row) => row[0] !== "x");
15
+ if (nonPrefixedRows.length > 1) {
16
+ tilemap = tilemap.map((row) => ["x", ...row]);
17
+ offsetX += 1;
18
+ }
19
+ return {
20
+ tilemap,
21
+ offsetX,
22
+ offsetY,
23
+ };
24
+ }
@@ -0,0 +1,25 @@
1
+ import { TileType } from "../../types/TileType";
2
+ export interface TracedWall {
3
+ x: number;
4
+ y: number;
5
+ /** 0 = +x, 1 = +y, 2 = -x, 3 = -y. */
6
+ direction: number;
7
+ length: number;
8
+ /** The stretch runs along the padding rather than along real floor. */
9
+ border: boolean;
10
+ leftTurn: boolean;
11
+ hidden: boolean;
12
+ /** The outline turns away from this stretch, so it is cut back on that side. */
13
+ cutLeft?: boolean;
14
+ cutRight?: boolean;
15
+ /** The next stretch is drawn, so this one meets it instead of ending open. */
16
+ joinsNext?: boolean;
17
+ /** Sits on an outer corner rather than an inner one. */
18
+ turnsOut?: boolean;
19
+ }
20
+ export interface TracedWalls {
21
+ walls: TracedWall[];
22
+ /** Height of the lowest floor the outline touches, per stretch. */
23
+ heights: number[];
24
+ }
25
+ export declare function traceWalls(tilemap: TileType[][]): TracedWalls;
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.traceWalls = traceWalls;
4
+ const getTileInfo_1 = require("../getTileInfo");
5
+ const findEntranceTile_1 = require("./findEntranceTile");
6
+ /**
7
+ * Habbo does not look for wall edges tile by tile. It picks a single seed — the
8
+ * first floor tile going down the leftmost column — and walks the outline of the
9
+ * region that seed belongs to, turning at every corner until it arrives back
10
+ * where it started. Everything the walk never reaches stays open, which is why a
11
+ * room made of two disconnected floors only gets walls around one of them.
12
+ *
13
+ * The walk is run twice: once treating holes as outside the room, once treating
14
+ * only the padding as outside. Comparing the two is what tells Habbo which
15
+ * stretches sit next to a hole and have to be hidden.
16
+ */
17
+ /** Anything below this is outside the room entirely. */
18
+ const BLOCKED = -110;
19
+ /** A gap in the floor: still inside the room's outline, but has no tile. */
20
+ const HOLE = -100;
21
+ const DIRECTION_VECTORS = [
22
+ { x: 1, y: 0 },
23
+ { x: 0, y: 1 },
24
+ { x: -1, y: 0 },
25
+ { x: 0, y: -1 },
26
+ ];
27
+ const NORMAL_VECTORS = [
28
+ { x: 0, y: 1 },
29
+ { x: -1, y: 0 },
30
+ { x: 0, y: -1 },
31
+ { x: 1, y: 0 },
32
+ ];
33
+ /** How far a single straight stretch of wall may run before we give up. */
34
+ const MAX_RUN = 1000;
35
+ /** How many corners one outline may have before we give up. */
36
+ const MAX_CORNERS = 1000;
37
+ class HeightMatrix {
38
+ constructor(tilemap) {
39
+ this.width = tilemap.reduce((max, row) => Math.max(max, row.length), 0);
40
+ this.height = tilemap.length;
41
+ this._values = tilemap.map((row) => {
42
+ const values = new Array(this.width).fill(BLOCKED);
43
+ row.forEach((tile, x) => {
44
+ const parsed = (0, getTileInfo_1.getNumberOfTileType)(tile);
45
+ values[x] = parsed === "x" ? BLOCKED : parsed;
46
+ });
47
+ return values;
48
+ });
49
+ this.updateBounds();
50
+ }
51
+ updateBounds() {
52
+ let minX = this.width;
53
+ let maxX = -1;
54
+ let minY = this.height;
55
+ let maxY = -1;
56
+ this._values.forEach((row, y) => row.forEach((value, x) => {
57
+ if (value <= HOLE)
58
+ return;
59
+ if (x < minX)
60
+ minX = x;
61
+ if (x > maxX)
62
+ maxX = x;
63
+ if (y < minY)
64
+ minY = y;
65
+ if (y > maxY)
66
+ maxY = y;
67
+ }));
68
+ this.minX = minX;
69
+ this.maxX = maxX;
70
+ this.minY = minY;
71
+ this.maxY = maxY;
72
+ }
73
+ set(x, y, value) {
74
+ if (this._values[y] == null)
75
+ return;
76
+ this._values[y][x] = value;
77
+ }
78
+ get(x, y) {
79
+ var _a;
80
+ var _b;
81
+ if (x < 0 || x >= this.width || y < 0 || y >= this.height)
82
+ return BLOCKED;
83
+ return (_b = (_a = this._values[y]) === null || _a === void 0 ? void 0 : _a[x]) !== null && _b !== void 0 ? _b : BLOCKED;
84
+ }
85
+ get hasFloor() {
86
+ return this.maxX >= 0;
87
+ }
88
+ }
89
+ /**
90
+ * Finds where the outline turns next. Each extractor runs along one side until
91
+ * either the floor ends (turn inwards) or the floor beside it drops away (turn
92
+ * outwards).
93
+ */
94
+ const EXTRACTORS = [
95
+ // Running along +x, floor on the +y side.
96
+ (m, x, y, limit) => {
97
+ for (let step = 1; step < MAX_RUN; step++) {
98
+ if (m.get(x + step, y) > limit)
99
+ return { x: x + step - 1, y };
100
+ if (m.get(x + step, y + 1) <= limit)
101
+ return { x: x + step, y: y + 1 };
102
+ }
103
+ return undefined;
104
+ },
105
+ // Running along +y, floor on the -x side.
106
+ (m, x, y, limit) => {
107
+ for (let step = 1; step < MAX_RUN; step++) {
108
+ if (m.get(x, y + step) > limit)
109
+ return { x, y: y + step - 1 };
110
+ if (m.get(x - 1, y + step) <= limit)
111
+ return { x: x - 1, y: y + step };
112
+ }
113
+ return undefined;
114
+ },
115
+ // Running along -x, floor on the -y side.
116
+ (m, x, y, limit) => {
117
+ for (let step = 1; step < MAX_RUN; step++) {
118
+ if (m.get(x - step, y) > limit)
119
+ return { x: x - step + 1, y };
120
+ if (m.get(x - step, y - 1) <= limit)
121
+ return { x: x - step, y: y - 1 };
122
+ }
123
+ return undefined;
124
+ },
125
+ // Running along -y, floor on the +x side.
126
+ (m, x, y, limit) => {
127
+ for (let step = 1; step < MAX_RUN; step++) {
128
+ if (m.get(x, y - step) > limit)
129
+ return { x, y: y - step + 1 };
130
+ if (m.get(x + 1, y - step) <= limit)
131
+ return { x: x + 1, y: y - step };
132
+ }
133
+ return undefined;
134
+ },
135
+ ];
136
+ function isDuplicate(walls, candidate) {
137
+ return walls.some((wall) => wall.x === candidate.x &&
138
+ wall.y === candidate.y &&
139
+ wall.direction === candidate.direction &&
140
+ wall.length === candidate.length &&
141
+ wall.border === candidate.border &&
142
+ wall.leftTurn === candidate.leftTurn);
143
+ }
144
+ /**
145
+ * @param treatHolesAsOutside walks the outline Habbo actually renders, where a
146
+ * gap in the floor ends the room. The other pass keeps holes on the inside, and
147
+ * comparing the two is what reveals which stretches border a hole.
148
+ */
149
+ function traceOutline(matrix, seed, treatHolesAsOutside) {
150
+ const limit = treatHolesAsOutside ? HOLE : BLOCKED;
151
+ const walls = [];
152
+ let direction = 0;
153
+ let corner = { ...seed };
154
+ for (let guard = 0; guard < MAX_CORNERS; guard++) {
155
+ // Marks a stretch that runs outside the floor's bounding box. It does not
156
+ // stop the walk — it only tells hidePeninsulas where a chain begins.
157
+ const outside = corner.x < matrix.minX ||
158
+ corner.x > matrix.maxX ||
159
+ corner.y < matrix.minY ||
160
+ corner.y > matrix.maxY;
161
+ const next = EXTRACTORS[direction](matrix, corner.x, corner.y, limit);
162
+ if (next == null)
163
+ return walls;
164
+ const startedAt = direction;
165
+ let length = Math.abs(next.x - corner.x) + Math.abs(next.y - corner.y);
166
+ let leftTurn = false;
167
+ if (corner.x === next.x || corner.y === next.y) {
168
+ direction = (direction - 1 + EXTRACTORS.length) % EXTRACTORS.length;
169
+ length++;
170
+ leftTurn = true;
171
+ }
172
+ else {
173
+ direction = (direction + 1) % EXTRACTORS.length;
174
+ length--;
175
+ }
176
+ const wall = {
177
+ x: corner.x,
178
+ y: corner.y,
179
+ direction: startedAt,
180
+ length,
181
+ border: outside,
182
+ leftTurn,
183
+ hidden: false,
184
+ };
185
+ if (!isDuplicate(walls, wall))
186
+ walls.push(wall);
187
+ const closed = next.x === seed.x &&
188
+ next.y === seed.y &&
189
+ (next.x !== corner.x || next.y !== corner.y);
190
+ corner = next;
191
+ if (closed)
192
+ break;
193
+ }
194
+ return walls;
195
+ }
196
+ /**
197
+ * Hides stretches that only exist because the outline poked out into a
198
+ * one-tile-wide spur. Habbo counts left turns along a run of non-border walls;
199
+ * more than one outstanding left turn means the walk doubled back on itself.
200
+ */
201
+ function hidePeninsulas(walls) {
202
+ let index = 0;
203
+ while (index < walls.length) {
204
+ const from = index;
205
+ let to = index;
206
+ let outstandingLeftTurns = 0;
207
+ let doubledBack = false;
208
+ while (index < walls.length && !walls[index].border) {
209
+ if (walls[index].leftTurn) {
210
+ outstandingLeftTurns++;
211
+ }
212
+ else if (outstandingLeftTurns > 0) {
213
+ outstandingLeftTurns--;
214
+ }
215
+ if (outstandingLeftTurns > 1)
216
+ doubledBack = true;
217
+ to = index;
218
+ index++;
219
+ }
220
+ if (doubledBack) {
221
+ for (let hide = from; hide <= to; hide++)
222
+ walls[hide].hidden = true;
223
+ }
224
+ index++;
225
+ }
226
+ }
227
+ /**
228
+ * Trims stretches that run alongside a hole. A stretch that starts over a hole
229
+ * is pushed forward to where the floor begins; one that runs into a hole is cut
230
+ * short; one that is over a hole the whole way is dropped.
231
+ */
232
+ function trimAgainstHoles(matrix, walls) {
233
+ walls.forEach((wall) => {
234
+ if (wall.hidden)
235
+ return;
236
+ const along = DIRECTION_VECTORS[wall.direction];
237
+ const normal = NORMAL_VECTORS[wall.direction];
238
+ let leadingHoles = 0;
239
+ for (let step = 0; step < wall.length; step++) {
240
+ const height = matrix.get(wall.x + step * along.x - normal.x, wall.y + step * along.y - normal.y);
241
+ if (height === HOLE) {
242
+ if (step > 0 && leadingHoles === 0) {
243
+ wall.length = step;
244
+ return;
245
+ }
246
+ leadingHoles++;
247
+ }
248
+ else if (leadingHoles > 0) {
249
+ wall.x += leadingHoles * along.x;
250
+ wall.y += leadingHoles * along.y;
251
+ wall.length -= leadingHoles;
252
+ return;
253
+ }
254
+ }
255
+ if (leadingHoles === wall.length)
256
+ wall.hidden = true;
257
+ });
258
+ }
259
+ /** Lowest floor height the stretch runs against, which sets how tall it is. */
260
+ function heightOf(matrix, wall) {
261
+ const along = DIRECTION_VECTORS[wall.direction];
262
+ const normal = NORMAL_VECTORS[wall.direction];
263
+ let lowest = -1;
264
+ for (let step = 0; step < wall.length; step++) {
265
+ const height = matrix.get(wall.x + step * along.x + normal.x, wall.y + step * along.y + normal.y);
266
+ if (height >= 0 && (height < lowest || lowest < 0))
267
+ lowest = height;
268
+ }
269
+ return lowest < 0 ? 0 : lowest;
270
+ }
271
+ /**
272
+ * The walk has to start just outside the room, on the tile above the first
273
+ * floor of the leftmost column that holds any.
274
+ */
275
+ function findSeed(matrix) {
276
+ if (!matrix.hasFloor)
277
+ return undefined;
278
+ // Walk down the leftmost column that holds floor and stop one tile short of
279
+ // it, so the walk begins just outside the room.
280
+ for (let y = matrix.minY; y <= matrix.maxY; y++) {
281
+ if (matrix.get(matrix.minX, y) > HOLE)
282
+ return { x: matrix.minX, y: y - 1 };
283
+ }
284
+ return undefined;
285
+ }
286
+ const endPointOf = (wall) => {
287
+ const along = DIRECTION_VECTORS[wall.direction];
288
+ return {
289
+ x: wall.x + along.x * wall.length,
290
+ y: wall.y + along.y * wall.length,
291
+ };
292
+ };
293
+ /**
294
+ * Finds the stretch of the untrimmed outline that the given stretch sits on.
295
+ * Both have to be colinear, and the original has to span the whole of it.
296
+ */
297
+ function findOriginal(from, to, original) {
298
+ const verticalRun = from.x === to.x;
299
+ const horizontalRun = from.y === to.y;
300
+ if (!verticalRun && !horizontalRun)
301
+ return -1;
302
+ const low = verticalRun ? Math.min(from.y, to.y) : Math.min(from.x, to.x);
303
+ const high = verticalRun ? Math.max(from.y, to.y) : Math.max(from.x, to.x);
304
+ return original.findIndex((wall) => {
305
+ const end = endPointOf(wall);
306
+ if (verticalRun) {
307
+ if (wall.x !== from.x || end.x !== from.x)
308
+ return false;
309
+ return Math.min(wall.y, end.y) <= low && high <= Math.max(wall.y, end.y);
310
+ }
311
+ if (wall.y !== from.y || end.y !== from.y)
312
+ return false;
313
+ return Math.min(wall.x, end.x) <= low && high <= Math.max(wall.x, end.x);
314
+ });
315
+ }
316
+ function hideOriginallyHidden(walls, original) {
317
+ walls.forEach((wall) => {
318
+ if (wall.hidden)
319
+ return;
320
+ const at = findOriginal({ x: wall.x, y: wall.y }, endPointOf(wall), original);
321
+ if (at < 0 || original[at].hidden)
322
+ wall.hidden = true;
323
+ });
324
+ }
325
+ /**
326
+ * A stretch is cut back on the side where the outline turns away from it. Habbo
327
+ * reads the turn from the untrimmed outline when the stretch can be found
328
+ * there, so a wall that got shortened by a hole still joins its neighbours the
329
+ * way the full room would.
330
+ */
331
+ function resolveCuts(walls, original) {
332
+ walls.forEach((wall, index) => {
333
+ const source = findOriginal({ x: wall.x, y: wall.y }, endPointOf(wall), original) >= 0
334
+ ? original
335
+ : walls;
336
+ const at = source === original
337
+ ? findOriginal({ x: wall.x, y: wall.y }, endPointOf(wall), original)
338
+ : index;
339
+ const after = source[(at + 1) % source.length];
340
+ const before = source[(at - 1 + source.length) % source.length];
341
+ wall.cutRight = !walls[(index - 1 + walls.length) % walls.length].leftTurn;
342
+ wall.cutLeft = !wall.leftTurn;
343
+ wall.joinsNext = !walls[(index + 1) % walls.length].hidden;
344
+ wall.turnsOut =
345
+ (after.direction - wall.direction + 4) % 4 === 3 ||
346
+ (wall.direction - before.direction + 4) % 4 === 3;
347
+ });
348
+ }
349
+ function traceWalls(tilemap) {
350
+ const matrix = new HeightMatrix(tilemap);
351
+ const entrance = (0, findEntranceTile_1.findEntranceTile)(tilemap);
352
+ const entranceHeight = entrance ? matrix.get(entrance.x, entrance.y) : 0;
353
+ if (entrance) {
354
+ matrix.set(entrance.x, entrance.y, BLOCKED);
355
+ matrix.updateBounds();
356
+ }
357
+ const trace = () => {
358
+ const seed = findSeed(matrix);
359
+ if (seed == null)
360
+ return { walls: [], heights: [] };
361
+ const walls = traceOutline(matrix, seed, true);
362
+ const original = traceOutline(matrix, seed, false);
363
+ hidePeninsulas(original);
364
+ trimAgainstHoles(matrix, walls);
365
+ hideOriginallyHidden(walls, original);
366
+ resolveCuts(walls, original);
367
+ const visible = walls.filter((wall) => !wall.hidden);
368
+ return {
369
+ walls: visible,
370
+ heights: visible.map((wall) => heightOf(matrix, wall)),
371
+ };
372
+ };
373
+ const traced = trace();
374
+ if (entrance) {
375
+ matrix.set(entrance.x, entrance.y, entranceHeight);
376
+ matrix.updateBounds();
377
+ }
378
+ return traced;
379
+ }
@@ -0,0 +1,20 @@
1
+ import { TileType } from "../../types/TileType";
2
+ import { ColumnWall } from "./getColumnWalls";
3
+ import { RowWall } from "./getRowWalls";
4
+ /**
5
+ * Turns the traced outline into the row and column runs the renderer indexes by
6
+ * tile. The walk reports a corner, a direction and a length; which side of the
7
+ * room each direction belongs to follows from the normal it carries:
8
+ *
9
+ * - running along +x the floor lies below the walk, so the run covers the back
10
+ * of the room — a column wall on the row it walks.
11
+ * - running along -y the floor lies to the right, so the run covers the left of
12
+ * the room — a row wall on the column it walks.
13
+ *
14
+ * The other two directions come back along the near sides, which the floor
15
+ * itself hides, so they never reach the renderer.
16
+ */
17
+ export declare function wallsFromContour(tilemap: TileType[][]): {
18
+ rowWalls: RowWall[];
19
+ colWalls: ColumnWall[];
20
+ };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wallsFromContour = wallsFromContour;
4
+ const traceWalls_1 = require("./traceWalls");
5
+ /**
6
+ * Turns the traced outline into the row and column runs the renderer indexes by
7
+ * tile. The walk reports a corner, a direction and a length; which side of the
8
+ * room each direction belongs to follows from the normal it carries:
9
+ *
10
+ * - running along +x the floor lies below the walk, so the run covers the back
11
+ * of the room — a column wall on the row it walks.
12
+ * - running along -y the floor lies to the right, so the run covers the left of
13
+ * the room — a row wall on the column it walks.
14
+ *
15
+ * The other two directions come back along the near sides, which the floor
16
+ * itself hides, so they never reach the renderer.
17
+ */
18
+ function wallsFromContour(tilemap) {
19
+ const { walls, heights } = (0, traceWalls_1.traceWalls)(tilemap);
20
+ const rowWalls = [];
21
+ const colWalls = [];
22
+ walls.forEach((wall, index) => {
23
+ var _a;
24
+ const height = (_a = heights[index]) !== null && _a !== void 0 ? _a : 0;
25
+ switch (wall.direction) {
26
+ case 0: {
27
+ // Walks the empty row above the floor, covering the tiles it passes.
28
+ const startX = wall.x;
29
+ const endX = wall.x + wall.length - 1;
30
+ if (endX >= startX) {
31
+ colWalls.push({ startX, endX, y: wall.y, height });
32
+ }
33
+ break;
34
+ }
35
+ case 3: {
36
+ // Walks up the empty column left of the floor, so the run ends where
37
+ // the corner is and starts `length` tiles above it.
38
+ const startY = wall.y - wall.length + 1;
39
+ const endY = wall.y;
40
+ if (endY >= startY) {
41
+ rowWalls.push({ startY, endY, x: wall.x, height });
42
+ }
43
+ break;
44
+ }
45
+ }
46
+ });
47
+ return { rowWalls, colWalls };
48
+ }
@@ -0,0 +1,4 @@
1
+ export declare function traverseDOMTree(node: Node, options: {
2
+ enter: (node: Node) => void;
3
+ exit: (node: Node) => void;
4
+ }): void;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.traverseDOMTree = traverseDOMTree;
4
+ function traverseDOMTree(node, options) {
5
+ options.enter(node);
6
+ node.childNodes.forEach((node) => traverseDOMTree(node, options));
7
+ options.exit(node);
8
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ global.Image = class {
3
+ constructor() {
4
+ this.width = 0;
5
+ this.height = 0;
6
+ setTimeout(() => {
7
+ if (this.onload)
8
+ this.onload();
9
+ }, 0);
10
+ }
11
+ };
12
+ // Mock PIXI.Texture.from to avoid WebGL requirement in tests
13
+ jest.mock('pixi.js', () => {
14
+ const actual = jest.requireActual('pixi.js');
15
+ return {
16
+ ...actual,
17
+ Texture: {
18
+ ...actual.Texture,
19
+ from: (resource) => {
20
+ const source = {
21
+ resource,
22
+ resolution: 1,
23
+ pixelWidth: resource.width || 2,
24
+ pixelHeight: resource.height || 2,
25
+ scaleMode: "linear",
26
+ };
27
+ return {
28
+ source,
29
+ orig: { x: 0, y: 0 },
30
+ };
31
+ },
32
+ },
33
+ };
34
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ export class LegacyAssetBundle {
2
+ constructor(_folderUrl) {
3
+ this._folderUrl = _folderUrl;
4
+ this._blobs = new Map();
5
+ this._strings = new Map();
6
+ }
7
+ async getBlob(name) {
8
+ const current = this._blobs.get(name);
9
+ if (current != null)
10
+ return current;
11
+ const imageUrl = `${this._folderUrl}/${name}`;
12
+ const blob = fetch(imageUrl).then((response) => response.blob());
13
+ this._blobs.set(name, blob);
14
+ return blob;
15
+ }
16
+ async getString(name) {
17
+ const current = this._strings.get(name);
18
+ if (current != null)
19
+ return current;
20
+ const imageUrl = `${this._folderUrl}/${name}`;
21
+ const string = fetch(imageUrl).then((response) => response.text());
22
+ this._strings.set(name, string);
23
+ return string;
24
+ }
25
+ }