feat: Integrated Stream asset and Kai animation system

This commit is contained in:
2026-01-29 00:09:00 +01:00
parent 94565adffc
commit afa0e3c662
59 changed files with 1477 additions and 19 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

BIN
main/assets/stream_pipe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

View File

@@ -11,7 +11,7 @@ images {
sprite_trim_mode: SPRITE_TRIM_MODE_OFF
}
images {
image: "/main/assets/sleeping_bag.png"
image: "/main/assets/stream_winding.png"
sprite_trim_mode: SPRITE_TRIM_MODE_OFF
}
images {

View File

@@ -1,8 +1,8 @@
name: "default"
scale_along_z: 0
instances {
id: "ground"
prototype: "/main/ground.go"
id: "vibe_main"
prototype: "/main/vibe_main.go"
position {
x: 0.0
y: 0.0

7
main/vibe.atlas Normal file
View File

@@ -0,0 +1,7 @@
images {
image: "/assets/DEMO_FAZA1/Characters/Kai_Dreads.png"
sprite_trim_mode: SPRITE_TRIM_MODE_OFF
}
margin: 0
extrude_borders: 2
inner_padding: 0

1
main/vibe_grass.factory Normal file
View File

@@ -0,0 +1 @@
prototype: "/main/vibe_grass.go"

15
main/vibe_grass.go Normal file
View File

@@ -0,0 +1,15 @@
components {
id: "tilemap"
component: "/main/vibe_grass.tilemap"
position {
x: 0.0
y: 0.0
z: 0.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
}

16
main/vibe_grass.tilemap Normal file
View File

@@ -0,0 +1,16 @@
tile_set: "/main/vibe_grass.tilesource"
layers {
id: "grass"
z: 0.0
is_visible: 1
cell { x: 0 y: 0 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 1 y: 0 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 2 y: 0 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 3 y: 0 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 0 y: 1 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 1 y: 1 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 2 y: 1 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 3 y: 1 tile: 0 h_flip: 0 v_flip: 0 }
}
material: "/builtins/materials/tile_map.material"
blend_mode: BLEND_MODE_ALPHA

View File

@@ -0,0 +1,7 @@
image: "/assets/DEMO_FAZA1/Ground/tla_trava_tekstura.png"
tile_width: 512
tile_height: 512
tile_margin: 0
tile_spacing: 0
collision: ""
material_tag: "tile"

1
main/vibe_kai.factory Normal file
View File

@@ -0,0 +1 @@
prototype: "/main/vibe_kai.go"

15
main/vibe_kai.go Normal file
View File

@@ -0,0 +1,15 @@
components {
id: "sprite"
component: "/main/vibe_kai.sprite"
position {
x: 0.0
y: 0.0
z: 0.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
}

4
main/vibe_kai.sprite Normal file
View File

@@ -0,0 +1,4 @@
atlas: "/main/vibe.atlas"
default_animation: "Kai_Dreads"
material: "/builtins/materials/sprite.material"
blend_mode: BLEND_MODE_ALPHA

60
main/vibe_main.go Normal file
View File

@@ -0,0 +1,60 @@
components {
id: "script"
component: "/main/vibe_main.script"
position {
x: 0.0
y: 0.0
z: 0.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
}
components {
id: "grass_factory"
component: "/main/vibe_grass.factory"
position {
x: 0.0
y: 0.0
z: 0.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
}
components {
id: "water_factory"
component: "/main/vibe_water.factory"
position {
x: 0.0
y: 0.0
z: 0.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
}
components {
id: "kai_factory"
component: "/main/vibe_kai.factory"
position {
x: 0.0
y: 0.0
z: 0.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
}

17
main/vibe_main.script Normal file
View File

@@ -0,0 +1,17 @@
-- One-file "vibe" bootstrap: spawns grass + water + Kai (no gameplay code)
local function v3(x, y, z)
return vmath.vector3(x or 0, y or 0, z or 0)
end
function init(self)
-- Bottom water strip
factory.create("#water_factory", v3(0, 0, 0))
-- Grass platform above water (water image is 444px tall)
factory.create("#grass_factory", v3(0, 444, 0))
-- Kai on the grass (roughly centered on a 4-tile wide grass strip: 4 * 512 = 2048)
-- Place him a bit above the grass seam so feet sit on the platform.
factory.create("#kai_factory", v3(1024, 560, 0))
end

1
main/vibe_water.factory Normal file
View File

@@ -0,0 +1 @@
prototype: "/main/vibe_water.go"

15
main/vibe_water.go Normal file
View File

@@ -0,0 +1,15 @@
components {
id: "tilemap"
component: "/main/vibe_water.tilemap"
position {
x: 0.0
y: 0.0
z: 0.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
}

12
main/vibe_water.tilemap Normal file
View File

@@ -0,0 +1,12 @@
tile_set: "/main/vibe_water.tilesource"
layers {
id: "water"
z: 0.0
is_visible: 1
cell { x: 0 y: 0 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 1 y: 0 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 2 y: 0 tile: 0 h_flip: 0 v_flip: 0 }
cell { x: 3 y: 0 tile: 0 h_flip: 0 v_flip: 0 }
}
material: "/builtins/materials/tile_map.material"
blend_mode: BLEND_MODE_ALPHA

View File

@@ -0,0 +1,7 @@
image: "/assets/DEMO_FAZA1/Environment/stream_water.png"
tile_width: 512
tile_height: 444
tile_margin: 0
tile_spacing: 0
collision: ""
material_tag: "tile"