Complete local voxel MVP with server, client, MCP, packages and world interchange

This commit is contained in:
Emil
2026-09-14 17:35:17 +03:00
parent cf8d1aae2e
commit b6ba064339
98 changed files with 58116 additions and 194 deletions
+7
View File
@@ -0,0 +1,7 @@
{
"schema": 1,
"texture": "client/texture.png",
"texture_mode": "repeat-tint",
"pixel_size": 64,
"license": "MIT OR Apache-2.0"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

+7
View File
@@ -0,0 +1,7 @@
{
"schema": 1,
"catalog": "builtin-java-26.2",
"data_version": 4903,
"coordinates": "+Y up; block models in [0,1], entity models relative feet",
"vanilla_assets": false
}
+36
View File
@@ -0,0 +1,36 @@
{
"schema": 1,
"id": "shacraft.base",
"version": "1.0.0",
"license": "MIT OR Apache-2.0",
"dependencies": [],
"capabilities": [
"blocks.define",
"entities.define",
"client.texture",
"client.style"
],
"resources": [
{
"path": "common/definitions.json",
"scope": "common",
"role": "definitions",
"size": 181,
"sha256": "507e949a255703188fd9af3d8be1c8c1c7e67bd2775d4ed729df8c77f96f6061"
},
{
"path": "client/texture.png",
"scope": "client",
"role": "texture",
"size": 3939,
"sha256": "a2972ac39a68292b2fe52bbc246b6f52c639ba2f5d1cd90ec405d0f50e502d86"
},
{
"path": "client/style.json",
"scope": "client",
"role": "client-style",
"size": 140,
"sha256": "2a770ffd217e7689df99e01384b93bf8b0f0608d82a46fa57d31fc5a618727f6"
}
]
}
Binary file not shown.
+13
View File
@@ -0,0 +1,13 @@
{
"schema": 1,
"block": "shacraft:trampoline",
"color": [
97,
205,
151
],
"texture": "client/texture.png",
"effect": "bounce",
"sound": "client/bounce.wav",
"shader": "client/tint.glsl"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

+4
View File
@@ -0,0 +1,4 @@
// Original optional Shacraft material function. GLSL ES 3.00.
vec3 shacraftBounceTint(vec3 color, float pulse) {
return color * (1.0 + 0.12 * clamp(pulse, 0.0, 1.0));
}
@@ -0,0 +1,42 @@
{
"schema": 1,
"blocks": [
{
"state": "shacraft:trampoline",
"color": [
97,
205,
151
],
"collision": [
{
"min": [
0,
0,
0
],
"max": [
1,
1,
1
]
}
],
"behavior": {
"server_hook": "on_jump"
}
}
],
"client_effect": {
"on_jump": "bounce"
},
"capability_contract": {
"hook": "on_jump",
"parameters": [],
"result": "f32",
"units": "blocks/second",
"fuel": 10000,
"memory_pages": 1,
"imports": []
}
}
+71
View File
@@ -0,0 +1,71 @@
{
"schema": 1,
"id": "shacraft.trampoline",
"version": "1.0.0",
"license": "MIT OR Apache-2.0",
"dependencies": [
{
"id": "shacraft.base",
"version": "1.0.0"
}
],
"capabilities": [
"blocks.define",
"client.texture",
"client.style",
"client.shader",
"client.sound",
"server.on_jump"
],
"resources": [
{
"path": "common/definitions.json",
"scope": "common",
"role": "definitions",
"size": 650,
"sha256": "c010805c969996de33d8c679fba3dd7862fe6d39326d318727cf5748f4e1f22c"
},
{
"path": "client/texture.png",
"scope": "client",
"role": "texture",
"size": 123,
"sha256": "c8a96e96e1a859294db67f08dbbbde13b2c6dbdce38360dbbb6a5591b8ec1d95"
},
{
"path": "client/style.json",
"scope": "client",
"role": "client-style",
"size": 216,
"sha256": "ba703e1774d8f8859d5e61502d03e98948da811d53589147b886203e4323db9a"
},
{
"path": "client/bounce.wav",
"scope": "client",
"role": "sound",
"size": 7982,
"sha256": "3ab75928b1347ad2c37f4708e3a3f035ffe32a71f0ba1702253a2d926cc3f51d"
},
{
"path": "client/tint.glsl",
"scope": "client",
"role": "shader",
"size": 174,
"sha256": "ea8dd1286f475cfc25968588425d74f74378bb27b466442398a7a0399433bb4f"
},
{
"path": "server/trampoline.wasm",
"scope": "server",
"role": "wasm-on-jump",
"size": 43,
"sha256": "c0c756b7dc5f1e829b75861ae15e83c318e24b143d4970acfa821012764dd7bb"
},
{
"path": "server/trampoline.wat",
"scope": "server",
"role": "wasm-source",
"size": 145,
"sha256": "cd27136aec4d3b39865d7229be4968529a3a90557fb72238b38276e37a0c311d"
}
]
}
Binary file not shown.
@@ -0,0 +1,2 @@
;; Original executable server extension. No imports, memory, filesystem or network.
(module (func (export "on_jump") (result f32) f32.const 10))