Initial commit: 3D Hommie RPG game
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
979
data/map-config.json
Normal file
979
data/map-config.json
Normal file
@@ -0,0 +1,979 @@
|
||||
{
|
||||
"roads": [
|
||||
{
|
||||
"id": "ew_main",
|
||||
"name": "Главная E-W",
|
||||
"x": 0,
|
||||
"z": 0,
|
||||
"width": 300,
|
||||
"height": 12,
|
||||
"rotation": 0,
|
||||
"sidewalkWidth": 3
|
||||
},
|
||||
{
|
||||
"id": "ns_main",
|
||||
"name": "Главная N-S",
|
||||
"x": 0,
|
||||
"z": 0,
|
||||
"width": 12,
|
||||
"height": 300,
|
||||
"rotation": 1.5708,
|
||||
"sidewalkWidth": 3
|
||||
},
|
||||
{
|
||||
"id": "ew_south",
|
||||
"name": "Южная улица",
|
||||
"x": 0,
|
||||
"z": -45,
|
||||
"width": 250,
|
||||
"height": 8,
|
||||
"rotation": 0,
|
||||
"sidewalkWidth": 2.5
|
||||
},
|
||||
{
|
||||
"id": "ew_north",
|
||||
"name": "Северная улица",
|
||||
"x": 0,
|
||||
"z": 50,
|
||||
"width": 220,
|
||||
"height": 8,
|
||||
"rotation": 0,
|
||||
"sidewalkWidth": 2.5
|
||||
},
|
||||
{
|
||||
"id": "ns_west",
|
||||
"name": "Западная улица",
|
||||
"x": -55,
|
||||
"z": 0,
|
||||
"width": 8,
|
||||
"height": 110,
|
||||
"rotation": 1.5708,
|
||||
"sidewalkWidth": 2.5
|
||||
},
|
||||
{
|
||||
"id": "ns_east",
|
||||
"name": "Восточная улица",
|
||||
"x": 55,
|
||||
"z": 0,
|
||||
"width": 8,
|
||||
"height": 110,
|
||||
"rotation": 1.5708,
|
||||
"sidewalkWidth": 2.5
|
||||
}
|
||||
],
|
||||
"buildings": [
|
||||
{
|
||||
"x": 18,
|
||||
"z": 18,
|
||||
"w": 10,
|
||||
"h": 16,
|
||||
"d": 8,
|
||||
"color": "#8b7355"
|
||||
},
|
||||
{
|
||||
"x": 40,
|
||||
"z": 18,
|
||||
"w": 10,
|
||||
"h": 20,
|
||||
"d": 8,
|
||||
"color": "#696969"
|
||||
},
|
||||
{
|
||||
"x": 18,
|
||||
"z": 36,
|
||||
"w": 8,
|
||||
"h": 14,
|
||||
"d": 8,
|
||||
"color": "#7b6b55"
|
||||
},
|
||||
{
|
||||
"x": 42,
|
||||
"z": 36,
|
||||
"w": 10,
|
||||
"h": 18,
|
||||
"d": 8,
|
||||
"color": "#5b5b6b"
|
||||
},
|
||||
{
|
||||
"x": -42,
|
||||
"z": -18,
|
||||
"w": 10,
|
||||
"h": 14,
|
||||
"d": 8,
|
||||
"color": "#6b6b55"
|
||||
},
|
||||
{
|
||||
"x": -42,
|
||||
"z": -33,
|
||||
"w": 10,
|
||||
"h": 12,
|
||||
"d": 8,
|
||||
"color": "#556b6b"
|
||||
},
|
||||
{
|
||||
"x": -15,
|
||||
"z": -28,
|
||||
"w": 12,
|
||||
"h": 18,
|
||||
"d": 10,
|
||||
"color": "#556b7b"
|
||||
},
|
||||
{
|
||||
"x": 15,
|
||||
"z": -18,
|
||||
"w": 10,
|
||||
"h": 16,
|
||||
"d": 8,
|
||||
"color": "#7b5b5b"
|
||||
},
|
||||
{
|
||||
"x": 43,
|
||||
"z": -18,
|
||||
"w": 8,
|
||||
"h": 22,
|
||||
"d": 10,
|
||||
"color": "#5b7b6b"
|
||||
},
|
||||
{
|
||||
"x": 15,
|
||||
"z": -33,
|
||||
"w": 10,
|
||||
"h": 14,
|
||||
"d": 8,
|
||||
"color": "#5b6b7b"
|
||||
},
|
||||
{
|
||||
"x": 43,
|
||||
"z": -33,
|
||||
"w": 10,
|
||||
"h": 12,
|
||||
"d": 8,
|
||||
"color": "#6b5b7b"
|
||||
},
|
||||
{
|
||||
"x": -46,
|
||||
"z": -62,
|
||||
"w": 12,
|
||||
"h": 16,
|
||||
"d": 10,
|
||||
"color": "#8b7355"
|
||||
},
|
||||
{
|
||||
"x": -16,
|
||||
"z": -62,
|
||||
"w": 10,
|
||||
"h": 14,
|
||||
"d": 8,
|
||||
"color": "#696969"
|
||||
},
|
||||
{
|
||||
"x": 14,
|
||||
"z": -62,
|
||||
"w": 8,
|
||||
"h": 18,
|
||||
"d": 10,
|
||||
"color": "#7b6b55"
|
||||
},
|
||||
{
|
||||
"x": 46,
|
||||
"z": -62,
|
||||
"w": 12,
|
||||
"h": 14,
|
||||
"d": 10,
|
||||
"color": "#6b6b55"
|
||||
},
|
||||
{
|
||||
"x": -40,
|
||||
"z": 62,
|
||||
"w": 10,
|
||||
"h": 12,
|
||||
"d": 8,
|
||||
"color": "#556b6b"
|
||||
},
|
||||
{
|
||||
"x": 16,
|
||||
"z": 62,
|
||||
"w": 12,
|
||||
"h": 16,
|
||||
"d": 8,
|
||||
"color": "#556b7b"
|
||||
},
|
||||
{
|
||||
"x": 42,
|
||||
"z": 62,
|
||||
"w": 10,
|
||||
"h": 14,
|
||||
"d": 8,
|
||||
"color": "#7b5b5b"
|
||||
}
|
||||
],
|
||||
"structures": {
|
||||
"park": {
|
||||
"x": -27,
|
||||
"z": 25,
|
||||
"radius": 13
|
||||
},
|
||||
"shop": {
|
||||
"x": -28,
|
||||
"z": -22,
|
||||
"w": 10,
|
||||
"h": 5,
|
||||
"d": 8
|
||||
},
|
||||
"shelter": {
|
||||
"x": -45,
|
||||
"z": 40,
|
||||
"w": 8,
|
||||
"d": 6
|
||||
},
|
||||
"hospital": {
|
||||
"x": -28,
|
||||
"z": -60,
|
||||
"w": 12,
|
||||
"h": 7,
|
||||
"d": 10
|
||||
},
|
||||
"church": {
|
||||
"x": 28,
|
||||
"z": 35,
|
||||
"w": 10,
|
||||
"h": 8,
|
||||
"d": 14
|
||||
},
|
||||
"market": {
|
||||
"x": 28,
|
||||
"z": -60,
|
||||
"w": 14,
|
||||
"h": 4,
|
||||
"d": 10
|
||||
},
|
||||
"construction": {
|
||||
"x": 75,
|
||||
"z": 73,
|
||||
"radius": 12
|
||||
},
|
||||
"busStop": {
|
||||
"x": -18,
|
||||
"z": 8,
|
||||
"w": 5,
|
||||
"d": 2
|
||||
},
|
||||
"parking": {
|
||||
"x": 30,
|
||||
"z": -22,
|
||||
"w": 20,
|
||||
"d": 15
|
||||
},
|
||||
"fountain": {
|
||||
"x": -27,
|
||||
"z": 25,
|
||||
"radius": 2
|
||||
},
|
||||
"phoneBooth": {
|
||||
"x": 12,
|
||||
"z": -10,
|
||||
"w": 1.2,
|
||||
"d": 1.2
|
||||
},
|
||||
"jobBoard": {
|
||||
"x": 22,
|
||||
"z": -10,
|
||||
"w": 1.2,
|
||||
"d": 0.8
|
||||
},
|
||||
"campSpot": {
|
||||
"x": -32,
|
||||
"z": 42
|
||||
}
|
||||
},
|
||||
"interactables": {
|
||||
"dumpsters": [
|
||||
{
|
||||
"x": -20,
|
||||
"z": -10,
|
||||
"rot": 0
|
||||
},
|
||||
{
|
||||
"x": 25,
|
||||
"z": -10,
|
||||
"rot": 0.3
|
||||
},
|
||||
{
|
||||
"x": -48,
|
||||
"z": 15,
|
||||
"rot": -0.2
|
||||
},
|
||||
{
|
||||
"x": 38,
|
||||
"z": 10,
|
||||
"rot": 0.5
|
||||
},
|
||||
{
|
||||
"x": -30,
|
||||
"z": 38,
|
||||
"rot": 0.1
|
||||
},
|
||||
{
|
||||
"x": 18,
|
||||
"z": -50,
|
||||
"rot": 0
|
||||
},
|
||||
{
|
||||
"x": -40,
|
||||
"z": -50,
|
||||
"rot": 0.4
|
||||
},
|
||||
{
|
||||
"x": 35,
|
||||
"z": 35,
|
||||
"rot": -0.3
|
||||
}
|
||||
],
|
||||
"benches": [
|
||||
{
|
||||
"x": -32,
|
||||
"z": 20,
|
||||
"rot": 0
|
||||
},
|
||||
{
|
||||
"x": -22,
|
||||
"z": 30,
|
||||
"rot": 3.14159
|
||||
},
|
||||
{
|
||||
"x": -30,
|
||||
"z": 15,
|
||||
"rot": 0
|
||||
},
|
||||
{
|
||||
"x": 10,
|
||||
"z": 10,
|
||||
"rot": 3.14159
|
||||
},
|
||||
{
|
||||
"x": -18,
|
||||
"z": -10,
|
||||
"rot": 0
|
||||
},
|
||||
{
|
||||
"x": 35,
|
||||
"z": 10,
|
||||
"rot": 3.14159
|
||||
}
|
||||
],
|
||||
"trashPiles": [
|
||||
{
|
||||
"x": -42,
|
||||
"z": 12
|
||||
},
|
||||
{
|
||||
"x": 38,
|
||||
"z": -12
|
||||
},
|
||||
{
|
||||
"x": -12,
|
||||
"z": -38
|
||||
},
|
||||
{
|
||||
"x": 22,
|
||||
"z": 40
|
||||
}
|
||||
]
|
||||
},
|
||||
"decorations": {
|
||||
"lamps": [
|
||||
[
|
||||
-40,
|
||||
-8
|
||||
],
|
||||
[
|
||||
-20,
|
||||
-8
|
||||
],
|
||||
[
|
||||
20,
|
||||
-8
|
||||
],
|
||||
[
|
||||
40,
|
||||
-8
|
||||
],
|
||||
[
|
||||
-40,
|
||||
8
|
||||
],
|
||||
[
|
||||
-20,
|
||||
8
|
||||
],
|
||||
[
|
||||
20,
|
||||
8
|
||||
],
|
||||
[
|
||||
40,
|
||||
8
|
||||
],
|
||||
[
|
||||
-8,
|
||||
-30
|
||||
],
|
||||
[
|
||||
-8,
|
||||
-15
|
||||
],
|
||||
[
|
||||
-8,
|
||||
15
|
||||
],
|
||||
[
|
||||
-8,
|
||||
30
|
||||
],
|
||||
[
|
||||
8,
|
||||
-30
|
||||
],
|
||||
[
|
||||
8,
|
||||
15
|
||||
],
|
||||
[
|
||||
8,
|
||||
30
|
||||
],
|
||||
[
|
||||
-30,
|
||||
-50
|
||||
],
|
||||
[
|
||||
0,
|
||||
-50
|
||||
],
|
||||
[
|
||||
30,
|
||||
-50
|
||||
],
|
||||
[
|
||||
-30,
|
||||
55
|
||||
],
|
||||
[
|
||||
30,
|
||||
55
|
||||
]
|
||||
],
|
||||
"hydrants": [
|
||||
[
|
||||
-18,
|
||||
-10
|
||||
],
|
||||
[
|
||||
25,
|
||||
-10
|
||||
],
|
||||
[
|
||||
35,
|
||||
8
|
||||
]
|
||||
],
|
||||
"bins": [
|
||||
[
|
||||
-10,
|
||||
-10
|
||||
],
|
||||
[
|
||||
10,
|
||||
-10
|
||||
],
|
||||
[
|
||||
25,
|
||||
10
|
||||
],
|
||||
[
|
||||
-25,
|
||||
10
|
||||
]
|
||||
]
|
||||
},
|
||||
"npcs": [
|
||||
{
|
||||
"name": "Серёга",
|
||||
"x": -35,
|
||||
"z": 28,
|
||||
"type": "hobo",
|
||||
"color": "#8b6914",
|
||||
"patrol": [
|
||||
[
|
||||
-35,
|
||||
28
|
||||
],
|
||||
[
|
||||
-30,
|
||||
22
|
||||
],
|
||||
[
|
||||
-25,
|
||||
28
|
||||
],
|
||||
[
|
||||
-30,
|
||||
34
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Прохожий",
|
||||
"x": 8,
|
||||
"z": -8,
|
||||
"type": "citizen",
|
||||
"color": "#4488cc",
|
||||
"patrol": [
|
||||
[
|
||||
8,
|
||||
-8
|
||||
],
|
||||
[
|
||||
20,
|
||||
-8
|
||||
],
|
||||
[
|
||||
30,
|
||||
-8
|
||||
],
|
||||
[
|
||||
20,
|
||||
-8
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Бабушка Зина",
|
||||
"x": -22,
|
||||
"z": 22,
|
||||
"type": "citizen",
|
||||
"color": "#cc88cc",
|
||||
"patrol": [
|
||||
[
|
||||
-22,
|
||||
22
|
||||
],
|
||||
[
|
||||
-27,
|
||||
26
|
||||
],
|
||||
[
|
||||
-22,
|
||||
30
|
||||
],
|
||||
[
|
||||
-17,
|
||||
26
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Охранник",
|
||||
"x": -25,
|
||||
"z": -18,
|
||||
"type": "citizen",
|
||||
"color": "#445566"
|
||||
},
|
||||
{
|
||||
"name": "Отец Михаил",
|
||||
"x": 28,
|
||||
"z": 44,
|
||||
"type": "citizen",
|
||||
"color": "#2a2a2a",
|
||||
"patrol": [
|
||||
[
|
||||
28,
|
||||
33
|
||||
],
|
||||
[
|
||||
30,
|
||||
30
|
||||
],
|
||||
[
|
||||
26,
|
||||
30
|
||||
],
|
||||
[
|
||||
28,
|
||||
33
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Михалыч",
|
||||
"x": 72,
|
||||
"z": 58,
|
||||
"type": "hobo",
|
||||
"color": "#6b5b4b",
|
||||
"patrol": [
|
||||
[
|
||||
72,
|
||||
58
|
||||
],
|
||||
[
|
||||
75,
|
||||
60
|
||||
],
|
||||
[
|
||||
68,
|
||||
62
|
||||
],
|
||||
[
|
||||
72,
|
||||
58
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"vehicles": {
|
||||
"routes": [
|
||||
{
|
||||
"axis": "x",
|
||||
"lane": -3,
|
||||
"start": -130,
|
||||
"end": 130,
|
||||
"dir": 1
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"lane": 3,
|
||||
"start": 130,
|
||||
"end": -130,
|
||||
"dir": -1
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"lane": -47,
|
||||
"start": -120,
|
||||
"end": 120,
|
||||
"dir": 1
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"lane": -43,
|
||||
"start": 120,
|
||||
"end": -120,
|
||||
"dir": -1
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"lane": 48,
|
||||
"start": -100,
|
||||
"end": 100,
|
||||
"dir": 1
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"lane": 52,
|
||||
"start": 100,
|
||||
"end": -100,
|
||||
"dir": -1
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"lane": -3,
|
||||
"start": -130,
|
||||
"end": 130,
|
||||
"dir": 1
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"lane": 3,
|
||||
"start": 130,
|
||||
"end": -130,
|
||||
"dir": -1
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"lane": -57,
|
||||
"start": -50,
|
||||
"end": 50,
|
||||
"dir": 1
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"lane": -53,
|
||||
"start": 50,
|
||||
"end": -50,
|
||||
"dir": -1
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"lane": 53,
|
||||
"start": -50,
|
||||
"end": 50,
|
||||
"dir": 1
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"lane": 57,
|
||||
"start": 50,
|
||||
"end": -50,
|
||||
"dir": -1
|
||||
}
|
||||
]
|
||||
},
|
||||
"passerbyRoutes": [
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
-80,
|
||||
8
|
||||
],
|
||||
[
|
||||
-40,
|
||||
8
|
||||
],
|
||||
[
|
||||
0,
|
||||
8
|
||||
],
|
||||
[
|
||||
30,
|
||||
8
|
||||
],
|
||||
[
|
||||
60,
|
||||
8
|
||||
],
|
||||
[
|
||||
80,
|
||||
8
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
80,
|
||||
-8
|
||||
],
|
||||
[
|
||||
40,
|
||||
-8
|
||||
],
|
||||
[
|
||||
0,
|
||||
-8
|
||||
],
|
||||
[
|
||||
-30,
|
||||
-8
|
||||
],
|
||||
[
|
||||
-60,
|
||||
-8
|
||||
],
|
||||
[
|
||||
-80,
|
||||
-8
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
-8,
|
||||
-70
|
||||
],
|
||||
[
|
||||
-8,
|
||||
-40
|
||||
],
|
||||
[
|
||||
-8,
|
||||
0
|
||||
],
|
||||
[
|
||||
-8,
|
||||
30
|
||||
],
|
||||
[
|
||||
-8,
|
||||
60
|
||||
],
|
||||
[
|
||||
-8,
|
||||
80
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
8,
|
||||
80
|
||||
],
|
||||
[
|
||||
8,
|
||||
40
|
||||
],
|
||||
[
|
||||
8,
|
||||
0
|
||||
],
|
||||
[
|
||||
8,
|
||||
-30
|
||||
],
|
||||
[
|
||||
8,
|
||||
-60
|
||||
],
|
||||
[
|
||||
8,
|
||||
-80
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
-80,
|
||||
-50
|
||||
],
|
||||
[
|
||||
-40,
|
||||
-50
|
||||
],
|
||||
[
|
||||
0,
|
||||
-50
|
||||
],
|
||||
[
|
||||
40,
|
||||
-50
|
||||
],
|
||||
[
|
||||
80,
|
||||
-50
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
80,
|
||||
55
|
||||
],
|
||||
[
|
||||
40,
|
||||
55
|
||||
],
|
||||
[
|
||||
0,
|
||||
55
|
||||
],
|
||||
[
|
||||
-40,
|
||||
55
|
||||
],
|
||||
[
|
||||
-80,
|
||||
55
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
-58,
|
||||
-40
|
||||
],
|
||||
[
|
||||
-58,
|
||||
-20
|
||||
],
|
||||
[
|
||||
-58,
|
||||
0
|
||||
],
|
||||
[
|
||||
-58,
|
||||
20
|
||||
],
|
||||
[
|
||||
-58,
|
||||
40
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
58,
|
||||
40
|
||||
],
|
||||
[
|
||||
58,
|
||||
20
|
||||
],
|
||||
[
|
||||
58,
|
||||
0
|
||||
],
|
||||
[
|
||||
58,
|
||||
-20
|
||||
],
|
||||
[
|
||||
58,
|
||||
-40
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
-50,
|
||||
8
|
||||
],
|
||||
[
|
||||
-30,
|
||||
8
|
||||
],
|
||||
[
|
||||
-20,
|
||||
20
|
||||
],
|
||||
[
|
||||
-20,
|
||||
30
|
||||
],
|
||||
[
|
||||
-30,
|
||||
8
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"waypoints": [
|
||||
[
|
||||
20,
|
||||
-8
|
||||
],
|
||||
[
|
||||
20,
|
||||
-25
|
||||
],
|
||||
[
|
||||
35,
|
||||
-25
|
||||
],
|
||||
[
|
||||
35,
|
||||
-8
|
||||
],
|
||||
[
|
||||
50,
|
||||
-8
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user