mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-08-18 09:14:09 +00:00
test
This commit is contained in:
@@ -1,18 +1,27 @@
|
|||||||
{
|
{
|
||||||
"patterns": {
|
"patterns": {
|
||||||
"stripes": {
|
"stripes_v": {
|
||||||
"tileWidth": 2,
|
"tileWidth": 2,
|
||||||
"tileHeight": 2,
|
"tileHeight": 2,
|
||||||
"scale": 2,
|
"scale": 8,
|
||||||
"pattern": [
|
"pattern": [
|
||||||
[1, 0],
|
[1, 0],
|
||||||
[1, 0]
|
[1, 0]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"stripes_h": {
|
||||||
|
"tileWidth": 2,
|
||||||
|
"tileHeight": 2,
|
||||||
|
"scale": 8,
|
||||||
|
"pattern": [
|
||||||
|
[1, 1],
|
||||||
|
[0, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
"checkerboard": {
|
"checkerboard": {
|
||||||
"tileWidth": 2,
|
"tileWidth": 2,
|
||||||
"tileHeight": 2,
|
"tileHeight": 2,
|
||||||
"scale": 2,
|
"scale": 8,
|
||||||
"pattern": [
|
"pattern": [
|
||||||
[1, 0],
|
[1, 0],
|
||||||
[0, 1]
|
[0, 1]
|
||||||
@@ -40,6 +49,263 @@
|
|||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
|
||||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"cross": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 16,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
|
||||||
|
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
|
||||||
|
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
|
||||||
|
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
||||||
|
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
|
||||||
|
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
|
||||||
|
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"mini_cross": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 8,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
|
||||||
|
[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0],
|
||||||
|
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
|
||||||
|
[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0],
|
||||||
|
[1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"horizontal_stripes": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 16,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sparse_dots": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 16,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"evan": {
|
||||||
|
"tileWidth": 24,
|
||||||
|
"tileHeight": 7,
|
||||||
|
"scale": 5,
|
||||||
|
"pattern": [
|
||||||
|
[
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0
|
||||||
|
],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"diagonal_stripe": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 8,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
|
||||||
|
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
|
||||||
|
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
|
||||||
|
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"mountain_ridge": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 8,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0],
|
||||||
|
[0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0],
|
||||||
|
[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"scattered_dots": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 8,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"circuit_board": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 8,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1],
|
||||||
|
[1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1],
|
||||||
|
[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
|
||||||
|
[0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
|
||||||
|
[1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1],
|
||||||
|
[1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"vertical_bars": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 8,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
|
||||||
|
[1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
|
||||||
|
[1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
|
||||||
|
[1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
|
||||||
|
[1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
|
||||||
|
[1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
|
||||||
|
[1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1],
|
||||||
|
[1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
".w.": {
|
||||||
|
"tileWidth": 16,
|
||||||
|
"tileHeight": 8,
|
||||||
|
"scale": 1,
|
||||||
|
"pattern": [
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
|
||||||
|
[0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0],
|
||||||
|
[0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0],
|
||||||
|
[0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"openfront": {
|
||||||
|
"tileWidth": 66,
|
||||||
|
"tileHeight": 10,
|
||||||
|
"scale": 5,
|
||||||
|
"pattern": [
|
||||||
|
[
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0,
|
||||||
|
0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
||||||
|
1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
||||||
|
1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
|
||||||
|
1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
|
||||||
|
1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0,
|
||||||
|
0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
]
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import { PublicLobby } from "./PublicLobby";
|
|||||||
import "./RandomNameButton";
|
import "./RandomNameButton";
|
||||||
import { RandomNameButton } from "./RandomNameButton";
|
import { RandomNameButton } from "./RandomNameButton";
|
||||||
import { SinglePlayerModal } from "./SinglePlayerModal";
|
import { SinglePlayerModal } from "./SinglePlayerModal";
|
||||||
|
import { territoryPatternsModal } from "./TerritoryPatternsModal";
|
||||||
import { UserSettingModal } from "./UserSettingModal";
|
import { UserSettingModal } from "./UserSettingModal";
|
||||||
import "./UsernameInput";
|
import "./UsernameInput";
|
||||||
import { UsernameInput } from "./UsernameInput";
|
import { UsernameInput } from "./UsernameInput";
|
||||||
@@ -129,6 +130,16 @@ class Client {
|
|||||||
hlpModal.open();
|
hlpModal.open();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const TerritoryModal = document.querySelector(
|
||||||
|
"territory-patterns-input",
|
||||||
|
) as territoryPatternsModal;
|
||||||
|
TerritoryModal instanceof territoryPatternsModal;
|
||||||
|
document
|
||||||
|
.getElementById("territory-patterns-input_")
|
||||||
|
.addEventListener("click", () => {
|
||||||
|
TerritoryModal.open();
|
||||||
|
});
|
||||||
|
|
||||||
const settingsModal = document.querySelector(
|
const settingsModal = document.querySelector(
|
||||||
"user-setting",
|
"user-setting",
|
||||||
) as UserSettingModal;
|
) as UserSettingModal;
|
||||||
|
|||||||
@@ -0,0 +1,201 @@
|
|||||||
|
import { LitElement, html, render } from "lit";
|
||||||
|
import { customElement, query, state } from "lit/decorators.js";
|
||||||
|
import territory_patterns from "../../resources/territory_patterns.json";
|
||||||
|
import "./components/Difficulties";
|
||||||
|
import "./components/Maps";
|
||||||
|
|
||||||
|
@customElement("territory-patterns-input")
|
||||||
|
export class territoryPatternsModal extends LitElement {
|
||||||
|
@query("o-modal") private modalEl!: HTMLElement & {
|
||||||
|
open: () => void;
|
||||||
|
close: () => void;
|
||||||
|
};
|
||||||
|
|
||||||
|
@query("#territory-patterns-input_") private previewButton!: HTMLElement;
|
||||||
|
|
||||||
|
@state() private selectedPattern =
|
||||||
|
localStorage.getItem("territoryPattern") || "";
|
||||||
|
|
||||||
|
@state() private buttonWidth: number = 100;
|
||||||
|
|
||||||
|
private resizeObserver: ResizeObserver;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
this.resizeObserver = new ResizeObserver((entries) => {
|
||||||
|
for (const entry of entries) {
|
||||||
|
if (entry.target.classList.contains("preview-container")) {
|
||||||
|
this.buttonWidth = entry.contentRect.width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
connectedCallback() {
|
||||||
|
super.connectedCallback();
|
||||||
|
this.updateComplete.then(() => {
|
||||||
|
const containers = this.renderRoot.querySelectorAll(".preview-container");
|
||||||
|
containers.forEach((container) => this.resizeObserver.observe(container));
|
||||||
|
this.updatePreview();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
disconnectedCallback() {
|
||||||
|
super.disconnectedCallback();
|
||||||
|
this.resizeObserver.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
createRenderRoot() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return html`
|
||||||
|
<o-modal id="territoryPatternsModal" title="Select Territory Pattern">
|
||||||
|
<div
|
||||||
|
class="flex flex-wrap gap-4 p-2"
|
||||||
|
style="justify-content: center; align-items: flex-start;"
|
||||||
|
>
|
||||||
|
${Object.entries(territory_patterns.patterns).map(
|
||||||
|
([key, pattern]) => html`
|
||||||
|
<button
|
||||||
|
class="border p-2 rounded-lg shadow text-black dark:text-white text-left
|
||||||
|
${this.selectedPattern === key
|
||||||
|
? "bg-blue-500 text-white"
|
||||||
|
: "bg-gray-100 hover:bg-gray-200 dark:bg-gray-800 dark:hover:bg-gray-700"}"
|
||||||
|
style="flex: 0 1 calc(25% - 1rem); max-width: calc(25% - 1rem);"
|
||||||
|
@click=${() => this.selectPattern(key)}
|
||||||
|
>
|
||||||
|
<div class="text-sm font-bold mb-1">${key}</div>
|
||||||
|
<div
|
||||||
|
class="preview-container"
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
aspect-ratio: 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
${(() => {
|
||||||
|
const cellCountX = pattern.tileWidth;
|
||||||
|
const cellCountY = pattern.tileHeight;
|
||||||
|
const cellSize = Math.floor(
|
||||||
|
this.buttonWidth / Math.max(cellCountX, cellCountY),
|
||||||
|
);
|
||||||
|
|
||||||
|
return html`
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(${cellCountX}, ${cellSize}px);
|
||||||
|
grid-template-rows: repeat(${cellCountY}, ${cellSize}px);
|
||||||
|
background-color: #ccc;
|
||||||
|
padding: 2px;
|
||||||
|
border-radius: 4px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
${pattern.pattern.flat().map(
|
||||||
|
(cell) => html`
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
background-color: ${cell === 1 ? "#000" : "transparent"};
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||||
|
width: ${cellSize}px;
|
||||||
|
height: ${cellSize}px;
|
||||||
|
border-radius: 1px;
|
||||||
|
"
|
||||||
|
></div>
|
||||||
|
`,
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
})()}
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
`,
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</o-modal>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
public open() {
|
||||||
|
this.modalEl?.open();
|
||||||
|
}
|
||||||
|
|
||||||
|
public close() {
|
||||||
|
this.modalEl?.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private selectPattern(patternKey: string) {
|
||||||
|
this.selectedPattern = patternKey;
|
||||||
|
localStorage.setItem("territoryPattern", patternKey);
|
||||||
|
this.updatePreview();
|
||||||
|
this.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private updatePreview() {
|
||||||
|
if (!this.previewButton || !this.selectedPattern) return;
|
||||||
|
|
||||||
|
const pattern = territory_patterns.patterns[this.selectedPattern];
|
||||||
|
if (!pattern) return;
|
||||||
|
|
||||||
|
const fixedHeight = 48;
|
||||||
|
const fixedWidth = 48;
|
||||||
|
const cellCountX = pattern.tileWidth;
|
||||||
|
const cellCountY = pattern.tileHeight;
|
||||||
|
|
||||||
|
const cellSize = Math.min(
|
||||||
|
fixedHeight / cellCountY,
|
||||||
|
fixedWidth / cellCountX,
|
||||||
|
);
|
||||||
|
|
||||||
|
const previewHTML = html`
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: ${fixedHeight}px;
|
||||||
|
width: ${fixedWidth}px;
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(${cellCountX}, ${cellSize}px);
|
||||||
|
grid-template-rows: repeat(${cellCountY}, ${cellSize}px);
|
||||||
|
background-color: #ccc;
|
||||||
|
padding: 2px;
|
||||||
|
border-radius: 4px;
|
||||||
|
"
|
||||||
|
>
|
||||||
|
${pattern.pattern.flat().map(
|
||||||
|
(cell) => html`
|
||||||
|
<div
|
||||||
|
style="
|
||||||
|
background-color: ${cell === 1 ? "#000" : "transparent"};
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||||
|
width: ${cellSize}px;
|
||||||
|
height: ${cellSize}px;
|
||||||
|
border-radius: 1px;
|
||||||
|
"
|
||||||
|
></div>
|
||||||
|
`,
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
render(previewHTML, this.previewButton);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -216,6 +216,13 @@
|
|||||||
<div class="container pt-12">
|
<div class="container pt-12">
|
||||||
<div class="container__row">
|
<div class="container__row">
|
||||||
<flag-input class="w-[20%] md:w-[15%]"></flag-input>
|
<flag-input class="w-[20%] md:w-[15%]"></flag-input>
|
||||||
|
<territory-patterns-input class="w-[50%] md:w-[12%]">
|
||||||
|
<button
|
||||||
|
id="territory-patterns-input_"
|
||||||
|
class="w-full border p-[4px] rounded-lg flex cursor-pointer border-black/30 dark:border-gray-300/60 bg-white/70 dark:bg-[rgba(55,65,81,0.7)]"
|
||||||
|
title="Pick a pattern!"
|
||||||
|
></button>
|
||||||
|
</territory-patterns-input>
|
||||||
<username-input class="w-full"></username-input>
|
<username-input class="w-full"></username-input>
|
||||||
</div>
|
</div>
|
||||||
<div></div>
|
<div></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user