hytopia 0.1.14 → 0.1.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. package/README.md +5 -10
  2. package/bin/scripts.js +12 -23
  3. package/boilerplate/assets/certs/README.md +11 -6
  4. package/boilerplate/assets/certs/localhost.crt +20 -0
  5. package/boilerplate/assets/certs/localhost.key +27 -0
  6. package/docs/server.hytopia.md +1 -1
  7. package/docs/server.hytopia.port.md +2 -2
  8. package/docs/server.hytopia.supported_input_keys.md +1 -1
  9. package/docs/server.md +1 -1
  10. package/docs/server.port.md +2 -2
  11. package/docs/server.supported_input_keys.md +1 -1
  12. package/examples/character-controller/MyCharacterController.ts +230 -0
  13. package/examples/character-controller/README.md +15 -0
  14. package/examples/character-controller/assets/audio/sfx/damage.wav +0 -0
  15. package/examples/character-controller/assets/audio/sfx/step.wav +0 -0
  16. package/examples/character-controller/assets/certs/README.md +11 -0
  17. package/examples/character-controller/assets/certs/localhost.crt +20 -0
  18. package/examples/character-controller/assets/certs/localhost.key +27 -0
  19. package/examples/character-controller/assets/cubemaps/skybox/+x.png +0 -0
  20. package/examples/character-controller/assets/cubemaps/skybox/+y.png +0 -0
  21. package/examples/character-controller/assets/cubemaps/skybox/+z.png +0 -0
  22. package/examples/character-controller/assets/cubemaps/skybox/-x.png +0 -0
  23. package/examples/character-controller/assets/cubemaps/skybox/-y.png +0 -0
  24. package/examples/character-controller/assets/cubemaps/skybox/-z.png +0 -0
  25. package/examples/character-controller/assets/map.json +2623 -0
  26. package/examples/character-controller/assets/models/player.gltf +1 -0
  27. package/examples/character-controller/assets/textures/bricks.png +0 -0
  28. package/examples/character-controller/assets/textures/clay.png +0 -0
  29. package/examples/character-controller/assets/textures/diamond_ore.png +0 -0
  30. package/examples/character-controller/assets/textures/dirt.png +0 -0
  31. package/examples/character-controller/assets/textures/dragons_stone.png +0 -0
  32. package/examples/character-controller/assets/textures/glass.png +0 -0
  33. package/examples/character-controller/assets/textures/grass/+x.png +0 -0
  34. package/examples/character-controller/assets/textures/grass/+y.png +0 -0
  35. package/examples/character-controller/assets/textures/grass/+z.png +0 -0
  36. package/examples/character-controller/assets/textures/grass/-x.png +0 -0
  37. package/examples/character-controller/assets/textures/grass/-y.png +0 -0
  38. package/examples/character-controller/assets/textures/grass/-z.png +0 -0
  39. package/examples/character-controller/assets/textures/grass.png +0 -0
  40. package/examples/character-controller/assets/textures/gravel.png +0 -0
  41. package/examples/character-controller/assets/textures/ice.png +0 -0
  42. package/examples/character-controller/assets/textures/infected_shadowrock.png +0 -0
  43. package/examples/character-controller/assets/textures/log_side.png +0 -0
  44. package/examples/character-controller/assets/textures/log_top.png +0 -0
  45. package/examples/character-controller/assets/textures/mossy_coblestone.png +0 -0
  46. package/examples/character-controller/assets/textures/nuit.png +0 -0
  47. package/examples/character-controller/assets/textures/oak_leaves.png +0 -0
  48. package/examples/character-controller/assets/textures/oak_planks.png +0 -0
  49. package/examples/character-controller/assets/textures/sand.png +0 -0
  50. package/examples/character-controller/assets/textures/shadowrock.png +0 -0
  51. package/examples/character-controller/assets/textures/stone.png +0 -0
  52. package/examples/character-controller/assets/textures/stone_bricks.png +0 -0
  53. package/examples/character-controller/assets/textures/void_sand.png +0 -0
  54. package/examples/character-controller/assets/textures/water_still.png +0 -0
  55. package/examples/character-controller/bun.lockb +0 -0
  56. package/examples/character-controller/index.ts +43 -0
  57. package/examples/character-controller/package.json +14 -0
  58. package/examples/character-controller/tsconfig.json +27 -0
  59. package/examples/entity-spawn/README.md +15 -0
  60. package/examples/entity-spawn/assets/certs/README.md +11 -0
  61. package/examples/entity-spawn/assets/certs/localhost.crt +20 -0
  62. package/examples/entity-spawn/assets/certs/localhost.key +27 -0
  63. package/examples/entity-spawn/assets/cubemaps/skybox/+x.png +0 -0
  64. package/examples/entity-spawn/assets/cubemaps/skybox/+y.png +0 -0
  65. package/examples/entity-spawn/assets/cubemaps/skybox/+z.png +0 -0
  66. package/examples/entity-spawn/assets/cubemaps/skybox/-x.png +0 -0
  67. package/examples/entity-spawn/assets/cubemaps/skybox/-y.png +0 -0
  68. package/examples/entity-spawn/assets/cubemaps/skybox/-z.png +0 -0
  69. package/examples/entity-spawn/assets/map.json +2623 -0
  70. package/examples/entity-spawn/assets/models/player.gltf +1 -0
  71. package/examples/entity-spawn/assets/models/spider.gltf +1 -0
  72. package/examples/entity-spawn/assets/textures/bricks.png +0 -0
  73. package/examples/entity-spawn/assets/textures/clay.png +0 -0
  74. package/examples/entity-spawn/assets/textures/diamond_ore.png +0 -0
  75. package/examples/entity-spawn/assets/textures/dirt.png +0 -0
  76. package/examples/entity-spawn/assets/textures/dragons_stone.png +0 -0
  77. package/examples/entity-spawn/assets/textures/glass.png +0 -0
  78. package/examples/entity-spawn/assets/textures/grass/+x.png +0 -0
  79. package/examples/entity-spawn/assets/textures/grass/+y.png +0 -0
  80. package/examples/entity-spawn/assets/textures/grass/+z.png +0 -0
  81. package/examples/entity-spawn/assets/textures/grass/-x.png +0 -0
  82. package/examples/entity-spawn/assets/textures/grass/-y.png +0 -0
  83. package/examples/entity-spawn/assets/textures/grass/-z.png +0 -0
  84. package/examples/entity-spawn/assets/textures/grass.png +0 -0
  85. package/examples/entity-spawn/assets/textures/gravel.png +0 -0
  86. package/examples/entity-spawn/assets/textures/ice.png +0 -0
  87. package/examples/entity-spawn/assets/textures/infected_shadowrock.png +0 -0
  88. package/examples/entity-spawn/assets/textures/log_side.png +0 -0
  89. package/examples/entity-spawn/assets/textures/log_top.png +0 -0
  90. package/examples/entity-spawn/assets/textures/mossy_coblestone.png +0 -0
  91. package/examples/entity-spawn/assets/textures/nuit.png +0 -0
  92. package/examples/entity-spawn/assets/textures/oak_leaves.png +0 -0
  93. package/examples/entity-spawn/assets/textures/oak_planks.png +0 -0
  94. package/examples/entity-spawn/assets/textures/sand.png +0 -0
  95. package/examples/entity-spawn/assets/textures/shadowrock.png +0 -0
  96. package/examples/entity-spawn/assets/textures/stone.png +0 -0
  97. package/examples/entity-spawn/assets/textures/stone_bricks.png +0 -0
  98. package/examples/entity-spawn/assets/textures/void_sand.png +0 -0
  99. package/examples/entity-spawn/assets/textures/water_still.png +0 -0
  100. package/examples/entity-spawn/bun.lockb +0 -0
  101. package/examples/entity-spawn/index.ts +93 -0
  102. package/examples/entity-spawn/package.json +14 -0
  103. package/examples/entity-spawn/tsconfig.json +27 -0
  104. package/examples/payload-game/README.md +15 -0
  105. package/examples/payload-game/assets/certs/README.md +11 -0
  106. package/examples/payload-game/assets/certs/localhost.crt +20 -0
  107. package/examples/payload-game/assets/certs/localhost.key +27 -0
  108. package/examples/payload-game/bun.lockb +0 -0
  109. package/examples/payload-game/index.ts +12 -3
  110. package/examples/payload-game/package.json +14 -0
  111. package/examples/payload-game/tsconfig.json +27 -0
  112. package/package.json +2 -5
  113. package/server.api.json +6 -6
  114. package/server.d.ts +10 -3
  115. package/server.js +1 -1
  116. package/tsconfig.json +1 -4
@@ -0,0 +1,43 @@
1
+ import {
2
+ startServer,
3
+ GameServer,
4
+ PlayerEntity,
5
+ } from 'hytopia';
6
+
7
+ import MyCharacterController from './MyCharacterController';
8
+
9
+ import worldMap from './assets/map.json';
10
+
11
+ startServer(world => {
12
+ GameServer.instance.webServer.enableLocalSSL();
13
+ world.simulation.enableDebugRendering(true);
14
+ world.loadMap(worldMap);
15
+
16
+ world.onPlayerJoin = player => {
17
+ const playerEntity = new PlayerEntity({
18
+ player,
19
+ name: 'Player',
20
+ modelUri: 'models/player.gltf',
21
+ modelLoopedAnimations: [ 'idle' ],
22
+ modelScale: 0.5,
23
+ });
24
+
25
+ // Assign a custom character controller factory to the player entity.
26
+ // This must be assigned before spawning the entity.
27
+ // createCustomCharacterController if set will be handled internally when
28
+ // .spawn() is called.
29
+ playerEntity.createCustomCharacterController = () => {
30
+ console.log('Creating custom player entity character controller...');
31
+
32
+ return new MyCharacterController(playerEntity);
33
+ }
34
+
35
+ playerEntity.spawn(world, { x: 0, y: 10, z: 0 });
36
+ console.log('Spawned player entity!');
37
+
38
+ };
39
+
40
+ world.onPlayerLeave = player => {
41
+ world.entityManager.getAllPlayerEntities(player).forEach(entity => entity.despawn());
42
+ };
43
+ });
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "character-controller",
3
+ "module": "index.ts",
4
+ "type": "module",
5
+ "devDependencies": {
6
+ "@types/bun": "latest"
7
+ },
8
+ "peerDependencies": {
9
+ "typescript": "^5.0.0"
10
+ },
11
+ "dependencies": {
12
+ "hytopia": "^0.1.15"
13
+ }
14
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "compilerOptions": {
3
+ // Enable latest features
4
+ "lib": ["ESNext", "DOM"],
5
+ "target": "ESNext",
6
+ "module": "ESNext",
7
+ "moduleDetection": "force",
8
+ "jsx": "react-jsx",
9
+ "allowJs": true,
10
+
11
+ // Bundler mode
12
+ "moduleResolution": "bundler",
13
+ "allowImportingTsExtensions": true,
14
+ "verbatimModuleSyntax": true,
15
+ "noEmit": true,
16
+
17
+ // Best practices
18
+ "strict": true,
19
+ "skipLibCheck": true,
20
+ "noFallthroughCasesInSwitch": true,
21
+
22
+ // Some stricter flags (disabled by default)
23
+ "noUnusedLocals": false,
24
+ "noUnusedParameters": false,
25
+ "noPropertyAccessFromIndexSignature": false
26
+ }
27
+ }
@@ -0,0 +1,15 @@
1
+ # entity-spawn
2
+
3
+ To install dependencies:
4
+
5
+ ```bash
6
+ bun install
7
+ ```
8
+
9
+ To run:
10
+
11
+ ```bash
12
+ bun run index.ts
13
+ ```
14
+
15
+ This project was created using `bun init` in bun v1.1.26. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
@@ -0,0 +1,11 @@
1
+ For local development self-signed certs are stored here.
2
+ The server when GameServer.instance.webServer.enableLocalSSL();
3
+ is used, will look for assets/certs/localhost.key and
4
+ assets/certs/localhost.cert and use those for SSL.
5
+
6
+ We use these self-signed certs to allow https://localhost
7
+ & wss://localhost support. Without this, play.hytopia.com
8
+ requires a bunch of funky browser flag workarounds in
9
+ order to connect to your local server. This is only used
10
+ for local development and will be ignored when your game
11
+ is deployed to HYTOPIA servers.
@@ -0,0 +1,20 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDRjCCAi6gAwIBAgIFOTEzNTIwDQYJKoZIhvcNAQELBQAwWDEQMA4GA1UEAxMH
3
+ SFlUT1BJQTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
4
+ BAcTB1NlYXR0bGUxEDAOBgNVBAoTB0hZVE9QSUEwHhcNMjQxMTEzMjIyMjEwWhcN
5
+ MzQxMTExMjIyMjEwWjAUMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3
6
+ DQEBAQUAA4IBDwAwggEKAoIBAQCo2i9L13+4KxvR9dxBeE3Xrj5WtoGFBwbUZkeV
7
+ 3B8n+ehJ2LWD13sGvCuHvSDovbSOxLxqbESQzWBRVrmfJMR1qe+o7kd/SMaLHosC
8
+ 2BWASn1oV9rGLktvd2Xs6xRf75cejzrr/OrNoTpICp3j1Z0Kd+73TuYyVFPfCbqH
9
+ N6mwS+yCmG2/w3sXwbOGymNuYpaPoD8XVcIhO7GPZsCVqqSKP2xsGF+oP5+Isma+
10
+ y3usNUnFnVW5ckk6SWWdxP9kuOW2xXoFFwj43STaE4OvXbTPCG7jowUpDH1aMvFA
11
+ ceXUfuaE7H8QfZqoUNu8jCb8LiqTL+uL5kHbl2kQ7sQCN9gjAgMBAAGjWzBZMAwG
12
+ A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMB
13
+ BggrBgEFBQcDAjAaBgNVHREEEzARgglsb2NhbGhvc3SHBH8AAAEwDQYJKoZIhvcN
14
+ AQELBQADggEBAHSINJsVuu11kmzx7/2yEiDSIQVzdzk/+hnx0iQt6rDy9ZNVdI8w
15
+ JOUYaPjxDFfZ5gaPqrlb0n248lBMdGrp6xmhbgXL8eWkXRDcR6kuYBQrQmFitg7G
16
+ KFFWnzCuQMLn5Mn6VA+sBf9n2LVaOQCci9jU0awRpaQTUNf894USjILo+PvbcUGU
17
+ XlMtqc1abkN4NehDdaXsxMwyPgUCPkN5X80s8hxx5NgzwtwDtoTYj/PBRBXBddA+
18
+ oN1rwkugWiTpIPU0wKb0ufLsq96I24UDQWd2jJGbD2W23Z0lwVz/Bq6uc4aOJn68
19
+ JbejJgFyF3/m6oFDxgqMnuV5q5olVZHAWL8=
20
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEAqNovS9d/uCsb0fXcQXhN164+VraBhQcG1GZHldwfJ/noSdi1
3
+ g9d7Brwrh70g6L20jsS8amxEkM1gUVa5nyTEdanvqO5Hf0jGix6LAtgVgEp9aFfa
4
+ xi5Lb3dl7OsUX++XHo866/zqzaE6SAqd49WdCnfu907mMlRT3wm6hzepsEvsgpht
5
+ v8N7F8GzhspjbmKWj6A/F1XCITuxj2bAlaqkij9sbBhfqD+fiLJmvst7rDVJxZ1V
6
+ uXJJOkllncT/ZLjltsV6BRcI+N0k2hODr120zwhu46MFKQx9WjLxQHHl1H7mhOx/
7
+ EH2aqFDbvIwm/C4qky/ri+ZB25dpEO7EAjfYIwIDAQABAoIBAA6dvGRbRiICEUlu
8
+ d99u84YM/jZxW+rQ/eVa6S1uvX+vYU0rJiNAftTJaxc35uZerYeCPjEUKCdEr+a6
9
+ lBzTiPIKgMVlwuiguxcF0NCxNcNCL3Ld0AFBtqPyeO82NjBLxBAQI/CTlxuvriTY
10
+ TmyPbCWg1h2wRbrrk8sFw5C638Rz2evbBfsUcTICr6QQa51YXgxawtew3Xy3aR3G
11
+ PPuS7zlvjJYDApQs3+nakEj3DnM2nz5oJNS2YEsMKQRhmNrhen6Ose5G0jf6F6up
12
+ 8HVpN3XW01D7qVT1Og6Y5dE2EM/l3isKZWXif6CcFKoOy87z8HRMIoZJS62WtKtu
13
+ liBmYxkCgYEA4VDPtFAGnChCTGLVwo7MKmH6/KU5Qj2fuufGNw8jcW3H0Ea52OFC
14
+ qOGA9pRJVXCap7Wa7XCJXENLYWpSfB7H7GnhFLwHw7jAVB52DLDCdUnRv5fP3o8K
15
+ xEseMJQaJm95eFVfTETcnjDixWtIzNbXULQbGjF3AY74aFjc1fhc/yUCgYEAv9jj
16
+ Zrc+UzR0oi00Ip8O5C5Uvu2W35M+j2XoV/xPkX+Hcr12U40Gnc/rnzVp2lGTwNZS
17
+ ImQcjLEd31qLOy90F9lcaKvOfgcx0JvGEp5SdzQQaS3RJqn0xWLh1O4NMsiVbLNi
18
+ Zi5qFv7pW/DO174xSa7cMVE8qp8YHAOZdpcqm6cCgYB9FL2ZnetteTQE78E3NsrE
19
+ pIwPATIeQdOQkOaK3k6Qw57vUrQNYE//LODJAl0Ln21buQd+1MCMhZctRzbvTK8z
20
+ 4TtgpVmyH7g1eouSU/Y/4nEcaYyuQr55ZjImSbGSsMPAN7SlxHytHPpnGj3Z6VKy
21
+ rKl3CwrDxLjGRL6j0jLeOQKBgBiu3xMoIGy0Iw16o2qQ7GmPTHgEOZUqbLImem5X
22
+ mCUwM00f80lsq51CUx540NW2CTyWVpr2JnYzk5RZIfDLejRXUvxknny4kEA2ypU6
23
+ qYGMwU/HBVHkLAn5XvT2a9xM0mzZ558d+ahbw8qAgRxg7BZ+2PW/bf7F2WRBUk1f
24
+ xauhAoGBALEspoxQozwohGQnP7EMF0/0JoKNpdNv0b0qCVvNiMo0+N297lI2mFQp
25
+ 6xYlW/1l9afLokklF/J2IsyBrTCZoY7SaEk/lMMrQSyra+y0z71ogZ8A4ny9fxsj
26
+ 0dDYJZGllL+3E/MQfd7k+KnOM/+A+cPoAnci76+L3vdkUb2P8SJk
27
+ -----END RSA PRIVATE KEY-----