* it works! kinda
* so it works now
* minor cleanup
* central button now is useful too
* more cleanup
* minor cleanup
* more cleanup
* refactor: migrated code from toolbox (as it was rejected as too specific)
* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame
* refactor: major reworks!
* renamed DrawBagleSector to DrawAnnulusSector
* Remove strange indexing
* Regularize math
* refactor: re-orienting segment elements to be Y-mirrored
* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button
* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.
* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters
* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly
* fix: enabled any functional keys pressed when pushing radial menu buttons
* fix: radial menu sector now scales with UIScale
* fix: accept only one event when clicking on radial menu ContextualButton
* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always
* feat: simple radial menu prototype for easier creation
* refactor: cleanup, restored emote filtering, button models now have class hierarchy
* refactor: remove usage of closure from 'outside code'
* refactor: remove non existing type from UiControlTest
* refactor: remove unused using
* refactor: revert ability to declare radial menu layers in xaml, scale 32px sprites using scale in radial menu
* refactor: whitespaces
* refactor: subscribe for dispose on existing radial menus
* feat: now simple radial menu button models can have custom color for each sector background (and hover background color). Also added OpenOverMouseScreenPosition inside SimpleRadialMenu
* fix: AI door menu now can be closed by verb if it gets unpowered
* overlay and its registration
* radial menu shader but it requires wierd offset
* remove unused file
* smol cleanup
* remove unused code
* neat internal subsctors in radial menu shaders
* refactor finalize visual style
* comments, simplify, extract variable and other minor refactors on radial-menu shader
* refactor: extract more data from radial menu with sector to radial container for shader drawing
* replaced DrawSeparators for RadialMenuTextureButtonWithSector with DrawBorder (no reason to make them separate), also now colors are properly applied
* refactor: simplify hiding border, extended xml-doc for simple radial menu settings
* refactor: remove duplication of radial menu shaders, use ValueList to collect ClearExistingChildrenRadialButtons buttons to remove
* refactor: remove linq
* fix: fix AI radial action serialization using invalid type
* refactor: fix duplicate ShowDeviceNotRespondingPopup for AI by properly checking if it can interact
* refactor: removed *if* blocks from shader, replaced with branchless logic
* refactor: whitespaces, changed list to array in simple radial button preparing methods
* fix: merge duplicated code
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Initial resources commit
* Initial code commit
* Added additional resources
* Continuing to build holopad and telephone systems
* Added hologram shader
* Added hologram system and entity
* Holo calls now have a hologram of the user appear on them
* Initial implementation of holopads transmitting nearby chatter
* Added support for linking across multiple telephones/holopads/entities
* Fixed a bunch of bugs
* Tried simplifying holopad entity dependence, added support for mid-call user switching
* Replaced PVS expansion with manually networked sprite states
* Adjusted volume of ring tone
* Added machine board
* Minor features and tweaks
* Resolving merge conflict
* Recommit audio attributions
* Telephone chat adjustments
* Added support for AI interactions with holopads
* Building the holopad UI
* Holopad UI finished
* Further UI tweaks
* Station AI can hear local chatter when being projected from a holopad
* Minor bug fixes
* Added wire panels to holopads
* Basic broadcasting
* Start of emergency broadcasting code
* Fixing issues with broadcasting
* More work on emergency broadcasting
* Updated holopad visuals
* Added cooldown text to emergency broadcast and control lock out screen
* Code clean up
* Fixed issue with timing
* Broadcasting now requires command access
* Fixed some bugs
* Added multiple holopad prototypes with different ranges
* The AI no longer requires power to interact with holopads
* Fixed some additional issues
* Addressing more issues
* Added emote support for holograms
* Changed the broadcast lockout durations to their proper values
* Added AI vision wire to holopads
* Bug fixes
* AI vision and interaction wires can be added to the same wire panel
* Fixed error
* More bug fixes
* Fixed test fail
* Embellished the emergency call lock out window
* Holopads play borg sounds when speaking
* Borg and AI names are listed as the caller ID on the holopad
* Borg chassis can now be seen on holopad holograms
* Holopad returns to a machine frame when badly damaged
* Clarified some text
* Fix merge conflict
* Fixed merge conflict
* Fixing merge conflict
* Fixing merge conflict
* Fixing merge conflict
* Offset menu on open
* AI can alt click on holopads to activate the projector
* Bug fixes for intellicard interactions
* Fixed speech issue with intellicards
* The UI automatically opens for the AI when it alt-clicks on the holopad
* Simplified shader math
* Telephones will auto hang up 60 seconds after the last person on a call stops speaking
* Added better support for AI requests when multiple AI cores are on the station
* The call controls pop up for the AI when they accept a summons from a holopad
* Compatibility mode fix for the hologram shader
* Further shader fixes for compatibility mode
* File clean up
* More cleaning up
* Removed access requirements from quantum holopads so they can used by nukies
* The title of the holopad window now reflects the name of the device
* Linked telephones will lose their connection if both move out of range of each other
Requires https://github.com/space-wizards/RobustToolbox/pull/5023
This uses the new engine features (above) to add a displacement map shader. This allows deforming a sprite based on another sprite.
Primary use case is automatically adapting human clothing sprites to different species, something we want to make species like Vox a reality.
A basic example of wiring this up with Vox has been added. The system is however incredibly simple and **will** need more work by a content developer to select and toggle displacement maps when appropriate. I am leaving that to somebody else. For example right now the displacement map is applied even if a species already has custom-fit sprites for a piece of clothing, such as the grey jumpsuit for Vox.
Basic Aseprite plugins to help with authoring displacement maps have also been made.
* reworks the drug overlay effect to be less motion-sickness inducing and a bit less shonky
* UNAUTHORIZED fucking THING. DESTROY it immediately
* further tweaks - adds another gradient to control the color effect too
* Gateway generation
* Gateway stuff
* gatewehs
* mercenaries
* play area
* Range fixes and tweaks
* weh
* Gateway UI polish
* Lots of fixes
* Knock some items off
* Fix dungeon spawning
Realistically we should probably be using a salvage job.
* wahwah
* wehvs
* expression
* weh
* eee
* a
* a
* WEH
* frfr
* Gatwey
* Fix gateway windows
* Fix gateway windows
* a
* a
* Better layer masking
* a
* a
* Noise fixes
* a
* Fix fractal calculations
* a
* More fixes
* Fixes
* Add layers back in
* Fixes
* namespaces and ftl
* Other TODO
* Fix distance
* Cleanup
* Fix test
* cameras but i didn't feel like git stashing them
* Adds more functionality server-side for surveillance cameras
* rider moment
* Adds skeleton for SurveillanceCameraMonitorBoundUi on client
* whoops
* makes surveillance camera monitor UI more defined
* removes tree from SurveillanceCameraMonitorWindow
* surveillance camera active flag, other routing things
* actually sets how SurveillanceCameraMonitorSystem sends camera info to clients
* adds entity yaml, changes field
* adds the camera/monitor entities, makes the UI open
* SurveillanceCameraRouters (not implemented fully)
* subnets for cameras, server-side
* it works!
* fixes rotation in cameras
* whoops
restores surveillance cameras to ignored components
makes it so that switching cameras now lerps the other camera
* makes the UI work
* makes it so that cameras actually refresh now
* cleanup
* adds camera.rsi
* cleans up prototypes a bit
* adds camera subnet frequencies, cameras in subnets
* adds surveillance camera router subnets
* might fix testing errors
* adds the circuit board to the surveillance camera monitor
* fixes up the camera monitor (the detective will get his tv soon)
* adds heartbeat, ensures subnet data is passed into cameras to send
* fixes up a few things
* whoops
* changes to UI internals
* fixes subnet selection issue
* localized strings for UI
* changes 'test' id to 'camera' for cameras
* whoops
* missing s
* camera static!
* adds a delay to camera switching
* adjusts a few things in camera timing
* adds setup for cameras/routers, localization for frequency names
* adds setup ui for routers, makes subnet names in monitor window follow frequency name in prototype
* localization, some cleanup
* ui adjustments
* adds surveillance camera visuals
* fixes a bug when closing the UI for monitors
* adds disconnect message to UI
* adds construction graph to cameras
* adds the camera to the construction menu
* fixes network selection for setup, tweak to assembly
* adds surveillance camera router construction, fixes up surveillance camera wire cutting
* adds disconnect button to monitor UI
* switches around the status text
* tweaks monitor UI
* makes the address actually show
* might make tests pass
* UI adjustments, hard name limit
* ok, that didn't work
* adds wireless cameras
* makes the television work/look nicer
* adds tripod cameras in addition to mobile cameras
* makes wireless cameras constructable
* fixes up those prototypes
* reorganization in C#, small cleanup
* ensures that power changes deactivate some devices
* adds a component to the television, comments out a function
* actually, never mind, i forgot that wireless cameras existed/are creatable for a second
* tweaks to router construction, removes SubnetTest from prototypes
* removes it from frequencies too
* Apply suggestions from code review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* type serializers into components
* setup window opens centered, enum is now byte
* replaces active monitor list with ActiveSurveillanceCameraMonitorComponent
* adds paused/deleted entity checks, changes how verbs are given
* removes EntitySystem.Get<T>() references
* fixes bug related to selecting network from setup, alphabet-orders network listing in setup
* rider moment
* adds minwidth to surveillance camera setup window
* addresses reviews
* should fix the issue with camera visuals not updating properly
* addresses some reviews
* addresses further review
* addresses reviews related to RSIs
* never needed a key there anyways
* changes a few things with routers to ensure that they're active
* whoops
* ensurecomp over addcomp
* whoops
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Hopefully make singularity shader warping resolution-invariant
This may or may not fix intensity issues
* Fix singularity 'zero velocity' check
It got stuck in a corner. Twice. I really thought I'd fixed that.
* Make it easier to move around various power stuff by shrinking their AABBs a little and making singulo generator a circle
* Changes to some machine prototypes to reduce duplication of collision changes (#1)
* Changes to some machine prototypes to reduce duplication of collision changes
* BaseMachine.BaseMachineUnpowered -> BaseMachine.BaseMachinePowered