feat: Integrated Stream asset and Kai animation system
BIN
main/assets/hotbar_background.png
Normal file
|
After Width: | Height: | Size: 186 KiB |
BIN
main/assets/inventory_panel.png
Normal file
|
After Width: | Height: | Size: 786 KiB |
BIN
main/assets/kai_walk_sheet.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
main/assets/minimap_frame.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
main/assets/references/umazan_potok_ref.jpg
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
main/assets/stream_pipe.png
Normal file
|
After Width: | Height: | Size: 884 KiB |
BIN
main/assets/stream_winding.png
Normal file
|
After Width: | Height: | Size: 891 KiB |
BIN
main/assets/weather_icons_sheet.png
Normal file
|
After Width: | Height: | Size: 496 KiB |
BIN
main/assets/weather_widget.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
@@ -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 {
|
||||
|
||||
@@ -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
@@ -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
@@ -0,0 +1 @@
|
||||
prototype: "/main/vibe_grass.go"
|
||||
15
main/vibe_grass.go
Normal 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
@@ -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
|
||||
7
main/vibe_grass.tilesource
Normal 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
@@ -0,0 +1 @@
|
||||
prototype: "/main/vibe_kai.go"
|
||||
15
main/vibe_kai.go
Normal 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
@@ -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
@@ -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
@@ -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
@@ -0,0 +1 @@
|
||||
prototype: "/main/vibe_water.go"
|
||||
15
main/vibe_water.go
Normal 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
@@ -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
|
||||
7
main/vibe_water.tilesource
Normal 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"
|
||||