create-mud 2.2.17-f88e48e47ceb4a29a3862a3f3b85891490952f0e → 2.2.17-ffefc8f000769d5ca625dd19290007a853a21788

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 (316) hide show
  1. package/README.md +2 -4
  2. package/bin/cli.js +4 -0
  3. package/dist/cli.d.ts +2 -1
  4. package/dist/cli.js +9 -2
  5. package/dist/cli.js.map +1 -1
  6. package/package.json +17 -11
  7. package/templates/react/mprocs.yaml +21 -0
  8. package/templates/react/package.json +31 -0
  9. package/{dist/templates/threejs → templates/react}/packages/client/index.html +2 -2
  10. package/templates/react/packages/client/postcss.config.cjs +6 -0
  11. package/templates/react/packages/client/src/game/useKeyboardMovement.ts +26 -0
  12. package/templates/react/packages/client/src/index.tsx +19 -0
  13. package/templates/react/packages/client/src/mud/Explorer.tsx +32 -0
  14. package/{dist/templates → templates}/react/packages/client/src/mud/Synced.tsx +1 -1
  15. package/templates/react/packages/client/src/mud/useWorldContract.ts +44 -0
  16. package/templates/react/packages/client/src/ui/AsyncButton.tsx +41 -0
  17. package/templates/react/packages/client/src/ui/ErrorFallback.tsx +58 -0
  18. package/templates/react/packages/client/src/ui/icons/ArrowDownIcon.tsx +22 -0
  19. package/templates/react/packages/client/src/ui/icons/MUDIcon.tsx +25 -0
  20. package/templates/react/packages/client/src/wagmiConfig.ts +49 -0
  21. package/templates/react/packages/client/tailwind.config.ts +10 -0
  22. package/templates/react/packages/client/tsconfig.json +11 -0
  23. package/{dist/templates/threejs → templates/react}/packages/client/vite.config.ts +2 -7
  24. package/templates/react/packages/contracts/.env +11 -0
  25. package/{dist/templates → templates}/react/packages/contracts/mud.config.ts +0 -7
  26. package/{dist/templates/vanilla → templates/react}/packages/contracts/package.json +1 -0
  27. package/{dist/templates/vanilla → templates/react}/packages/contracts/script/PostDeploy.s.sol +1 -5
  28. package/{dist/templates/vanilla/packages/contracts/src/codegen/index.sol → templates/react/packages/contracts/src/codegen/common.sol} +6 -1
  29. package/{dist/templates → templates}/react/packages/contracts/test/MoveTest.t.sol +0 -2
  30. package/templates/react/packages/contracts/test/WorldTest.t.sol +16 -0
  31. package/templates/react/packages/contracts/worlds.json +5 -0
  32. package/{dist/templates → templates}/react-ecs/packages/client/package.json +16 -9
  33. package/templates/react-ecs/packages/client/src/App.tsx +74 -0
  34. package/templates/react-ecs/packages/client/src/Providers.tsx +29 -0
  35. package/templates/react-ecs/packages/client/src/common.ts +27 -0
  36. package/templates/react-ecs/packages/client/src/game/GameMap.tsx +112 -0
  37. package/templates/react-ecs/packages/client/src/mud/Synced.tsx +14 -0
  38. package/templates/react-ecs/packages/client/src/mud/recs.ts +6 -0
  39. package/templates/react-ecs/packages/client/src/mud/useSyncStatus.ts +17 -0
  40. package/{dist/templates/threejs → templates/react-ecs}/packages/contracts/.env +1 -1
  41. package/templates/react-ecs/packages/contracts/mud.config.ts +18 -0
  42. package/templates/react-ecs/packages/contracts/out/IWorld.sol/IWorld.abi.json +2039 -0
  43. package/templates/react-ecs/packages/contracts/src/Entity.sol +20 -0
  44. package/templates/react-ecs/packages/contracts/src/MoveSystem.sol +30 -0
  45. package/templates/react-ecs/packages/contracts/src/SpawnSystem.sol +18 -0
  46. package/templates/react-ecs/packages/contracts/src/codegen/index.sol +8 -0
  47. package/{dist/templates/vanilla/packages/contracts/src/codegen/tables/Counter.sol → templates/react-ecs/packages/contracts/src/codegen/tables/EntityCount.sol} +35 -35
  48. package/templates/react-ecs/packages/contracts/src/codegen/tables/Owner.sol +202 -0
  49. package/templates/react-ecs/packages/contracts/src/codegen/tables/Position.sol +321 -0
  50. package/templates/react-ecs/packages/contracts/src/codegen/world/IMoveSystem.sol +16 -0
  51. package/templates/react-ecs/packages/contracts/src/codegen/world/ISpawnSystem.sol +15 -0
  52. package/templates/react-ecs/packages/contracts/src/codegen/world/IWorld.sol +17 -0
  53. package/templates/react-ecs/packages/contracts/src/createEntity.sol +11 -0
  54. package/templates/react-ecs/packages/contracts/test/MoveTest.t.sol +39 -0
  55. package/{dist/templates/react → templates/react-ecs}/packages/contracts/test/WorldTest.t.sol +0 -5
  56. package/dist/templates/phaser/gitignore +0 -7
  57. package/dist/templates/phaser/packages/art/gitignore +0 -0
  58. package/dist/templates/phaser/packages/client/gitignore +0 -3
  59. package/dist/templates/phaser/packages/contracts/gitignore +0 -9
  60. package/dist/templates/react/gitignore +0 -16
  61. package/dist/templates/react/packages/client/gitignore +0 -1
  62. package/dist/templates/react/packages/contracts/gitignore +0 -13
  63. package/dist/templates/react-ecs/gitignore +0 -7
  64. package/dist/templates/react-ecs/package.json +0 -32
  65. package/dist/templates/react-ecs/packages/client/gitignore +0 -3
  66. package/dist/templates/react-ecs/packages/client/src/App.tsx +0 -29
  67. package/dist/templates/react-ecs/packages/client/src/mud/createSystemCalls.ts +0 -51
  68. package/dist/templates/react-ecs/packages/client/src/mud/getNetworkConfig.ts +0 -77
  69. package/dist/templates/react-ecs/packages/contracts/gitignore +0 -9
  70. package/dist/templates/threejs/gitignore +0 -7
  71. package/dist/templates/threejs/packages/client/gitignore +0 -3
  72. package/dist/templates/threejs/packages/client/src/MUDContext.tsx +0 -21
  73. package/dist/templates/threejs/packages/client/src/index.tsx +0 -34
  74. package/dist/templates/threejs/packages/contracts/gitignore +0 -9
  75. package/dist/templates/vanilla/gitignore +0 -7
  76. package/dist/templates/vanilla/mprocs.yaml +0 -13
  77. package/dist/templates/vanilla/packages/client/gitignore +0 -3
  78. package/dist/templates/vanilla/packages/client/src/mud/createClientComponents.ts +0 -21
  79. package/dist/templates/vanilla/packages/client/src/mud/setup.ts +0 -21
  80. package/dist/templates/vanilla/packages/client/src/mud/setupNetwork.ts +0 -106
  81. package/dist/templates/vanilla/packages/client/src/mud/supportedChains.ts +0 -20
  82. package/dist/templates/vanilla/packages/client/src/mud/world.ts +0 -3
  83. package/dist/templates/vanilla/packages/client/tsconfig.json +0 -11
  84. package/dist/templates/vanilla/packages/contracts/.env +0 -11
  85. package/dist/templates/vanilla/packages/contracts/gitignore +0 -9
  86. package/dist/templates/vanilla/packages/contracts/mud.config.ts +0 -13
  87. package/dist/templates/vanilla/packages/contracts/src/codegen/world/IIncrementSystem.sol +0 -13
  88. package/dist/templates/vanilla/packages/contracts/src/codegen/world/IWorld.sol +0 -16
  89. package/dist/templates/vanilla/packages/contracts/src/systems/IncrementSystem.sol +0 -14
  90. package/dist/templates/vanilla/packages/contracts/test/CounterTest.t.sol +0 -31
  91. package/dist/templates/vanilla/packages/contracts/worlds.json +0 -5
  92. /package/{dist/templates → templates}/phaser/.eslintrc +0 -0
  93. /package/{dist/templates → templates}/phaser/.gitattributes +0 -0
  94. /package/{dist/templates → templates}/phaser/.vscode/extensions.json +0 -0
  95. /package/{dist/templates → templates}/phaser/.vscode/settings.json +0 -0
  96. /package/{dist/templates → templates}/phaser/mprocs.yaml +0 -0
  97. /package/{dist/templates → templates}/phaser/package.json +0 -0
  98. /package/{dist/templates → templates}/phaser/packages/art/README.md +0 -0
  99. /package/{dist/templates → templates}/phaser/packages/art/config-sprites.json +0 -0
  100. /package/{dist/templates → templates}/phaser/packages/art/package.json +0 -0
  101. /package/{dist/templates → templates}/phaser/packages/art/scripts/cli.mjs +0 -0
  102. /package/{dist/templates → templates}/phaser/packages/art/scripts/export-tiled-types.ts +0 -0
  103. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/attack/0.png +0 -0
  104. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/attack/1.png +0 -0
  105. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/attack/2.png +0 -0
  106. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/attack/3.png +0 -0
  107. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/attack/4.png +0 -0
  108. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/attack/5.png +0 -0
  109. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/death/0.png +0 -0
  110. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/death/1.png +0 -0
  111. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/death/2.png +0 -0
  112. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/idle/0.png +0 -0
  113. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/idle/1.png +0 -0
  114. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/idle/2.png +0 -0
  115. /package/{dist/templates → templates}/phaser/packages/art/sprites/golem/idle/3.png +0 -0
  116. /package/{dist/templates → templates}/phaser/packages/art/tilesets/images/world.png +0 -0
  117. /package/{dist/templates → templates}/phaser/packages/art/tilesets/world.tsx +0 -0
  118. /package/{dist/templates → templates}/phaser/packages/client/.env +0 -0
  119. /package/{dist/templates → templates}/phaser/packages/client/.eslintrc +0 -0
  120. /package/{dist/templates → templates}/phaser/packages/client/index.html +0 -0
  121. /package/{dist/templates → templates}/phaser/packages/client/package.json +0 -0
  122. /package/{dist/templates → templates}/phaser/packages/client/public/assets/atlases/atlas.json +0 -0
  123. /package/{dist/templates → templates}/phaser/packages/client/public/assets/atlases/atlas.png +0 -0
  124. /package/{dist/templates → templates}/phaser/packages/client/public/assets/tilesets/world.png +0 -0
  125. /package/{dist/templates → templates}/phaser/packages/client/src/artTypes/world.ts +0 -0
  126. /package/{dist/templates → templates}/phaser/packages/client/src/index.tsx +0 -0
  127. /package/{dist/templates → templates}/phaser/packages/client/src/layers/network/createNetworkLayer.ts +0 -0
  128. /package/{dist/templates → templates}/phaser/packages/client/src/layers/phaser/configurePhaser.ts +0 -0
  129. /package/{dist/templates → templates}/phaser/packages/client/src/layers/phaser/constants.ts +0 -0
  130. /package/{dist/templates → templates}/phaser/packages/client/src/layers/phaser/createPhaserLayer.ts +0 -0
  131. /package/{dist/templates → templates}/phaser/packages/client/src/layers/phaser/systems/createCamera.ts +0 -0
  132. /package/{dist/templates → templates}/phaser/packages/client/src/layers/phaser/systems/createMapSystem.ts +0 -0
  133. /package/{dist/templates → templates}/phaser/packages/client/src/layers/phaser/systems/index.ts +0 -0
  134. /package/{dist/templates → templates}/phaser/packages/client/src/layers/phaser/systems/registerSystems.ts +0 -0
  135. /package/{dist/templates → templates}/phaser/packages/client/src/mud/createClientComponents.ts +0 -0
  136. /package/{dist/templates → templates}/phaser/packages/client/src/mud/createSystemCalls.ts +0 -0
  137. /package/{dist/templates → templates}/phaser/packages/client/src/mud/getNetworkConfig.ts +0 -0
  138. /package/{dist/templates → templates}/phaser/packages/client/src/mud/setup.ts +0 -0
  139. /package/{dist/templates → templates}/phaser/packages/client/src/mud/setupNetwork.ts +0 -0
  140. /package/{dist/templates → templates}/phaser/packages/client/src/mud/supportedChains.ts +0 -0
  141. /package/{dist/templates → templates}/phaser/packages/client/src/mud/world.ts +0 -0
  142. /package/{dist/templates → templates}/phaser/packages/client/src/store.ts +0 -0
  143. /package/{dist/templates → templates}/phaser/packages/client/src/ui/App.tsx +0 -0
  144. /package/{dist/templates → templates}/phaser/packages/client/src/ui/LoadingScreen/BootScreen.tsx +0 -0
  145. /package/{dist/templates → templates}/phaser/packages/client/src/ui/LoadingScreen/LoadingBar.tsx +0 -0
  146. /package/{dist/templates → templates}/phaser/packages/client/src/ui/LoadingScreen/LoadingScreen.tsx +0 -0
  147. /package/{dist/templates → templates}/phaser/packages/client/src/ui/LoadingScreen/index.ts +0 -0
  148. /package/{dist/templates → templates}/phaser/packages/client/src/ui/PhaserLayer.tsx +0 -0
  149. /package/{dist/templates → templates}/phaser/packages/client/src/ui/UIRoot.tsx +0 -0
  150. /package/{dist/templates → templates}/phaser/packages/client/src/ui/Wrapper.tsx +0 -0
  151. /package/{dist/templates → templates}/phaser/packages/client/src/ui/hooks/useNetworkLayer.tsx +0 -0
  152. /package/{dist/templates → templates}/phaser/packages/client/src/ui/hooks/usePhaserLayer.tsx +0 -0
  153. /package/{dist/templates → templates}/phaser/packages/client/src/ui/hooks/usePromiseValue.ts +0 -0
  154. /package/{dist/templates → templates}/phaser/packages/client/src/ui/theme/ClickWrapper.tsx +0 -0
  155. /package/{dist/templates → templates}/phaser/packages/client/src/ui/theme/SpriteImage.tsx +0 -0
  156. /package/{dist/templates → templates}/phaser/packages/client/tsconfig.json +0 -0
  157. /package/{dist/templates → templates}/phaser/packages/client/vite.config.ts +0 -0
  158. /package/{dist/templates → templates}/phaser/packages/contracts/.env +0 -0
  159. /package/{dist/templates → templates}/phaser/packages/contracts/.prettierrc +0 -0
  160. /package/{dist/templates → templates}/phaser/packages/contracts/.solhint.json +0 -0
  161. /package/{dist/templates → templates}/phaser/packages/contracts/foundry.toml +0 -0
  162. /package/{dist/templates → templates}/phaser/packages/contracts/mud.config.ts +0 -0
  163. /package/{dist/templates → templates}/phaser/packages/contracts/package.json +0 -0
  164. /package/{dist/templates → templates}/phaser/packages/contracts/remappings.txt +0 -0
  165. /package/{dist/templates → templates}/phaser/packages/contracts/script/PostDeploy.s.sol +0 -0
  166. /package/{dist/templates → templates}/phaser/packages/contracts/src/codegen/index.sol +0 -0
  167. /package/{dist/templates → templates}/phaser/packages/contracts/src/codegen/tables/Counter.sol +0 -0
  168. /package/{dist/templates → templates}/phaser/packages/contracts/src/codegen/world/IIncrementSystem.sol +0 -0
  169. /package/{dist/templates → templates}/phaser/packages/contracts/src/codegen/world/IWorld.sol +0 -0
  170. /package/{dist/templates → templates}/phaser/packages/contracts/src/systems/IncrementSystem.sol +0 -0
  171. /package/{dist/templates → templates}/phaser/packages/contracts/test/CounterTest.t.sol +0 -0
  172. /package/{dist/templates → templates}/phaser/packages/contracts/tsconfig.json +0 -0
  173. /package/{dist/templates → templates}/phaser/packages/contracts/worlds.json +0 -0
  174. /package/{dist/templates → templates}/phaser/packages/contracts/worlds.json.d.ts +0 -0
  175. /package/{dist/templates → templates}/phaser/pnpm-workspace.yaml +0 -0
  176. /package/{dist/templates → templates}/phaser/tsconfig.json +0 -0
  177. /package/{dist/templates → templates}/react/.eslintrc +0 -0
  178. /package/{dist/templates → templates}/react/.gitattributes +0 -0
  179. /package/{dist/templates → templates}/react/.vscode/extensions.json +0 -0
  180. /package/{dist/templates → templates}/react/.vscode/settings.json +0 -0
  181. /package/{dist/templates → templates}/react/packages/client/.env +0 -0
  182. /package/{dist/templates → templates}/react/packages/client/.eslintrc +0 -0
  183. /package/{dist/templates → templates}/react/packages/client/package.json +0 -0
  184. /package/{dist/templates → templates}/react/packages/client/src/App.tsx +0 -0
  185. /package/{dist/templates → templates}/react/packages/client/src/Providers.tsx +0 -0
  186. /package/{dist/templates → templates}/react/packages/client/src/common.ts +0 -0
  187. /package/{dist/templates → templates}/react/packages/client/src/game/GameMap.tsx +0 -0
  188. /package/{dist/templates → templates}/react/packages/client/src/mud/stash.ts +0 -0
  189. /package/{dist/templates → templates}/react/packages/client/src/mud/useSyncStatus.ts +0 -0
  190. /package/{dist/templates → templates}/react/packages/contracts/.prettierrc +0 -0
  191. /package/{dist/templates → templates}/react/packages/contracts/.solhint.json +0 -0
  192. /package/{dist/templates → templates}/react/packages/contracts/foundry.toml +0 -0
  193. /package/{dist/templates → templates}/react/packages/contracts/out/IWorld.sol/IWorld.abi.json +0 -0
  194. /package/{dist/templates → templates}/react/packages/contracts/remappings.txt +0 -0
  195. /package/{dist/templates → templates}/react/packages/contracts/src/MoveSystem.sol +0 -0
  196. /package/{dist/templates → templates}/react/packages/contracts/src/codegen/index.sol +0 -0
  197. /package/{dist/templates → templates}/react/packages/contracts/src/codegen/tables/Position.sol +0 -0
  198. /package/{dist/templates → templates}/react/packages/contracts/src/codegen/world/IMoveSystem.sol +0 -0
  199. /package/{dist/templates → templates}/react/packages/contracts/src/codegen/world/IWorld.sol +0 -0
  200. /package/{dist/templates → templates}/react/packages/contracts/tsconfig.json +0 -0
  201. /package/{dist/templates → templates}/react/packages/contracts/worlds.json.d.ts +0 -0
  202. /package/{dist/templates → templates}/react/pnpm-workspace.yaml +0 -0
  203. /package/{dist/templates → templates}/react/tsconfig.json +0 -0
  204. /package/{dist/templates → templates}/react-ecs/.eslintrc +0 -0
  205. /package/{dist/templates → templates}/react-ecs/.gitattributes +0 -0
  206. /package/{dist/templates → templates}/react-ecs/.vscode/extensions.json +0 -0
  207. /package/{dist/templates → templates}/react-ecs/.vscode/settings.json +0 -0
  208. /package/{dist/templates/react → templates/react-ecs}/mprocs.yaml +0 -0
  209. /package/{dist/templates/react → templates/react-ecs}/package.json +0 -0
  210. /package/{dist/templates → templates}/react-ecs/packages/client/.env +0 -0
  211. /package/{dist/templates → templates}/react-ecs/packages/client/.eslintrc +0 -0
  212. /package/{dist/templates/react → templates/react-ecs}/packages/client/index.html +0 -0
  213. /package/{dist/templates/react → templates/react-ecs}/packages/client/postcss.config.cjs +0 -0
  214. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/game/useKeyboardMovement.ts +0 -0
  215. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/index.tsx +0 -0
  216. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/mud/Explorer.tsx +0 -0
  217. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/mud/useWorldContract.ts +0 -0
  218. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/ui/AsyncButton.tsx +0 -0
  219. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/ui/ErrorFallback.tsx +0 -0
  220. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/ui/icons/ArrowDownIcon.tsx +0 -0
  221. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/ui/icons/MUDIcon.tsx +0 -0
  222. /package/{dist/templates/react → templates/react-ecs}/packages/client/src/wagmiConfig.ts +0 -0
  223. /package/{dist/templates/react → templates/react-ecs}/packages/client/tailwind.config.ts +0 -0
  224. /package/{dist/templates/react → templates/react-ecs}/packages/client/tsconfig.json +0 -0
  225. /package/{dist/templates/react → templates/react-ecs}/packages/client/vite.config.ts +0 -0
  226. /package/{dist/templates → templates}/react-ecs/packages/contracts/.prettierrc +0 -0
  227. /package/{dist/templates → templates}/react-ecs/packages/contracts/.solhint.json +0 -0
  228. /package/{dist/templates → templates}/react-ecs/packages/contracts/foundry.toml +0 -0
  229. /package/{dist/templates/react → templates/react-ecs}/packages/contracts/package.json +0 -0
  230. /package/{dist/templates → templates}/react-ecs/packages/contracts/remappings.txt +0 -0
  231. /package/{dist/templates/react → templates/react-ecs}/packages/contracts/script/PostDeploy.s.sol +0 -0
  232. /package/{dist/templates/react → templates/react-ecs}/packages/contracts/src/codegen/common.sol +0 -0
  233. /package/{dist/templates → templates}/react-ecs/packages/contracts/tsconfig.json +0 -0
  234. /package/{dist/templates/react → templates/react-ecs}/packages/contracts/worlds.json +0 -0
  235. /package/{dist/templates → templates}/react-ecs/packages/contracts/worlds.json.d.ts +0 -0
  236. /package/{dist/templates → templates}/react-ecs/pnpm-workspace.yaml +0 -0
  237. /package/{dist/templates → templates}/react-ecs/tsconfig.json +0 -0
  238. /package/{dist/templates → templates}/threejs/.eslintrc +0 -0
  239. /package/{dist/templates → templates}/threejs/.gitattributes +0 -0
  240. /package/{dist/templates → templates}/threejs/.vscode/extensions.json +0 -0
  241. /package/{dist/templates → templates}/threejs/.vscode/settings.json +0 -0
  242. /package/{dist/templates/react-ecs → templates/threejs}/mprocs.yaml +0 -0
  243. /package/{dist/templates → templates}/threejs/package.json +0 -0
  244. /package/{dist/templates → templates}/threejs/packages/client/.env +0 -0
  245. /package/{dist/templates → templates}/threejs/packages/client/.eslintrc +0 -0
  246. /package/{dist/templates/react-ecs → templates/threejs}/packages/client/index.html +0 -0
  247. /package/{dist/templates → templates}/threejs/packages/client/package.json +0 -0
  248. /package/{dist/templates → templates}/threejs/packages/client/src/App.tsx +0 -0
  249. /package/{dist/templates/react-ecs → templates/threejs}/packages/client/src/MUDContext.tsx +0 -0
  250. /package/{dist/templates/react-ecs → templates/threejs}/packages/client/src/index.tsx +0 -0
  251. /package/{dist/templates/react-ecs → templates/threejs}/packages/client/src/mud/createClientComponents.ts +0 -0
  252. /package/{dist/templates → templates}/threejs/packages/client/src/mud/createSystemCalls.ts +0 -0
  253. /package/{dist/templates → templates}/threejs/packages/client/src/mud/getNetworkConfig.ts +0 -0
  254. /package/{dist/templates → templates}/threejs/packages/client/src/mud/setup.ts +0 -0
  255. /package/{dist/templates → templates}/threejs/packages/client/src/mud/setupNetwork.ts +0 -0
  256. /package/{dist/templates/react-ecs → templates/threejs}/packages/client/src/mud/supportedChains.ts +0 -0
  257. /package/{dist/templates/react-ecs → templates/threejs}/packages/client/src/mud/world.ts +0 -0
  258. /package/{dist/templates → templates}/threejs/packages/client/src/useKeyboardMovement.ts +0 -0
  259. /package/{dist/templates/react-ecs → templates/threejs}/packages/client/tsconfig.json +0 -0
  260. /package/{dist/templates/react-ecs → templates/threejs}/packages/client/vite.config.ts +0 -0
  261. /package/{dist/templates/react-ecs → templates/threejs}/packages/contracts/.env +0 -0
  262. /package/{dist/templates → templates}/threejs/packages/contracts/.prettierrc +0 -0
  263. /package/{dist/templates → templates}/threejs/packages/contracts/.solhint.json +0 -0
  264. /package/{dist/templates → templates}/threejs/packages/contracts/foundry.toml +0 -0
  265. /package/{dist/templates → templates}/threejs/packages/contracts/mud.config.ts +0 -0
  266. /package/{dist/templates → templates}/threejs/packages/contracts/package.json +0 -0
  267. /package/{dist/templates → templates}/threejs/packages/contracts/remappings.txt +0 -0
  268. /package/{dist/templates → templates}/threejs/packages/contracts/src/codegen/index.sol +0 -0
  269. /package/{dist/templates → templates}/threejs/packages/contracts/src/codegen/tables/Position.sol +0 -0
  270. /package/{dist/templates → templates}/threejs/packages/contracts/src/codegen/world/IMoveSystem.sol +0 -0
  271. /package/{dist/templates → templates}/threejs/packages/contracts/src/codegen/world/IWorld.sol +0 -0
  272. /package/{dist/templates → templates}/threejs/packages/contracts/src/systems/MoveSystem.sol +0 -0
  273. /package/{dist/templates → templates}/threejs/packages/contracts/test/WorldTest.t.sol +0 -0
  274. /package/{dist/templates → templates}/threejs/packages/contracts/tsconfig.json +0 -0
  275. /package/{dist/templates/react-ecs → templates/threejs}/packages/contracts/worlds.json +0 -0
  276. /package/{dist/templates → templates}/threejs/packages/contracts/worlds.json.d.ts +0 -0
  277. /package/{dist/templates → templates}/threejs/pnpm-workspace.yaml +0 -0
  278. /package/{dist/templates → templates}/threejs/tsconfig.json +0 -0
  279. /package/{dist/templates → templates}/vanilla/.eslintrc +0 -0
  280. /package/{dist/templates → templates}/vanilla/.gitattributes +0 -0
  281. /package/{dist/templates → templates}/vanilla/.vscode/extensions.json +0 -0
  282. /package/{dist/templates → templates}/vanilla/.vscode/settings.json +0 -0
  283. /package/{dist/templates/threejs → templates/vanilla}/mprocs.yaml +0 -0
  284. /package/{dist/templates → templates}/vanilla/package.json +0 -0
  285. /package/{dist/templates → templates}/vanilla/packages/client/.env +0 -0
  286. /package/{dist/templates → templates}/vanilla/packages/client/index.html +0 -0
  287. /package/{dist/templates → templates}/vanilla/packages/client/package.json +0 -0
  288. /package/{dist/templates → templates}/vanilla/packages/client/src/index.ts +0 -0
  289. /package/{dist/templates/threejs → templates/vanilla}/packages/client/src/mud/createClientComponents.ts +0 -0
  290. /package/{dist/templates → templates}/vanilla/packages/client/src/mud/createSystemCalls.ts +0 -0
  291. /package/{dist/templates → templates}/vanilla/packages/client/src/mud/getNetworkConfig.ts +0 -0
  292. /package/{dist/templates/react-ecs → templates/vanilla}/packages/client/src/mud/setup.ts +0 -0
  293. /package/{dist/templates/react-ecs → templates/vanilla}/packages/client/src/mud/setupNetwork.ts +0 -0
  294. /package/{dist/templates/threejs → templates/vanilla}/packages/client/src/mud/supportedChains.ts +0 -0
  295. /package/{dist/templates/threejs → templates/vanilla}/packages/client/src/mud/world.ts +0 -0
  296. /package/{dist/templates/threejs → templates/vanilla}/packages/client/tsconfig.json +0 -0
  297. /package/{dist/templates → templates}/vanilla/packages/client/vite.config.ts +0 -0
  298. /package/{dist/templates/react → templates/vanilla}/packages/contracts/.env +0 -0
  299. /package/{dist/templates → templates}/vanilla/packages/contracts/.prettierrc +0 -0
  300. /package/{dist/templates → templates}/vanilla/packages/contracts/.solhint.json +0 -0
  301. /package/{dist/templates → templates}/vanilla/packages/contracts/foundry.toml +0 -0
  302. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/mud.config.ts +0 -0
  303. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/package.json +0 -0
  304. /package/{dist/templates → templates}/vanilla/packages/contracts/remappings.txt +0 -0
  305. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/script/PostDeploy.s.sol +0 -0
  306. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/src/codegen/index.sol +0 -0
  307. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/src/codegen/tables/Counter.sol +0 -0
  308. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/src/codegen/world/IIncrementSystem.sol +0 -0
  309. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/src/codegen/world/IWorld.sol +0 -0
  310. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/src/systems/IncrementSystem.sol +0 -0
  311. /package/{dist/templates/react-ecs → templates/vanilla}/packages/contracts/test/CounterTest.t.sol +0 -0
  312. /package/{dist/templates → templates}/vanilla/packages/contracts/tsconfig.json +0 -0
  313. /package/{dist/templates/threejs → templates/vanilla}/packages/contracts/worlds.json +0 -0
  314. /package/{dist/templates → templates}/vanilla/packages/contracts/worlds.json.d.ts +0 -0
  315. /package/{dist/templates → templates}/vanilla/pnpm-workspace.yaml +0 -0
  316. /package/{dist/templates → templates}/vanilla/tsconfig.json +0 -0
@@ -1,77 +0,0 @@
1
- /*
2
- * Network specific configuration for the client.
3
- * By default connect to the anvil test network.
4
- *
5
- */
6
-
7
- /*
8
- * By default the template just creates a temporary wallet
9
- * (called a burner wallet).
10
- */
11
- import { getBurnerPrivateKey } from "@latticexyz/common";
12
-
13
- /*
14
- * Import the addresses of the World, possibly on multiple chains,
15
- * from packages/contracts/worlds.json. When the contracts package
16
- * deploys a new `World`, it updates this file.
17
- */
18
- import worlds from "contracts/worlds.json";
19
-
20
- /*
21
- * The supported chains.
22
- * By default, there are only two chains here:
23
- */
24
- import { supportedChains } from "./supportedChains";
25
-
26
- export async function getNetworkConfig() {
27
- const params = new URLSearchParams(window.location.search);
28
-
29
- /*
30
- * The chain ID is the first item available from this list:
31
- * 1. chainId query parameter
32
- * 2. chainid query parameter
33
- * 3. The VITE_CHAIN_ID environment variable set when the
34
- * vite dev server was started or client was built
35
- * 4. The default, 31337 (anvil)
36
- */
37
- const chainId = Number(params.get("chainId") || params.get("chainid") || import.meta.env.VITE_CHAIN_ID || 31337);
38
-
39
- /*
40
- * Find the chain (unless it isn't in the list of supported chains).
41
- */
42
- const chainIndex = supportedChains.findIndex((c) => c.id === chainId);
43
- const chain = supportedChains[chainIndex];
44
- if (!chain) {
45
- throw new Error(`Chain ${chainId} not found`);
46
- }
47
-
48
- /*
49
- * Get the address of the World. If you want to use a
50
- * different address than the one in worlds.json,
51
- * provide it as worldAddress in the query string.
52
- */
53
- const world = worlds[chain.id.toString()];
54
- const worldAddress = params.get("worldAddress") || world?.address;
55
- if (!worldAddress) {
56
- throw new Error(`No world address found for chain ${chainId}. Did you run \`mud deploy\`?`);
57
- }
58
-
59
- /*
60
- * MUD clients use events to synchronize the database, meaning
61
- * they need to look as far back as when the World was started.
62
- * The block number for the World start can be specified either
63
- * on the URL (as initialBlockNumber) or in the worlds.json
64
- * file. If neither has it, it starts at the first block, zero.
65
- */
66
- const initialBlockNumber = params.has("initialBlockNumber")
67
- ? Number(params.get("initialBlockNumber"))
68
- : world?.blockNumber ?? 0n;
69
-
70
- return {
71
- privateKey: getBurnerPrivateKey(),
72
- chainId,
73
- chain,
74
- worldAddress,
75
- initialBlockNumber,
76
- };
77
- }
@@ -1,9 +0,0 @@
1
- out/
2
- cache/
3
- node_modules/
4
- bindings/
5
- artifacts/
6
- broadcast/
7
-
8
- # Ignore MUD deploy artifacts
9
- deploys/**/*.json
@@ -1,7 +0,0 @@
1
- node_modules
2
-
3
- # mud artifacts
4
- .mud
5
- # sqlite indexer data
6
- *.db
7
- *.db-journal
@@ -1,3 +0,0 @@
1
- node_modules
2
- dist
3
- .DS_Store
@@ -1,21 +0,0 @@
1
- import { createContext, ReactNode, useContext } from "react";
2
- import { SetupResult } from "./mud/setup";
3
-
4
- const MUDContext = createContext<SetupResult | null>(null);
5
-
6
- type Props = {
7
- children: ReactNode;
8
- value: SetupResult;
9
- };
10
-
11
- export const MUDProvider = ({ children, value }: Props) => {
12
- const currentValue = useContext(MUDContext);
13
- if (currentValue) throw new Error("MUDProvider can only be used once");
14
- return <MUDContext.Provider value={value}>{children}</MUDContext.Provider>;
15
- };
16
-
17
- export const useMUD = () => {
18
- const value = useContext(MUDContext);
19
- if (!value) throw new Error("Must be used within a MUDProvider");
20
- return value;
21
- };
@@ -1,34 +0,0 @@
1
- import ReactDOM from "react-dom/client";
2
- import { App } from "./App";
3
- import { setup } from "./mud/setup";
4
- import { MUDProvider } from "./MUDContext";
5
- import mudConfig from "contracts/mud.config";
6
-
7
- const rootElement = document.getElementById("react-root");
8
- if (!rootElement) throw new Error("React root not found");
9
- const root = ReactDOM.createRoot(rootElement);
10
-
11
- // TODO: figure out if we actually want this to be async or if we should render something else in the meantime
12
- setup().then(async (result) => {
13
- root.render(
14
- <MUDProvider value={result}>
15
- <App />
16
- </MUDProvider>,
17
- );
18
-
19
- // https://vitejs.dev/guide/env-and-mode.html
20
- if (import.meta.env.DEV) {
21
- const { mount: mountDevTools } = await import("@latticexyz/dev-tools");
22
- mountDevTools({
23
- config: mudConfig,
24
- publicClient: result.network.publicClient,
25
- walletClient: result.network.walletClient,
26
- latestBlock$: result.network.latestBlock$,
27
- storedBlockLogs$: result.network.storedBlockLogs$,
28
- worldAddress: result.network.worldContract.address,
29
- worldAbi: result.network.worldContract.abi,
30
- write$: result.network.write$,
31
- recsWorld: result.network.world,
32
- });
33
- }
34
- });
@@ -1,9 +0,0 @@
1
- out/
2
- cache/
3
- node_modules/
4
- bindings/
5
- artifacts/
6
- broadcast/
7
-
8
- # Ignore MUD deploy artifacts
9
- deploys/**/*.json
@@ -1,7 +0,0 @@
1
- node_modules
2
-
3
- # mud artifacts
4
- .mud
5
- # sqlite indexer data
6
- *.db
7
- *.db-journal
@@ -1,13 +0,0 @@
1
- procs:
2
- client:
3
- cwd: packages/client
4
- shell: pnpm run dev
5
- contracts:
6
- cwd: packages/contracts
7
- shell: pnpm mud dev-contracts --rpc http://127.0.0.1:8545
8
- anvil:
9
- cwd: packages/contracts
10
- shell: anvil --base-fee 0 --block-time 2
11
- explorer:
12
- cwd: packages/contracts
13
- shell: pnpm explorer
@@ -1,3 +0,0 @@
1
- node_modules
2
- dist
3
- .DS_Store
@@ -1,21 +0,0 @@
1
- /*
2
- * Creates components for use by the client.
3
- *
4
- * By default it returns the components from setupNetwork.ts, those which are
5
- * automatically inferred from the mud.config.ts table definitions.
6
- *
7
- * However, you can add or override components here as needed. This
8
- * lets you add user defined components, which may or may not have
9
- * an onchain component.
10
- */
11
-
12
- import { SetupNetworkResult } from "./setupNetwork";
13
-
14
- export type ClientComponents = ReturnType<typeof createClientComponents>;
15
-
16
- export function createClientComponents({ components }: SetupNetworkResult) {
17
- return {
18
- ...components,
19
- // add your client components or overrides here
20
- };
21
- }
@@ -1,21 +0,0 @@
1
- /*
2
- * This file sets up all the definitions required for a MUD client.
3
- */
4
-
5
- import { createClientComponents } from "./createClientComponents";
6
- import { createSystemCalls } from "./createSystemCalls";
7
- import { setupNetwork } from "./setupNetwork";
8
-
9
- export type SetupResult = Awaited<ReturnType<typeof setup>>;
10
-
11
- export async function setup() {
12
- const network = await setupNetwork();
13
- const components = createClientComponents(network);
14
- const systemCalls = createSystemCalls(network, components);
15
-
16
- return {
17
- network,
18
- components,
19
- systemCalls,
20
- };
21
- }
@@ -1,106 +0,0 @@
1
- /*
2
- * The MUD client code is built on top of viem
3
- * (https://viem.sh/docs/getting-started.html).
4
- * This line imports the functions we need from it.
5
- */
6
- import {
7
- createPublicClient,
8
- fallback,
9
- webSocket,
10
- http,
11
- createWalletClient,
12
- Hex,
13
- ClientConfig,
14
- getContract,
15
- } from "viem";
16
- import { encodeEntity, syncToRecs } from "@latticexyz/store-sync/recs";
17
-
18
- import { getNetworkConfig } from "./getNetworkConfig";
19
- import { world } from "./world";
20
- import IWorldAbi from "contracts/out/IWorld.sol/IWorld.abi.json";
21
- import { createBurnerAccount, transportObserver, ContractWrite } from "@latticexyz/common";
22
- import { transactionQueue, writeObserver } from "@latticexyz/common/actions";
23
-
24
- import { Subject, share } from "rxjs";
25
-
26
- /*
27
- * Import our MUD config, which includes strong types for
28
- * our tables and other config options. We use this to generate
29
- * things like RECS components and get back strong types for them.
30
- *
31
- * See https://mud.dev/templates/typescript/contracts#mudconfigts
32
- * for the source of this information.
33
- */
34
- import mudConfig from "contracts/mud.config";
35
-
36
- export type SetupNetworkResult = Awaited<ReturnType<typeof setupNetwork>>;
37
-
38
- export async function setupNetwork() {
39
- const networkConfig = await getNetworkConfig();
40
-
41
- /*
42
- * Create a viem public (read only) client
43
- * (https://viem.sh/docs/clients/public.html)
44
- */
45
- const clientOptions = {
46
- chain: networkConfig.chain,
47
- transport: transportObserver(fallback([webSocket(), http()])),
48
- pollingInterval: 1000,
49
- } as const satisfies ClientConfig;
50
-
51
- const publicClient = createPublicClient(clientOptions);
52
-
53
- /*
54
- * Create an observable for contract writes that we can
55
- * pass into MUD dev tools for transaction observability.
56
- */
57
- const write$ = new Subject<ContractWrite>();
58
-
59
- /*
60
- * Create a temporary wallet and a viem client for it
61
- * (see https://viem.sh/docs/clients/wallet.html).
62
- */
63
- const burnerAccount = createBurnerAccount(networkConfig.privateKey as Hex);
64
- const burnerWalletClient = createWalletClient({
65
- ...clientOptions,
66
- account: burnerAccount,
67
- })
68
- .extend(transactionQueue())
69
- .extend(writeObserver({ onWrite: (write) => write$.next(write) }));
70
-
71
- /*
72
- * Create an object for communicating with the deployed World.
73
- */
74
- const worldContract = getContract({
75
- address: networkConfig.worldAddress as Hex,
76
- abi: IWorldAbi,
77
- client: { public: publicClient, wallet: burnerWalletClient },
78
- });
79
-
80
- /*
81
- * Sync on-chain state into RECS and keeps our client in sync.
82
- * Uses the MUD indexer if available, otherwise falls back
83
- * to the viem publicClient to make RPC calls to fetch MUD
84
- * events from the chain.
85
- */
86
- const { components, latestBlock$, storedBlockLogs$, waitForTransaction } = await syncToRecs({
87
- world,
88
- config: mudConfig,
89
- address: networkConfig.worldAddress as Hex,
90
- publicClient,
91
- startBlock: BigInt(networkConfig.initialBlockNumber),
92
- });
93
-
94
- return {
95
- world,
96
- components,
97
- playerEntity: encodeEntity({ address: "address" }, { address: burnerWalletClient.account.address }),
98
- publicClient,
99
- walletClient: burnerWalletClient,
100
- latestBlock$,
101
- storedBlockLogs$,
102
- waitForTransaction,
103
- worldContract,
104
- write$: write$.asObservable().pipe(share()),
105
- };
106
- }
@@ -1,20 +0,0 @@
1
- /*
2
- * The supported chains.
3
- * By default, there are only two chains here:
4
- *
5
- * - mudFoundry, the chain running on anvil that pnpm dev
6
- * starts by default. It is similar to the viem anvil chain
7
- * (see https://viem.sh/docs/clients/test.html), but with the
8
- * basefee set to zero to avoid transaction fees.
9
- * - Redstone, our production blockchain (https://redstone.xyz/)
10
- * - Garnet, our test blockchain (https://garnetchain.com/))
11
- *
12
- */
13
-
14
- import { MUDChain, mudFoundry, redstone, garnet } from "@latticexyz/common/chains";
15
-
16
- /*
17
- * See https://mud.dev/guides/hello-world/add-chain-client
18
- * for instructions on how to add networks.
19
- */
20
- export const supportedChains: MUDChain[] = [mudFoundry, redstone, garnet];
@@ -1,3 +0,0 @@
1
- import { createWorld } from "@latticexyz/recs";
2
-
3
- export const world = createWorld();
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "types": ["vite/client"],
5
- "target": "ESNext",
6
- "lib": ["ESNext", "DOM"],
7
- "jsx": "react-jsx",
8
- "jsxImportSource": "react"
9
- },
10
- "include": ["src"]
11
- }
@@ -1,11 +0,0 @@
1
- # This .env file is for demonstration purposes only.
2
- #
3
- # This should usually be excluded via .gitignore and the env vars attached to
4
- # your deployment environment, but we're including this here for ease of local
5
- # development. Please do not commit changes to this file!
6
- #
7
- # Enable debug logs for MUD CLI
8
- DEBUG=mud:*
9
- #
10
- # Anvil default private key:
11
- PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
@@ -1,9 +0,0 @@
1
- out/
2
- cache/
3
- node_modules/
4
- bindings/
5
- artifacts/
6
- broadcast/
7
-
8
- # Ignore MUD deploy artifacts
9
- deploys/**/*.json
@@ -1,13 +0,0 @@
1
- import { defineWorld } from "@latticexyz/world";
2
-
3
- export default defineWorld({
4
- namespace: "app",
5
- tables: {
6
- Counter: {
7
- schema: {
8
- value: "uint32",
9
- },
10
- key: [],
11
- },
12
- },
13
- });
@@ -1,13 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
3
-
4
- /* Autogenerated file. Do not edit manually. */
5
-
6
- /**
7
- * @title IIncrementSystem
8
- * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
9
- * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually.
10
- */
11
- interface IIncrementSystem {
12
- function app__increment() external returns (uint32);
13
- }
@@ -1,16 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
3
-
4
- /* Autogenerated file. Do not edit manually. */
5
-
6
- import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
7
- import { IIncrementSystem } from "./IIncrementSystem.sol";
8
-
9
- /**
10
- * @title IWorld
11
- * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
12
- * @notice This interface integrates all systems and associated function selectors
13
- * that are dynamically registered in the World during deployment.
14
- * @dev This is an autogenerated file; do not edit manually.
15
- */
16
- interface IWorld is IBaseWorld, IIncrementSystem {}
@@ -1,14 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
3
-
4
- import { System } from "@latticexyz/world/src/System.sol";
5
- import { Counter } from "../codegen/index.sol";
6
-
7
- contract IncrementSystem is System {
8
- function increment() public returns (uint32) {
9
- uint32 counter = Counter.get();
10
- uint32 newValue = counter + 1;
11
- Counter.set(newValue);
12
- return newValue;
13
- }
14
- }
@@ -1,31 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
3
-
4
- import "forge-std/Test.sol";
5
- import { MudTest } from "@latticexyz/world/test/MudTest.t.sol";
6
- import { getKeysWithValue } from "@latticexyz/world-modules/src/modules/keyswithvalue/getKeysWithValue.sol";
7
-
8
- import { IWorld } from "../src/codegen/world/IWorld.sol";
9
- import { Counter } from "../src/codegen/index.sol";
10
-
11
- contract CounterTest is MudTest {
12
- function testWorldExists() public {
13
- uint256 codeSize;
14
- address addr = worldAddress;
15
- assembly {
16
- codeSize := extcodesize(addr)
17
- }
18
- assertTrue(codeSize > 0);
19
- }
20
-
21
- function testCounter() public {
22
- // Expect the counter to be 1 because it was incremented in the PostDeploy script.
23
- uint32 counter = Counter.get();
24
- assertEq(counter, 1);
25
-
26
- // Expect the counter to be 2 after calling increment.
27
- IWorld(worldAddress).app__increment();
28
- counter = Counter.get();
29
- assertEq(counter, 2);
30
- }
31
- }
@@ -1,5 +0,0 @@
1
- {
2
- "31337": {
3
- "address": "0x8d8b6b8414e1e3dcfd4168561b9be6bd3bf6ec4b"
4
- }
5
- }
File without changes