Commit baked atlases for all 8 blob-styles; remove atlases/ from .gitignore
Aligns with the other lib-asset prototype packages (fa-starter, subterrain) where baked atlases ship with the lib instead of being regenerated per-consumer. Removes a runtime atlas-baker dependency for downstream consumers (vagrant-skeleton, map-editor) — they can load the JSON+PNG pair directly after a plain install-reference stage without invoking Python+Node toolchains. Variants committed: blob_concave, blob_diagonal_cut, blob_organic, blob_rectilinear, blob_rect_grass, blob_rect_stone, blob_rect_wood, blob_testbench. Re-bake via scripts/bake.sh when sources change.
1
.gitignore
vendored
@@ -1,3 +1,2 @@
|
||||
__pycache__/
|
||||
*.pyc
|
||||
assets/atlases/
|
||||
|
||||
152
assets/atlases/blob_concave/tiles.atlas.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"atlas_id": "blob_concave",
|
||||
"atlas_version": 2,
|
||||
"atlas_size_px": [
|
||||
1024,
|
||||
128
|
||||
],
|
||||
"tile_size_px": 64,
|
||||
"tiles": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "slot_00_isolated",
|
||||
"uv": [
|
||||
2,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "slot_01_end",
|
||||
"uv": [
|
||||
70,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "slot_02_corner_open",
|
||||
"uv": [
|
||||
138,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "slot_03_corner_full",
|
||||
"uv": [
|
||||
206,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "slot_04_straight",
|
||||
"uv": [
|
||||
274,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "slot_05_tee_open",
|
||||
"uv": [
|
||||
342,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "slot_06_tee_half",
|
||||
"uv": [
|
||||
410,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "slot_07_tee_full",
|
||||
"uv": [
|
||||
478,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "slot_08_cross_open",
|
||||
"uv": [
|
||||
546,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "slot_09_cross_q1",
|
||||
"uv": [
|
||||
614,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
682,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
750,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "slot_12_cross_q3",
|
||||
"uv": [
|
||||
818,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "slot_13_solid",
|
||||
"uv": [
|
||||
886,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
}
|
||||
]
|
||||
}
|
||||
21
assets/atlases/blob_concave/tiles.atlas.lock.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"atlas_id": "blob_concave",
|
||||
"bindings": {
|
||||
"slot_00_isolated": 1,
|
||||
"slot_01_end": 2,
|
||||
"slot_02_corner_open": 3,
|
||||
"slot_03_corner_full": 4,
|
||||
"slot_04_straight": 5,
|
||||
"slot_05_tee_open": 6,
|
||||
"slot_06_tee_half": 7,
|
||||
"slot_07_tee_full": 8,
|
||||
"slot_08_cross_open": 9,
|
||||
"slot_09_cross_q1": 10,
|
||||
"slot_10_cross_q2adj": 11,
|
||||
"slot_11_cross_q2opp": 12,
|
||||
"slot_12_cross_q3": 13,
|
||||
"slot_13_solid": 14
|
||||
},
|
||||
"deleted": [],
|
||||
"next_id": 15
|
||||
}
|
||||
270
assets/atlases/blob_concave/tiles.collision.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"schema": "blob-14",
|
||||
"tile_size_px": 64,
|
||||
"sub_cell_px": 16,
|
||||
"shape_kind": "rect_list",
|
||||
"_note": "Collision matches the rectilinear visual exactly. For diagonal_cut/organic/concave styles, the visible boundary deviates by up to 5 px at convex external corners — acceptable for typical gameplay collision. Modders needing pixel-perfect physics ship per-style polygon overrides.",
|
||||
"slots": [
|
||||
{
|
||||
"slot": 0,
|
||||
"name": "isolated",
|
||||
"bitmask": "0b00000000",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 1,
|
||||
"name": "end",
|
||||
"bitmask": "0b00000001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"name": "corner_open",
|
||||
"bitmask": "0b00000101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"name": "corner_full",
|
||||
"bitmask": "0b00000111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"name": "straight",
|
||||
"bitmask": "0b00010001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"name": "tee_open",
|
||||
"bitmask": "0b00010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"name": "tee_half",
|
||||
"bitmask": "0b00010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"name": "tee_full",
|
||||
"bitmask": "0b00011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"name": "cross_open",
|
||||
"bitmask": "0b01010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"name": "cross_q1",
|
||||
"bitmask": "0b01010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"name": "cross_q2adj",
|
||||
"bitmask": "0b01011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 11,
|
||||
"name": "cross_q2opp",
|
||||
"bitmask": "0b01110111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
0,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 12,
|
||||
"name": "cross_q3",
|
||||
"bitmask": "0b01111111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 13,
|
||||
"name": "solid",
|
||||
"bitmask": "0b11111111",
|
||||
"rects": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
64
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"style": "concave"
|
||||
}
|
||||
BIN
assets/atlases/blob_concave/tiles.diffuse.atlas.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/atlases/blob_concave/tiles.height.atlas.png
Normal file
|
After Width: | Height: | Size: 802 B |
152
assets/atlases/blob_diagonal_cut/tiles.atlas.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"atlas_id": "blob_diagonal_cut",
|
||||
"atlas_version": 2,
|
||||
"atlas_size_px": [
|
||||
1024,
|
||||
128
|
||||
],
|
||||
"tile_size_px": 64,
|
||||
"tiles": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "slot_00_isolated",
|
||||
"uv": [
|
||||
2,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "slot_01_end",
|
||||
"uv": [
|
||||
70,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "slot_02_corner_open",
|
||||
"uv": [
|
||||
138,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "slot_03_corner_full",
|
||||
"uv": [
|
||||
206,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "slot_04_straight",
|
||||
"uv": [
|
||||
274,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "slot_05_tee_open",
|
||||
"uv": [
|
||||
342,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "slot_06_tee_half",
|
||||
"uv": [
|
||||
410,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "slot_07_tee_full",
|
||||
"uv": [
|
||||
478,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "slot_08_cross_open",
|
||||
"uv": [
|
||||
546,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "slot_09_cross_q1",
|
||||
"uv": [
|
||||
614,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
682,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
750,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "slot_12_cross_q3",
|
||||
"uv": [
|
||||
818,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "slot_13_solid",
|
||||
"uv": [
|
||||
886,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
}
|
||||
]
|
||||
}
|
||||
21
assets/atlases/blob_diagonal_cut/tiles.atlas.lock.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"atlas_id": "blob_diagonal_cut",
|
||||
"bindings": {
|
||||
"slot_00_isolated": 1,
|
||||
"slot_01_end": 2,
|
||||
"slot_02_corner_open": 3,
|
||||
"slot_03_corner_full": 4,
|
||||
"slot_04_straight": 5,
|
||||
"slot_05_tee_open": 6,
|
||||
"slot_06_tee_half": 7,
|
||||
"slot_07_tee_full": 8,
|
||||
"slot_08_cross_open": 9,
|
||||
"slot_09_cross_q1": 10,
|
||||
"slot_10_cross_q2adj": 11,
|
||||
"slot_11_cross_q2opp": 12,
|
||||
"slot_12_cross_q3": 13,
|
||||
"slot_13_solid": 14
|
||||
},
|
||||
"deleted": [],
|
||||
"next_id": 15
|
||||
}
|
||||
270
assets/atlases/blob_diagonal_cut/tiles.collision.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"schema": "blob-14",
|
||||
"tile_size_px": 64,
|
||||
"sub_cell_px": 16,
|
||||
"shape_kind": "rect_list",
|
||||
"_note": "Collision matches the rectilinear visual exactly. For diagonal_cut/organic/concave styles, the visible boundary deviates by up to 5 px at convex external corners — acceptable for typical gameplay collision. Modders needing pixel-perfect physics ship per-style polygon overrides.",
|
||||
"slots": [
|
||||
{
|
||||
"slot": 0,
|
||||
"name": "isolated",
|
||||
"bitmask": "0b00000000",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 1,
|
||||
"name": "end",
|
||||
"bitmask": "0b00000001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"name": "corner_open",
|
||||
"bitmask": "0b00000101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"name": "corner_full",
|
||||
"bitmask": "0b00000111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"name": "straight",
|
||||
"bitmask": "0b00010001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"name": "tee_open",
|
||||
"bitmask": "0b00010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"name": "tee_half",
|
||||
"bitmask": "0b00010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"name": "tee_full",
|
||||
"bitmask": "0b00011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"name": "cross_open",
|
||||
"bitmask": "0b01010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"name": "cross_q1",
|
||||
"bitmask": "0b01010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"name": "cross_q2adj",
|
||||
"bitmask": "0b01011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 11,
|
||||
"name": "cross_q2opp",
|
||||
"bitmask": "0b01110111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
0,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 12,
|
||||
"name": "cross_q3",
|
||||
"bitmask": "0b01111111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 13,
|
||||
"name": "solid",
|
||||
"bitmask": "0b11111111",
|
||||
"rects": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
64
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"style": "diagonal_cut"
|
||||
}
|
||||
BIN
assets/atlases/blob_diagonal_cut/tiles.diffuse.atlas.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/atlases/blob_diagonal_cut/tiles.height.atlas.png
Normal file
|
After Width: | Height: | Size: 802 B |
152
assets/atlases/blob_organic/tiles.atlas.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"atlas_id": "blob_organic",
|
||||
"atlas_version": 2,
|
||||
"atlas_size_px": [
|
||||
1024,
|
||||
128
|
||||
],
|
||||
"tile_size_px": 64,
|
||||
"tiles": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "slot_00_isolated",
|
||||
"uv": [
|
||||
2,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "slot_01_end",
|
||||
"uv": [
|
||||
70,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "slot_02_corner_open",
|
||||
"uv": [
|
||||
138,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "slot_03_corner_full",
|
||||
"uv": [
|
||||
206,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "slot_04_straight",
|
||||
"uv": [
|
||||
274,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "slot_05_tee_open",
|
||||
"uv": [
|
||||
342,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "slot_06_tee_half",
|
||||
"uv": [
|
||||
410,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "slot_07_tee_full",
|
||||
"uv": [
|
||||
478,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "slot_08_cross_open",
|
||||
"uv": [
|
||||
546,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "slot_09_cross_q1",
|
||||
"uv": [
|
||||
614,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
682,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
750,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "slot_12_cross_q3",
|
||||
"uv": [
|
||||
818,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "slot_13_solid",
|
||||
"uv": [
|
||||
886,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
}
|
||||
]
|
||||
}
|
||||
21
assets/atlases/blob_organic/tiles.atlas.lock.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"atlas_id": "blob_organic",
|
||||
"bindings": {
|
||||
"slot_00_isolated": 1,
|
||||
"slot_01_end": 2,
|
||||
"slot_02_corner_open": 3,
|
||||
"slot_03_corner_full": 4,
|
||||
"slot_04_straight": 5,
|
||||
"slot_05_tee_open": 6,
|
||||
"slot_06_tee_half": 7,
|
||||
"slot_07_tee_full": 8,
|
||||
"slot_08_cross_open": 9,
|
||||
"slot_09_cross_q1": 10,
|
||||
"slot_10_cross_q2adj": 11,
|
||||
"slot_11_cross_q2opp": 12,
|
||||
"slot_12_cross_q3": 13,
|
||||
"slot_13_solid": 14
|
||||
},
|
||||
"deleted": [],
|
||||
"next_id": 15
|
||||
}
|
||||
270
assets/atlases/blob_organic/tiles.collision.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"schema": "blob-14",
|
||||
"tile_size_px": 64,
|
||||
"sub_cell_px": 16,
|
||||
"shape_kind": "rect_list",
|
||||
"_note": "Collision matches the rectilinear visual exactly. For diagonal_cut/organic/concave styles, the visible boundary deviates by up to 5 px at convex external corners — acceptable for typical gameplay collision. Modders needing pixel-perfect physics ship per-style polygon overrides.",
|
||||
"slots": [
|
||||
{
|
||||
"slot": 0,
|
||||
"name": "isolated",
|
||||
"bitmask": "0b00000000",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 1,
|
||||
"name": "end",
|
||||
"bitmask": "0b00000001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"name": "corner_open",
|
||||
"bitmask": "0b00000101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"name": "corner_full",
|
||||
"bitmask": "0b00000111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"name": "straight",
|
||||
"bitmask": "0b00010001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"name": "tee_open",
|
||||
"bitmask": "0b00010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"name": "tee_half",
|
||||
"bitmask": "0b00010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"name": "tee_full",
|
||||
"bitmask": "0b00011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"name": "cross_open",
|
||||
"bitmask": "0b01010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"name": "cross_q1",
|
||||
"bitmask": "0b01010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"name": "cross_q2adj",
|
||||
"bitmask": "0b01011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 11,
|
||||
"name": "cross_q2opp",
|
||||
"bitmask": "0b01110111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
0,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 12,
|
||||
"name": "cross_q3",
|
||||
"bitmask": "0b01111111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 13,
|
||||
"name": "solid",
|
||||
"bitmask": "0b11111111",
|
||||
"rects": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
64
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"style": "organic"
|
||||
}
|
||||
BIN
assets/atlases/blob_organic/tiles.diffuse.atlas.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/atlases/blob_organic/tiles.height.atlas.png
Normal file
|
After Width: | Height: | Size: 802 B |
152
assets/atlases/blob_rect_grass/tiles.atlas.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"atlas_id": "blob_rect_grass",
|
||||
"atlas_version": 2,
|
||||
"atlas_size_px": [
|
||||
1024,
|
||||
128
|
||||
],
|
||||
"tile_size_px": 64,
|
||||
"tiles": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "slot_00_isolated",
|
||||
"uv": [
|
||||
2,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "slot_01_end",
|
||||
"uv": [
|
||||
70,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "slot_02_corner_open",
|
||||
"uv": [
|
||||
138,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "slot_03_corner_full",
|
||||
"uv": [
|
||||
206,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "slot_04_straight",
|
||||
"uv": [
|
||||
274,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "slot_05_tee_open",
|
||||
"uv": [
|
||||
342,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "slot_06_tee_half",
|
||||
"uv": [
|
||||
410,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "slot_07_tee_full",
|
||||
"uv": [
|
||||
478,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "slot_08_cross_open",
|
||||
"uv": [
|
||||
546,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "slot_09_cross_q1",
|
||||
"uv": [
|
||||
614,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
682,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
750,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "slot_12_cross_q3",
|
||||
"uv": [
|
||||
818,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "slot_13_solid",
|
||||
"uv": [
|
||||
886,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
}
|
||||
]
|
||||
}
|
||||
21
assets/atlases/blob_rect_grass/tiles.atlas.lock.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"atlas_id": "blob_rect_grass",
|
||||
"bindings": {
|
||||
"slot_00_isolated": 1,
|
||||
"slot_01_end": 2,
|
||||
"slot_02_corner_open": 3,
|
||||
"slot_03_corner_full": 4,
|
||||
"slot_04_straight": 5,
|
||||
"slot_05_tee_open": 6,
|
||||
"slot_06_tee_half": 7,
|
||||
"slot_07_tee_full": 8,
|
||||
"slot_08_cross_open": 9,
|
||||
"slot_09_cross_q1": 10,
|
||||
"slot_10_cross_q2adj": 11,
|
||||
"slot_11_cross_q2opp": 12,
|
||||
"slot_12_cross_q3": 13,
|
||||
"slot_13_solid": 14
|
||||
},
|
||||
"deleted": [],
|
||||
"next_id": 15
|
||||
}
|
||||
270
assets/atlases/blob_rect_grass/tiles.collision.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"schema": "blob-14",
|
||||
"tile_size_px": 64,
|
||||
"sub_cell_px": 16,
|
||||
"shape_kind": "rect_list",
|
||||
"_note": "Collision matches the rectilinear visual exactly. For diagonal_cut/organic/concave styles, the visible boundary deviates by up to 5 px at convex external corners — acceptable for typical gameplay collision. Modders needing pixel-perfect physics ship per-style polygon overrides.",
|
||||
"slots": [
|
||||
{
|
||||
"slot": 0,
|
||||
"name": "isolated",
|
||||
"bitmask": "0b00000000",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 1,
|
||||
"name": "end",
|
||||
"bitmask": "0b00000001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"name": "corner_open",
|
||||
"bitmask": "0b00000101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"name": "corner_full",
|
||||
"bitmask": "0b00000111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"name": "straight",
|
||||
"bitmask": "0b00010001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"name": "tee_open",
|
||||
"bitmask": "0b00010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"name": "tee_half",
|
||||
"bitmask": "0b00010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"name": "tee_full",
|
||||
"bitmask": "0b00011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"name": "cross_open",
|
||||
"bitmask": "0b01010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"name": "cross_q1",
|
||||
"bitmask": "0b01010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"name": "cross_q2adj",
|
||||
"bitmask": "0b01011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 11,
|
||||
"name": "cross_q2opp",
|
||||
"bitmask": "0b01110111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
0,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 12,
|
||||
"name": "cross_q3",
|
||||
"bitmask": "0b01111111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 13,
|
||||
"name": "solid",
|
||||
"bitmask": "0b11111111",
|
||||
"rects": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
64
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"style": "rectilinear"
|
||||
}
|
||||
BIN
assets/atlases/blob_rect_grass/tiles.diffuse.atlas.png
Normal file
|
After Width: | Height: | Size: 952 B |
BIN
assets/atlases/blob_rect_grass/tiles.height.atlas.png
Normal file
|
After Width: | Height: | Size: 802 B |
152
assets/atlases/blob_rect_stone/tiles.atlas.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"atlas_id": "blob_rect_stone",
|
||||
"atlas_version": 2,
|
||||
"atlas_size_px": [
|
||||
1024,
|
||||
128
|
||||
],
|
||||
"tile_size_px": 64,
|
||||
"tiles": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "slot_00_isolated",
|
||||
"uv": [
|
||||
2,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "slot_01_end",
|
||||
"uv": [
|
||||
70,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "slot_02_corner_open",
|
||||
"uv": [
|
||||
138,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "slot_03_corner_full",
|
||||
"uv": [
|
||||
206,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "slot_04_straight",
|
||||
"uv": [
|
||||
274,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "slot_05_tee_open",
|
||||
"uv": [
|
||||
342,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "slot_06_tee_half",
|
||||
"uv": [
|
||||
410,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "slot_07_tee_full",
|
||||
"uv": [
|
||||
478,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "slot_08_cross_open",
|
||||
"uv": [
|
||||
546,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "slot_09_cross_q1",
|
||||
"uv": [
|
||||
614,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
682,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
750,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "slot_12_cross_q3",
|
||||
"uv": [
|
||||
818,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "slot_13_solid",
|
||||
"uv": [
|
||||
886,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
}
|
||||
]
|
||||
}
|
||||
21
assets/atlases/blob_rect_stone/tiles.atlas.lock.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"atlas_id": "blob_rect_stone",
|
||||
"bindings": {
|
||||
"slot_00_isolated": 1,
|
||||
"slot_01_end": 2,
|
||||
"slot_02_corner_open": 3,
|
||||
"slot_03_corner_full": 4,
|
||||
"slot_04_straight": 5,
|
||||
"slot_05_tee_open": 6,
|
||||
"slot_06_tee_half": 7,
|
||||
"slot_07_tee_full": 8,
|
||||
"slot_08_cross_open": 9,
|
||||
"slot_09_cross_q1": 10,
|
||||
"slot_10_cross_q2adj": 11,
|
||||
"slot_11_cross_q2opp": 12,
|
||||
"slot_12_cross_q3": 13,
|
||||
"slot_13_solid": 14
|
||||
},
|
||||
"deleted": [],
|
||||
"next_id": 15
|
||||
}
|
||||
270
assets/atlases/blob_rect_stone/tiles.collision.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"schema": "blob-14",
|
||||
"tile_size_px": 64,
|
||||
"sub_cell_px": 16,
|
||||
"shape_kind": "rect_list",
|
||||
"_note": "Collision matches the rectilinear visual exactly. For diagonal_cut/organic/concave styles, the visible boundary deviates by up to 5 px at convex external corners — acceptable for typical gameplay collision. Modders needing pixel-perfect physics ship per-style polygon overrides.",
|
||||
"slots": [
|
||||
{
|
||||
"slot": 0,
|
||||
"name": "isolated",
|
||||
"bitmask": "0b00000000",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 1,
|
||||
"name": "end",
|
||||
"bitmask": "0b00000001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"name": "corner_open",
|
||||
"bitmask": "0b00000101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"name": "corner_full",
|
||||
"bitmask": "0b00000111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"name": "straight",
|
||||
"bitmask": "0b00010001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"name": "tee_open",
|
||||
"bitmask": "0b00010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"name": "tee_half",
|
||||
"bitmask": "0b00010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"name": "tee_full",
|
||||
"bitmask": "0b00011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"name": "cross_open",
|
||||
"bitmask": "0b01010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"name": "cross_q1",
|
||||
"bitmask": "0b01010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"name": "cross_q2adj",
|
||||
"bitmask": "0b01011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 11,
|
||||
"name": "cross_q2opp",
|
||||
"bitmask": "0b01110111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
0,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 12,
|
||||
"name": "cross_q3",
|
||||
"bitmask": "0b01111111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 13,
|
||||
"name": "solid",
|
||||
"bitmask": "0b11111111",
|
||||
"rects": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
64
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"style": "rectilinear"
|
||||
}
|
||||
BIN
assets/atlases/blob_rect_stone/tiles.diffuse.atlas.png
Normal file
|
After Width: | Height: | Size: 951 B |
BIN
assets/atlases/blob_rect_stone/tiles.height.atlas.png
Normal file
|
After Width: | Height: | Size: 802 B |
152
assets/atlases/blob_rect_wood/tiles.atlas.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"atlas_id": "blob_rect_wood",
|
||||
"atlas_version": 2,
|
||||
"atlas_size_px": [
|
||||
1024,
|
||||
128
|
||||
],
|
||||
"tile_size_px": 64,
|
||||
"tiles": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "slot_00_isolated",
|
||||
"uv": [
|
||||
2,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "slot_01_end",
|
||||
"uv": [
|
||||
70,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "slot_02_corner_open",
|
||||
"uv": [
|
||||
138,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "slot_03_corner_full",
|
||||
"uv": [
|
||||
206,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "slot_04_straight",
|
||||
"uv": [
|
||||
274,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "slot_05_tee_open",
|
||||
"uv": [
|
||||
342,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "slot_06_tee_half",
|
||||
"uv": [
|
||||
410,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "slot_07_tee_full",
|
||||
"uv": [
|
||||
478,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "slot_08_cross_open",
|
||||
"uv": [
|
||||
546,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "slot_09_cross_q1",
|
||||
"uv": [
|
||||
614,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
682,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
750,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "slot_12_cross_q3",
|
||||
"uv": [
|
||||
818,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "slot_13_solid",
|
||||
"uv": [
|
||||
886,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
}
|
||||
]
|
||||
}
|
||||
21
assets/atlases/blob_rect_wood/tiles.atlas.lock.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"atlas_id": "blob_rect_wood",
|
||||
"bindings": {
|
||||
"slot_00_isolated": 1,
|
||||
"slot_01_end": 2,
|
||||
"slot_02_corner_open": 3,
|
||||
"slot_03_corner_full": 4,
|
||||
"slot_04_straight": 5,
|
||||
"slot_05_tee_open": 6,
|
||||
"slot_06_tee_half": 7,
|
||||
"slot_07_tee_full": 8,
|
||||
"slot_08_cross_open": 9,
|
||||
"slot_09_cross_q1": 10,
|
||||
"slot_10_cross_q2adj": 11,
|
||||
"slot_11_cross_q2opp": 12,
|
||||
"slot_12_cross_q3": 13,
|
||||
"slot_13_solid": 14
|
||||
},
|
||||
"deleted": [],
|
||||
"next_id": 15
|
||||
}
|
||||
270
assets/atlases/blob_rect_wood/tiles.collision.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"schema": "blob-14",
|
||||
"tile_size_px": 64,
|
||||
"sub_cell_px": 16,
|
||||
"shape_kind": "rect_list",
|
||||
"_note": "Collision matches the rectilinear visual exactly. For diagonal_cut/organic/concave styles, the visible boundary deviates by up to 5 px at convex external corners — acceptable for typical gameplay collision. Modders needing pixel-perfect physics ship per-style polygon overrides.",
|
||||
"slots": [
|
||||
{
|
||||
"slot": 0,
|
||||
"name": "isolated",
|
||||
"bitmask": "0b00000000",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 1,
|
||||
"name": "end",
|
||||
"bitmask": "0b00000001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"name": "corner_open",
|
||||
"bitmask": "0b00000101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"name": "corner_full",
|
||||
"bitmask": "0b00000111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"name": "straight",
|
||||
"bitmask": "0b00010001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"name": "tee_open",
|
||||
"bitmask": "0b00010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"name": "tee_half",
|
||||
"bitmask": "0b00010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"name": "tee_full",
|
||||
"bitmask": "0b00011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"name": "cross_open",
|
||||
"bitmask": "0b01010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"name": "cross_q1",
|
||||
"bitmask": "0b01010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"name": "cross_q2adj",
|
||||
"bitmask": "0b01011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 11,
|
||||
"name": "cross_q2opp",
|
||||
"bitmask": "0b01110111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
0,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 12,
|
||||
"name": "cross_q3",
|
||||
"bitmask": "0b01111111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 13,
|
||||
"name": "solid",
|
||||
"bitmask": "0b11111111",
|
||||
"rects": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
64
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"style": "rectilinear"
|
||||
}
|
||||
BIN
assets/atlases/blob_rect_wood/tiles.diffuse.atlas.png
Normal file
|
After Width: | Height: | Size: 951 B |
BIN
assets/atlases/blob_rect_wood/tiles.height.atlas.png
Normal file
|
After Width: | Height: | Size: 802 B |
152
assets/atlases/blob_rectilinear/tiles.atlas.json
Normal file
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"atlas_id": "blob_rectilinear",
|
||||
"atlas_version": 2,
|
||||
"atlas_size_px": [
|
||||
1024,
|
||||
128
|
||||
],
|
||||
"tile_size_px": 64,
|
||||
"tiles": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "slot_00_isolated",
|
||||
"uv": [
|
||||
2,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "slot_01_end",
|
||||
"uv": [
|
||||
70,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "slot_02_corner_open",
|
||||
"uv": [
|
||||
138,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "slot_03_corner_full",
|
||||
"uv": [
|
||||
206,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "slot_04_straight",
|
||||
"uv": [
|
||||
274,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "slot_05_tee_open",
|
||||
"uv": [
|
||||
342,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "slot_06_tee_half",
|
||||
"uv": [
|
||||
410,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "slot_07_tee_full",
|
||||
"uv": [
|
||||
478,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "slot_08_cross_open",
|
||||
"uv": [
|
||||
546,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "slot_09_cross_q1",
|
||||
"uv": [
|
||||
614,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
682,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
750,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "slot_12_cross_q3",
|
||||
"uv": [
|
||||
818,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "slot_13_solid",
|
||||
"uv": [
|
||||
886,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
}
|
||||
]
|
||||
}
|
||||
21
assets/atlases/blob_rectilinear/tiles.atlas.lock.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"atlas_id": "blob_rectilinear",
|
||||
"bindings": {
|
||||
"slot_00_isolated": 1,
|
||||
"slot_01_end": 2,
|
||||
"slot_02_corner_open": 3,
|
||||
"slot_03_corner_full": 4,
|
||||
"slot_04_straight": 5,
|
||||
"slot_05_tee_open": 6,
|
||||
"slot_06_tee_half": 7,
|
||||
"slot_07_tee_full": 8,
|
||||
"slot_08_cross_open": 9,
|
||||
"slot_09_cross_q1": 10,
|
||||
"slot_10_cross_q2adj": 11,
|
||||
"slot_11_cross_q2opp": 12,
|
||||
"slot_12_cross_q3": 13,
|
||||
"slot_13_solid": 14
|
||||
},
|
||||
"deleted": [],
|
||||
"next_id": 15
|
||||
}
|
||||
270
assets/atlases/blob_rectilinear/tiles.collision.json
Normal file
@@ -0,0 +1,270 @@
|
||||
{
|
||||
"schema": "blob-14",
|
||||
"tile_size_px": 64,
|
||||
"sub_cell_px": 16,
|
||||
"shape_kind": "rect_list",
|
||||
"_note": "Collision matches the rectilinear visual exactly. For diagonal_cut/organic/concave styles, the visible boundary deviates by up to 5 px at convex external corners — acceptable for typical gameplay collision. Modders needing pixel-perfect physics ship per-style polygon overrides.",
|
||||
"slots": [
|
||||
{
|
||||
"slot": 0,
|
||||
"name": "isolated",
|
||||
"bitmask": "0b00000000",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
16,
|
||||
32,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 1,
|
||||
"name": "end",
|
||||
"bitmask": "0b00000001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 2,
|
||||
"name": "corner_open",
|
||||
"bitmask": "0b00000101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 3,
|
||||
"name": "corner_full",
|
||||
"bitmask": "0b00000111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 4,
|
||||
"name": "straight",
|
||||
"bitmask": "0b00010001",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 5,
|
||||
"name": "tee_open",
|
||||
"bitmask": "0b00010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
16,
|
||||
16,
|
||||
48,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 6,
|
||||
"name": "tee_half",
|
||||
"bitmask": "0b00010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
48
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 7,
|
||||
"name": "tee_full",
|
||||
"bitmask": "0b00011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
64
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 8,
|
||||
"name": "cross_open",
|
||||
"bitmask": "0b01010101",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
32,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 9,
|
||||
"name": "cross_q1",
|
||||
"bitmask": "0b01010111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
32,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 10,
|
||||
"name": "cross_q2adj",
|
||||
"bitmask": "0b01011111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
16,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 11,
|
||||
"name": "cross_q2opp",
|
||||
"bitmask": "0b01110111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
32
|
||||
],
|
||||
[
|
||||
0,
|
||||
48,
|
||||
48,
|
||||
16
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 12,
|
||||
"name": "cross_q3",
|
||||
"bitmask": "0b01111111",
|
||||
"rects": [
|
||||
[
|
||||
16,
|
||||
0,
|
||||
48,
|
||||
16
|
||||
],
|
||||
[
|
||||
0,
|
||||
16,
|
||||
64,
|
||||
48
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"slot": 13,
|
||||
"name": "solid",
|
||||
"bitmask": "0b11111111",
|
||||
"rects": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
64,
|
||||
64
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"style": "rectilinear"
|
||||
}
|
||||
BIN
assets/atlases/blob_rectilinear/tiles.diffuse.atlas.png
Normal file
|
After Width: | Height: | Size: 951 B |
BIN
assets/atlases/blob_rectilinear/tiles.height.atlas.png
Normal file
|
After Width: | Height: | Size: 802 B |
434
assets/atlases/blob_testbench/tiles.atlas.json
Normal file
@@ -0,0 +1,434 @@
|
||||
{
|
||||
"atlas_id": "blob_testbench",
|
||||
"atlas_version": 2,
|
||||
"atlas_size_px": [
|
||||
4096,
|
||||
128
|
||||
],
|
||||
"tile_size_px": 64,
|
||||
"tiles": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "grass_slot_00_isolated",
|
||||
"uv": [
|
||||
2,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "grass_slot_01_end",
|
||||
"uv": [
|
||||
70,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "grass_slot_02_corner_open",
|
||||
"uv": [
|
||||
138,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "grass_slot_03_corner_full",
|
||||
"uv": [
|
||||
206,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "grass_slot_04_straight",
|
||||
"uv": [
|
||||
274,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "grass_slot_05_tee_open",
|
||||
"uv": [
|
||||
342,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "grass_slot_06_tee_half",
|
||||
"uv": [
|
||||
410,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "grass_slot_07_tee_full",
|
||||
"uv": [
|
||||
478,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "grass_slot_08_cross_open",
|
||||
"uv": [
|
||||
546,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "grass_slot_09_cross_q1",
|
||||
"uv": [
|
||||
614,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"name": "grass_slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
682,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"name": "grass_slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
750,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"name": "grass_slot_12_cross_q3",
|
||||
"uv": [
|
||||
818,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"name": "grass_slot_13_solid",
|
||||
"uv": [
|
||||
886,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"name": "stone_slot_00_isolated",
|
||||
"uv": [
|
||||
954,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"name": "stone_slot_01_end",
|
||||
"uv": [
|
||||
1022,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"name": "stone_slot_02_corner_open",
|
||||
"uv": [
|
||||
1090,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"name": "stone_slot_03_corner_full",
|
||||
"uv": [
|
||||
1158,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 19,
|
||||
"name": "stone_slot_04_straight",
|
||||
"uv": [
|
||||
1226,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 20,
|
||||
"name": "stone_slot_05_tee_open",
|
||||
"uv": [
|
||||
1294,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 21,
|
||||
"name": "stone_slot_06_tee_half",
|
||||
"uv": [
|
||||
1362,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 22,
|
||||
"name": "stone_slot_07_tee_full",
|
||||
"uv": [
|
||||
1430,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 23,
|
||||
"name": "stone_slot_08_cross_open",
|
||||
"uv": [
|
||||
1498,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 24,
|
||||
"name": "stone_slot_09_cross_q1",
|
||||
"uv": [
|
||||
1566,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 25,
|
||||
"name": "stone_slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
1634,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 26,
|
||||
"name": "stone_slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
1702,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 27,
|
||||
"name": "stone_slot_12_cross_q3",
|
||||
"uv": [
|
||||
1770,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 28,
|
||||
"name": "stone_slot_13_solid",
|
||||
"uv": [
|
||||
1838,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"name": "wood_slot_00_isolated",
|
||||
"uv": [
|
||||
1906,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"name": "wood_slot_01_end",
|
||||
"uv": [
|
||||
1974,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 31,
|
||||
"name": "wood_slot_02_corner_open",
|
||||
"uv": [
|
||||
2042,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 32,
|
||||
"name": "wood_slot_03_corner_full",
|
||||
"uv": [
|
||||
2110,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 33,
|
||||
"name": "wood_slot_04_straight",
|
||||
"uv": [
|
||||
2178,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 34,
|
||||
"name": "wood_slot_05_tee_open",
|
||||
"uv": [
|
||||
2246,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 35,
|
||||
"name": "wood_slot_06_tee_half",
|
||||
"uv": [
|
||||
2314,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 36,
|
||||
"name": "wood_slot_07_tee_full",
|
||||
"uv": [
|
||||
2382,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 37,
|
||||
"name": "wood_slot_08_cross_open",
|
||||
"uv": [
|
||||
2450,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 38,
|
||||
"name": "wood_slot_09_cross_q1",
|
||||
"uv": [
|
||||
2518,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 39,
|
||||
"name": "wood_slot_10_cross_q2adj",
|
||||
"uv": [
|
||||
2586,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 40,
|
||||
"name": "wood_slot_11_cross_q2opp",
|
||||
"uv": [
|
||||
2654,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 41,
|
||||
"name": "wood_slot_12_cross_q3",
|
||||
"uv": [
|
||||
2722,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 42,
|
||||
"name": "wood_slot_13_solid",
|
||||
"uv": [
|
||||
2790,
|
||||
2,
|
||||
64,
|
||||
64
|
||||
],
|
||||
"opaque": true
|
||||
}
|
||||
]
|
||||
}
|
||||
49
assets/atlases/blob_testbench/tiles.atlas.lock.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"atlas_id": "blob_testbench",
|
||||
"bindings": {
|
||||
"grass_slot_00_isolated": 1,
|
||||
"grass_slot_01_end": 2,
|
||||
"grass_slot_02_corner_open": 3,
|
||||
"grass_slot_03_corner_full": 4,
|
||||
"grass_slot_04_straight": 5,
|
||||
"grass_slot_05_tee_open": 6,
|
||||
"grass_slot_06_tee_half": 7,
|
||||
"grass_slot_07_tee_full": 8,
|
||||
"grass_slot_08_cross_open": 9,
|
||||
"grass_slot_09_cross_q1": 10,
|
||||
"grass_slot_10_cross_q2adj": 11,
|
||||
"grass_slot_11_cross_q2opp": 12,
|
||||
"grass_slot_12_cross_q3": 13,
|
||||
"grass_slot_13_solid": 14,
|
||||
"stone_slot_00_isolated": 15,
|
||||
"stone_slot_01_end": 16,
|
||||
"stone_slot_02_corner_open": 17,
|
||||
"stone_slot_03_corner_full": 18,
|
||||
"stone_slot_04_straight": 19,
|
||||
"stone_slot_05_tee_open": 20,
|
||||
"stone_slot_06_tee_half": 21,
|
||||
"stone_slot_07_tee_full": 22,
|
||||
"stone_slot_08_cross_open": 23,
|
||||
"stone_slot_09_cross_q1": 24,
|
||||
"stone_slot_10_cross_q2adj": 25,
|
||||
"stone_slot_11_cross_q2opp": 26,
|
||||
"stone_slot_12_cross_q3": 27,
|
||||
"stone_slot_13_solid": 28,
|
||||
"wood_slot_00_isolated": 29,
|
||||
"wood_slot_01_end": 30,
|
||||
"wood_slot_02_corner_open": 31,
|
||||
"wood_slot_03_corner_full": 32,
|
||||
"wood_slot_04_straight": 33,
|
||||
"wood_slot_05_tee_open": 34,
|
||||
"wood_slot_06_tee_half": 35,
|
||||
"wood_slot_07_tee_full": 36,
|
||||
"wood_slot_08_cross_open": 37,
|
||||
"wood_slot_09_cross_q1": 38,
|
||||
"wood_slot_10_cross_q2adj": 39,
|
||||
"wood_slot_11_cross_q2opp": 40,
|
||||
"wood_slot_12_cross_q3": 41,
|
||||
"wood_slot_13_solid": 42
|
||||
},
|
||||
"deleted": [],
|
||||
"next_id": 43
|
||||
}
|
||||
BIN
assets/atlases/blob_testbench/tiles.diffuse.atlas.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
assets/atlases/blob_testbench/tiles.height.atlas.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |