Adds playable instruments, IDropped, IHandSelected and IHandDese… (#368)

* Instrument test.

* Midi stuff

* Some more work

* This actually works now!

* update

* Midi Audio works!

* Lots of stuff, and cool interfaces for items

* Update

* Fix a few things

* It just works

* Move textures to another folder, remove placeholder description from instruments

* Fix warning

* Use renderer enum

* Instruments now use DisposeRenderer method, and send MidiEvents as they receive them. Deletes InstrumentSystem whoo.

* Fix incorrect sprite paths

* Instruments take midi file size check into account when enabling/disabling midi playback buttons

* Fix crash when pressing drop on empty hand.

* Use new renderer return values for midi/input

* Xylophones are no longer handheld instruments, fix their sprites.

* Use new API

* Remove nfluidsynth from solution

* Timing information

* Use IGameTiming.CurTime for timestamps instead
This commit is contained in:
Víctor Aguilera Puerto
2019-11-25 00:11:47 +01:00
committed by Pieter-Jan Briers
parent ce54c489eb
commit fedc0ad71c
41 changed files with 1062 additions and 7 deletions

View File

@@ -0,0 +1,69 @@
- type: entity
name: BaseInstrument
id: BaseInstrument
components:
- type: Instrument
handheld: false
- type: Clickable
- type: Collidable
shapes:
- !type:PhysShapeAabb
mask: 19
layer: 16
- type: SnapGrid
offset: Center
- type: Damageable
- type: Destructible
thresholdvalue: 50
- type: UserInterface
interfaces:
- key: enum.InstrumentUiKey.Key
type: InstrumentBoundUserInterface
- type: entity
name: Piano
parent: BaseInstrument
id: PianoInstrument
description: Play Needles Piano Now.
components:
- type: Instrument
program: 1
- type: Sprite
sprite: Objects/Instruments/musician.rsi
state: piano
- type: Icon
sprite: Objects/Instruments/musician.rsi
state: piano
- type: entity
name: Minimoog
parent: BaseInstrument
id: MinimoogInstrument
components:
- type: Instrument
program: 7
- type: Sprite
sprite: Objects/Instruments/musician.rsi
state: minimoog
- type: Icon
sprite: Objects/Instruments/musician.rsi
state: minimoog
- type: entity
name: Xylophone
parent: BaseInstrument
id: XylophoneInstrument
components:
- type: Instrument
program: 13
- type: Sprite
sprite: Objects/Instruments/musician.rsi
state: xylophone
- type: Icon
sprite: Objects/Instruments/musician.rsi
state: xylophone

View File

@@ -0,0 +1,131 @@
- type: entity
name: BaseHandheldInstrument
parent: BaseItem
id: BaseHandheldInstrument
components:
- type: Instrument
handheld: true
- type: UserInterface
interfaces:
- key: enum.InstrumentUiKey.Key
type: InstrumentBoundUserInterface
- type: entity
name: Synthesizer
parent: BaseHandheldInstrument
id: SynthesizerInstrument
components:
- type: Instrument
program: 2
- type: Sprite
texture: Objects/Instruments/musician.rsi/h_synthesizer.png
- type: Icon
texture: Objects/Instruments/musician.rsi/h_synthesizer.png
- type: entity
name: Violin
parent: BaseHandheldInstrument
id: ViolinInstrument
components:
- type: Instrument
program: 40
- type: Sprite
texture: Objects/Instruments/musician.rsi/violin.png
- type: Icon
texture: Objects/Instruments/musician.rsi/violin.png
- type: entity
name: Trumpet
parent: BaseHandheldInstrument
id: TrumpetInstrument
components:
- type: Instrument
program: 56
- type: Sprite
texture: Objects/Instruments/musician.rsi/trumpet.png
- type: Icon
texture: Objects/Instruments/musician.rsi/trumpet.png
- type: entity
name: Electric Guitar
parent: BaseHandheldInstrument
id: ElectricGuitarInstrument
components:
- type: Instrument
program: 27
- type: Sprite
texture: Objects/Instruments/musician.rsi/eguitar.png
- type: Icon
texture: Objects/Instruments/musician.rsi/eguitar.png
- type: entity
name: Accordion
parent: BaseHandheldInstrument
id: AccordionInstrument
components:
- type: Instrument
program: 21
- type: Sprite
texture: Objects/Instruments/musician.rsi/accordion.png
- type: Icon
texture: Objects/Instruments/musician.rsi/accordion.png
- type: entity
name: Harmonica
parent: BaseHandheldInstrument
id: HarmonicaInstrument
components:
- type: Instrument
program: 22
- type: Sprite
texture: Objects/Instruments/musician.rsi/harmonica.png
- type: Icon
texture: Objects/Instruments/musician.rsi/harmonica.png
- type: entity
name: Recorder
parent: BaseHandheldInstrument
id: RecorderInstrument
components:
- type: Instrument
program: 74
- type: Sprite
texture: Objects/Instruments/musician.rsi/recorder.png
- type: Icon
texture: Objects/Instruments/musician.rsi/recorder.png
- type: entity
name: Trombone
parent: BaseHandheldInstrument
id: TromboneInstrument
components:
- type: Instrument
program: 57
- type: Sprite
texture: Objects/Instruments/musician.rsi/trombone.png
- type: Icon
texture: Objects/Instruments/musician.rsi/trombone.png
- type: entity
name: Saxophone
parent: BaseHandheldInstrument
id: SaxophoneInstrument
components:
- type: Instrument
program: 67
- type: Sprite
texture: Objects/Instruments/musician.rsi/saxophone.png
- type: Icon
texture: Objects/Instruments/musician.rsi/saxophone.png
- type: entity
name: Glockenspiel
parent: BaseHandheldInstrument
id: GlockenspielInstrument
components:
- type: Instrument
program: 9
- type: Sprite
texture: Objects/Instruments/musician.rsi/glockenspiel.png
- type: Icon
texture: Objects/Instruments/musician.rsi/glockenspiel.png