diff --git a/assets/chunks/0_0_0.dcf b/assets/chunks/0_0_0.dcf index 943bd015..516bdc2c 100644 Binary files a/assets/chunks/0_0_0.dcf and b/assets/chunks/0_0_0.dcf differ diff --git a/assets/meshes/chunks/chunk_0_0_0_0.dmf b/assets/meshes/chunks/chunk_0_0_0_0.dmf index ceceabba..1271d94d 100644 Binary files a/assets/meshes/chunks/chunk_0_0_0_0.dmf and b/assets/meshes/chunks/chunk_0_0_0_0.dmf differ diff --git a/assetsraw/chunks/chunk_0_0_0.json b/assetsraw/chunks/chunk_0_0_0.json index 2269f4cb..7e3e7af2 100644 --- a/assetsraw/chunks/chunk_0_0_0.json +++ b/assetsraw/chunks/chunk_0_0_0.json @@ -2,2182 +2,1214 @@ "meshes": [ { "file": "house_5_3.dmf", - "pos": [ - 1, - 1, - 0 - ] + "pos": [ 1, 1, 0 ] } ], "tiles": [ { - "pos": [ - 0, - 0, - 0 - ], + "pos": [ 0, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 0, - 0 - ], + "pos": [ 1, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 0, - 0 - ], + "pos": [ 2, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 0, - 0 - ], + "pos": [ 3, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 0, - 0 - ], + "pos": [ 4, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 0, - 0 - ], + "pos": [ 5, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 0, - 0 - ], + "pos": [ 6, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 0, - 0 - ], + "pos": [ 7, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 0, - 0 - ], + "pos": [ 8, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 0, - 0 - ], + "pos": [ 9, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 0, - 0 - ], + "pos": [ 10, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 0, - 0 - ], + "pos": [ 11, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 0, - 0 - ], + "pos": [ 12, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 0, - 0 - ], + "pos": [ 13, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 0, - 0 - ], + "pos": [ 14, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 0, - 0 - ], + "pos": [ 15, 0, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 1, - 0 - ], + "pos": [ 0, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 1, - 0 - ], + "pos": [ 6, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 1, - 0 - ], + "pos": [ 7, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 1, - 0 - ], + "pos": [ 8, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 1, - 0 - ], + "pos": [ 9, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 1, - 0 - ], + "pos": [ 10, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 1, - 0 - ], + "pos": [ 11, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 1, - 0 - ], + "pos": [ 12, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 1, - 0 - ], + "pos": [ 13, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 1, - 0 - ], + "pos": [ 14, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 1, - 0 - ], + "pos": [ 15, 1, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 2, - 0 - ], + "pos": [ 0, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 2, - 0 - ], + "pos": [ 6, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 2, - 0 - ], + "pos": [ 7, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 2, - 0 - ], + "pos": [ 8, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 2, - 0 - ], + "pos": [ 9, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 2, - 0 - ], + "pos": [ 10, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 2, - 0 - ], + "pos": [ 11, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 2, - 0 - ], + "pos": [ 12, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 2, - 0 - ], + "pos": [ 13, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 2, - 0 - ], + "pos": [ 14, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 2, - 0 - ], + "pos": [ 15, 2, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 3, - 0 - ], + "pos": [ 0, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 3, - 0 - ], + "pos": [ 6, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 3, - 0 - ], + "pos": [ 7, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 3, - 0 - ], + "pos": [ 8, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 3, - 0 - ], + "pos": [ 9, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 3, - 0 - ], + "pos": [ 10, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 3, - 0 - ], + "pos": [ 11, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 3, - 0 - ], + "pos": [ 12, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 3, - 0 - ], + "pos": [ 13, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 3, - 0 - ], + "pos": [ 14, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 3, - 0 - ], + "pos": [ 15, 3, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 4, - 0 - ], + "pos": [ 0, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 4, - 0 - ], + "pos": [ 1, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 4, - 0 - ], + "pos": [ 2, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 4, - 0 - ], + "pos": [ 3, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 4, - 0 - ], + "pos": [ 4, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 4, - 0 - ], + "pos": [ 5, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 4, - 0 - ], + "pos": [ 6, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 4, - 0 - ], + "pos": [ 7, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 4, - 0 - ], + "pos": [ 8, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 4, - 0 - ], + "pos": [ 9, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 4, - 0 - ], + "pos": [ 10, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 4, - 0 - ], + "pos": [ 11, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 4, - 0 - ], + "pos": [ 12, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 4, - 0 - ], + "pos": [ 13, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 4, - 0 - ], + "pos": [ 14, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 4, - 0 - ], + "pos": [ 15, 4, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 5, - 0 - ], + "pos": [ 0, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 5, - 0 - ], + "pos": [ 1, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 5, - 0 - ], + "pos": [ 2, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 5, - 0 - ], + "pos": [ 3, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 5, - 0 - ], + "pos": [ 4, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 5, - 0 - ], + "pos": [ 5, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 5, - 0 - ], + "pos": [ 6, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 5, - 0 - ], + "pos": [ 7, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 5, - 0 - ], + "pos": [ 8, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 5, - 0 - ], + "pos": [ 9, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 5, - 0 - ], + "pos": [ 10, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 5, - 0 - ], + "pos": [ 11, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 5, - 0 - ], + "pos": [ 12, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 5, - 0 - ], + "pos": [ 13, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 5, - 0 - ], + "pos": [ 14, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 5, - 0 - ], + "pos": [ 15, 5, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 6, - 0 - ], + "pos": [ 0, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 6, - 0 - ], + "pos": [ 1, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 6, - 0 - ], + "pos": [ 2, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 6, - 0 - ], + "pos": [ 3, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 6, - 0 - ], + "pos": [ 4, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 6, - 0 - ], + "pos": [ 5, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 6, - 0 - ], + "pos": [ 6, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 6, - 0 - ], + "pos": [ 7, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 6, - 0 - ], + "pos": [ 8, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 6, - 0 - ], + "pos": [ 9, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 6, - 0 - ], + "pos": [ 10, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 6, - 0 - ], + "pos": [ 11, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 6, - 0 - ], + "pos": [ 12, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 6, - 0 - ], + "pos": [ 13, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 6, - 0 - ], + "pos": [ 14, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 6, - 0 - ], + "pos": [ 15, 6, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 7, - 0 - ], + "pos": [ 0, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 7, - 0 - ], + "pos": [ 1, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 7, - 0 - ], + "pos": [ 2, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 7, - 0 - ], + "pos": [ 3, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 7, - 0 - ], + "pos": [ 4, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 7, - 0 - ], + "pos": [ 5, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 7, - 0 - ], + "pos": [ 6, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 7, - 0 - ], + "pos": [ 7, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 7, - 0 - ], + "pos": [ 8, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 7, - 0 - ], + "pos": [ 9, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 7, - 0 - ], + "pos": [ 10, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 7, - 0 - ], + "pos": [ 11, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 7, - 0 - ], + "pos": [ 12, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 7, - 0 - ], + "pos": [ 13, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 7, - 0 - ], + "pos": [ 14, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 7, - 0 - ], + "pos": [ 15, 7, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 8, - 0 - ], + "pos": [ 0, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 8, - 0 - ], + "pos": [ 1, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 8, - 0 - ], + "pos": [ 2, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 8, - 0 - ], + "pos": [ 3, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 8, - 0 - ], + "pos": [ 4, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 8, - 0 - ], + "pos": [ 5, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 8, - 0 - ], + "pos": [ 6, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 8, - 0 - ], + "pos": [ 7, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 8, - 0 - ], + "pos": [ 8, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 8, - 0 - ], + "pos": [ 9, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 8, - 0 - ], + "pos": [ 10, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 8, - 0 - ], + "pos": [ 11, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 8, - 0 - ], + "pos": [ 12, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 8, - 0 - ], + "pos": [ 13, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 8, - 0 - ], + "pos": [ 14, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 8, - 0 - ], + "pos": [ 15, 8, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 9, - 0 - ], + "pos": [ 0, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 9, - 0 - ], + "pos": [ 1, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 9, - 0 - ], + "pos": [ 2, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 9, - 0 - ], + "pos": [ 3, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 9, - 0 - ], + "pos": [ 4, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 9, - 0 - ], + "pos": [ 5, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 9, - 0 - ], + "pos": [ 6, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 9, - 0 - ], + "pos": [ 7, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 9, - 0 - ], + "pos": [ 8, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 9, - 0 - ], + "pos": [ 9, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 9, - 0 - ], + "pos": [ 10, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 9, - 0 - ], + "pos": [ 11, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 9, - 0 - ], + "pos": [ 12, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 9, - 0 - ], + "pos": [ 13, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 9, - 0 - ], + "pos": [ 14, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 9, - 0 - ], + "pos": [ 15, 9, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 10, - 0 - ], + "pos": [ 0, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 10, - 0 - ], + "pos": [ 1, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 10, - 0 - ], + "pos": [ 2, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 10, - 0 - ], + "pos": [ 3, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 10, - 0 - ], + "pos": [ 4, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 10, - 0 - ], + "pos": [ 5, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 10, - 0 - ], + "pos": [ 6, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 10, - 0 - ], + "pos": [ 7, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 10, - 0 - ], + "pos": [ 8, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 10, - 0 - ], + "pos": [ 9, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 10, - 0 - ], - "type": 1, + "pos": [ 10, 10, 0 ], + "type": 6, "tile": 0 }, { - "pos": [ - 11, - 10, - 0 - ], - "type": 1, + "pos": [ 11, 10, 0 ], + "type": 2, "tile": 0 }, { - "pos": [ - 12, - 10, - 0 - ], - "type": 1, + "pos": [ 12, 10, 0 ], + "type": 7, "tile": 0 }, { - "pos": [ - 13, - 10, - 0 - ], + "pos": [ 13, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 10, - 0 - ], + "pos": [ 14, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 10, - 0 - ], + "pos": [ 15, 10, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 11, - 0 - ], + "pos": [ 0, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 11, - 0 - ], + "pos": [ 1, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 11, - 0 - ], + "pos": [ 2, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 11, - 0 - ], + "pos": [ 3, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 11, - 0 - ], + "pos": [ 4, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 11, - 0 - ], + "pos": [ 5, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 11, - 0 - ], + "pos": [ 6, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 11, - 0 - ], + "pos": [ 7, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 11, - 0 - ], + "pos": [ 8, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 11, - 0 - ], + "pos": [ 9, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 11, - 0 - ], - "type": 1, + "pos": [ 10, 11, 0 ], + "type": 3, "tile": 0 }, { - "pos": [ - 11, - 11, - 0 - ], + "pos": [ 11, 11, 1 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 11, - 0 - ], - "type": 1, + "pos": [ 12, 11, 0 ], + "type": 5, "tile": 0 }, { - "pos": [ - 13, - 11, - 0 - ], + "pos": [ 13, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 11, - 0 - ], + "pos": [ 14, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 11, - 0 - ], + "pos": [ 15, 11, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 12, - 0 - ], + "pos": [ 0, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 12, - 0 - ], + "pos": [ 1, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 12, - 0 - ], + "pos": [ 2, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 12, - 0 - ], + "pos": [ 3, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 12, - 0 - ], + "pos": [ 4, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 12, - 0 - ], + "pos": [ 5, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 12, - 0 - ], + "pos": [ 6, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 12, - 0 - ], + "pos": [ 7, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 12, - 0 - ], + "pos": [ 8, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 12, - 0 - ], + "pos": [ 9, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 12, - 0 - ], - "type": 1, + "pos": [ 10, 12, 0 ], + "type": 8, "tile": 0 }, { - "pos": [ - 11, - 12, - 0 - ], - "type": 1, + "pos": [ 11, 12, 0 ], + "type": 4, "tile": 0 }, { - "pos": [ - 12, - 12, - 0 - ], - "type": 1, + "pos": [ 12, 12, 0 ], + "type": 9, "tile": 0 }, { - "pos": [ - 13, - 12, - 0 - ], + "pos": [ 13, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 12, - 0 - ], + "pos": [ 14, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 12, - 0 - ], + "pos": [ 15, 12, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 13, - 0 - ], + "pos": [ 0, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 13, - 0 - ], + "pos": [ 1, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 13, - 0 - ], + "pos": [ 2, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 13, - 0 - ], + "pos": [ 3, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 13, - 0 - ], + "pos": [ 4, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 13, - 0 - ], + "pos": [ 5, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 13, - 0 - ], + "pos": [ 6, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 13, - 0 - ], + "pos": [ 7, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 13, - 0 - ], + "pos": [ 8, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 13, - 0 - ], + "pos": [ 9, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 13, - 0 - ], + "pos": [ 10, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 13, - 0 - ], + "pos": [ 11, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 13, - 0 - ], + "pos": [ 12, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 13, - 0 - ], + "pos": [ 13, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 13, - 0 - ], + "pos": [ 14, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 13, - 0 - ], + "pos": [ 15, 13, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 14, - 0 - ], + "pos": [ 0, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 14, - 0 - ], + "pos": [ 1, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 14, - 0 - ], + "pos": [ 2, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 14, - 0 - ], + "pos": [ 3, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 14, - 0 - ], + "pos": [ 4, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 14, - 0 - ], + "pos": [ 5, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 14, - 0 - ], + "pos": [ 6, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 14, - 0 - ], + "pos": [ 7, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 14, - 0 - ], + "pos": [ 8, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 14, - 0 - ], + "pos": [ 9, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 14, - 0 - ], + "pos": [ 10, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 14, - 0 - ], + "pos": [ 11, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 14, - 0 - ], + "pos": [ 12, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 14, - 0 - ], + "pos": [ 13, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 14, - 0 - ], + "pos": [ 14, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 14, - 0 - ], + "pos": [ 15, 14, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 0, - 15, - 0 - ], + "pos": [ 0, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 1, - 15, - 0 - ], + "pos": [ 1, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 2, - 15, - 0 - ], + "pos": [ 2, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 3, - 15, - 0 - ], + "pos": [ 3, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 4, - 15, - 0 - ], + "pos": [ 4, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 5, - 15, - 0 - ], + "pos": [ 5, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 6, - 15, - 0 - ], + "pos": [ 6, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 7, - 15, - 0 - ], + "pos": [ 7, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 8, - 15, - 0 - ], + "pos": [ 8, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 9, - 15, - 0 - ], + "pos": [ 9, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 10, - 15, - 0 - ], + "pos": [ 10, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 11, - 15, - 0 - ], + "pos": [ 11, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 12, - 15, - 0 - ], + "pos": [ 12, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 13, - 15, - 0 - ], + "pos": [ 13, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 14, - 15, - 0 - ], + "pos": [ 14, 15, 0 ], "type": 1, "tile": 0 }, { - "pos": [ - 15, - 15, - 0 - ], + "pos": [ 15, 15, 0 ], "type": 1, "tile": 0 } ] -} \ No newline at end of file +} diff --git a/src/dusk/rpg/entity/entity.c b/src/dusk/rpg/entity/entity.c index 69619eb6..8cfdffc9 100644 --- a/src/dusk/rpg/entity/entity.c +++ b/src/dusk/rpg/entity/entity.c @@ -95,7 +95,7 @@ void entityWalk(entity_t *entity, const entitydir_t direction) { tileIsRamp(tileCurrent) && ( // Can only walk UP the direction the ramp faces. - (direction+TILE_SHAPE_RAMP_SOUTH) == tileCurrent || + (direction+TILE_SHAPE_RAMP_NORTH) == tileCurrent || // If diagonal ramp, can go up one of two ways only. ( ( @@ -137,7 +137,7 @@ void entityWalk(entity_t *entity, const entitydir_t direction) { tileIsRamp(tileBelow) && ( // This handles regular cardinal ramps - (entityDirGetOpposite(direction)+TILE_SHAPE_RAMP_SOUTH) == tileBelow || + (entityDirGetOpposite(direction)+TILE_SHAPE_RAMP_NORTH) == tileBelow || // This handles diagonal ramps ( ( diff --git a/src/dusk/rpg/overworld/tile.h b/src/dusk/rpg/overworld/tile.h index c2bbcac1..3bd2b23e 100644 --- a/src/dusk/rpg/overworld/tile.h +++ b/src/dusk/rpg/overworld/tile.h @@ -10,17 +10,17 @@ typedef enum { - TILE_SHAPE_NULL, + TILE_SHAPE_NULL = 0, - TILE_SHAPE_GROUND, - TILE_SHAPE_RAMP_NORTH, - TILE_SHAPE_RAMP_SOUTH, - TILE_SHAPE_RAMP_EAST, - TILE_SHAPE_RAMP_WEST, - TILE_SHAPE_RAMP_NORTHEAST, - TILE_SHAPE_RAMP_NORTHWEST, - TILE_SHAPE_RAMP_SOUTHEAST, - TILE_SHAPE_RAMP_SOUTHWEST, + TILE_SHAPE_GROUND = 1, + TILE_SHAPE_RAMP_NORTH = 2, + TILE_SHAPE_RAMP_EAST = 3, + TILE_SHAPE_RAMP_SOUTH = 4, + TILE_SHAPE_RAMP_WEST = 5, + TILE_SHAPE_RAMP_NORTHEAST = 6, + TILE_SHAPE_RAMP_NORTHWEST = 7, + TILE_SHAPE_RAMP_SOUTHEAST = 8, + TILE_SHAPE_RAMP_SOUTHWEST = 9, TILE_SHAPE_COUNT } tile_t; diff --git a/tools/asset/chunk/__main__.py b/tools/asset/chunk/__main__.py index d27acd92..799020be 100644 --- a/tools/asset/chunk/__main__.py +++ b/tools/asset/chunk/__main__.py @@ -64,8 +64,16 @@ CHUNK_MESH_NAME_MAX = 64 TILE_SIZE = 4 VERTEX_SIZE = 20 -TILE_SHAPE_NULL = 0 -TILE_SHAPE_GROUND = 1 +TILE_SHAPE_NULL = 0 +TILE_SHAPE_GROUND = 1 +TILE_SHAPE_RAMP_NORTH = 2 +TILE_SHAPE_RAMP_EAST = 3 +TILE_SHAPE_RAMP_SOUTH = 4 +TILE_SHAPE_RAMP_WEST = 5 +TILE_SHAPE_RAMP_NORTHEAST = 6 +TILE_SHAPE_RAMP_NORTHWEST = 7 +TILE_SHAPE_RAMP_SOUTHEAST = 8 +TILE_SHAPE_RAMP_SOUTHWEST = 9 FILE_MAGIC = b'DCF' DMF_MAGIC = b'DMF\x00' @@ -147,8 +155,42 @@ def write_v3(dcf_path, tiles, mesh_names, mesh_offsets=None): # JSON -> DCF + DMF # --------------------------------------------------------------------------- +def _tile_quad(u0, u1, v0, v1, fx, fy, sw_z, se_z, ne_z, nw_z): + """Six vertices (2 CCW triangles) for a quad with per-corner Z heights. + Corner order: SW=(fx,fy), SE=(fx+1,fy), NE=(fx+1,fy+1), NW=(fx,fy+1). + NORTH=+Y, EAST=+X (matches entityDirGetRelative).""" + verts = [ + (u0, v0, fx, fy, sw_z), + (u1, v0, fx+1, fy, se_z), + (u1, v1, fx+1, fy+1, ne_z), + (u0, v0, fx, fy, sw_z), + (u1, v1, fx+1, fy+1, ne_z), + (u0, v1, fx, fy+1, nw_z), + ] + buf = bytearray() + for v in verts: + buf += struct.pack('<5f', *v) + return bytes(buf) + + +# Per-shape corner heights as (sw, se, ne, nw) offsets from tile base Z. +# NORTH=+Y, EAST=+X. Cardinal ramps: low face at 0, high face at 1. +# Diagonal ramps: opposite corner at 0/1, adjacent corners at 0.5. +_RAMP_CORNERS = { + TILE_SHAPE_GROUND: (0.0, 0.0, 0.0, 0.0), + TILE_SHAPE_RAMP_NORTH: (0.0, 0.0, 1.0, 1.0), # south=low, north=high + TILE_SHAPE_RAMP_SOUTH: (1.0, 1.0, 0.0, 0.0), # south=high, north=low + TILE_SHAPE_RAMP_EAST: (0.0, 1.0, 1.0, 0.0), # west=low, east=high + TILE_SHAPE_RAMP_WEST: (1.0, 0.0, 0.0, 1.0), # west=high, east=low + TILE_SHAPE_RAMP_NORTHEAST: (0.0, 0.0, 1.0, 0.0), # only NE raised + TILE_SHAPE_RAMP_NORTHWEST: (0.0, 0.0, 0.0, 1.0), # only NW raised + TILE_SHAPE_RAMP_SOUTHEAST: (0.0, 1.0, 0.0, 0.0), # only SE raised + TILE_SHAPE_RAMP_SOUTHWEST: (1.0, 0.0, 0.0, 0.0), # only SW raised +} + + def build_terrain_verts(tiles_bytes): - """Generate top-face quads for every TILE_SHAPE_GROUND tile.""" + """Generate quads for every non-null tile, shaped to match tile type.""" buf = bytearray() for z in range(CHUNK_DEPTH): for y in range(CHUNK_HEIGHT): @@ -157,22 +199,19 @@ def build_terrain_verts(tiles_bytes): tile_type = struct.unpack_from( '