dfhack-remote-node 2.0.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.
@@ -0,0 +1,1131 @@
1
+ syntax = "proto2";
2
+
3
+ //Attempts to provide a complete framework for reading everything from a fortress needed for vizualization
4
+ package RemoteFortressReader;
5
+
6
+ option optimize_for = LITE_RUNTIME;
7
+
8
+ // Plugin: RemoteFortressReader
9
+
10
+ import "ItemdefInstrument.proto";
11
+
12
+ // RPC GetMaterialList : EmptyMessage -> MaterialList
13
+ // RPC GetGrowthList : EmptyMessage -> MaterialList
14
+ // RPC GetBlockList : BlockRequest -> BlockList
15
+ // RPC CheckHashes : EmptyMessage -> EmptyMessage
16
+ // RPC GetTiletypeList : EmptyMessage -> TiletypeList
17
+ // RPC GetPlantList : BlockRequest -> PlantList
18
+ // RPC GetUnitList : EmptyMessage -> UnitList
19
+ // RPC GetUnitListInside : BlockRequest -> UnitList
20
+ // RPC GetViewInfo : EmptyMessage -> ViewInfo
21
+ // RPC GetMapInfo : EmptyMessage -> MapInfo
22
+ // RPC ResetMapHashes : EmptyMessage -> EmptyMessage
23
+ // RPC GetItemList : EmptyMessage -> MaterialList
24
+ // RPC GetBuildingDefList : EmptyMessage -> BuildingList
25
+ // RPC GetWorldMap : EmptyMessage -> WorldMap
26
+ // RPC GetWorldMapNew : EmptyMessage -> WorldMap
27
+ // RPC GetRegionMaps : EmptyMessage -> RegionMaps
28
+ // RPC GetRegionMapsNew : EmptyMessage -> RegionMaps
29
+ // RPC GetCreatureRaws : EmptyMessage -> CreatureRawList
30
+ // RPC GetPartialCreatureRaws : ListRequest -> CreatureRawList
31
+ // RPC GetWorldMapCenter : EmptyMessage -> WorldMap
32
+ // RPC GetPlantRaws : EmptyMessage -> PlantRawList
33
+ // RPC GetPartialPlantRaws : ListRequest -> PlantRawList
34
+ // RPC CopyScreen : EmptyMessage -> ScreenCapture
35
+ // RPC PassKeyboardEvent : KeyboardEvent -> EmptyMessage
36
+ // RPC SendDigCommand : DigCommand -> EmptyMessage
37
+ // RPC SetPauseState : SingleBool -> EmptyMessage
38
+ // RPC GetPauseState : EmptyMessage -> SingleBool
39
+ // RPC GetVersionInfo : EmptyMessage -> VersionInfo
40
+ // RPC GetReports : EmptyMessage -> Status
41
+ // RPC MoveCommand : MoveCommandParams -> EmptyMessage
42
+ // RPC JumpCommand : MoveCommandParams -> EmptyMessage
43
+ // RPC MenuQuery : EmptyMessage -> MenuContents
44
+ // RPC MovementSelectCommand : IntMessage -> EmptyMessage
45
+ // RPC MiscMoveCommand : MiscMoveParams -> EmptyMessage
46
+ // RPC GetLanguage : EmptyMessage -> Language
47
+ // RPC GetGameValidity : EmptyMessage -> SingleBool
48
+
49
+ //We use shapes, etc, because the actual tiletypes may differ between DF versions.
50
+ enum TiletypeShape
51
+ {
52
+ NO_SHAPE = -1;
53
+ EMPTY = 0;
54
+ FLOOR = 1;
55
+ BOULDER = 2;
56
+ PEBBLES = 3;
57
+ WALL = 4;
58
+ FORTIFICATION = 5;
59
+ STAIR_UP = 6;
60
+ STAIR_DOWN = 7;
61
+ STAIR_UPDOWN = 8;
62
+ RAMP = 9;
63
+ RAMP_TOP = 10;
64
+ BROOK_BED = 11;
65
+ BROOK_TOP = 12;
66
+ TREE_SHAPE = 13;
67
+ SAPLING = 14;
68
+ SHRUB = 15;
69
+ ENDLESS_PIT = 16;
70
+ BRANCH = 17;
71
+ TRUNK_BRANCH = 18;
72
+ TWIG = 19;
73
+ }
74
+
75
+ enum TiletypeSpecial
76
+ {
77
+ NO_SPECIAL = -1;
78
+ NORMAL = 0;
79
+ RIVER_SOURCE = 1;
80
+ WATERFALL = 2;
81
+ SMOOTH = 3;
82
+ FURROWED = 4;
83
+ WET = 5;
84
+ DEAD = 6;
85
+ WORN_1 = 7;
86
+ WORN_2 = 8;
87
+ WORN_3 = 9;
88
+ TRACK = 10;
89
+ SMOOTH_DEAD = 11;
90
+ };
91
+ enum TiletypeMaterial
92
+ {
93
+ NO_MATERIAL = -1;
94
+ AIR = 0;
95
+ SOIL = 1;
96
+ STONE = 2;
97
+ FEATURE = 3;
98
+ LAVA_STONE = 4;
99
+ MINERAL = 5;
100
+ FROZEN_LIQUID = 6;
101
+ CONSTRUCTION = 7;
102
+ GRASS_LIGHT = 8;
103
+ GRASS_DARK = 9;
104
+ GRASS_DRY = 10;
105
+ GRASS_DEAD = 11;
106
+ PLANT = 12;
107
+ HFS = 13;
108
+ CAMPFIRE = 14;
109
+ FIRE = 15;
110
+ ASHES = 16;
111
+ MAGMA = 17;
112
+ DRIFTWOOD = 18;
113
+ POOL = 19;
114
+ BROOK = 20;
115
+ RIVER = 21;
116
+ ROOT = 22;
117
+ TREE_MATERIAL = 23;
118
+ MUSHROOM = 24;
119
+ UNDERWORLD_GATE = 25;
120
+ }
121
+ enum TiletypeVariant
122
+ {
123
+ NO_VARIANT = -1;
124
+ VAR_1 = 0;
125
+ VAR_2 = 1;
126
+ VAR_3 = 2;
127
+ VAR_4 = 3;
128
+ };
129
+
130
+ enum WorldPoles
131
+ {
132
+ NO_POLES = 0;
133
+ NORTH_POLE = 1;
134
+ SOUTH_POLE = 2;
135
+ BOTH_POLES = 3;
136
+ }
137
+
138
+ enum BuildingDirection
139
+ {
140
+ NORTH = 0;
141
+ EAST = 1;
142
+ SOUTH = 2;
143
+ WEST = 3;
144
+ NORTHEAST = 4;
145
+ SOUTHEAST = 5;
146
+ SOUTHWEST = 6;
147
+ NORTHWEST = 7;
148
+ NONE = 8;
149
+ }
150
+
151
+ enum TileDigDesignation
152
+ {
153
+ /**
154
+ * no designation
155
+ */
156
+ NO_DIG = 0;
157
+ /**
158
+ * dig walls, remove stairs and ramps, gather plants, fell trees
159
+ */
160
+ DEFAULT_DIG = 1;
161
+ UP_DOWN_STAIR_DIG = 2;
162
+ CHANNEL_DIG = 3;
163
+ RAMP_DIG = 4;
164
+ DOWN_STAIR_DIG = 5;
165
+ UP_STAIR_DIG = 6;
166
+ }
167
+
168
+ enum HairStyle
169
+ {
170
+ UNKEMPT = -1;
171
+ NEATLY_COMBED = 0;
172
+ BRAIDED = 1;
173
+ DOUBLE_BRAID = 2;
174
+ PONY_TAILS = 3;
175
+ CLEAN_SHAVEN = 4;
176
+ }
177
+
178
+ enum InventoryMode
179
+ {
180
+ Hauled = 0;
181
+ /**
182
+ * also shield, crutch
183
+ */
184
+ Weapon = 1;
185
+ /**
186
+ * quiver
187
+ */
188
+ Worn = 2;
189
+ Piercing = 3;
190
+ /**
191
+ * attached to clothing
192
+ */
193
+ Flask = 4;
194
+ /**
195
+ * e.g. bandage
196
+ */
197
+ WrappedAround = 5;
198
+ StuckIn = 6;
199
+ /**
200
+ * string descr like Worn
201
+ */
202
+ InMouth = 7;
203
+ /**
204
+ * Left shoulder, right shoulder, or head, selected randomly using pet_seed
205
+ */
206
+ Pet = 8;
207
+ SewnInto = 9;
208
+ Strapped = 10;
209
+ }
210
+
211
+ enum ArmorLayer
212
+ {
213
+ LAYER_UNDER = 0;
214
+ LAYER_OVER = 1;
215
+ LAYER_ARMOR = 2;
216
+ LAYER_COVER = 3;
217
+ }
218
+
219
+ message Coord
220
+ {
221
+ optional int32 x = 1;
222
+ optional int32 y = 2;
223
+ optional int32 z = 3;
224
+ }
225
+
226
+ message Tiletype
227
+ {
228
+ required int32 id = 1;
229
+ optional string name = 2;
230
+ optional string caption = 3;
231
+ optional TiletypeShape shape = 4;
232
+ optional TiletypeSpecial special = 5;
233
+ optional TiletypeMaterial material = 6;
234
+ optional TiletypeVariant variant = 7;
235
+ optional string direction = 8;
236
+ };
237
+
238
+ message TiletypeList
239
+ {
240
+ repeated Tiletype tiletype_list = 1;
241
+ }
242
+
243
+ message BuildingExtents
244
+ {
245
+ required int32 pos_x = 1;
246
+ required int32 pos_y = 2;
247
+ required int32 width = 3;
248
+ required int32 height = 4;
249
+ repeated int32 extents = 5;
250
+ }
251
+
252
+ message BuildingItem
253
+ {
254
+ optional Item item = 1;
255
+ optional int32 mode = 2;
256
+ }
257
+
258
+ message BuildingInstance
259
+ {
260
+ required int32 index = 1;
261
+ optional int32 pos_x_min = 2;
262
+ optional int32 pos_y_min = 3;
263
+ optional int32 pos_z_min = 4;
264
+ optional int32 pos_x_max = 5;
265
+ optional int32 pos_y_max = 6;
266
+ optional int32 pos_z_max = 7;
267
+ optional BuildingType building_type = 8;
268
+ optional MatPair material = 9;
269
+ optional uint32 building_flags = 10;
270
+ optional bool is_room = 11;
271
+ optional BuildingExtents room = 12;
272
+ optional BuildingDirection direction = 13; //Doesn't mean anything for most buildings
273
+ repeated BuildingItem items = 14;
274
+ optional int32 active = 15;
275
+ }
276
+
277
+ message RiverEdge
278
+ {
279
+ optional int32 min_pos = 1;
280
+ optional int32 max_pos = 2;
281
+ optional int32 active = 3;
282
+ optional int32 elevation = 4;
283
+ }
284
+
285
+ message RiverTile
286
+ {
287
+ optional RiverEdge north = 1;
288
+ optional RiverEdge south = 2;
289
+ optional RiverEdge east = 3;
290
+ optional RiverEdge west = 4;
291
+ }
292
+
293
+ enum MatterState
294
+ {
295
+ Solid = 0;
296
+ Liquid = 1;
297
+ Gas = 2;
298
+ Powder = 3;
299
+ Paste = 4;
300
+ Pressed = 5;
301
+ }
302
+
303
+ message Spatter
304
+ {
305
+ optional MatPair material = 1;
306
+ optional int32 amount = 2;
307
+ optional MatterState state = 3;
308
+ optional MatPair item = 4;
309
+ }
310
+
311
+ message SpatterPile
312
+ {
313
+ repeated Spatter spatters = 1;
314
+ }
315
+
316
+ message Item
317
+ {
318
+ optional int32 id = 1;
319
+ optional Coord pos = 2;
320
+ optional uint32 flags1 = 3;
321
+ optional uint32 flags2 = 4;
322
+ optional MatPair type = 5;
323
+ optional MatPair material = 6;
324
+ optional ColorDefinition dye = 7;
325
+ optional int32 stack_size = 8;
326
+ optional float subpos_x = 9;
327
+ optional float subpos_y = 10;
328
+ optional float subpos_z = 11;
329
+ optional bool projectile = 12;
330
+ optional float velocity_x = 13;
331
+ optional float velocity_y = 14;
332
+ optional float velocity_z = 15;
333
+ optional int32 volume = 16;
334
+ repeated ItemImprovement improvements = 17;
335
+ optional ArtImage image = 18;
336
+ }
337
+
338
+ message PlantTile
339
+ {
340
+ optional bool trunk = 1;
341
+ optional bool connection_east = 2;
342
+ optional bool connection_south = 3;
343
+ optional bool connection_west = 4;
344
+ optional bool connection_north = 5;
345
+ optional bool branches = 6;
346
+ optional bool twigs = 7;
347
+ optional TiletypeSpecial tile_type = 8;
348
+ }
349
+
350
+ message TreeInfo
351
+ {
352
+ optional Coord size = 1;
353
+ repeated PlantTile tiles = 2;
354
+ }
355
+
356
+ message PlantInstance
357
+ {
358
+ optional int32 plant_type = 1;
359
+ optional Coord pos = 2;
360
+ optional TreeInfo tree_info = 3;
361
+ }
362
+
363
+ message MapBlock
364
+ {
365
+ required int32 map_x = 1;
366
+ required int32 map_y = 2;
367
+ required int32 map_z = 3;
368
+ repeated int32 tiles = 4;
369
+ repeated MatPair materials = 5;
370
+ repeated MatPair layer_materials = 6;
371
+ repeated MatPair vein_materials = 7;
372
+ repeated MatPair base_materials = 8;
373
+ repeated int32 magma = 9;
374
+ repeated int32 water = 10;
375
+ repeated bool hidden = 11;
376
+ repeated bool light = 12;
377
+ repeated bool subterranean = 13;
378
+ repeated bool outside = 14;
379
+ repeated bool aquifer = 15;
380
+ repeated bool water_stagnant = 16;
381
+ repeated bool water_salt = 17;
382
+ repeated MatPair construction_items = 18;
383
+ repeated BuildingInstance buildings = 19;
384
+ repeated int32 tree_percent = 20;
385
+ repeated int32 tree_x = 21;
386
+ repeated int32 tree_y = 22;
387
+ repeated int32 tree_z = 23;
388
+ repeated TileDigDesignation tile_dig_designation = 24;
389
+ repeated SpatterPile spatterPile = 25;
390
+ repeated Item items = 26;
391
+ repeated bool tile_dig_designation_marker = 27;
392
+ repeated bool tile_dig_designation_auto = 28;
393
+ repeated int32 grass_percent = 29;
394
+ repeated FlowInfo flows = 30;
395
+ }
396
+
397
+ message MatPair {
398
+ required int32 mat_type = 1;
399
+ required int32 mat_index = 2;
400
+ }
401
+
402
+ message ColorDefinition {
403
+ required int32 red = 1;
404
+ required int32 green = 2;
405
+ required int32 blue = 3;
406
+ }
407
+
408
+ message MaterialDefinition{
409
+ required MatPair mat_pair = 1;
410
+ optional string id = 2;
411
+ optional string name = 3;
412
+ optional ColorDefinition state_color = 4; //Simplifying colors to assume room temperature.
413
+ optional ItemdefInstrument.InstrumentDef instrument = 5;
414
+ optional int32 up_step = 6;
415
+ optional int32 down_step = 7;
416
+ optional ArmorLayer layer = 8;
417
+ }
418
+
419
+ message BuildingType
420
+ {
421
+ required int32 building_type = 1;
422
+ required int32 building_subtype = 2;
423
+ required int32 building_custom = 3;
424
+ }
425
+
426
+ message BuildingDefinition {
427
+ required BuildingType building_type = 1;
428
+ optional string id = 2;
429
+ optional string name = 3;
430
+ }
431
+
432
+ message BuildingList {
433
+ repeated BuildingDefinition building_list = 1;
434
+ }
435
+
436
+ message MaterialList{
437
+ repeated MaterialDefinition material_list = 1;
438
+ }
439
+
440
+ message Hair
441
+ {
442
+ optional int32 length = 1;
443
+ optional HairStyle style = 2;
444
+ }
445
+
446
+ message BodySizeInfo
447
+ {
448
+ optional int32 size_cur = 1;
449
+ optional int32 size_base = 2;
450
+ optional int32 area_cur = 3; /*!< size_cur^0.666 */
451
+ optional int32 area_base = 4; /*!< size_base^0.666 */
452
+ optional int32 length_cur = 5; /*!< (size_cur*10000)^0.333 */
453
+ optional int32 length_base = 6; /*!< (size_base*10000)^0.333 */
454
+ }
455
+
456
+ message UnitAppearance
457
+ {
458
+ repeated int32 body_modifiers = 1;
459
+ repeated int32 bp_modifiers = 2;
460
+ optional int32 size_modifier = 3;
461
+ repeated int32 colors = 4;
462
+ optional Hair hair = 5;
463
+ optional Hair beard = 6;
464
+ optional Hair moustache = 7;
465
+ optional Hair sideburns = 8;
466
+ optional string physical_description = 9;
467
+ }
468
+
469
+ message InventoryItem
470
+ {
471
+ optional InventoryMode mode = 1;
472
+ optional Item item = 2;
473
+ optional int32 body_part_id = 3;
474
+ }
475
+
476
+ message WoundPart
477
+ {
478
+ optional int32 global_layer_idx = 1;
479
+ optional int32 body_part_id = 2;
480
+ optional int32 layer_idx = 3;
481
+ }
482
+
483
+ message UnitWound
484
+ {
485
+ repeated WoundPart parts = 1;
486
+ optional bool severed_part = 2;
487
+ }
488
+
489
+ message UnitDefinition
490
+ {
491
+ required int32 id = 1;
492
+ optional bool isValid = 2;
493
+ optional int32 pos_x = 3;
494
+ optional int32 pos_y = 4;
495
+ optional int32 pos_z = 5;
496
+ optional MatPair race = 6;
497
+ optional ColorDefinition profession_color = 7;
498
+ optional uint32 flags1 = 8;
499
+ optional uint32 flags2 = 9;
500
+ optional uint32 flags3 = 10;
501
+ optional bool is_soldier = 11;
502
+ optional BodySizeInfo size_info = 12;
503
+ optional string name = 13;
504
+ optional int32 blood_max = 14;
505
+ optional int32 blood_count = 15;
506
+ optional UnitAppearance appearance = 16;
507
+ optional int32 profession_id = 17;
508
+ repeated string noble_positions = 18;
509
+ optional int32 rider_id = 19;
510
+ repeated InventoryItem inventory = 20;
511
+ optional float subpos_x = 21;
512
+ optional float subpos_y = 22;
513
+ optional float subpos_z = 23;
514
+ optional Coord facing = 24;
515
+ optional int32 age = 25;
516
+ repeated UnitWound wounds = 26;
517
+ }
518
+
519
+ message UnitList
520
+ {
521
+ repeated UnitDefinition creature_list = 1;
522
+ }
523
+
524
+ message BlockRequest
525
+ {
526
+ optional int32 blocks_needed = 1;
527
+ optional int32 min_x = 2;
528
+ optional int32 max_x = 3;
529
+ optional int32 min_y = 4;
530
+ optional int32 max_y = 5;
531
+ optional int32 min_z = 6;
532
+ optional int32 max_z = 7;
533
+ optional bool force_reload = 8;
534
+ }
535
+
536
+ message BlockList
537
+ {
538
+ repeated MapBlock map_blocks = 1;
539
+ optional int32 map_x = 2;
540
+ optional int32 map_y = 3;
541
+ repeated Engraving engravings = 4;
542
+ repeated Wave ocean_waves = 5;
543
+ }
544
+
545
+ message PlantDef
546
+ {
547
+ required int32 pos_x = 1;
548
+ required int32 pos_y = 2;
549
+ required int32 pos_z = 3;
550
+ required int32 index = 4;
551
+ }
552
+
553
+ message PlantList
554
+ {
555
+ repeated PlantDef plant_list = 1;
556
+ }
557
+
558
+ message ViewInfo
559
+ {
560
+ optional int32 view_pos_x = 1;
561
+ optional int32 view_pos_y = 2;
562
+ optional int32 view_pos_z = 3;
563
+ optional int32 view_size_x = 4;
564
+ optional int32 view_size_y = 5;
565
+ optional int32 cursor_pos_x = 6;
566
+ optional int32 cursor_pos_y = 7;
567
+ optional int32 cursor_pos_z = 8;
568
+ optional int32 follow_unit_id = 9 [default = -1];
569
+ optional int32 follow_item_id = 10 [default = -1];
570
+ }
571
+
572
+ message MapInfo
573
+ {
574
+ optional int32 block_size_x = 1;
575
+ optional int32 block_size_y = 2;
576
+ optional int32 block_size_z = 3;
577
+ optional int32 block_pos_x = 4;
578
+ optional int32 block_pos_y = 5;
579
+ optional int32 block_pos_z = 6;
580
+ optional string world_name = 7;
581
+ optional string world_name_english = 8;
582
+ optional string save_name = 9;
583
+ }
584
+
585
+ enum FrontType
586
+ {
587
+ FRONT_NONE = 0;
588
+ FRONT_WARM = 1;
589
+ FRONT_COLD = 2;
590
+ FRONT_OCCLUDED = 3;
591
+ }
592
+ enum CumulusType
593
+ {
594
+ CUMULUS_NONE = 0;
595
+ CUMULUS_MEDIUM = 1;
596
+ CUMULUS_MULTI = 2;
597
+ CUMULUS_NIMBUS = 3;
598
+ }
599
+ enum StratusType
600
+ {
601
+ STRATUS_NONE = 0;
602
+ STRATUS_ALTO = 1;
603
+ STRATUS_PROPER = 2;
604
+ STRATUS_NIMBUS = 3;
605
+ }
606
+ enum FogType
607
+ {
608
+ FOG_NONE = 0;
609
+ FOG_MIST = 1;
610
+ FOG_NORMAL = 2;
611
+ F0G_THICK = 3;
612
+ }
613
+
614
+ message Cloud
615
+ {
616
+ optional FrontType front = 1;
617
+ optional CumulusType cumulus = 2;
618
+ optional bool cirrus = 3;
619
+ optional StratusType stratus = 4;
620
+ optional FogType fog = 5;
621
+ }
622
+
623
+ message WorldMap
624
+ {
625
+ required int32 world_width = 1;
626
+ required int32 world_height = 2;
627
+ optional string name = 3;
628
+ optional string name_english = 4;
629
+ repeated int32 elevation = 5;
630
+ repeated int32 rainfall = 6;
631
+ repeated int32 vegetation = 7;
632
+ repeated int32 temperature = 8;
633
+ repeated int32 evilness = 9;
634
+ repeated int32 drainage = 10;
635
+ repeated int32 volcanism = 11;
636
+ repeated int32 savagery = 12;
637
+ repeated Cloud clouds = 13;
638
+ repeated int32 salinity = 14;
639
+ optional int32 map_x = 15;
640
+ optional int32 map_y = 16;
641
+ optional int32 center_x = 17;
642
+ optional int32 center_y = 18;
643
+ optional int32 center_z = 19;
644
+ optional int32 cur_year = 20;
645
+ optional int32 cur_year_tick = 21;
646
+ optional WorldPoles world_poles = 22;
647
+ repeated RiverTile river_tiles = 23;
648
+ repeated int32 water_elevation = 24;
649
+ repeated RegionTile region_tiles = 25;
650
+ }
651
+
652
+ message SiteRealizationBuildingWall
653
+ {
654
+ optional int32 start_x = 1;
655
+ optional int32 start_y = 2;
656
+ optional int32 start_z = 3;
657
+ optional int32 end_x = 4;
658
+ optional int32 end_y = 5;
659
+ optional int32 end_z = 6;
660
+ }
661
+
662
+ message SiteRealizationBuildingTower
663
+ {
664
+ optional int32 roof_z = 1;
665
+ optional bool round = 2;
666
+ optional bool goblin = 3;
667
+ }
668
+
669
+ message TrenchSpoke
670
+ {
671
+ optional int32 mound_start = 1;
672
+ optional int32 trench_start = 2;
673
+ optional int32 trench_end = 3;
674
+ optional int32 mound_end = 4;
675
+ }
676
+
677
+ message SiteRealizationBuildingTrenches
678
+ {
679
+ repeated TrenchSpoke spokes = 1;
680
+ }
681
+
682
+ message SiteRealizationBuilding
683
+ {
684
+ optional int32 id = 1;
685
+ optional int32 min_x = 3;
686
+ optional int32 min_y = 4;
687
+ optional int32 max_x = 5;
688
+ optional int32 max_y = 6;
689
+ optional MatPair material = 7;
690
+ optional SiteRealizationBuildingWall wall_info = 8;
691
+ optional SiteRealizationBuildingTower tower_info = 9;
692
+ optional SiteRealizationBuildingTrenches trench_info = 10;
693
+ optional int32 type = 11;
694
+ }
695
+
696
+ message RegionTile
697
+ {
698
+ optional int32 elevation = 1;
699
+ optional int32 rainfall = 2;
700
+ optional int32 vegetation = 3;
701
+ optional int32 temperature = 4;
702
+ optional int32 evilness = 5;
703
+ optional int32 drainage = 6;
704
+ optional int32 volcanism = 7;
705
+ optional int32 savagery = 8;
706
+ optional int32 salinity = 9;
707
+ optional RiverTile river_tiles = 10;
708
+ optional int32 water_elevation = 11;
709
+ optional MatPair surface_material = 12;
710
+ repeated MatPair plant_materials = 13;
711
+ repeated SiteRealizationBuilding buildings = 14;
712
+ repeated MatPair stone_materials = 15;
713
+ repeated MatPair tree_materials = 16;
714
+ optional int32 snow = 17;
715
+ }
716
+
717
+ message RegionMap
718
+ {
719
+ optional int32 map_x = 1;
720
+ optional int32 map_y = 2;
721
+ optional string name = 3;
722
+ optional string name_english = 4;
723
+ repeated RegionTile tiles = 5;
724
+ }
725
+
726
+ message RegionMaps
727
+ {
728
+ repeated WorldMap world_maps = 1;
729
+ repeated RegionMap region_maps = 2;
730
+ }
731
+
732
+ enum PatternType
733
+ {
734
+ MONOTONE = 0;
735
+ STRIPES = 1;
736
+ IRIS_EYE = 2;
737
+ SPOTS = 3;
738
+ PUPIL_EYE = 4;
739
+ MOTTLED = 5;
740
+ }
741
+
742
+ message PatternDescriptor
743
+ {
744
+ optional string id = 1;
745
+ repeated ColorDefinition colors = 2;
746
+ optional PatternType pattern = 3;
747
+ }
748
+
749
+ message ColorModifierRaw
750
+ {
751
+ repeated PatternDescriptor patterns = 1;
752
+ repeated int32 body_part_id = 2;
753
+ repeated int32 tissue_layer_id = 3;
754
+ optional int32 start_date = 4;
755
+ optional int32 end_date = 5;
756
+ optional string part = 6;
757
+ }
758
+
759
+ message BodyPartLayerRaw
760
+ {
761
+ optional string layer_name = 1;
762
+ optional int32 tissue_id = 2;
763
+ optional int32 layer_depth = 3;
764
+ repeated int32 bp_modifiers = 4;
765
+ }
766
+
767
+ message BodyPartRaw
768
+ {
769
+ optional string token = 1;
770
+ optional string category = 2;
771
+ optional int32 parent = 3;
772
+ repeated bool flags = 4;
773
+ repeated BodyPartLayerRaw layers = 5;
774
+ optional int32 relsize = 6;
775
+ }
776
+
777
+ message BpAppearanceModifier
778
+ {
779
+ optional string type = 1;
780
+ optional int32 mod_min = 2;
781
+ optional int32 mod_max = 3;
782
+ }
783
+
784
+ message TissueRaw
785
+ {
786
+ optional string id = 1;
787
+ optional string name = 2;
788
+ optional MatPair material = 3;
789
+ optional string subordinate_to_tissue = 4;
790
+ }
791
+
792
+ message CasteRaw
793
+ {
794
+ optional int32 index = 1;
795
+ optional string caste_id = 2;
796
+ repeated string caste_name = 3;
797
+ repeated string baby_name = 4;
798
+ repeated string child_name = 5;
799
+ optional int32 gender = 6;
800
+ repeated BodyPartRaw body_parts = 7;
801
+ optional int32 total_relsize = 8;
802
+ repeated BpAppearanceModifier modifiers = 9;
803
+ repeated int32 modifier_idx = 10;
804
+ repeated int32 part_idx = 11;
805
+ repeated int32 layer_idx = 12;
806
+ repeated BpAppearanceModifier body_appearance_modifiers = 13;
807
+ repeated ColorModifierRaw color_modifiers = 14;
808
+ optional string description = 15;
809
+ optional int32 adult_size = 16;
810
+ }
811
+
812
+ message CreatureRaw
813
+ {
814
+ optional int32 index = 1;
815
+ optional string creature_id = 2;
816
+ repeated string name = 3;
817
+ repeated string general_baby_name = 4;
818
+ repeated string general_child_name = 5;
819
+ optional int32 creature_tile = 6;
820
+ optional int32 creature_soldier_tile = 7;
821
+ optional ColorDefinition color = 8;
822
+ optional int32 adultsize = 9;
823
+ repeated CasteRaw caste = 10;
824
+ repeated TissueRaw tissues = 11;
825
+ repeated bool flags = 12;
826
+ }
827
+
828
+ message CreatureRawList
829
+ {
830
+ repeated CreatureRaw creature_raws = 1;
831
+ }
832
+
833
+ message Army
834
+ {
835
+ optional int32 id = 1;
836
+ optional int32 pos_x = 2;
837
+ optional int32 pos_y = 3;
838
+ optional int32 pos_z = 4;
839
+ optional UnitDefinition leader = 5;
840
+ repeated UnitDefinition members = 6;
841
+ optional uint32 flags = 7;
842
+ }
843
+
844
+ message ArmyList
845
+ {
846
+ repeated Army armies = 1;
847
+ }
848
+
849
+ message GrowthPrint
850
+ {
851
+ optional int32 priority = 1;
852
+ optional int32 color = 2;
853
+ optional int32 timing_start = 3;
854
+ optional int32 timing_end = 4;
855
+ optional int32 tile = 5;
856
+ }
857
+
858
+ message TreeGrowth
859
+ {
860
+ optional int32 index = 1;
861
+ optional string id = 2;
862
+ optional string name = 3;
863
+ optional MatPair mat = 4;
864
+ repeated GrowthPrint prints = 5;
865
+ optional int32 timing_start = 6;
866
+ optional int32 timing_end = 7;
867
+ optional bool twigs = 8;
868
+ optional bool light_branches = 9;
869
+ optional bool heavy_branches = 10;
870
+ optional bool trunk = 11;
871
+ optional bool roots = 12;
872
+ optional bool cap = 13;
873
+ optional bool sapling = 14;
874
+ optional int32 trunk_height_start = 15;
875
+ optional int32 trunk_height_end = 16;
876
+ }
877
+
878
+ message PlantRaw
879
+ {
880
+ optional int32 index = 1;
881
+ optional string id = 2;
882
+ optional string name = 3;
883
+ repeated TreeGrowth growths = 4;
884
+ optional int32 tile = 5;
885
+ }
886
+
887
+ message PlantRawList
888
+ {
889
+ repeated PlantRaw plant_raws = 1;
890
+ }
891
+
892
+ message ScreenTile
893
+ {
894
+ optional uint32 character = 1;
895
+ optional uint32 foreground = 2;
896
+ optional uint32 background = 3;
897
+ }
898
+
899
+ message ScreenCapture
900
+ {
901
+ optional uint32 width = 1;
902
+ optional uint32 height = 2;
903
+ repeated ScreenTile tiles = 3;
904
+ }
905
+
906
+ message KeyboardEvent
907
+ {
908
+ optional uint32 type = 1;
909
+ optional uint32 which = 2;
910
+ optional uint32 state = 3;
911
+ optional uint32 scancode = 4;
912
+ optional uint32 sym = 5;
913
+ optional uint32 mod = 6;
914
+ optional uint32 unicode = 7;
915
+ }
916
+
917
+ message DigCommand
918
+ {
919
+ optional TileDigDesignation designation = 1;
920
+ repeated Coord locations = 2;
921
+ }
922
+
923
+ message SingleBool
924
+ {
925
+ optional bool Value = 1;
926
+ }
927
+
928
+ message VersionInfo
929
+ {
930
+ optional string dwarf_fortress_version = 1;
931
+ optional string dfhack_version = 2;
932
+ optional string remote_fortress_reader_version = 3;
933
+ }
934
+
935
+ message ListRequest
936
+ {
937
+ optional int32 list_start = 1;
938
+ optional int32 list_end = 2;
939
+ }
940
+
941
+ message Report
942
+ {
943
+ optional int32 type = 1;
944
+ optional string text = 2;
945
+ optional ColorDefinition color = 3;
946
+ optional int32 duration = 4;
947
+ optional bool continuation = 5;
948
+ optional bool unconscious = 6;
949
+ optional bool announcement = 7;
950
+ optional int32 repeat_count = 8;
951
+ optional Coord pos = 9;
952
+ optional int32 id = 10;
953
+ optional int32 year = 11;
954
+ optional int32 time = 12;
955
+ }
956
+
957
+ message Status
958
+ {
959
+ repeated Report reports = 1;
960
+ }
961
+
962
+ message ShapeDescriptior
963
+ {
964
+ optional string id = 1;
965
+ optional int32 tile = 2;
966
+ }
967
+
968
+ message Language
969
+ {
970
+ repeated ShapeDescriptior shapes = 1;
971
+ }
972
+
973
+ message ItemImprovement
974
+ {
975
+ optional MatPair material = 1;
976
+ optional int32 shape = 3;
977
+ optional int32 specific_type= 4;
978
+ optional ArtImage image = 5;
979
+ optional int32 type = 6;
980
+ }
981
+
982
+ enum ArtImageElementType
983
+ {
984
+ IMAGE_CREATURE = 0;
985
+ IMAGE_PLANT = 1;
986
+ IMAGE_TREE = 2;
987
+ IMAGE_SHAPE = 3;
988
+ IMAGE_ITEM = 4;
989
+ }
990
+
991
+ message ArtImageElement
992
+ {
993
+ optional int32 count = 1;
994
+ optional ArtImageElementType type = 2;
995
+ optional MatPair creature_item = 3;
996
+ optional MatPair material = 5;
997
+ optional int32 id = 6;
998
+ }
999
+
1000
+ enum ArtImagePropertyType
1001
+ {
1002
+ TRANSITIVE_VERB = 0;
1003
+ INTRANSITIVE_VERB = 1;
1004
+ }
1005
+
1006
+ message ArtImageProperty
1007
+ {
1008
+ optional int32 subject = 1;
1009
+ optional int32 object = 2;
1010
+ optional ArtImageVerb verb = 3;
1011
+ optional ArtImagePropertyType type = 4;
1012
+ }
1013
+
1014
+ message ArtImage
1015
+ {
1016
+ repeated ArtImageElement elements = 1;
1017
+ optional MatPair id = 2;
1018
+ repeated ArtImageProperty properties = 3;
1019
+ }
1020
+
1021
+ message Engraving
1022
+ {
1023
+ optional Coord pos = 1;
1024
+ optional int32 quality = 2;
1025
+ optional int32 tile = 3;
1026
+ optional ArtImage image = 4;
1027
+ optional bool floor = 5;
1028
+ optional bool west = 6;
1029
+ optional bool east = 7;
1030
+ optional bool north = 8;
1031
+ optional bool south = 9;
1032
+ optional bool hidden = 10;
1033
+ optional bool northwest = 11;
1034
+ optional bool northeast = 12;
1035
+ optional bool southwest = 13;
1036
+ optional bool southeast = 14;
1037
+ }
1038
+
1039
+ enum ArtImageVerb
1040
+ {
1041
+ VERB_WITHERING = 0;
1042
+ VERB_SURROUNDEDBY = 1;
1043
+ VERB_MASSACRING = 2;
1044
+ VERB_FIGHTING = 3;
1045
+ VERB_LABORING = 4;
1046
+ VERB_GREETING = 5;
1047
+ VERB_REFUSING = 6;
1048
+ VERB_SPEAKING = 7;
1049
+ VERB_EMBRACING = 8;
1050
+ VERB_STRIKINGDOWN = 9;
1051
+ VERB_MENACINGPOSE = 10;
1052
+ VERB_TRAVELING = 11;
1053
+ VERB_RAISING = 12;
1054
+ VERB_HIDING = 13;
1055
+ VERB_LOOKINGCONFUSED = 14;
1056
+ VERB_LOOKINGTERRIFIED = 15;
1057
+ VERB_DEVOURING = 16;
1058
+ VERB_ADMIRING = 17;
1059
+ VERB_BURNING = 18;
1060
+ VERB_WEEPING = 19;
1061
+ VERB_LOOKINGDEJECTED = 20;
1062
+ VERB_CRINGING = 21;
1063
+ VERB_SCREAMING = 22;
1064
+ VERB_SUBMISSIVEGESTURE = 23;
1065
+ VERB_FETALPOSITION = 24;
1066
+ VERB_SMEAREDINTOSPIRAL = 25;
1067
+ VERB_FALLING = 26;
1068
+ VERB_DEAD = 27;
1069
+ VERB_LAUGHING = 28;
1070
+ VERB_LOOKINGOFFENDED = 29;
1071
+ VERB_BEINGSHOT = 30;
1072
+ VERB_PLAINTIVEGESTURE = 31;
1073
+ VERB_MELTING = 32;
1074
+ VERB_SHOOTING = 33;
1075
+ VERB_TORTURING = 34;
1076
+ VERB_COMMITTINGDEPRAVEDACT = 35;
1077
+ VERB_PRAYING = 36;
1078
+ VERB_CONTEMPLATING = 37;
1079
+ VERB_COOKING = 38;
1080
+ VERB_ENGRAVING = 39;
1081
+ VERB_PROSTRATING = 40;
1082
+ VERB_SUFFERING = 41;
1083
+ VERB_BEINGIMPALED = 42;
1084
+ VERB_BEINGCONTORTED = 43;
1085
+ VERB_BEINGFLAYED = 44;
1086
+ VERB_HANGINGFROM = 45;
1087
+ VERB_BEINGMUTILATED = 46;
1088
+ VERB_TRIUMPHANTPOSE = 47;
1089
+ }
1090
+
1091
+ enum FlowType
1092
+ {
1093
+ Miasma = 0;
1094
+ Steam = 1;
1095
+ Mist = 2;
1096
+ MaterialDust = 3;
1097
+ MagmaMist = 4;
1098
+ Smoke = 5;
1099
+ Dragonfire = 6;
1100
+ Fire = 7;
1101
+ Web = 8;
1102
+ MaterialGas = 9;
1103
+ MaterialVapor = 10;
1104
+ OceanWave = 11;
1105
+ SeaFoam = 12;
1106
+ ItemCloud = 13;
1107
+ CampFire = -1;
1108
+ }
1109
+
1110
+ message FlowInfo
1111
+ {
1112
+ optional int32 index = 1;
1113
+ optional FlowType type = 2;
1114
+ optional int32 density = 3;
1115
+ optional Coord pos = 4;
1116
+ optional Coord dest = 5;
1117
+ optional bool expanding = 6;
1118
+ optional bool reuse = 7 [deprecated=true];
1119
+ optional int32 guide_id = 8;
1120
+ optional MatPair material = 9;
1121
+ optional MatPair item = 10;
1122
+ optional bool dead = 11;
1123
+ optional bool fast = 12;
1124
+ optional bool creeping = 13;
1125
+ }
1126
+
1127
+ message Wave
1128
+ {
1129
+ optional Coord dest = 1;
1130
+ optional Coord pos = 2;
1131
+ }