hytopia 0.1.38 → 0.1.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/scripts.js +10 -1
- package/docs/server.basecharactercontroller.createcolliders.md +19 -0
- package/docs/server.basecharactercontroller.md +2 -2
- package/docs/server.blocktype.md +1 -1
- package/docs/server.blocktype.onentitycollision.md +6 -1
- package/docs/server.blocktype.onentitycontactforce.md +5 -0
- package/docs/server.coefficientcombinerule.md +89 -0
- package/docs/server.collider.getbouncinesscombinerule.md +19 -0
- package/docs/server.collider.getfrictioncombinerule.md +19 -0
- package/docs/server.collider.md +56 -0
- package/docs/server.collider.setbouncinesscombinerule.md +53 -0
- package/docs/server.collider.setfrictioncombinerule.md +53 -0
- package/docs/server.collideroptions.bouncinesscombinerule.md +13 -0
- package/docs/server.collideroptions.frictioncombinerule.md +13 -0
- package/docs/server.collideroptions.indices.md +13 -0
- package/docs/server.collideroptions.md +76 -0
- package/docs/server.collideroptions.vertices.md +13 -0
- package/docs/server.collidershape.md +14 -0
- package/docs/server.collisioncallback.md +1 -1
- package/docs/{server.defaultcharactercontroller.createsensorcolliders.md → server.defaultcharactercontroller.createcolliders.md} +4 -4
- package/docs/server.defaultcharactercontroller.md +2 -2
- package/docs/server.entity.isblockentity.md +13 -0
- package/docs/server.entity.ismodelentity.md +13 -0
- package/docs/server.entity.md +44 -2
- package/docs/server.entity.onblockcollision.md +6 -1
- package/docs/server.entity.onblockcontactforce.md +5 -0
- package/docs/server.entity.onentitycollision.md +6 -1
- package/docs/server.entity.onentitycontactforce.md +5 -0
- package/docs/server.entity.startmodelloopedanimations.md +4 -0
- package/docs/server.entity.startmodeloneshotanimations.md +4 -0
- package/docs/server.entity.stopmodelanimations.md +4 -0
- package/docs/server.hytopia.basecharactercontroller.createcolliders.md +19 -0
- package/docs/server.hytopia.basecharactercontroller.md +2 -2
- package/docs/server.hytopia.blocktype.md +1 -1
- package/docs/server.hytopia.blocktype.onentitycollision.md +6 -1
- package/docs/server.hytopia.blocktype.onentitycontactforce.md +5 -0
- package/docs/server.hytopia.coefficientcombinerule.md +89 -0
- package/docs/server.hytopia.collider.getbouncinesscombinerule.md +19 -0
- package/docs/server.hytopia.collider.getfrictioncombinerule.md +19 -0
- package/docs/server.hytopia.collider.md +56 -0
- package/docs/server.hytopia.collider.setbouncinesscombinerule.md +53 -0
- package/docs/server.hytopia.collider.setfrictioncombinerule.md +53 -0
- package/docs/server.hytopia.collideroptions.bouncinesscombinerule.md +13 -0
- package/docs/server.hytopia.collideroptions.frictioncombinerule.md +13 -0
- package/docs/server.hytopia.collideroptions.indices.md +13 -0
- package/docs/server.hytopia.collideroptions.md +76 -0
- package/docs/server.hytopia.collideroptions.vertices.md +13 -0
- package/docs/server.hytopia.collidershape.md +14 -0
- package/docs/server.hytopia.collisioncallback.md +1 -1
- package/docs/server.hytopia.defaultcharactercontroller.createcolliders.md +19 -0
- package/docs/server.hytopia.defaultcharactercontroller.md +2 -2
- package/docs/server.hytopia.entity.isblockentity.md +13 -0
- package/docs/server.hytopia.entity.ismodelentity.md +13 -0
- package/docs/server.hytopia.entity.md +44 -2
- package/docs/server.hytopia.entity.onblockcollision.md +6 -1
- package/docs/server.hytopia.entity.onblockcontactforce.md +5 -0
- package/docs/server.hytopia.entity.onentitycollision.md +6 -1
- package/docs/server.hytopia.entity.onentitycontactforce.md +5 -0
- package/docs/server.hytopia.entity.startmodelloopedanimations.md +4 -0
- package/docs/server.hytopia.entity.startmodeloneshotanimations.md +4 -0
- package/docs/server.hytopia.entity.stopmodelanimations.md +4 -0
- package/docs/server.hytopia.md +11 -0
- package/docs/server.hytopia.simulation.getcontactmanifolds.md +75 -0
- package/docs/server.hytopia.simulation.md +14 -0
- package/docs/server.md +11 -0
- package/docs/server.simulation.getcontactmanifolds.md +75 -0
- package/docs/server.simulation.md +14 -0
- package/examples/big-world/README.md +15 -0
- package/examples/big-world/index.ts +41 -0
- package/examples/block-entity/index.ts +4 -1
- package/examples/character-controller/MyCharacterController.ts +25 -5
- package/examples/character-controller/index.ts +3 -1
- package/examples/entity-spawn/index.ts +3 -1
- package/examples/payload-game/index.ts +2 -2
- package/package.json +1 -1
- package/server.api.json +1256 -58
- package/server.d.ts +120 -14
- package/server.js +79 -79
- package/boilerplate/assets/audio/music/cave.mp3 +0 -0
- package/boilerplate/assets/audio/music/desert.mp3 +0 -0
- package/boilerplate/assets/audio/music/end.mp3 +0 -0
- package/boilerplate/assets/audio/music/jungle.mp3 +0 -0
- package/boilerplate/assets/audio/music/nether.mp3 +0 -0
- package/boilerplate/assets/audio/music/night.mp3 +0 -0
- package/boilerplate/assets/audio/music/night2.mp3 +0 -0
- package/boilerplate/assets/audio/music/overworld.mp3 +0 -0
- package/boilerplate/assets/audio/music/snow.mp3 +0 -0
- package/boilerplate/assets/audio/sfx/damage.wav +0 -0
- package/boilerplate/assets/audio/sfx/step.wav +0 -0
- package/boilerplate/assets/certs/README.md +0 -10
- package/boilerplate/assets/certs/localhost.crt +0 -20
- package/boilerplate/assets/certs/localhost.key +0 -27
- package/boilerplate/assets/cubemaps/skybox/+x.png +0 -0
- package/boilerplate/assets/cubemaps/skybox/+y.png +0 -0
- package/boilerplate/assets/cubemaps/skybox/+z.png +0 -0
- package/boilerplate/assets/cubemaps/skybox/-x.png +0 -0
- package/boilerplate/assets/cubemaps/skybox/-y.png +0 -0
- package/boilerplate/assets/cubemaps/skybox/-z.png +0 -0
- package/boilerplate/assets/map.json +0 -2623
- package/boilerplate/assets/models/bat.gltf +0 -1
- package/boilerplate/assets/models/chicken.gltf +0 -1
- package/boilerplate/assets/models/cow.gltf +0 -1
- package/boilerplate/assets/models/donkey.gltf +0 -1
- package/boilerplate/assets/models/horse.gltf +0 -1
- package/boilerplate/assets/models/mindflayer.gltf +0 -1
- package/boilerplate/assets/models/pig.gltf +0 -1
- package/boilerplate/assets/models/player.gltf +0 -1
- package/boilerplate/assets/models/rabbit.gltf +0 -1
- package/boilerplate/assets/models/sheep.gltf +0 -1
- package/boilerplate/assets/models/skeleton.gltf +0 -1
- package/boilerplate/assets/models/spider.gltf +0 -1
- package/boilerplate/assets/models/squid.gltf +0 -1
- package/boilerplate/assets/models/stalker.gltf +0 -1
- package/boilerplate/assets/models/zombie.gltf +0 -1
- package/boilerplate/assets/textures/bricks.png +0 -0
- package/boilerplate/assets/textures/clay.png +0 -0
- package/boilerplate/assets/textures/cobblestone.png +0 -0
- package/boilerplate/assets/textures/diamond_ore.png +0 -0
- package/boilerplate/assets/textures/dirt.png +0 -0
- package/boilerplate/assets/textures/dragons_stone.png +0 -0
- package/boilerplate/assets/textures/emerald_ore.png +0 -0
- package/boilerplate/assets/textures/glass.png +0 -0
- package/boilerplate/assets/textures/gold_ore.png +0 -0
- package/boilerplate/assets/textures/grass/+x.png +0 -0
- package/boilerplate/assets/textures/grass/+y.png +0 -0
- package/boilerplate/assets/textures/grass/+z.png +0 -0
- package/boilerplate/assets/textures/grass/-x.png +0 -0
- package/boilerplate/assets/textures/grass/-y.png +0 -0
- package/boilerplate/assets/textures/grass/-z.png +0 -0
- package/boilerplate/assets/textures/gravel.png +0 -0
- package/boilerplate/assets/textures/ice.png +0 -0
- package/boilerplate/assets/textures/infected_shadowrock.png +0 -0
- package/boilerplate/assets/textures/iron_ore.png +0 -0
- package/boilerplate/assets/textures/lava.png +0 -0
- package/boilerplate/assets/textures/log_side.png +0 -0
- package/boilerplate/assets/textures/log_top.png +0 -0
- package/boilerplate/assets/textures/mossy_coblestone.png +0 -0
- package/boilerplate/assets/textures/nuit.png +0 -0
- package/boilerplate/assets/textures/oak_leaves.png +0 -0
- package/boilerplate/assets/textures/oak_planks.png +0 -0
- package/boilerplate/assets/textures/sand.png +0 -0
- package/boilerplate/assets/textures/sandstone.png +0 -0
- package/boilerplate/assets/textures/shadowrock.png +0 -0
- package/boilerplate/assets/textures/snow.png +0 -0
- package/boilerplate/assets/textures/stone.png +0 -0
- package/boilerplate/assets/textures/stone_bricks.png +0 -0
- package/boilerplate/assets/textures/void_grass/+x.png +0 -0
- package/boilerplate/assets/textures/void_grass/+y.png +0 -0
- package/boilerplate/assets/textures/void_grass/+z.png +0 -0
- package/boilerplate/assets/textures/void_grass/-x.png +0 -0
- package/boilerplate/assets/textures/void_grass/-y.png +0 -0
- package/boilerplate/assets/textures/void_grass/-z.png +0 -0
- package/boilerplate/assets/textures/void_sand.png +0 -0
- package/boilerplate/assets/textures/water.png +0 -0
- package/docs/server.basecharactercontroller.createsensorcolliders.md +0 -19
- package/docs/server.hytopia.basecharactercontroller.createsensorcolliders.md +0 -19
- package/docs/server.hytopia.defaultcharactercontroller.createsensorcolliders.md +0 -19
- package/examples/block-entity/assets/audio/music/cave.mp3 +0 -0
- package/examples/block-entity/assets/audio/music/desert.mp3 +0 -0
- package/examples/block-entity/assets/audio/music/end.mp3 +0 -0
- package/examples/block-entity/assets/audio/music/jungle.mp3 +0 -0
- package/examples/block-entity/assets/audio/music/nether.mp3 +0 -0
- package/examples/block-entity/assets/audio/music/night.mp3 +0 -0
- package/examples/block-entity/assets/audio/music/night2.mp3 +0 -0
- package/examples/block-entity/assets/audio/music/overworld.mp3 +0 -0
- package/examples/block-entity/assets/audio/music/snow.mp3 +0 -0
- package/examples/block-entity/assets/audio/sfx/damage.wav +0 -0
- package/examples/block-entity/assets/audio/sfx/step.wav +0 -0
- package/examples/block-entity/assets/certs/README.md +0 -10
- package/examples/block-entity/assets/certs/localhost.crt +0 -20
- package/examples/block-entity/assets/certs/localhost.key +0 -27
- package/examples/block-entity/assets/cubemaps/skybox/+x.png +0 -0
- package/examples/block-entity/assets/cubemaps/skybox/+y.png +0 -0
- package/examples/block-entity/assets/cubemaps/skybox/+z.png +0 -0
- package/examples/block-entity/assets/cubemaps/skybox/-x.png +0 -0
- package/examples/block-entity/assets/cubemaps/skybox/-y.png +0 -0
- package/examples/block-entity/assets/cubemaps/skybox/-z.png +0 -0
- package/examples/block-entity/assets/map.json +0 -2623
- package/examples/block-entity/assets/models/bat.gltf +0 -1
- package/examples/block-entity/assets/models/chicken.gltf +0 -1
- package/examples/block-entity/assets/models/cow.gltf +0 -1
- package/examples/block-entity/assets/models/donkey.gltf +0 -1
- package/examples/block-entity/assets/models/horse.gltf +0 -1
- package/examples/block-entity/assets/models/mindflayer.gltf +0 -1
- package/examples/block-entity/assets/models/pig.gltf +0 -1
- package/examples/block-entity/assets/models/player.gltf +0 -1
- package/examples/block-entity/assets/models/rabbit.gltf +0 -1
- package/examples/block-entity/assets/models/sheep.gltf +0 -1
- package/examples/block-entity/assets/models/skeleton.gltf +0 -1
- package/examples/block-entity/assets/models/spider.gltf +0 -1
- package/examples/block-entity/assets/models/squid.gltf +0 -1
- package/examples/block-entity/assets/models/stalker.gltf +0 -1
- package/examples/block-entity/assets/models/zombie.gltf +0 -1
- package/examples/block-entity/assets/textures/bricks.png +0 -0
- package/examples/block-entity/assets/textures/clay.png +0 -0
- package/examples/block-entity/assets/textures/cobblestone.png +0 -0
- package/examples/block-entity/assets/textures/diamond_ore.png +0 -0
- package/examples/block-entity/assets/textures/dirt.png +0 -0
- package/examples/block-entity/assets/textures/dragons_stone.png +0 -0
- package/examples/block-entity/assets/textures/emerald_ore.png +0 -0
- package/examples/block-entity/assets/textures/glass.png +0 -0
- package/examples/block-entity/assets/textures/gold_ore.png +0 -0
- package/examples/block-entity/assets/textures/grass/+x.png +0 -0
- package/examples/block-entity/assets/textures/grass/+y.png +0 -0
- package/examples/block-entity/assets/textures/grass/+z.png +0 -0
- package/examples/block-entity/assets/textures/grass/-x.png +0 -0
- package/examples/block-entity/assets/textures/grass/-y.png +0 -0
- package/examples/block-entity/assets/textures/grass/-z.png +0 -0
- package/examples/block-entity/assets/textures/gravel.png +0 -0
- package/examples/block-entity/assets/textures/ice.png +0 -0
- package/examples/block-entity/assets/textures/infected_shadowrock.png +0 -0
- package/examples/block-entity/assets/textures/iron_ore.png +0 -0
- package/examples/block-entity/assets/textures/lava.png +0 -0
- package/examples/block-entity/assets/textures/log_side.png +0 -0
- package/examples/block-entity/assets/textures/log_top.png +0 -0
- package/examples/block-entity/assets/textures/mossy_coblestone.png +0 -0
- package/examples/block-entity/assets/textures/nuit.png +0 -0
- package/examples/block-entity/assets/textures/oak_leaves.png +0 -0
- package/examples/block-entity/assets/textures/oak_planks.png +0 -0
- package/examples/block-entity/assets/textures/sand.png +0 -0
- package/examples/block-entity/assets/textures/sandstone.png +0 -0
- package/examples/block-entity/assets/textures/shadowrock.png +0 -0
- package/examples/block-entity/assets/textures/snow.png +0 -0
- package/examples/block-entity/assets/textures/stone.png +0 -0
- package/examples/block-entity/assets/textures/stone_bricks.png +0 -0
- package/examples/block-entity/assets/textures/void_grass/+x.png +0 -0
- package/examples/block-entity/assets/textures/void_grass/+y.png +0 -0
- package/examples/block-entity/assets/textures/void_grass/+z.png +0 -0
- package/examples/block-entity/assets/textures/void_grass/-x.png +0 -0
- package/examples/block-entity/assets/textures/void_grass/-y.png +0 -0
- package/examples/block-entity/assets/textures/void_grass/-z.png +0 -0
- package/examples/block-entity/assets/textures/void_sand.png +0 -0
- package/examples/block-entity/assets/textures/water.png +0 -0
- package/examples/block-entity/package.json +0 -14
- package/examples/character-controller/assets/audio/sfx/damage.wav +0 -0
- package/examples/character-controller/assets/audio/sfx/step.wav +0 -0
- package/examples/character-controller/assets/certs/README.md +0 -10
- package/examples/character-controller/assets/certs/localhost.crt +0 -20
- package/examples/character-controller/assets/certs/localhost.key +0 -27
- package/examples/character-controller/assets/cubemaps/skybox/+x.png +0 -0
- package/examples/character-controller/assets/cubemaps/skybox/+y.png +0 -0
- package/examples/character-controller/assets/cubemaps/skybox/+z.png +0 -0
- package/examples/character-controller/assets/cubemaps/skybox/-x.png +0 -0
- package/examples/character-controller/assets/cubemaps/skybox/-y.png +0 -0
- package/examples/character-controller/assets/cubemaps/skybox/-z.png +0 -0
- package/examples/character-controller/assets/map.json +0 -2623
- package/examples/character-controller/assets/models/player.gltf +0 -1
- package/examples/character-controller/assets/textures/bricks.png +0 -0
- package/examples/character-controller/assets/textures/clay.png +0 -0
- package/examples/character-controller/assets/textures/diamond_ore.png +0 -0
- package/examples/character-controller/assets/textures/dirt.png +0 -0
- package/examples/character-controller/assets/textures/dragons_stone.png +0 -0
- package/examples/character-controller/assets/textures/glass.png +0 -0
- package/examples/character-controller/assets/textures/grass/+x.png +0 -0
- package/examples/character-controller/assets/textures/grass/+y.png +0 -0
- package/examples/character-controller/assets/textures/grass/+z.png +0 -0
- package/examples/character-controller/assets/textures/grass/-x.png +0 -0
- package/examples/character-controller/assets/textures/grass/-y.png +0 -0
- package/examples/character-controller/assets/textures/grass/-z.png +0 -0
- package/examples/character-controller/assets/textures/grass.png +0 -0
- package/examples/character-controller/assets/textures/gravel.png +0 -0
- package/examples/character-controller/assets/textures/ice.png +0 -0
- package/examples/character-controller/assets/textures/infected_shadowrock.png +0 -0
- package/examples/character-controller/assets/textures/log_side.png +0 -0
- package/examples/character-controller/assets/textures/log_top.png +0 -0
- package/examples/character-controller/assets/textures/mossy_coblestone.png +0 -0
- package/examples/character-controller/assets/textures/nuit.png +0 -0
- package/examples/character-controller/assets/textures/oak_leaves.png +0 -0
- package/examples/character-controller/assets/textures/oak_planks.png +0 -0
- package/examples/character-controller/assets/textures/sand.png +0 -0
- package/examples/character-controller/assets/textures/shadowrock.png +0 -0
- package/examples/character-controller/assets/textures/stone.png +0 -0
- package/examples/character-controller/assets/textures/stone_bricks.png +0 -0
- package/examples/character-controller/assets/textures/void_sand.png +0 -0
- package/examples/character-controller/assets/textures/water_still.png +0 -0
- package/examples/entity-spawn/assets/certs/README.md +0 -10
- package/examples/entity-spawn/assets/certs/localhost.crt +0 -20
- package/examples/entity-spawn/assets/certs/localhost.key +0 -27
- package/examples/entity-spawn/assets/cubemaps/skybox/+x.png +0 -0
- package/examples/entity-spawn/assets/cubemaps/skybox/+y.png +0 -0
- package/examples/entity-spawn/assets/cubemaps/skybox/+z.png +0 -0
- package/examples/entity-spawn/assets/cubemaps/skybox/-x.png +0 -0
- package/examples/entity-spawn/assets/cubemaps/skybox/-y.png +0 -0
- package/examples/entity-spawn/assets/cubemaps/skybox/-z.png +0 -0
- package/examples/entity-spawn/assets/map.json +0 -2623
- package/examples/entity-spawn/assets/models/player.gltf +0 -1
- package/examples/entity-spawn/assets/models/spider.gltf +0 -1
- package/examples/entity-spawn/assets/textures/bricks.png +0 -0
- package/examples/entity-spawn/assets/textures/clay.png +0 -0
- package/examples/entity-spawn/assets/textures/diamond_ore.png +0 -0
- package/examples/entity-spawn/assets/textures/dirt.png +0 -0
- package/examples/entity-spawn/assets/textures/dragons_stone.png +0 -0
- package/examples/entity-spawn/assets/textures/glass.png +0 -0
- package/examples/entity-spawn/assets/textures/grass/+x.png +0 -0
- package/examples/entity-spawn/assets/textures/grass/+y.png +0 -0
- package/examples/entity-spawn/assets/textures/grass/+z.png +0 -0
- package/examples/entity-spawn/assets/textures/grass/-x.png +0 -0
- package/examples/entity-spawn/assets/textures/grass/-y.png +0 -0
- package/examples/entity-spawn/assets/textures/grass/-z.png +0 -0
- package/examples/entity-spawn/assets/textures/grass.png +0 -0
- package/examples/entity-spawn/assets/textures/gravel.png +0 -0
- package/examples/entity-spawn/assets/textures/ice.png +0 -0
- package/examples/entity-spawn/assets/textures/infected_shadowrock.png +0 -0
- package/examples/entity-spawn/assets/textures/log_side.png +0 -0
- package/examples/entity-spawn/assets/textures/log_top.png +0 -0
- package/examples/entity-spawn/assets/textures/mossy_coblestone.png +0 -0
- package/examples/entity-spawn/assets/textures/nuit.png +0 -0
- package/examples/entity-spawn/assets/textures/oak_leaves.png +0 -0
- package/examples/entity-spawn/assets/textures/oak_planks.png +0 -0
- package/examples/entity-spawn/assets/textures/sand.png +0 -0
- package/examples/entity-spawn/assets/textures/shadowrock.png +0 -0
- package/examples/entity-spawn/assets/textures/stone.png +0 -0
- package/examples/entity-spawn/assets/textures/stone_bricks.png +0 -0
- package/examples/entity-spawn/assets/textures/void_sand.png +0 -0
- package/examples/entity-spawn/assets/textures/water_still.png +0 -0
- package/examples/payload-game/assets/certs/README.md +0 -10
- package/examples/payload-game/assets/certs/localhost.crt +0 -20
- package/examples/payload-game/assets/certs/localhost.key +0 -27
- package/examples/payload-game/assets/cubemaps/skybox/+x.png +0 -0
- package/examples/payload-game/assets/cubemaps/skybox/+y.png +0 -0
- package/examples/payload-game/assets/cubemaps/skybox/+z.png +0 -0
- package/examples/payload-game/assets/cubemaps/skybox/-x.png +0 -0
- package/examples/payload-game/assets/cubemaps/skybox/-y.png +0 -0
- package/examples/payload-game/assets/cubemaps/skybox/-z.png +0 -0
- package/examples/payload-game/assets/models/spider.gltf +0 -1
- package/examples/payload-game/assets/textures/dragons_stone.png +0 -0
- package/examples/payload-game/assets/textures/infected_shadowrock.png +0 -0
- package/examples/payload-game/assets/textures/shadowrock.png +0 -0
- package/examples/payload-game/assets/textures/stone.png +0 -0
- package/examples/payload-game/assets/textures/stone_bricks.png +0 -0
- package/examples/payload-game/assets/textures/void_sand.png +0 -0
package/bin/scripts.js
CHANGED
@@ -29,9 +29,11 @@ const path = require('path');
|
|
29
29
|
|
30
30
|
// Initialize project with latest HYTOPIA SDK
|
31
31
|
console.log('🔧 Initializing project with latest HYTOPIA SDK...');
|
32
|
+
|
32
33
|
execSync('bun init --yes');
|
33
34
|
execSync('bun add hytopia@latest');
|
34
|
-
|
35
|
+
execSync('bun add @hytopia.com/assets');
|
36
|
+
|
35
37
|
if (flags.template) {
|
36
38
|
// Init from example template
|
37
39
|
console.log(`🖨️ Initializing project with examples template "${flags.template}"...`);
|
@@ -53,6 +55,13 @@ const path = require('path');
|
|
53
55
|
fs.cpSync(srcDir, destDir, { recursive: true });
|
54
56
|
}
|
55
57
|
|
58
|
+
// Copy assets into project, not overwriting existing files
|
59
|
+
fs.cpSync(
|
60
|
+
path.join(__dirname, 'node_modules', '@hytopia.com', 'assets'),
|
61
|
+
path.join(destDir, 'assets'),
|
62
|
+
{ recursive: true, force: false }
|
63
|
+
);
|
64
|
+
|
56
65
|
// Done, lfg!
|
57
66
|
console.log('--------------------------------');
|
58
67
|
console.log('🚀 Hytopia project initialized successfully!');
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [BaseCharacterController](./server.basecharactercontroller.md) > [createColliders](./server.basecharactercontroller.createcolliders.md)
|
4
|
+
|
5
|
+
## BaseCharacterController.createColliders() method
|
6
|
+
|
7
|
+
Override this method to create controller specific colliders to be attached to the controlled entity when it spawns.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
createColliders(): Collider[];
|
13
|
+
```
|
14
|
+
**Returns:**
|
15
|
+
|
16
|
+
[Collider](./server.collider.md)<!-- -->\[\]
|
17
|
+
|
18
|
+
An array of colliders.
|
19
|
+
|
@@ -154,7 +154,7 @@ Description
|
|
154
154
|
</th></tr></thead>
|
155
155
|
<tbody><tr><td>
|
156
156
|
|
157
|
-
[
|
157
|
+
[createColliders()](./server.basecharactercontroller.createcolliders.md)
|
158
158
|
|
159
159
|
|
160
160
|
</td><td>
|
@@ -162,7 +162,7 @@ Description
|
|
162
162
|
|
163
163
|
</td><td>
|
164
164
|
|
165
|
-
Override this method to create
|
165
|
+
Override this method to create controller specific colliders to be attached to the controlled entity when it spawns.
|
166
166
|
|
167
167
|
|
168
168
|
</td></tr>
|
package/docs/server.blocktype.md
CHANGED
@@ -183,7 +183,7 @@ The name of the block type.
|
|
183
183
|
|
184
184
|
</td><td>
|
185
185
|
|
186
|
-
(blockType: [BlockType](./server.blocktype.md)<!-- -->, entity: [Entity](./server.entity.md)<!-- -->, started: boolean) => void
|
186
|
+
((blockType: [BlockType](./server.blocktype.md)<!-- -->, entity: [Entity](./server.entity.md)<!-- -->, started: boolean) => void) \| ((blockType: [BlockType](./server.blocktype.md)<!-- -->, entity: [Entity](./server.entity.md)<!-- -->, started: boolean, colliderHandleA: number, colliderHandleB: number) => void)
|
187
187
|
|
188
188
|
|
189
189
|
</td><td>
|
@@ -9,5 +9,10 @@ A callback function that is invoked when an entity collides with blocks of this
|
|
9
9
|
**Signature:**
|
10
10
|
|
11
11
|
```typescript
|
12
|
-
onEntityCollision?: (blockType: BlockType, entity: Entity, started: boolean) => void;
|
12
|
+
onEntityCollision?: ((blockType: BlockType, entity: Entity, started: boolean) => void) | ((blockType: BlockType, entity: Entity, started: boolean, colliderHandleA: number, colliderHandleB: number) => void);
|
13
13
|
```
|
14
|
+
|
15
|
+
## Remarks
|
16
|
+
|
17
|
+
This must be set before a block of this type is created. If it is set after a block is created, only future created blocks of this type will have the callback set.
|
18
|
+
|
@@ -11,3 +11,8 @@ A callback function that is invoked when an entity contacts a block of this type
|
|
11
11
|
```typescript
|
12
12
|
onEntityContactForce?: (blockType: BlockType, entity: Entity, contactForceData: ContactForceData) => void;
|
13
13
|
```
|
14
|
+
|
15
|
+
## Remarks
|
16
|
+
|
17
|
+
This must be set before a block of this type is created. If it is set after a block is created, only future created blocks of this type will have the callback set.
|
18
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [CoefficientCombineRule](./server.coefficientcombinerule.md)
|
4
|
+
|
5
|
+
## CoefficientCombineRule enum
|
6
|
+
|
7
|
+
The coefficient for friction or bounciness combine rule.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
export declare enum CoefficientCombineRule
|
13
|
+
```
|
14
|
+
|
15
|
+
## Enumeration Members
|
16
|
+
|
17
|
+
<table><thead><tr><th>
|
18
|
+
|
19
|
+
Member
|
20
|
+
|
21
|
+
|
22
|
+
</th><th>
|
23
|
+
|
24
|
+
Value
|
25
|
+
|
26
|
+
|
27
|
+
</th><th>
|
28
|
+
|
29
|
+
Description
|
30
|
+
|
31
|
+
|
32
|
+
</th></tr></thead>
|
33
|
+
<tbody><tr><td>
|
34
|
+
|
35
|
+
Average
|
36
|
+
|
37
|
+
|
38
|
+
</td><td>
|
39
|
+
|
40
|
+
`0`
|
41
|
+
|
42
|
+
|
43
|
+
</td><td>
|
44
|
+
|
45
|
+
|
46
|
+
</td></tr>
|
47
|
+
<tr><td>
|
48
|
+
|
49
|
+
Max
|
50
|
+
|
51
|
+
|
52
|
+
</td><td>
|
53
|
+
|
54
|
+
`3`
|
55
|
+
|
56
|
+
|
57
|
+
</td><td>
|
58
|
+
|
59
|
+
|
60
|
+
</td></tr>
|
61
|
+
<tr><td>
|
62
|
+
|
63
|
+
Min
|
64
|
+
|
65
|
+
|
66
|
+
</td><td>
|
67
|
+
|
68
|
+
`1`
|
69
|
+
|
70
|
+
|
71
|
+
</td><td>
|
72
|
+
|
73
|
+
|
74
|
+
</td></tr>
|
75
|
+
<tr><td>
|
76
|
+
|
77
|
+
Multiply
|
78
|
+
|
79
|
+
|
80
|
+
</td><td>
|
81
|
+
|
82
|
+
`2`
|
83
|
+
|
84
|
+
|
85
|
+
</td><td>
|
86
|
+
|
87
|
+
|
88
|
+
</td></tr>
|
89
|
+
</tbody></table>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [Collider](./server.collider.md) > [getBouncinessCombineRule](./server.collider.getbouncinesscombinerule.md)
|
4
|
+
|
5
|
+
## Collider.getBouncinessCombineRule() method
|
6
|
+
|
7
|
+
Gets the bounciness combine rule of the collider.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
getBouncinessCombineRule(): CoefficientCombineRule;
|
13
|
+
```
|
14
|
+
**Returns:**
|
15
|
+
|
16
|
+
[CoefficientCombineRule](./server.coefficientcombinerule.md)
|
17
|
+
|
18
|
+
The bounciness combine rule of the collider.
|
19
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [Collider](./server.collider.md) > [getFrictionCombineRule](./server.collider.getfrictioncombinerule.md)
|
4
|
+
|
5
|
+
## Collider.getFrictionCombineRule() method
|
6
|
+
|
7
|
+
Gets the friction combine rule of the collider.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
getFrictionCombineRule(): CoefficientCombineRule;
|
13
|
+
```
|
14
|
+
**Returns:**
|
15
|
+
|
16
|
+
[CoefficientCombineRule](./server.coefficientcombinerule.md)
|
17
|
+
|
18
|
+
The friction combine rule of the collider.
|
19
|
+
|
package/docs/server.collider.md
CHANGED
@@ -316,6 +316,20 @@ Enables or disables contact force events for the collider. This is automatically
|
|
316
316
|
Gets the bounciness of the collider.
|
317
317
|
|
318
318
|
|
319
|
+
</td></tr>
|
320
|
+
<tr><td>
|
321
|
+
|
322
|
+
[getBouncinessCombineRule()](./server.collider.getbouncinesscombinerule.md)
|
323
|
+
|
324
|
+
|
325
|
+
</td><td>
|
326
|
+
|
327
|
+
|
328
|
+
</td><td>
|
329
|
+
|
330
|
+
Gets the bounciness combine rule of the collider.
|
331
|
+
|
332
|
+
|
319
333
|
</td></tr>
|
320
334
|
<tr><td>
|
321
335
|
|
@@ -344,6 +358,20 @@ Gets the collision groups the collider belongs to.
|
|
344
358
|
Gets the friction of the collider.
|
345
359
|
|
346
360
|
|
361
|
+
</td></tr>
|
362
|
+
<tr><td>
|
363
|
+
|
364
|
+
[getFrictionCombineRule()](./server.collider.getfrictioncombinerule.md)
|
365
|
+
|
366
|
+
|
367
|
+
</td><td>
|
368
|
+
|
369
|
+
|
370
|
+
</td><td>
|
371
|
+
|
372
|
+
Gets the friction combine rule of the collider.
|
373
|
+
|
374
|
+
|
347
375
|
</td></tr>
|
348
376
|
<tr><td>
|
349
377
|
|
@@ -400,6 +428,20 @@ Removes the collider from the simulation.
|
|
400
428
|
Sets the bounciness of the collider.
|
401
429
|
|
402
430
|
|
431
|
+
</td></tr>
|
432
|
+
<tr><td>
|
433
|
+
|
434
|
+
[setBouncinessCombineRule(bouncinessCombineRule)](./server.collider.setbouncinesscombinerule.md)
|
435
|
+
|
436
|
+
|
437
|
+
</td><td>
|
438
|
+
|
439
|
+
|
440
|
+
</td><td>
|
441
|
+
|
442
|
+
Sets the bounciness combine rule of the collider.
|
443
|
+
|
444
|
+
|
403
445
|
</td></tr>
|
404
446
|
<tr><td>
|
405
447
|
|
@@ -442,6 +484,20 @@ Sets whether the collider is enabled.
|
|
442
484
|
Sets the friction of the collider.
|
443
485
|
|
444
486
|
|
487
|
+
</td></tr>
|
488
|
+
<tr><td>
|
489
|
+
|
490
|
+
[setFrictionCombineRule(frictionCombineRule)](./server.collider.setfrictioncombinerule.md)
|
491
|
+
|
492
|
+
|
493
|
+
</td><td>
|
494
|
+
|
495
|
+
|
496
|
+
</td><td>
|
497
|
+
|
498
|
+
Sets the friction combine rule of the collider.
|
499
|
+
|
500
|
+
|
445
501
|
</td></tr>
|
446
502
|
<tr><td>
|
447
503
|
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [Collider](./server.collider.md) > [setBouncinessCombineRule](./server.collider.setbouncinesscombinerule.md)
|
4
|
+
|
5
|
+
## Collider.setBouncinessCombineRule() method
|
6
|
+
|
7
|
+
Sets the bounciness combine rule of the collider.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
setBouncinessCombineRule(bouncinessCombineRule: CoefficientCombineRule): void;
|
13
|
+
```
|
14
|
+
|
15
|
+
## Parameters
|
16
|
+
|
17
|
+
<table><thead><tr><th>
|
18
|
+
|
19
|
+
Parameter
|
20
|
+
|
21
|
+
|
22
|
+
</th><th>
|
23
|
+
|
24
|
+
Type
|
25
|
+
|
26
|
+
|
27
|
+
</th><th>
|
28
|
+
|
29
|
+
Description
|
30
|
+
|
31
|
+
|
32
|
+
</th></tr></thead>
|
33
|
+
<tbody><tr><td>
|
34
|
+
|
35
|
+
bouncinessCombineRule
|
36
|
+
|
37
|
+
|
38
|
+
</td><td>
|
39
|
+
|
40
|
+
[CoefficientCombineRule](./server.coefficientcombinerule.md)
|
41
|
+
|
42
|
+
|
43
|
+
</td><td>
|
44
|
+
|
45
|
+
The bounciness combine rule of the collider.
|
46
|
+
|
47
|
+
|
48
|
+
</td></tr>
|
49
|
+
</tbody></table>
|
50
|
+
**Returns:**
|
51
|
+
|
52
|
+
void
|
53
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [Collider](./server.collider.md) > [setFrictionCombineRule](./server.collider.setfrictioncombinerule.md)
|
4
|
+
|
5
|
+
## Collider.setFrictionCombineRule() method
|
6
|
+
|
7
|
+
Sets the friction combine rule of the collider.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
setFrictionCombineRule(frictionCombineRule: CoefficientCombineRule): void;
|
13
|
+
```
|
14
|
+
|
15
|
+
## Parameters
|
16
|
+
|
17
|
+
<table><thead><tr><th>
|
18
|
+
|
19
|
+
Parameter
|
20
|
+
|
21
|
+
|
22
|
+
</th><th>
|
23
|
+
|
24
|
+
Type
|
25
|
+
|
26
|
+
|
27
|
+
</th><th>
|
28
|
+
|
29
|
+
Description
|
30
|
+
|
31
|
+
|
32
|
+
</th></tr></thead>
|
33
|
+
<tbody><tr><td>
|
34
|
+
|
35
|
+
frictionCombineRule
|
36
|
+
|
37
|
+
|
38
|
+
</td><td>
|
39
|
+
|
40
|
+
[CoefficientCombineRule](./server.coefficientcombinerule.md)
|
41
|
+
|
42
|
+
|
43
|
+
</td><td>
|
44
|
+
|
45
|
+
The friction combine rule of the collider.
|
46
|
+
|
47
|
+
|
48
|
+
</td></tr>
|
49
|
+
</tbody></table>
|
50
|
+
**Returns:**
|
51
|
+
|
52
|
+
void
|
53
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [ColliderOptions](./server.collideroptions.md) > [bouncinessCombineRule](./server.collideroptions.bouncinesscombinerule.md)
|
4
|
+
|
5
|
+
## ColliderOptions.bouncinessCombineRule property
|
6
|
+
|
7
|
+
The bounciness combine rule of the collider.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
bouncinessCombineRule?: CoefficientCombineRule;
|
13
|
+
```
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [ColliderOptions](./server.collideroptions.md) > [frictionCombineRule](./server.collideroptions.frictioncombinerule.md)
|
4
|
+
|
5
|
+
## ColliderOptions.frictionCombineRule property
|
6
|
+
|
7
|
+
The friction combine rule of the collider.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
frictionCombineRule?: CoefficientCombineRule;
|
13
|
+
```
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [ColliderOptions](./server.collideroptions.md) > [indices](./server.collideroptions.indices.md)
|
4
|
+
|
5
|
+
## ColliderOptions.indices property
|
6
|
+
|
7
|
+
The indices of the collider if the shape is a trimesh.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
indices?: Uint32Array;
|
13
|
+
```
|
@@ -72,6 +72,25 @@ number
|
|
72
72
|
_(Optional)_ The bounciness of the collider.
|
73
73
|
|
74
74
|
|
75
|
+
</td></tr>
|
76
|
+
<tr><td>
|
77
|
+
|
78
|
+
[bouncinessCombineRule?](./server.collideroptions.bouncinesscombinerule.md)
|
79
|
+
|
80
|
+
|
81
|
+
</td><td>
|
82
|
+
|
83
|
+
|
84
|
+
</td><td>
|
85
|
+
|
86
|
+
[CoefficientCombineRule](./server.coefficientcombinerule.md)
|
87
|
+
|
88
|
+
|
89
|
+
</td><td>
|
90
|
+
|
91
|
+
_(Optional)_ The bounciness combine rule of the collider.
|
92
|
+
|
93
|
+
|
75
94
|
</td></tr>
|
76
95
|
<tr><td>
|
77
96
|
|
@@ -129,6 +148,25 @@ number
|
|
129
148
|
_(Optional)_ The friction of the collider.
|
130
149
|
|
131
150
|
|
151
|
+
</td></tr>
|
152
|
+
<tr><td>
|
153
|
+
|
154
|
+
[frictionCombineRule?](./server.collideroptions.frictioncombinerule.md)
|
155
|
+
|
156
|
+
|
157
|
+
</td><td>
|
158
|
+
|
159
|
+
|
160
|
+
</td><td>
|
161
|
+
|
162
|
+
[CoefficientCombineRule](./server.coefficientcombinerule.md)
|
163
|
+
|
164
|
+
|
165
|
+
</td><td>
|
166
|
+
|
167
|
+
_(Optional)_ The friction combine rule of the collider.
|
168
|
+
|
169
|
+
|
132
170
|
</td></tr>
|
133
171
|
<tr><td>
|
134
172
|
|
@@ -167,6 +205,25 @@ number
|
|
167
205
|
_(Optional)_ The half height of the collider if the shape is a capsule, cone, cylinder, or round cylinder.
|
168
206
|
|
169
207
|
|
208
|
+
</td></tr>
|
209
|
+
<tr><td>
|
210
|
+
|
211
|
+
[indices?](./server.collideroptions.indices.md)
|
212
|
+
|
213
|
+
|
214
|
+
</td><td>
|
215
|
+
|
216
|
+
|
217
|
+
</td><td>
|
218
|
+
|
219
|
+
Uint32Array
|
220
|
+
|
221
|
+
|
222
|
+
</td><td>
|
223
|
+
|
224
|
+
_(Optional)_ The indices of the collider if the shape is a trimesh.
|
225
|
+
|
226
|
+
|
170
227
|
</td></tr>
|
171
228
|
<tr><td>
|
172
229
|
|
@@ -357,5 +414,24 @@ string
|
|
357
414
|
_(Optional)_ An arbitrary identifier tag of the collider. Useful for your own logic.
|
358
415
|
|
359
416
|
|
417
|
+
</td></tr>
|
418
|
+
<tr><td>
|
419
|
+
|
420
|
+
[vertices?](./server.collideroptions.vertices.md)
|
421
|
+
|
422
|
+
|
423
|
+
</td><td>
|
424
|
+
|
425
|
+
|
426
|
+
</td><td>
|
427
|
+
|
428
|
+
Float32Array
|
429
|
+
|
430
|
+
|
431
|
+
</td><td>
|
432
|
+
|
433
|
+
_(Optional)_ The vertices of the collider if the shape is a trimesh.
|
434
|
+
|
435
|
+
|
360
436
|
</td></tr>
|
361
437
|
</tbody></table>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [ColliderOptions](./server.collideroptions.md) > [vertices](./server.collideroptions.vertices.md)
|
4
|
+
|
5
|
+
## ColliderOptions.vertices property
|
6
|
+
|
7
|
+
The vertices of the collider if the shape is a trimesh.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
vertices?: Float32Array;
|
13
|
+
```
|
@@ -9,7 +9,7 @@ A callback function that is called when a collision occurs.
|
|
9
9
|
**Signature:**
|
10
10
|
|
11
11
|
```typescript
|
12
|
-
export type CollisionCallback = (other: BlockType | Entity, started: boolean) => void;
|
12
|
+
export type CollisionCallback = ((other: BlockType | Entity, started: boolean) => void) | ((other: BlockType | Entity, started: boolean, colliderHandleA: number, colliderHandleB: number) => void);
|
13
13
|
```
|
14
14
|
**References:** [BlockType](./server.blocktype.md)<!-- -->, [Entity](./server.entity.md)
|
15
15
|
|
@@ -1,15 +1,15 @@
|
|
1
1
|
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
2
|
|
3
|
-
[Home](./index.md) > [server](./server.md) > [DefaultCharacterController](./server.defaultcharactercontroller.md) > [
|
3
|
+
[Home](./index.md) > [server](./server.md) > [DefaultCharacterController](./server.defaultcharactercontroller.md) > [createColliders](./server.defaultcharactercontroller.createcolliders.md)
|
4
4
|
|
5
|
-
## DefaultCharacterController.
|
5
|
+
## DefaultCharacterController.createColliders() method
|
6
6
|
|
7
|
-
Creates the
|
7
|
+
Creates the colliders for the character controller, overriding the default implementation.
|
8
8
|
|
9
9
|
**Signature:**
|
10
10
|
|
11
11
|
```typescript
|
12
|
-
|
12
|
+
createColliders(): Collider[];
|
13
13
|
```
|
14
14
|
**Returns:**
|
15
15
|
|
@@ -290,7 +290,7 @@ Description
|
|
290
290
|
</th></tr></thead>
|
291
291
|
<tbody><tr><td>
|
292
292
|
|
293
|
-
[
|
293
|
+
[createColliders()](./server.defaultcharactercontroller.createcolliders.md)
|
294
294
|
|
295
295
|
|
296
296
|
</td><td>
|
@@ -298,7 +298,7 @@ Description
|
|
298
298
|
|
299
299
|
</td><td>
|
300
300
|
|
301
|
-
Creates the
|
301
|
+
Creates the colliders for the character controller, overriding the default implementation.
|
302
302
|
|
303
303
|
|
304
304
|
</td></tr>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [Entity](./server.entity.md) > [isBlockEntity](./server.entity.isblockentity.md)
|
4
|
+
|
5
|
+
## Entity.isBlockEntity property
|
6
|
+
|
7
|
+
Whether the entity is a block entity.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
get isBlockEntity(): boolean;
|
13
|
+
```
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
|
2
|
+
|
3
|
+
[Home](./index.md) > [server](./server.md) > [Entity](./server.entity.md) > [isModelEntity](./server.entity.ismodelentity.md)
|
4
|
+
|
5
|
+
## Entity.isModelEntity property
|
6
|
+
|
7
|
+
Whether the entity is a model entity.
|
8
|
+
|
9
|
+
**Signature:**
|
10
|
+
|
11
|
+
```typescript
|
12
|
+
get isModelEntity(): boolean;
|
13
|
+
```
|