* Fix doc comment on FitsInDispenserComponent
It's clearly intended to be a doc comment, but wasn't.
* Allow the ChemMaster to accept canisters and bottles
* Give the ChemMaster an output container slot
* Tweak ChemMaster UI layout
* Make more ChemMaster UI tweaks
* Update ChemMaster SpinBox max handling
* Rework the ChemMaster
* Apply suggestions from code review
Co-authored-by: Flipp Syder <76629141+vulppine@users.noreply.github.com>
* Implement PR feedback
* Switch ChemMaster to a tabbed UI layout
* Rename Amount to Dosage for clarity
* Replace Amount with Dosage in messages
* Clarify dose in UI
Co-authored-by: Flipp Syder <76629141+vulppine@users.noreply.github.com>
* Clean up EntityListDisplay
* Rename EntityListDisplay to ListContainer
* Rename stuff
* Rework ListContainer
* Add tests
* Replace IControlData with record ListData
* Make _data non-nullable
* Fix test record items being duplicates
* Split filter method from populate
* Rename UpdateList to DirtyList
* Replace _count with _data.Count
* Clarify local variable toRemove
* Cleanup
* Add data selection to ListContainer
* Add selection test
* Fix comments and test name
* Fix ListContainer layout hiding items when scaled
* Add test for ListContainer top item
* Toggle fix
* Ensure buttons are re-generated
* Update unread count on select
* a
* Fix toggle test
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
- Change namespace, and folder of FancyWindow to Content.Client.UserInterface.Controls
- Change xaml reference from ui to controls in some places
- Change ClientAlertsSystem from internal to public
- Change namespace, and folder of HighDivider to Content.Client.UserInterface.Controls
* flavor profiles
TODO: every single flavor! yeah!!!
* adds basic localization, and flavors/lastFlavor values for when you get the flavor profile message
* multiple and single flavor messages
* start on flavor localization, multiple flavors in localized flavors
* flavor prototypes
* a few more flavors, descriptions on what each section of the flavor file should be doing
* localization for flavor profiles in drink/food system
* adds an event that allows a flavor profile list to be transformed base on the user entity
* raises it on the food entity too
* changes a field in flavor, adds some more flavors, starts adding flavor prototypes
* adds basic flavors to several entities, and consumable drinks, renames flavor field to 'flavors'
* changes call ordering in flavorprofile, adds flavor to ignored components server-side
flavor is really just a popup message, and those are all processed server-side
* fixes where food tried to get the flavor of the user instead of the food
* single flavors will now get the localized string
* getting the flavor message now ensures that flavors are deduplicated
* makes flavor processing more strictly unique bu making everything hashsets
* yeah, that could just not have distinctby now
* adds flavorprofile directly to food base instead for generic food taste
* FlavorProfileModificationEvent now passes a hashset of strings and not flavorprototypes
* flavorprofilesystem now broadcasts the flavor profile modification event
* adds more flavors to the flavor profile loc file
* skips a flavor, if the flavor string is null/empty
* adds some more flavors, adds generic medicine flavor to medicinal chemicals
* more food flavors, adds flavors to swallowing
* adds some cocktails to the set of flavor profiles
* regenerates flavor prototypes
* adds flavor type to all flavors, adds whitespace between variants
* adds more flavors, adds flavors to several chemicals and food items
this is the part that took the longest
* changes backup flavor message
* spelling mistake
* more flavors, and flavors on food
* readds all the type fields, whoops
* fixes localization strings for forcefeeding food/drink
* fixes multiple flavor profile
* adds flavor limit for flavors
* makes that fetch the cvardef instead
* Add examines for damage values
Even immersive sims still give you values.
We should also do this for armour so people don't have to yml dive and so the general public actually know the balance of things.
* Slightly better
* Cleanup
* threshold balancing, restores none mode on atmos alarm
dear lord, panic mode with unbalanced thresholds was a nightmare
* that was 10%, not 1%
* adds widenet mode for scrubbers
* adds the vents to wide filter as well
* shuffles devicelist to shared, adds an overlay for devicelist
* adds space property to overlay
* moves networkconfigurator to shared, makes devicelistsystem clientside check activedevicelist
* dirties components upon change, adds networkedcomponent to sharednetworkconfigurator
* state handlers for networked components
* whoops
* lots of shuffling, renaming, and access changes
* randomizes color for every new entity added to the overlay
* adds a client-side action to clear all network overlays if they're active
* clones action (oops)
* localization, adds a command for clearing network link overlays (in case the action disappears)
* moves the entity manager up into the bui fields
* makes that a dependency
* attempts to just directly get the color from the dict when drawing, now
* fixes up a few comments
* adds dirty on init to devicelistcomponent
* hacky solution related to mapping with a networkconfigurator
* more stricter bound on that hacky solution
* just checks if the life stage is initialized instead of if the entity was initialized
* moves getalldevices to shared
* readds linq import
* tries to ensure that the show button is toggled on if the device we're trying to configure is currently being tracked by the overlay
* some reorganization