Commit graph

23 commits

Author SHA1 Message Date
Whatstone
2d25896763
InstrumentMenu: Channels panel expands with the window (#46033)
* Vertically expanding channels, -pointless Controls

* scamboni

* XAML control for the base midi CFG item
2026-09-18 04:54:08 +00:00
Ataman
0f26108857
Fix percussion channel and switch to one-based channel indexes in instrument UI. (#45055)
* fixed MIDI percussion channel filter being overwritten by AllowPercussion property

* one-based channel indexes

* fixed percussion channel not being shown in UI for supported instruments

* always display all channels for MIDI input
2026-08-01 16:34:10 +00:00
Ataman
82b7cfa947
Instrument UI MinVolume slider (#41272)
* Added localization string for MIDI input volume.

* Added MinVolume property to SharedInstrumentComponent & InstrumentComponentState.

* Implemented MinVolume property into InstrumentSystem's.

* Added UI slider for MinVolume to InstrumentMenu.

* Added network event for updating MinVolume.

* Removed unnecessary empty line.

* Readability fix as suggested by Pok27

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Added MinVolumeControl

* Added MinVolumeControl to instrument menu configuration (and cleaned up Content.Client.InstrumentSystem.SetMinVolume)

* Added label to MinVolumeSlider indicating the current value

* Minor cleanup

---------

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
2026-07-28 04:29:08 +00:00
Ataman
0c5b250f03
Instrument UI overhaul (#41604)
* Added base type for UI panels of MIDI input sources.

* Renamed BandMenu into BandMidiSource.

* Implemented the UI overhaul, skipping channels dialog functionality for now.

* Refactored for conventions and reordered type members.
Got rid of SetInstrument/ClearInstrument again.

* Decreased background opacity for UnavailableOverlay to improve readability.

* Localization

* Added text to InputMidiSource so players know what it does.

* Changed window MinSize to SetSize. Allows players to reduce window size if desired.

* Improved button looks by adding style classes.

* cleanup

* leftover cleanup

* Reverted fetching InstrumentSystem via IoCManager (crashes it, woops).

* added filter bar to file list

* refactored almost all system/manager interaction into instrument BUI

* text changed for instruments-component-menu-input-notice-label

* fixed InstrumentBoundUserInterface.Dispose not unsubscribing from everything

* minor cleanup

* finished configuration menu & cleanup

* Comments and fixes for InstrumentMidiSourceBase

* Fixed RA0051

* Removed unncecessary null check

* Added methods for accessing the selected track.

* Limited depth of search for instrument master to prevent deadlock.

* Cached system access

* Storing midis asynchronously

* Actual MIDI data now only loaded before playback.

* async removed from InstrumentBoundUserInterface.LoadStoredUserMidis

* Replaced GetComponent calls with TryGetComponent

* Localized MIDI playback track timer

* Searching for next track using raw index now

* Fixed CS0168

* XML comments, minor fixes and disabled MIDI library management while a track is playing.

* removed timers with simple watchdog and switched to MidiFileCollectionManager

* Missed one (timer)

* Changed access for MidiFileCollectionManager.UserMidiDirectory field to public.

* Added instrument config control for MIDI collection utilities.

* redesigned instrument config menu

* Removed rename function, updated adding implementation

* more redesigns

* fixed _isMidiFileDialogueWindowOpen not resetting correctly in certain cases.

* file scoped namespaces

* replaced EntityUid with Entity<InstrumentComponent>

* if spaces

* returning Tooltip instead of Control

* replaced SetEntity with public field

* readonly system fields

* InstrumentMenu MinSize

* xml comment for InstrumentMidiSourceBase

* small refactor

* more cleanup

* TryGetComponent to GetComponent on Open()

* more formatting issues

* switched to [Dependency] for systems

* playback improvements

* disable playback button if no file selected and playing

* activating shuffle now selects track if none is selected

* rearranged playback buttons

* channels overhauled

* Play/Stop label to Play only

* Removed all channel on/off

* Program now default channel name display selection

* improved RemoveButton.Disable behavior

* channels now toggable by clicking anywhere

* Shuffle no longer selects already selected track.

* Loop & Shuffle no longer both selectable at once

* minor improvements to channel item visuals

* minor channel toggle fixes

* xml docs & code cleanup

* `RefreshBandRequest` now sent automatically when band source becomes visible

* converted 5 items tuple to MidiChannelInfo record

* added markup support to instrument menu configuration header

* added note to midi channels config header explaining update behavior.
2026-07-26 16:50:28 +00:00
Pieter-Jan Briers
5168b5f3d4
IoC source gen compatibility (#43863)
* IoC source gen compatibility

Can be merged before or after https://github.com/space-wizards/RobustToolbox/pull/6549 doesn't really matter.

* Missed a spot
2026-05-09 03:29:58 +00:00
Simon
f5fbef7ccc
Add the instrument names to the MIDI channel selector (#38083)
* Add the instrument to the MIDI channel selector

* Reviews

Adds support for chained masters
Makes the channel UI update on its own when the midi changes (Works with bands too!)

* add to admin logs and limit track count

* Limit track names by length too

* remove left over comment

* Requested changes

* Reviews
2025-06-11 20:32:48 +02:00
Milon
f6a1fd5de8
add missing base calls to several BUIs (#35124) 2025-02-13 01:41:30 -05:00
SpaceManiac
4122310735
Fix 38 non-obsolete warnings (#33794) 2025-02-11 20:59:50 +11:00
metalgearsloth
edb05e36bb
Reapply "Remove some BUI boilerplate" (#30214) (#30219)
* Reapply "Remove some BUI boilerplate" (#30214)

This reverts commit cb0ba66be3.

* Fix gas tank

* Fix PA

* Fix microwave

* Comms console underwrap

* Fix rcd

* log wehs
2024-07-21 14:48:13 +10:00
Nemanja
cb0ba66be3
Revert "Remove some BUI boilerplate" (#30214)
Revert "Remove some BUI boilerplate (#28399)"

This reverts commit cbf329a82d.
2024-07-20 20:42:27 -04:00
metalgearsloth
cbf329a82d
Remove some BUI boilerplate (#28399)
* Remove some BUI boilerplate

- The disposals overrides got removed due to the helper method handling it.
- Replace window creation with CreateWindow helper.
- Fixed some stinky code which would cause exceptions.

* More

* moar

* weh

* done

* More BUIs

* More updates

* weh

* moar

* look who it is

* weh

* merge

* weh

* fixes
2024-07-20 15:40:16 +10:00
Leon Friedrich
76e13eed35
Improve InteractionSystem range & BUI checks (#27999)
* Improve InteractionSystem range & BUI checks

* Ghost fixes

* AAA

* Fix test

* fix nullable

* revert to broadcast event

* Fixes for eengine PR

* Ah buckle code

* )
2024-05-24 15:03:03 +10:00
metalgearsloth
5a0fc68be2
Content update for NetEntities (#18935) 2023-09-11 09:42:41 +10:00
DrSmugleaf
35107f7c2b
Fix component generic usages where IComponent would not be valid (#19482) 2023-08-24 20:10:55 +10:00
Vera Aguilera Puerto
a2893dd6c3
Instrument band support, submodule update to 138.0.0 (#17995) 2023-07-16 21:12:53 +02:00
TemporalOroboros
3ac4cf85db
Cleaner BoundUserInterfaces (#17736) 2023-07-09 02:02:17 +10:00
Leon Friedrich
921e2ee57d
BUI changes required for Engine PR (#10608) 2022-08-21 03:38:30 +10:00
metalgearsloth
45bd1edd5b
Revert "Update submodule to 0.34.0.0 (#10356)" (#10359) 2022-08-06 16:48:21 +10:00
Leon Friedrich
e06ea56eb2
Content BUI changes for engine PR (#10308) 2022-08-06 14:59:02 +10:00
mirrorcult
ec4d4688c7
Seal/abstract/virtual everything (#6739) 2022-02-16 18:23:23 +11:00
Vera Aguilera Puerto
5cd42c9ad6 Inline UID 2021-12-03 15:53:09 +01:00
Vera Aguilera Puerto
69b270017b Inline TryGetComponent completely, for real 2021-12-03 14:17:01 +01:00
DrSmugleaf
ff1a2d97ea
Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
Renamed from Content.Client/GameObjects/Components/Instruments/InstrumentBoundUserInterface.cs (Browse further)