dfhack/plugins/proto/ItemdefInstrument.proto

104 lines
2.5 KiB
Protocol Buffer

package ItemdefInstrument;
//Attempts to provide a complete framework for reading everything from a fortress needed for vizualization
option optimize_for = LITE_RUNTIME;
message InstrumentFlags
{
optional bool indefinite_pitch = 1;
optional bool placed_as_building = 2;
optional bool metal_mat = 3;
optional bool stone_mat = 4;
optional bool wood_mat = 5;
optional bool glass_mat = 6;
optional bool ceramic_mat = 7;
optional bool shell_mat = 8;
optional bool bone_mat = 9;
}
enum PitchChoiceType
{
MEMBRANE_POSITION = 0;
SUBPART_CHOICE = 1;
KEYBOARD = 2;
STOPPING_FRET = 3;
STOPPING_AGAINST_BODY = 4;
STOPPING_HOLE = 5;
STOPPING_HOLE_KEY = 6;
SLIDE = 7;
HARMONIC_SERIES = 8;
VALVE_ROUTES_AIR = 9;
BP_IN_BELL = 10;
FOOT_PEDALS = 11;
}
enum SoundProductionType
{
PLUCKED_BY_BP = 0;
PLUCKED = 1;
BOWED = 2;
STRUCK_BY_BP = 3;
STRUCK = 4;
VIBRATE_BP_AGAINST_OPENING = 5;
BLOW_AGAINST_FIPPLE = 6;
BLOW_OVER_OPENING_SIDE = 7;
BLOW_OVER_OPENING_END = 8;
BLOW_OVER_SINGLE_REED = 9;
BLOW_OVER_DOUBLE_REED = 10;
BLOW_OVER_FREE_REED = 11;
STRUCK_TOGETHER = 12;
SHAKEN = 13;
SCRAPED = 14;
FRICTION = 15;
RESONATOR = 16;
BAG_OVER_REED = 17;
AIR_OVER_REED = 18;
AIR_OVER_FREE_REED = 19;
AIR_AGAINST_FIPPLE = 20;
}
enum TuningType
{
PEGS = 0;
ADJUSTABLE_BRIDGES = 1;
CROOKS = 2;
TIGHTENING = 4;
LEVERS = 5;
}
message InstrumentPiece
{
optional string type = 1;
optional string id = 2;
optional string name = 3;
optional string name_plural = 4;
}
message InstrumentRegister
{
optional int32 pitch_range_min = 1;
optional int32 pitch_range_max = 2;
}
message InstrumentDef
{
optional InstrumentFlags flags = 1;
optional int32 size = 2;
optional int32 value = 3;
optional int32 material_size = 4;
repeated InstrumentPiece pieces = 5;
optional int32 pitch_range_min = 6;
optional int32 pitch_range_max = 7;
optional int32 volume_mb_min = 8;
optional int32 volume_mb_max = 9;
repeated SoundProductionType sound_production = 10;
repeated string sound_production_parm1 = 11;
repeated string sound_production_parm2 = 12;
repeated PitchChoiceType pitch_choice = 13;
repeated string pitch_choice_parm1 = 14;
repeated string pitch_choice_parm2 = 15;
repeated TuningType tuning = 16;
repeated string tuning_parm = 17;
repeated InstrumentRegister registers = 18;
optional string description = 19;
}