Add gilded bike horn instrument, expose MidiBank on instruments (#1034)
* Add gilded bike horn instrument, expose MidiBank on instruments * Reduce soundfont size by removing duplicated samples
This commit is contained in:
committed by
GitHub
parent
ed9aae8005
commit
bffe4df16f
@@ -37,6 +37,7 @@ namespace Content.Client.GameObjects.Components.Instruments
|
||||
[CanBeNull]
|
||||
private IMidiRenderer _renderer;
|
||||
private byte _instrumentProgram = 1;
|
||||
private byte _instrumentBank = 0;
|
||||
private uint _syncSequencerTick;
|
||||
|
||||
/// <summary>
|
||||
@@ -81,6 +82,23 @@ namespace Content.Client.GameObjects.Components.Instruments
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Changes the instrument bank the midi renderer will use.
|
||||
/// </summary>
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public byte InstrumentBank
|
||||
{
|
||||
get => _instrumentBank;
|
||||
set
|
||||
{
|
||||
_instrumentBank = value;
|
||||
if (_renderer != null)
|
||||
{
|
||||
_renderer.MidiBank = _instrumentBank;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Whether there's a midi song being played or not.
|
||||
/// </summary>
|
||||
@@ -115,6 +133,7 @@ namespace Content.Client.GameObjects.Components.Instruments
|
||||
|
||||
if (_renderer != null)
|
||||
{
|
||||
_renderer.MidiBank = _instrumentBank;
|
||||
_renderer.MidiProgram = _instrumentProgram;
|
||||
_renderer.TrackingEntity = Owner;
|
||||
_renderer.OnMidiPlayerFinished += () => { OnMidiPlaybackEnded?.Invoke(); EndRenderer(); SendNetworkMessage(new InstrumentStopMidiMessage()); };
|
||||
@@ -149,6 +168,7 @@ namespace Content.Client.GameObjects.Components.Instruments
|
||||
{
|
||||
base.ExposeData(serializer);
|
||||
serializer.DataField(ref _instrumentProgram, "program", (byte)1);
|
||||
serializer.DataField(ref _instrumentBank, "bank", (byte)0);
|
||||
}
|
||||
|
||||
public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null)
|
||||
|
||||
Reference in New Issue
Block a user