@neolio42/pixel-office 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/bin.sh +16 -0
  4. package/bin.ts +162 -0
  5. package/next-env.d.ts +6 -0
  6. package/next.config.ts +7 -0
  7. package/package.json +51 -0
  8. package/postcss.config.mjs +7 -0
  9. package/public/assets/characters/char_0.png +0 -0
  10. package/public/assets/characters/char_1.png +0 -0
  11. package/public/assets/characters/char_2.png +0 -0
  12. package/public/assets/characters/char_3.png +0 -0
  13. package/public/assets/characters/char_4.png +0 -0
  14. package/public/assets/characters/char_5.png +0 -0
  15. package/public/assets/characters.png +0 -0
  16. package/public/assets/default-layout-1.json +92 -0
  17. package/public/assets/floors/floor_0.png +0 -0
  18. package/public/assets/floors/floor_1.png +0 -0
  19. package/public/assets/floors/floor_2.png +0 -0
  20. package/public/assets/floors/floor_3.png +0 -0
  21. package/public/assets/floors/floor_4.png +0 -0
  22. package/public/assets/floors/floor_5.png +0 -0
  23. package/public/assets/floors/floor_6.png +0 -0
  24. package/public/assets/floors/floor_7.png +0 -0
  25. package/public/assets/floors/floor_8.png +0 -0
  26. package/public/assets/furniture/BIN/BIN.png +0 -0
  27. package/public/assets/furniture/BIN/manifest.json +13 -0
  28. package/public/assets/furniture/BOOKSHELF/BOOKSHELF.png +0 -0
  29. package/public/assets/furniture/BOOKSHELF/manifest.json +13 -0
  30. package/public/assets/furniture/CACTUS/CACTUS.png +0 -0
  31. package/public/assets/furniture/CACTUS/manifest.json +13 -0
  32. package/public/assets/furniture/CLOCK/CLOCK.png +0 -0
  33. package/public/assets/furniture/CLOCK/manifest.json +13 -0
  34. package/public/assets/furniture/COFFEE/COFFEE.png +0 -0
  35. package/public/assets/furniture/COFFEE/manifest.json +13 -0
  36. package/public/assets/furniture/COFFEE_TABLE/COFFEE_TABLE.png +0 -0
  37. package/public/assets/furniture/COFFEE_TABLE/manifest.json +13 -0
  38. package/public/assets/furniture/CUSHIONED_BENCH/CUSHIONED_BENCH.png +0 -0
  39. package/public/assets/furniture/CUSHIONED_BENCH/manifest.json +13 -0
  40. package/public/assets/furniture/CUSHIONED_CHAIR/CUSHIONED_CHAIR_BACK.png +0 -0
  41. package/public/assets/furniture/CUSHIONED_CHAIR/CUSHIONED_CHAIR_FRONT.png +0 -0
  42. package/public/assets/furniture/CUSHIONED_CHAIR/CUSHIONED_CHAIR_SIDE.png +0 -0
  43. package/public/assets/furniture/CUSHIONED_CHAIR/manifest.json +44 -0
  44. package/public/assets/furniture/DESK/DESK_FRONT.png +0 -0
  45. package/public/assets/furniture/DESK/DESK_SIDE.png +0 -0
  46. package/public/assets/furniture/DESK/manifest.json +33 -0
  47. package/public/assets/furniture/DOUBLE_BOOKSHELF/DOUBLE_BOOKSHELF.png +0 -0
  48. package/public/assets/furniture/DOUBLE_BOOKSHELF/manifest.json +13 -0
  49. package/public/assets/furniture/HANGING_PLANT/HANGING_PLANT.png +0 -0
  50. package/public/assets/furniture/HANGING_PLANT/manifest.json +13 -0
  51. package/public/assets/furniture/LARGE_PAINTING/LARGE_PAINTING.png +0 -0
  52. package/public/assets/furniture/LARGE_PAINTING/manifest.json +13 -0
  53. package/public/assets/furniture/LARGE_PLANT/LARGE_PLANT.png +0 -0
  54. package/public/assets/furniture/LARGE_PLANT/manifest.json +13 -0
  55. package/public/assets/furniture/PC/PC_BACK.png +0 -0
  56. package/public/assets/furniture/PC/PC_FRONT_OFF.png +0 -0
  57. package/public/assets/furniture/PC/PC_FRONT_ON_1.png +0 -0
  58. package/public/assets/furniture/PC/PC_FRONT_ON_2.png +0 -0
  59. package/public/assets/furniture/PC/PC_FRONT_ON_3.png +0 -0
  60. package/public/assets/furniture/PC/PC_SIDE.png +0 -0
  61. package/public/assets/furniture/PC/manifest.json +88 -0
  62. package/public/assets/furniture/PLANT/PLANT.png +0 -0
  63. package/public/assets/furniture/PLANT/manifest.json +13 -0
  64. package/public/assets/furniture/PLANT_2/PLANT_2.png +0 -0
  65. package/public/assets/furniture/PLANT_2/manifest.json +13 -0
  66. package/public/assets/furniture/POT/POT.png +0 -0
  67. package/public/assets/furniture/POT/manifest.json +13 -0
  68. package/public/assets/furniture/SMALL_PAINTING/SMALL_PAINTING.png +0 -0
  69. package/public/assets/furniture/SMALL_PAINTING/manifest.json +13 -0
  70. package/public/assets/furniture/SMALL_PAINTING_2/SMALL_PAINTING_2.png +0 -0
  71. package/public/assets/furniture/SMALL_PAINTING_2/manifest.json +13 -0
  72. package/public/assets/furniture/SMALL_TABLE/SMALL_TABLE_FRONT.png +0 -0
  73. package/public/assets/furniture/SMALL_TABLE/SMALL_TABLE_SIDE.png +0 -0
  74. package/public/assets/furniture/SMALL_TABLE/manifest.json +33 -0
  75. package/public/assets/furniture/SOFA/SOFA_BACK.png +0 -0
  76. package/public/assets/furniture/SOFA/SOFA_FRONT.png +0 -0
  77. package/public/assets/furniture/SOFA/SOFA_SIDE.png +0 -0
  78. package/public/assets/furniture/SOFA/manifest.json +44 -0
  79. package/public/assets/furniture/TABLE_FRONT/TABLE_FRONT.png +0 -0
  80. package/public/assets/furniture/TABLE_FRONT/manifest.json +13 -0
  81. package/public/assets/furniture/WHITEBOARD/WHITEBOARD.png +0 -0
  82. package/public/assets/furniture/WHITEBOARD/manifest.json +13 -0
  83. package/public/assets/furniture/WOODEN_BENCH/WOODEN_BENCH.png +0 -0
  84. package/public/assets/furniture/WOODEN_BENCH/manifest.json +13 -0
  85. package/public/assets/furniture/WOODEN_CHAIR/WOODEN_CHAIR_BACK.png +0 -0
  86. package/public/assets/furniture/WOODEN_CHAIR/WOODEN_CHAIR_FRONT.png +0 -0
  87. package/public/assets/furniture/WOODEN_CHAIR/WOODEN_CHAIR_SIDE.png +0 -0
  88. package/public/assets/furniture/WOODEN_CHAIR/manifest.json +44 -0
  89. package/public/assets/walls/wall_0.png +0 -0
  90. package/scripts/setup.ts +158 -0
  91. package/server.ts +53 -0
  92. package/src/app/api/focus-terminal/route.ts +65 -0
  93. package/src/app/api/hooks/notification/route.ts +19 -0
  94. package/src/app/api/hooks/post-tool-use/route.ts +26 -0
  95. package/src/app/api/hooks/pre-tool-use/route.ts +189 -0
  96. package/src/app/api/hooks/session-end/route.ts +31 -0
  97. package/src/app/api/hooks/session-start/route.ts +47 -0
  98. package/src/app/api/hooks/stop/route.ts +19 -0
  99. package/src/app/api/hooks/user-prompt/route.ts +92 -0
  100. package/src/app/favicon.ico +0 -0
  101. package/src/app/globals.css +14 -0
  102. package/src/app/layout.tsx +21 -0
  103. package/src/app/page.tsx +5 -0
  104. package/src/components/ApprovalToast.tsx +132 -0
  105. package/src/components/OfficeCanvas.tsx +311 -0
  106. package/src/components/Terminal.tsx +177 -0
  107. package/src/components/TerminalTile.tsx +181 -0
  108. package/src/components/WorkerPanel.tsx +261 -0
  109. package/src/components/WorkerPopup.tsx +116 -0
  110. package/src/game/asset-loader.ts +172 -0
  111. package/src/game/office-layout.ts +287 -0
  112. package/src/game/renderer.ts +369 -0
  113. package/src/game/sprites.ts +133 -0
  114. package/src/game/worker-entity.ts +219 -0
  115. package/src/hooks/usePixelOffice.ts +318 -0
  116. package/src/hooks/useRecentCwds.ts +27 -0
  117. package/src/lib/approval-queue.ts +67 -0
  118. package/src/lib/pty-manager.ts +267 -0
  119. package/src/lib/store.ts +181 -0
  120. package/src/lib/tool-classifier.ts +224 -0
  121. package/src/lib/transcript.ts +109 -0
  122. package/src/lib/types.ts +58 -0
  123. package/src/lib/ws-server.ts +270 -0
  124. package/tsconfig.json +34 -0
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "CLOCK",
3
+ "name": "Clock",
4
+ "category": "wall",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": true,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 16,
10
+ "height": 32,
11
+ "footprintW": 1,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "COFFEE",
3
+ "name": "Coffee",
4
+ "category": "decor",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": true,
8
+ "backgroundTiles": 0,
9
+ "width": 16,
10
+ "height": 16,
11
+ "footprintW": 1,
12
+ "footprintH": 1
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "COFFEE_TABLE",
3
+ "name": "Coffee Table",
4
+ "category": "desks",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 32,
10
+ "height": 32,
11
+ "footprintW": 2,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "CUSHIONED_BENCH",
3
+ "name": "Cushioned Bench",
4
+ "category": "chairs",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 16,
10
+ "height": 16,
11
+ "footprintW": 1,
12
+ "footprintH": 1
13
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "id": "CUSHIONED_CHAIR",
3
+ "name": "Cushioned Chair",
4
+ "category": "chairs",
5
+ "type": "group",
6
+ "groupType": "rotation",
7
+ "rotationScheme": "3-way-mirror",
8
+ "canPlaceOnWalls": false,
9
+ "canPlaceOnSurfaces": false,
10
+ "backgroundTiles": 0,
11
+ "members": [
12
+ {
13
+ "type": "asset",
14
+ "id": "CUSHIONED_CHAIR_FRONT",
15
+ "file": "CUSHIONED_CHAIR_FRONT.png",
16
+ "width": 16,
17
+ "height": 16,
18
+ "footprintW": 1,
19
+ "footprintH": 1,
20
+ "orientation": "front"
21
+ },
22
+ {
23
+ "type": "asset",
24
+ "id": "CUSHIONED_CHAIR_BACK",
25
+ "file": "CUSHIONED_CHAIR_BACK.png",
26
+ "width": 16,
27
+ "height": 16,
28
+ "footprintW": 1,
29
+ "footprintH": 1,
30
+ "orientation": "back"
31
+ },
32
+ {
33
+ "type": "asset",
34
+ "id": "CUSHIONED_CHAIR_SIDE",
35
+ "file": "CUSHIONED_CHAIR_SIDE.png",
36
+ "width": 16,
37
+ "height": 16,
38
+ "footprintW": 1,
39
+ "footprintH": 1,
40
+ "orientation": "side",
41
+ "mirrorSide": true
42
+ }
43
+ ]
44
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "DESK",
3
+ "name": "Desk",
4
+ "category": "desks",
5
+ "type": "group",
6
+ "groupType": "rotation",
7
+ "rotationScheme": "2-way",
8
+ "canPlaceOnWalls": false,
9
+ "canPlaceOnSurfaces": false,
10
+ "backgroundTiles": 1,
11
+ "members": [
12
+ {
13
+ "type": "asset",
14
+ "id": "DESK_FRONT",
15
+ "file": "DESK_FRONT.png",
16
+ "width": 48,
17
+ "height": 32,
18
+ "footprintW": 3,
19
+ "footprintH": 2,
20
+ "orientation": "front"
21
+ },
22
+ {
23
+ "type": "asset",
24
+ "id": "DESK_SIDE",
25
+ "file": "DESK_SIDE.png",
26
+ "width": 16,
27
+ "height": 64,
28
+ "footprintW": 1,
29
+ "footprintH": 4,
30
+ "orientation": "side"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "DOUBLE_BOOKSHELF",
3
+ "name": "Double Bookshelf",
4
+ "category": "wall",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": true,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 32,
10
+ "height": 32,
11
+ "footprintW": 2,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "HANGING_PLANT",
3
+ "name": "Hanging Plant",
4
+ "category": "wall",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": true,
7
+ "canPlaceOnSurfaces": true,
8
+ "backgroundTiles": 0,
9
+ "width": 16,
10
+ "height": 32,
11
+ "footprintW": 1,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "LARGE_PAINTING",
3
+ "name": "Large Painting",
4
+ "category": "wall",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": true,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 32,
10
+ "height": 32,
11
+ "footprintW": 2,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "LARGE_PLANT",
3
+ "name": "Large Plant",
4
+ "category": "decor",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 32,
10
+ "height": 48,
11
+ "footprintW": 2,
12
+ "footprintH": 3
13
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "id": "PC",
3
+ "name": "PC",
4
+ "category": "electronics",
5
+ "type": "group",
6
+ "groupType": "rotation",
7
+ "rotationScheme": "3-way-mirror",
8
+ "canPlaceOnWalls": false,
9
+ "canPlaceOnSurfaces": true,
10
+ "backgroundTiles": 1,
11
+ "members": [
12
+ {
13
+ "type": "group",
14
+ "groupType": "state",
15
+ "orientation": "front",
16
+ "members": [
17
+ {
18
+ "type": "group",
19
+ "groupType": "animation",
20
+ "state": "on",
21
+ "members": [
22
+ {
23
+ "type": "asset",
24
+ "id": "PC_FRONT_ON_1",
25
+ "file": "PC_FRONT_ON_1.png",
26
+ "width": 16,
27
+ "height": 32,
28
+ "footprintW": 1,
29
+ "footprintH": 2,
30
+ "frame": 0
31
+ },
32
+ {
33
+ "type": "asset",
34
+ "id": "PC_FRONT_ON_2",
35
+ "file": "PC_FRONT_ON_2.png",
36
+ "width": 16,
37
+ "height": 32,
38
+ "footprintW": 1,
39
+ "footprintH": 2,
40
+ "frame": 1
41
+ },
42
+ {
43
+ "type": "asset",
44
+ "id": "PC_FRONT_ON_3",
45
+ "file": "PC_FRONT_ON_3.png",
46
+ "width": 16,
47
+ "height": 32,
48
+ "footprintW": 1,
49
+ "footprintH": 2,
50
+ "frame": 2
51
+ }
52
+ ]
53
+ },
54
+ {
55
+ "type": "asset",
56
+ "id": "PC_FRONT_OFF",
57
+ "file": "PC_FRONT_OFF.png",
58
+ "width": 16,
59
+ "height": 32,
60
+ "footprintW": 1,
61
+ "footprintH": 2,
62
+ "state": "off"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "type": "asset",
68
+ "id": "PC_BACK",
69
+ "file": "PC_BACK.png",
70
+ "width": 16,
71
+ "height": 32,
72
+ "footprintW": 1,
73
+ "footprintH": 2,
74
+ "orientation": "back"
75
+ },
76
+ {
77
+ "type": "asset",
78
+ "id": "PC_SIDE",
79
+ "file": "PC_SIDE.png",
80
+ "width": 16,
81
+ "height": 32,
82
+ "footprintW": 1,
83
+ "footprintH": 2,
84
+ "orientation": "side",
85
+ "mirrorSide": true
86
+ }
87
+ ]
88
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "PLANT",
3
+ "name": "Plant",
4
+ "category": "decor",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 1,
9
+ "width": 16,
10
+ "height": 32,
11
+ "footprintW": 1,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "PLANT_2",
3
+ "name": "Plant",
4
+ "category": "decor",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 1,
9
+ "width": 16,
10
+ "height": 32,
11
+ "footprintW": 1,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "POT",
3
+ "name": "Pot",
4
+ "category": "decor",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 16,
10
+ "height": 16,
11
+ "footprintW": 1,
12
+ "footprintH": 1
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "SMALL_PAINTING",
3
+ "name": "Small Painting",
4
+ "category": "wall",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": true,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 16,
10
+ "height": 32,
11
+ "footprintW": 1,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "SMALL_PAINTING_2",
3
+ "name": "Small Painting",
4
+ "category": "wall",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": true,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 16,
10
+ "height": 32,
11
+ "footprintW": 1,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "SMALL_TABLE",
3
+ "name": "Small Table",
4
+ "category": "desks",
5
+ "type": "group",
6
+ "groupType": "rotation",
7
+ "rotationScheme": "2-way",
8
+ "canPlaceOnWalls": false,
9
+ "canPlaceOnSurfaces": false,
10
+ "backgroundTiles": 1,
11
+ "members": [
12
+ {
13
+ "type": "asset",
14
+ "id": "SMALL_TABLE_FRONT",
15
+ "file": "SMALL_TABLE_FRONT.png",
16
+ "width": 32,
17
+ "height": 32,
18
+ "footprintW": 2,
19
+ "footprintH": 2,
20
+ "orientation": "front"
21
+ },
22
+ {
23
+ "type": "asset",
24
+ "id": "SMALL_TABLE_SIDE",
25
+ "file": "SMALL_TABLE_SIDE.png",
26
+ "width": 16,
27
+ "height": 48,
28
+ "footprintW": 1,
29
+ "footprintH": 3,
30
+ "orientation": "side"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "id": "SOFA",
3
+ "name": "Sofa",
4
+ "category": "chairs",
5
+ "type": "group",
6
+ "groupType": "rotation",
7
+ "rotationScheme": "3-way-mirror",
8
+ "canPlaceOnWalls": false,
9
+ "canPlaceOnSurfaces": false,
10
+ "backgroundTiles": 0,
11
+ "members": [
12
+ {
13
+ "type": "asset",
14
+ "id": "SOFA_FRONT",
15
+ "file": "SOFA_FRONT.png",
16
+ "width": 32,
17
+ "height": 16,
18
+ "footprintW": 2,
19
+ "footprintH": 1,
20
+ "orientation": "front"
21
+ },
22
+ {
23
+ "type": "asset",
24
+ "id": "SOFA_BACK",
25
+ "file": "SOFA_BACK.png",
26
+ "width": 32,
27
+ "height": 16,
28
+ "footprintW": 2,
29
+ "footprintH": 1,
30
+ "orientation": "back"
31
+ },
32
+ {
33
+ "type": "asset",
34
+ "id": "SOFA_SIDE",
35
+ "file": "SOFA_SIDE.png",
36
+ "width": 16,
37
+ "height": 32,
38
+ "footprintW": 1,
39
+ "footprintH": 2,
40
+ "orientation": "side",
41
+ "mirrorSide": true
42
+ }
43
+ ]
44
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "TABLE_FRONT",
3
+ "name": "Table",
4
+ "category": "desks",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 1,
9
+ "width": 48,
10
+ "height": 64,
11
+ "footprintW": 3,
12
+ "footprintH": 4
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "WHITEBOARD",
3
+ "name": "Whiteboard",
4
+ "category": "wall",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": true,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 32,
10
+ "height": 32,
11
+ "footprintW": 2,
12
+ "footprintH": 2
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "WOODEN_BENCH",
3
+ "name": "Wooden Bench",
4
+ "category": "chairs",
5
+ "type": "asset",
6
+ "canPlaceOnWalls": false,
7
+ "canPlaceOnSurfaces": false,
8
+ "backgroundTiles": 0,
9
+ "width": 16,
10
+ "height": 16,
11
+ "footprintW": 1,
12
+ "footprintH": 1
13
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "id": "WOODEN_CHAIR",
3
+ "name": "Wooden Chair",
4
+ "category": "chairs",
5
+ "type": "group",
6
+ "groupType": "rotation",
7
+ "rotationScheme": "3-way-mirror",
8
+ "canPlaceOnWalls": false,
9
+ "canPlaceOnSurfaces": false,
10
+ "backgroundTiles": 1,
11
+ "members": [
12
+ {
13
+ "type": "asset",
14
+ "id": "WOODEN_CHAIR_FRONT",
15
+ "file": "WOODEN_CHAIR_FRONT.png",
16
+ "width": 16,
17
+ "height": 32,
18
+ "footprintW": 1,
19
+ "footprintH": 2,
20
+ "orientation": "front"
21
+ },
22
+ {
23
+ "type": "asset",
24
+ "id": "WOODEN_CHAIR_BACK",
25
+ "file": "WOODEN_CHAIR_BACK.png",
26
+ "width": 16,
27
+ "height": 32,
28
+ "footprintW": 1,
29
+ "footprintH": 2,
30
+ "orientation": "back"
31
+ },
32
+ {
33
+ "type": "asset",
34
+ "id": "WOODEN_CHAIR_SIDE",
35
+ "file": "WOODEN_CHAIR_SIDE.png",
36
+ "width": 16,
37
+ "height": 32,
38
+ "footprintW": 1,
39
+ "footprintH": 2,
40
+ "orientation": "side",
41
+ "mirrorSide": true
42
+ }
43
+ ]
44
+ }
Binary file