104 lines
2.5 KiB
Protocol Buffer
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;
|
||
|
}
|