* moved ComputerBoardComponent to Content.Shared
* made flatpacker accept computer boards
* made flatpack system and ui function with computer boards
* fixed it so that flatpacks of computers are correctly coloured to fit their computer board colour
* unhardcoded the computer flatpack assembly cost
* Combined GetFlatpackCreationCost(...) with GetflatpackCreationCostForComputer(...)
* removed code duplication in SharedFlatpackSystem
* removed code duplication from FlatpackCreatorMenu.xaml.cs
* remove code duplication from FlatpackSystem (on the server)
* fixed indentation error
SS14-1148 Fix MIDI Loading Failing Whilst a MIDI is playing
The behaviour of the button event handling did some wonky
async handling that got PJB swearing repeatedly in the contributor
VC.
Improve switching MIDI songs by:
0. Add a bool that tracks if we're currently waiting for the MIDI file
browser to terminate. Use this bool to short-circuit the
MidiFileButtonOnPressed function, ensuring you don't have to close
a morbillion file windows if you spam-clicked the button or forgot
you'd opened the window.
1. Remove a four-year-old hack involving waiting 100ms to load a MIDI
after trying to stop the last MIDI, because _the rot consumes_ or some shit
* AutoCompState + ItemToggle fixes
Fix a lot of the comp states that are never actually networked and also cleaned up ItemToggle events a bunch. ItemToggle will still need some future work for lights and sounds.
* Also catch these
* Flatpacker and flatpacks
* ok that's good enough
* convert solars/AME to flatpacks
* mats, mats, we are the mats
* basic mechanics are DONE
* thing
* final UI
* sloth
* rped jumpscare
* rename
* SS14-23184 Migrate Lathe Material Ejection Code to MaterialStorage
The lathe material ejection code acts as a do-nothing
man-in-the-middle system that does work that would be
reasonable for any MaterialStorage-using machine to
use. This has been fixed by migrating the ejection
code to MaterialStorage, allowing anything that uses
the system to eject mats it is storing.
* Fix some YAML references. Science!!
* Artifact analyzer now pauses on power-loss
Instead of just cancelling the current scan, the artifact analyzer
will now pause in case of power-loss.
Scanning will automatically resume when power returns.
* Improve artifact scanning pausing
This builds upon the latest improvements in artifact scanning
regarding UI update.
* Creates Content.Shared.Chemistry.Solutions
Copies Solution class to new namespace
Obsoletes old Solution class
* Switches over to the Solutions.Solution Solution
* Creates Content.Shared.Chemistry.Containers
Copies relevant components/systems to the new namespace
Obsoletes old versions
* Switches over to the Containers.XYZ namespace
* Creates SolutionSystem and obsoletes old SolutionContainerSystem methods
* Start using SolutionSystem for Solution manipulation
* EnumerateSolutions
* Move TryGetMixableSolution
* Move EnsureSolution to Server
* Create Solution Entities
* Stop using obsolete solution system methods
* Fix prototype component tests
* Add using ..Audio.Systems; back
* Wrap solution container slots in ContainerSlots
* Actually add the slot to the solution container map
* Dirty SolutionContainerComponent when ensuring solutions
* Revert namespace changes
* Remerge SolutionSystem and SolutionContainerSystem
* SolutionContainerManagerComponent refactor
* Avoid wrapping necessary code in DebugTools.Assert as it is removed when compiling for release
* Readd examine reagent sorting
* Fix errors
* Poke tests
* Fix solution names not being applied
* Fix WoolyComponent including statement
* Fix merge skew
* Fix compile errors
* Make reactions use solntities
* Reindent solution class namespace
* Field attribute changes
* AutoGenerateComponentState for SolutionContainerComponent
* SolutionContainerComponent -> ContainedSolutionComponent
* ref ReactionAttemptEvent
* Denetwork preinit solutions
* Misc 1
* Nullable TryGetSolution out vars
* Cache associated solutions
* Fix merge skew
* Use explicit regions in SharedSolutionContainerSystem.Capabilities
* Add debug assert
* Use explicit regions in SharedSolutionContainerSystem.Relay + ref SolutionContainerChangedEvent
* ContainedSolutionComponent.Name -> ContainedSolutionComponent.ContainerName
* SolutionComponent doc comments
* Implicit DataField names and property purge
* ReagentEffect DataField names
* Local variables for readability
* Sort using statements + Entity<T> event handlers
* Fix compile erros
* Fix compile errors
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* Remove n rename cruft old shit
* Artifact analyzer UI updating optimization
* Revert "Remove n rename cruft old shit"
This reverts commit 8789338fb20f77d79c5b0e40719896efe0103fcc.
* Fixed EnergySword and variants having incorrect sound on attacking when in their Off state.
* Removed the unused ItemToggle from the serverside and created a new shared ItemToggleComponent and System, now used for the e-blade family of items. Also added e-blade hum and swing sounds. Thanks Sloth for the initial code!
* Changing Stunbaton system to include the itemToggle system.
* Adapted changes that have come up in the meantime.
* Changed damagespecifier to be serializable and autoNetworked in melee weapon components. Fixes a bug that makes it so client-side, damage values are not updated on toggle.
* Made the ItemToggleSystem have both a shared and a server component. Ported the Stun Baton and Stun Prod to the new toggleable system. Added a failure to activate noise component.
* Ported the welders to the new item toggle system. Set it so deactivated damage and item size default to the item's regular options.
* Removed unnecessary usings.
* Small modification to the stun prod.
* Made the integration test use the new method to turn the welders on.
* Fixed a few testing issues, applied a few changes requested by Delta.
* Updated Stunbaton code for consistentcy when it comes to calling the itemToggle component.
* Removed a redundant return; as per Delta.
Made examining the stun baton for charge rely on the battery component instead.
* Removed the welder visualizer system, now using the generic one. Removed some unused usings. Removed the welder visuals and layers.
Ported lighters to the new system.
Added zippi (sic) lighters.
* Renamed variables used to make them less generic.
* Simplified the light update code.
* Fixed the unit test to use the itemToggle system for welders now.
* Made the name shorter. I can't tell if the welding damage when interacted with actually does anything though. I can't figure out how to trigger it.
* Fixed some YML issues.
* Added a client side item toggle system just to make the shared code run on local UID's too.
* Fixed some more Yaml.
* Made the Zippi lighter have its own parent item, so it doesnt' conflict with the random pattern on the regular lighter.
* Made the zippi lighter its own in-hand sprites.
* Added a summary for the activated property in itemtoggle component.
* Fixed a typo in the itemToggle Component.
* Fixed a typo.
* Added to the remarks for the ItemToggleComponent.
* Fixed up the lighter yaml to make it use a generic term instead of a toggle layer enum for the random skin.
* Fixed a bug I introduced accidentally with the humming sound.
* Removed 2 unnecessary events from the ItemToggleSystem and component.
* Fixed a bug by only making the server run the item activation code, since the client cannot predict whether or not the activation will be cancelled.
* Cleaned up some names and functions getting called.
* Renamed a couple of variables and removed the explicit datafields from the component. Removed "activated: false" from yml since they're already deactivated by default.
* Added an IsActivated function, used it in the welder and stun baton systems code.
Refactored welder code to remove the WelderToggle event, now using the ItemToggleActivatedEvent instead for eye protection check.
* Fixed a typo. Added some comments.
* Split the ItemToggle into smaller components.
Changed the items that used the toggle system to work with the smaller components.
Made the mirror shield reflect energy shots with a 95% chance.
* Fixed the namespaces for the server components and whatnot.
* Fixed a doubled deactivation sound from using activated wieldable items (like the double Esword).
Fixed wrong yml with the e-dagger.
Fixed the disarm malus code.
* Added the zippo lighter to the detective's trench coat.
* Removed the default hit sound for the double e-sword since it was unnecessary.
* Changed e-sword damage numbers to be in line with the changes made by Emisse.
* Made no damage sounds be autoNetworked, so it changes can be changed on activation/deactivation of items.
Made Welders and Eswords sound like themselves but quieter if they hit for 0 damage, instead of taps.
You can choose what sound to play when a weapon does 0 damage when activated now.
Fixed a bug with swing sounds.
* Typo.
* Fixed a bug where the welder would blind you if you used it while it was off.
* Created a single abstract method called when an item has completed its toggle.
* Update Content.Server/Eye/Blinding/EyeProtection/EyeProtectionSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Fixed a comment.
* Made most component variables readOnly for ItemToggle. There is no need to be able to change them from within the variable viewer.
* Removed trailing white spaces.
* Made the Use a field instead of a property in the itemToggleActivation/Deactivation attempt events.
* Small fixes.
* Removed ForceToggle, just use the toggle method instead.
* Fixed a bug with item sharpness staying even after getting deactivated, if the item gained sharpness that way (esword).
* Used ProtoId in the welder component.
* Made damage NetSerializable as well.
* Added networking and data fields to a couple of components.
* Made component variables autonetworked. Added some comments.
* Moved the events that modify item components on toggle to events, handled (where possible) in the systems linked to said components.
* Made all the component variables readWrite again.
* Added the component get to the WelderStatus.
* Added a predictable bool to the item toggle component.
* Replaced the Activated/Deactivated events with ToggleDone, with an Activated argument. Used that to simplify some systems.
* Added a reflect update raise event.
* Removed the Zippo changes. To add in a later PR.
* Removed the zippo from meta.json too.
* Small fix.
* Another small fix.
* Fixed the wieldable system thing in ItemToggle.
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Prototyping whole station wire map
* More prototyping
* Added icons for the different power distributors and toggleable cable displays
* Power cable layouts are now only sent to the client when the power monitor is open
* UI prototyping
* Power monitors can now see the sprites of distant entities, long entity names are truncated
* Updated how network devices are added to the player's PVS
* More feature prototypes
* Added source / load symbols
* Final prototype! Time to actually code it properly...
* Start of code clean up
* Continuing code clean up
* Fixed UI appearance
* Code clean up complete
* Removed unnecessary changes
* Updated how power values are calculated, added UI warnings for power sinks and power net checks
* Updated how power values are calculated again, added support for portable generators
* Removed unnecessary files
* Map beacons start toggled off, console map now works outside the station, fixed substation icon
* Made some of Sloth's requested changes. Power distributors don't blink anymore, unless selected
* Moved a number of static variables in PowerMonitoringHelper to sensible places in the main files. Added a NavMapTrackableComponent so that you can specify how individual entities appear on the navmap
* Updated the colors/positions of HV cables and SMESes to improve contrast
* Fixed SMES color in map legend
* Partially fixed auto-scrolling on device selection, made sublists alphabetical
* Changed how auto-scroll is handled
* Changed the font color of the console warning messages
* Reduced the font size of beacon labels
* Added the station name to the console
* Organized references
* Removed unwanted changes to RobustToolbox
* Fix merge conflict
* Fix merge conflict, maybe
* Fix merge conflict
* Updated outdated reference
* Fixed portable_generator.yml
* Implemented a number of requested changes, move bit masks to a shared component
* Navigate listings via the navmap
* First attempt at improving efficiency
* Second attempt at optimization, entity grouping added for solar panels
* Finished solar panel entity joining
* Finished major revisions, code clean up needed
* Finializing optimizations
* Made requested changes
* Bug fix, removed obsolete code
* Bug fixes
* Bug fixes
* STarted revisions
* Further revisions
* More revision
* Finalizing revisions. Need to make RT PR
* Code tidying
* More code tidying
* Trying to avoid merge conflicts
* Trying to avoid merge conflicts
* Removed use of PVS
* Improving efficiency
* Addressed a bunch of outstanding issues
* Clear old data on console refresh
* UI adjustments
* Made node comparison more robust. More devices can be combined into one entry
* Added missing component 'dirty'