The access configurator programs the access levels of any access reader. To use the access configurator, players must:
- Insert an ID card
- Click a nearby entity with an access reader with the access configurator in hand
- Change the access list
Note that players only need one of the access levels listed on the device to lock/unlock it, but will only be able to alter access settings when they all of the access levels listed on the device
For example, an airlock which has 'Science' and 'Engineering' access listed can be opened by any player with either 'Science' or 'Engineering' access. However, to change the access settings on this airlock, a player must have both 'Science' and 'Engineering' access. This is to prevent people from easily breaking into secure areas with this tool, by adding one of their own access levels to the target device
Obviously, the most useful ID card to use with this tool is one with all access, since it can change the settings of any device. Removing all access requirements from a device will make it useable by anyone.
---------
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
* The all-in-one hacking solution
The thinking man's lockpick
The iconic EMAG
* emagged medbay's stasis bed
* left med, emagged sec' apc
* went back to chem, emagged the dispenser
* emagged the fax while i was there
* had a donut while waiting for emag to charge
* i broke into the bridge then announced 'mandatory johnson inspection in medical'
* get system instead of dependency
* feedback
* net suggestion
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* use EnsureComp and import NetworkedComponent
---------
Co-authored-by: deltanedas <user@zenith>
Co-authored-by: deltanedas <deltanedas@laptop>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* show modifications in access change logs
* skip logging and updates to name and job when no change was made
* add method to SharedAccessSystem.cs to get access tags
* add ID microwave logs
* starter API
* network ID cards
* Port more stuff from old identity
* Re-implement identity representation + name updating
* move
* proper name returning for `IdentityName`
* move everything important to server, give in to temptation
* shared / server / client split sadly. move ensure to shared and spawn to server
* identity update queueing + identityblocker
* fixes
* and just like that it's usable for admins
* huge identity pass
* pass dos
* jesus christ
* figs :D
* fuck u
* fix bad merge.
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Extended access system
Allows jobs to specify "extended" access levels, which will be granted if the round-start crew count is below a certain threshold.
* Extended accesses for jobs
* Spook
* some work
* equip: done
unequip: todo
* unequipping done & refactored events
* workin
* movin
* reee namespaces
* stun
* mobstate
* fixes
* some work on events
* removes serverside itemcomp & misc fixes
* work
* smol merge fix
* ports template to prototype & finishes ui
* moves relay & adds containerenumerator
* actions & cuffs
* my god what is actioncode
* more fixes
* im loosing my grasp on reality
* more fixes
* more work
* explosions
* yes
* more work
* more fixes
* merge master & misc fixed because i forgot to commit before merging master
* more fixes
* fixes
* moar
* more work
* moar fixes
* suffixmap
* more work on client
* motivation low
* no. no containers
* mirroring client to server
* fixes
* move serverinvcomp
* serverinventorycomponent is dead
* gaming
* only strippable & ai left...
* only ai and richtext left
* fixes ai
* fixes
* fixes sprite layers
* more fixes
* resolves optional
* yes
* stable™️
* fixes
* moar fixes
* moar
* fix some tests
* lmao
* no comment
* good to merge™️
* fixes build but for real
* adresses some reviews
* adresses some more reviews
* nullables, yo
* fixes lobbyscreen
* timid refactor to differentiate actor & target
* adresses more reviews
* more
* my god what a mess
* removed the rest of duplicates
* removed duplicate slotflags and renamed shoes to feet
* removes another unused one
* yes
* fixes lobby & makes tryunequip return unequipped item
* fixes
* some funny renames
* fixes
* misc improvements to attemptevents
* fixes
* merge fixes
Co-authored-by: Paul Ritter <ritter.paul1@gmail.com>
* git mv
* Move Access Component & system.
- Name space changes
- Rename AccessReader to AccessReaderComponent
- Also need an abstract TryGetSlot function for SharedInventoryComponent
* better TryGetSlot
* Ah yes, tests exist.
* Transfer most Instrument UI logic to a new component, ActivatableUIComponent
* Move more ActivatableUIComponent stuff to ECS
* ActivatableUI component ignore on client
* ActivatableUI: Get rid of component interfaces where possible
* Add in adminOnly attribute for activatable UIs
This is so that porting #4926 to this will be easier
* Transition Solar Control Computer to ActivatableUI
* Move communications console to ActivatableUI
* Move cargo console to ActivatableUI
* Move ID card console to ActivatableUI
* ActivatableUI: Make things more amiable to entity tests adding components weirdly
* ActivatableUI: Use handling or lack thereof of events properly
* ActivatableUI: component dependency issue resolution stuffs
* ActivatableUISystem: Fix#5258
* More fixes because master did stuffo
* Check for HandDeselectedEvent again because otherwise active-hand check doesn't work
* Move just a bit more code into the system, introduce a workaround for #5258
* Purge the player status detection stuff
* Oh and some obsolete stuff too
* Moved access to ecs
* Fixed tests
* Moved test to integration
* Better IoC
* Moved preset ID card
* Moved id card to ECS
* Moved access component to ECS
* Fixed pda access
* Final touches
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* HandsGuiState
* Gui state setting methods
* code cleanup
* Removes TryGetHands
* ClientHand
* Gui Hands
* Refactor WIP 1
* Hand index
* refactors 2
* wip 3
* wip 4
* wiip 4
* wip 5
* wip 6
* wip 7
* wip 8
* wip 9
* wip 11
* Hand ui mostly looks fine
* hands gui cleanup 1
* cleanup 2
* wip 13
* hand enabled
* stuff
* Hands gui gap fix
* onpressed test
* hand gui buttons events work
* bag activation works
* fix item use
* todo comment
* hands activate fix
* Moves Client Hands back to using strings to identify active hand
* fixes action hand highlighting
* diff fix
* serverhand
* SharedHand
* SharedHand, IReadOnlyHand
* Client Hands only stores SharedHand
* cleanup server hands
* server hand container shutdown
* misc renames, refactors of serverhand
* stuff 1
* stuff 3
* server hand refactor 1
* Undo API changes to remove massive diff
* More API name fixes
* server hands cleanup 2
* cleanup 3
* dropping cleanup
* Cleanup 4
* MoveItemFromHand
* Stuff
* region sorting
* Hand Putter methods cleanup
* stuff 2
* Merges all of serverhand and clienthand into sharedhand
* Other hands systems, hack to make inhands update (gui state set every frame, visualzier updated every frame)
* GetFinalDropCoordinates cleanup
* SwapHands cleanup
* Moves server hands code to shared hands
* Fixed hand selected and deselected
* Naming fixes
* Server hands system cleanup
* Hands privacy fixes
* Client hand updates when containers are modified
* HeldItemVisualizer
* Fixes hand gui item status panel
* method name fix
* Swap hands prediction
* Dropping prediction
* Fixes pickup entity animation
* Fixes HeldItemsVisualizer
* moves item pickup to shared
* PR cleanup
* fixes hand enabling/disabling
* build fix
* Conflict fixes
* Fixes pickup animation
* Uses component directed message subscriptions
* event unsubscriptions in hand system
* unsubscribe fix
* CanInsertEntityIntoHand checks if hand is enabled
* Moving items from one hand to another checks if the hands can pick up and drop
* Fixes stop pulling not re-enabling hand
* Fixes pickup animation for entities containers on the floor
* Fixes using held items
* Fixes multiple hands guis appearing
* test fix
* removes obsolete system sunsubscribes
* Checks IsFirstTimePredicted before playing drop animation
* fixes hand item deleted crash
* Uses Get to get other system
* Replaces AppearanceComponent with SharedAppearanceComponent
* Replaces EnsureComponent with TryGetComponent
* Improves event class names
* Moves property up to top of class
* Moves code for determining the hand visualizer rsi state into the visualizer instead of being determined on hand component
* Eventbus todo comment
* Yaml fix for changed visualizer name
* Makes HandsVisuals a byte
* Removes state from HandsVisualizer
* Fixes hand using interaction method name
* Namespace changes fixes
* Fix for changed hand interaction method
* missing }
* conflict build fix
* Moves cleint HandsSystem to correct folder
* Moved namespace fix for interaction test
* Moves Handsvisualizer ot correct folder
* Moves SharedHandsSystem to correct folder
* Fixes errors from moving namespace of hand systems
* Fixes PDA component changes
* Fixes ActionsComponent diff
* Fixes inventory component diff
* fixes null ref
* Replaces obsolete Loc.GetString usage with fluent translations
* Fluent for hands disarming
* SwapHands and Drop user input specify to the server which hand
* Pickup animation WorldPosiiton todo
* Cleans up hands gui subscription handling
* Fixes change in ActionBlockerSystem access
* Namespace references fixes
* HandsComponent PlayerAttached/Detached messages are handled through eventbus
* Fixes GasCanisterSystem drop method usage
* Fix gameticker equipping method at new location
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Converted all SnapGridPositionChangedEvent subscriptions to AnchorStateChangedEvent.
* Fixes power tests with new anchored requirements.
* Moved AnchorableComponent into construction.
AnchorableComponent now uses Transform.Anchored.
* Fixed bug with nodes, power works again.
* Adds lifetime stages to Component.
* Update Engine to v0.4.70.
* Deprecate IActionBlocker in favour of cancellable events
* Bring back old speech/emoting component restrictions
* Rename action blocker listener methods
* Use Entity System public methods instead of extension methods
Co-authored-by: Vera Aguilera Puerto <gradientvera@outlook.com>