Commit Graph

90 Commits

Author SHA1 Message Date
SimpleStation14
2fb4c5e793 Mirror: Create DeviceNetworkJammerComponent & System as a general way for entities to act as jammers (#382)
## Mirror of PR #26342: [Create DeviceNetworkJammerComponent & System as
a general way for entities to act as
jammers](https://github.com/space-wizards/space-station-14/pull/26342)
from <img src="https://avatars.githubusercontent.com/u/10567778?v=4"
alt="space-wizards" width="22"/>
[space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14)

###### `266cc85f57c883b3a604a66da91d94bb1e18ec5d`

PR opened by <img
src="https://avatars.githubusercontent.com/u/32041239?v=4"
width="16"/><a href="https://github.com/nikthechampiongr">
nikthechampiongr</a> at 2024-03-22 19:17:23 UTC

---

PR changed 7 files with 91 additions and 25 deletions.

The PR had the following labels:
- Status: Needs Review


---

<details open="true"><summary><h1>Original Body</h1></summary>

> <!-- Please read these guidelines before opening your PR:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->
> <!-- The text between the arrows are comments - they will not be
visible on your PR. -->
> 
> ## About the PR
> <!-- What did you change in this PR? -->
> This PR creates the DeviceNetworkJammerComponent & System as a general
way for entities to act as jammers for the DeviceNetwork.
> 
> Additionally it adjusts the JammerSystem for the radio jammer to use
this, and rips out the previous special code for jamming suit sensors.
> 
> As a result of this, the radio jammer can now additionally jam the
suit sensor server itself from receiving DeviceNetwork packets.
> 
> ## Why / Balance
> <!-- Why was it changed? Link any discussions or issues here. Please
discuss how this would affect game balance. -->
> This pr was requested by a maintainer.
> 
> Additionally a general jamming system can have some utility in the
future. E.g. an artifact effect.
> ## Technical details
> <!-- If this is a code change, summarize at high level how your new
code works. This makes it easier to review. -->
> 
> Whenever a device attempts to send a packet, the
> DeviceNetworkJammerSystem listens for the BeforePacketSentEvent.
> From there if any entity with the jammer component is within range of
> either the sender or receiver of the packet the event will be
cancelled.
> Additionally jammers can only block packets in certain networks. If a
> packet is not being transmitted in one of the networks it can block
then
> even if the jammer is in range the event will not be cancelled.
> 
> The range is stored in the jammer component along with the networks it
> can jam.
> 
> Jammable network ids are stored as strings which seems to be how
custom
> networks are stored (E.g. network ids for suit sensors).
> 
> To allow for all of this, the BeforePacketSentEvent was modified to
> provide the NetworkId.
> 
> The JammerSystem now needs to get the networkid for suit sensors for
use in the DeviceNetwork. The previous event subscription for jamming
suit sensors have been removed along with the event.
> 
> I wish I could use this to jam radios as well but radios are magic and
do not use device networks.
> 
> ## Media
> <!-- 
> PRs which make ingame changes (adding clothing, items, new features,
etc) are required to have media attached that showcase the changes.
> Small fixes/refactors are exempt.
> Any media may be used in SS14 progress reports, with clear credit
given.
> 
> If you're unsure whether your PR will require media, ask a maintainer.
> 
> Check the box below to confirm that you have in fact seen this (put an
X in the brackets, like [X]):
> -->
> 
> - [x] I have added screenshots/videos to this PR showcasing its
changes ingame, **or** this PR does not require an ingame showcase
> 
> **Changelog**
> <!--
> Make players aware of new features and changes that could affect how
they play the game by adding a Changelog entry. Please read the
Changelog guidelines located at:
https://docs.spacestation14.io/en/getting-started/pr-guideline#changelog
> -->
> 
> <!--
> Make sure to take this Changelog template out of the comment block in
order for it to show up.
> 🆑
> - add: Added fun!
> - remove: Removed fun!
> - tweak: Changed fun!
> - fix: Fixed fun!
> -->
> no cl no fun


</details>

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SimpleStation14 <Unknown>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2024-05-29 00:03:15 -04:00
SimpleStation14
cc41b00757 Mirror: Unify Content's EntitySystem logging (#240)
## Mirror of PR #26216: [Unify `Content`'s `EntitySystem`
logging](https://github.com/space-wizards/space-station-14/pull/26216)
from <img src="https://avatars.githubusercontent.com/u/10567778?v=4"
alt="space-wizards" width="22"/>
[space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14)

###### `eeaea6c25b496106eb741e93738f2ab8503949ba`

PR opened by <img
src="https://avatars.githubusercontent.com/u/27449516?v=4"
width="16"/><a href="https://github.com/LordCarve"> LordCarve</a> at
2024-03-17 20:05:08 UTC

---

PR changed 13 files with 43 additions and 82 deletions.

The PR had the following labels:
- Status: Needs Review


---

<details open="true"><summary><h1>Original Body</h1></summary>

> <!-- Please read these guidelines before opening your PR:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->
> <!-- The text between the arrows are comments - they will not be
visible on your PR. -->
> 
> ## About the PR
> <!-- What did you change in this PR? -->
> Log things via `Log` with generated sawmill name rather than an
explicitly set one for all Content `EntitySystem`s, except the ones with
`Rule`s. In all cases the explicit `_sawmill` was redundant.
> 
> ## Why / Balance
> <!-- Why was it changed? Link any discussions or issues here. Please
discuss how this would affect game balance. -->
> - Bringing consistency to logs (all logs originating from
`EntitySystem` should be recognizible in the logs `system.something`).
> - Logs' sawmills match system class name to assist with debugging.
> - Less likelihood of someone building a new `EntitySystem` to
copy-paste the unnecessary `_sawmill` and instaed use the appropriate
inherited `Log` instead.
> 
> ## Technical details
> <!-- If this is a code change, summarize at high level how your new
code works. This makes it easier to review. -->
> This addresses **_just_** `Content`'s `EntitySystem`s.
> 
> `GameRuleSystem` **and all classes inheriting from it are excluded.**
I want to include both the calling system name and the rule name in the
sawmill name - this however requires engine changes. I thus opted to cut
out that part and made this a `Content`-only PR.
> 
> Also, even with the rule changes, the `GameRule`s themselves will be
excluded pending antag refactor, because currently they are a _hot-hot_
mess and I'm sure it's preferable by everyone for me to wait for it to
cool down before introducing merge conflicts unnecessarily.
> 
> Log Sawmill changes:
> **System class | current master sawmill | this PR's sawmill**
> `VaporSystem.cs`: `vapor` -> `system.vapor`
> `DeviceListSystem.cs`: `devicelist` -> `system.device_list`
> `ForensicScannerSystem.cs`: `forensic.scanner` ->
`system.forensic_scanner`
> `MappingSystem.cs`: `autosave` -> `system.mapping`
> `MechSystem.cs`: `mech` -> `system.mech`
> `LagCompensationSystem.cs`: `lagcomp` -> `system.lag_compensation`
> `NpcFactionSystem.cs`: `faction` -> `system.npc_faction`
> `EmergencyShuttleSystem.cs`: `shuttle.emergency` ->
`system.emergency_shuttle`
> `EventManagerSystem.cs`: `events` -> `system.event_manager`
> `VendingMachineSystem.cs`: `vending` -> `system.vending_machine`
> `SharedAnomalySystem.cs`: `anomaly` -> `system.anomaly`
> `SharedDeviceLinkSystem.cs`: `devicelink` -> `system.device_link`
> `ThirstSystem.cs`: `thirst` -> `system.thirst`
> 
> Manually tested most (all that I had doubts about) and confirmed that
`LagCompensationSystem`'s `Log.Level` is getting correctly set like
this.
> 
> ## Media
> <!-- 
> PRs which make ingame changes (adding clothing, items, new features,
etc) are required to have media attached that showcase the changes.
> Small fixes/refactors are exempt.
> Any media may be used in SS14 progress reports, with clear credit
given.
> 
> If you're unsure whether your PR will require media, ask a maintainer.
> 
> Check the box below to confirm that you have in fact seen this (put an
X in the brackets, like [X]):
> -->
> 
> - [X] I have added screenshots/videos to this PR showcasing its
changes ingame, **or** this PR does not require an ingame showcase
> 
> ## Breaking changes
> <!--
> List any breaking changes, including namespace, public
class/method/field changes, prototype renames; and provide instructions
for fixing them. This will be pasted in #codebase-changes.
> -->
> Log sawmill name changes. Any analyzers/other software that processes
logs needs to be adjusted to new sawmills. Full list of changes in PR -
section Technical details.


</details>

Co-authored-by: SimpleStation14 <Unknown>
2024-05-11 23:43:39 -04:00
Julian Giebel
236bba59c2 System for single device net server per station functionality (#23946)
(cherry picked from commit 1ed63d43b00ebacafb5d6bc50d6c39348c7e8b39)
2024-03-07 01:22:35 +01:00
metalgearsloth
9e366f3119 Predict two-way levers (#25043)
* Predict two-way levers

Annoys me the rare occasions I touch cargo. Doesn't predict the signal but at least the lever responds immediately.

* space

* a

(cherry picked from commit 05a2ddff1cc415c3bdf1e15ef3a2c953bcb5384b)
2024-02-18 22:46:26 +01:00
Ed
25dbae8f9c Lock Anomaly generator to research access (#24464)
* small patch

* fix

* remove garbage

* fix

* moved to shared events

* fix

* LocId

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 498ad2d5d714c73d9212bda9d3d89d53b2001e04)
2024-02-08 12:11:07 +01:00
Pieter-Jan Briers
56fb80ad34 BUI bugfixes / improvements (#23881)
* Fix ActivatableUIRequiresPowerCellComponent stopping power draw when one of two people closes the UI.

Also fixes it to check UiKey properly.

* Remove unnecessary CrewManifestViewer on PDAs

This is for a pop-up crew manifest UI, which the PDA doesn't use.

* Fix BoundUIClosedEvents that didn't check UI key/not correctly at least.

Uses the new helper method in engine.

* Fix drone (cargo shuttle) pilot console UI breaking if two people open it and one person closes it.

* Fixes for disposal router/tagger UI.

Code was badly copy pasted without changing identifiers, never worked.

Also cleaned up some of the logic (text trimming, sounds).

Also removed the "refuse to work if you have something in your active hand" check like why.

* Avoid running most ActivatableUIComponent logic when closing a UI via toggle

Activating the UI while it's already open closes it via toggle. Except it still ran 99% of the "attempting to open" logic which makes no sense.

This probably fixes a bug or some other dumb behavior somewhere.

* Bitch

(cherry picked from commit 123a4147dea2945f6c60fe9e4e0a3aa2da75e1dc)
2024-01-26 22:38:21 +01:00
Leon Friedrich
c171790149 Fix device networking, again (#23035)
(cherry picked from commit af42cf82b7ca57fbdb0fd9dd16fd56248e92c7d1)
2024-01-22 18:38:01 +01:00
Leon Friedrich
bc75826187 Try fix invalid entities in device networks (#22845)
* Try fix invalid entities in device networks

* more fixes

* a

* fix device merging
2023-12-22 23:25:05 +01:00
metalgearsloth
b1ee2d48ff Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-12-02 20:16:36 +01:00
avery
d57fc7d791 allow network payload data to inherit nullability (#21327) 2023-11-12 20:43:48 +01:00
Leon Friedrich
1465c02a77 Move ActorComponent to shared (#21293) 2023-10-31 19:12:44 +01:00
metalgearsloth
c9648da984 Content update for NetEntities (#18935) 2023-09-27 21:59:12 +02:00
Leon Friedrich
af79f369ae Remove outdated access reader method. (#19765) 2023-09-03 11:05:22 +10:00
metalgearsloth
4cfc578011 Revert "Remove most usages of obsolete TransformComponent methods (#1… (#19714) 2023-09-01 12:30:29 +10:00
Visne
1416942bea Remove most usages of obsolete TransformComponent methods (#19571) 2023-08-30 12:05:19 +10:00
DrSmugleaf
a88e747a0b Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
deltanedas
e837f2fd85 air alarm signal ports and other stuff (#18642)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2023-08-21 14:18:30 -07:00
Julian Giebel
78c66cca75 Fix air alarm not checking if device is in device list before sending atmos device settings (#18436) 2023-08-01 14:27:59 -04:00
TemporalOroboros
3ac4cf85db Cleaner BoundUserInterfaces (#17736) 2023-07-09 02:02:17 +10:00
metalgearsloth
68480af109 Update content vectors to numerics (#17759) 2023-07-08 14:08:32 +10:00
faint
2f85b5ea3c Little NodeContainer ECS (#17702) 2023-06-28 21:28:38 +10:00
Chief-Engineer
72607f3066 add device linking logs (#17555) 2023-06-27 21:03:39 -04:00
Pieter-Jan Briers
d415b31dc0 Device network address improvements (#16934) 2023-05-30 00:56:31 +10:00
Julian Giebel
a46a4b13d7 Fix network configurator resolves (#16910) 2023-05-29 16:07:59 +10:00
Julian Giebel
8d040e57d7 Fix station limited devices station assignment (#16893)
Fix error in crew monitor window
2023-05-28 14:07:31 -06:00
Julian Giebel
49cb9d0e1e Prevent infinite loops in device linking (#16856) 2023-05-29 02:14:06 +10:00
Julian Giebel
2bb1fde4dc Remove devices from device lists when they get deleted (#16783)
* Implement device network device shutdown subscribtion
Implement removing devices from device lists when they get deleted

* Improve name and doc comment for DeviceShutDownEvent

* Change ShutdownSubscriber data field tag

* Change UpdateRemovalSubscription name to UpdateShutdownSubscription
2023-05-25 16:08:22 -06:00
Leon Friedrich
ab6edecdf7 Fix device links saving deleted entities. (#16675) 2023-05-22 15:57:30 -06:00
Julian Giebel
2d273107f4 Implement automatic mode switching for the network configurator and multitool (#16603) 2023-05-22 23:20:53 +10:00
Julian Giebel
5e0a96dfc7 Blast door/shutter, timer and or gate device linking fixes (#16347) 2023-05-11 18:16:02 -04:00
Tyzemol
b1f7d7f061 Fix interlocking airlocks (#16265) 2023-05-09 18:50:34 -04:00
Julian Giebel
5c86778fff Fix network configurator verbs and misc fixes (#16210) 2023-05-07 20:58:12 +10:00
Julian Giebel
6ebd784cb6 Device Linking and better linking ui (#13645)
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
Co-authored-by: Visne <39844191+Visne@users.noreply.github.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2023-05-07 16:07:24 +10:00
metalgearsloth
ae01618874 Revert "Revert "Replace ResourcePath with ResPath (#15308)" (#155… (#15566) 2023-04-20 20:16:01 +10:00
metalgearsloth
acf79a8209 Revert "Replace ResourcePath with ResPath (#15308)" (#15551) 2023-04-20 11:43:54 +10:00
Ygg01
71f358a027 Replace ResourcePath with ResPath (#15308) 2023-04-19 23:39:17 +10:00
metalgearsloth
44fb8a9e2d Fix rsi sprite access for verbs (#14284) 2023-02-26 18:48:57 +11:00
Julian Giebel
c2b87dfeda Add a crew monitoring server (#7542) 2023-01-22 21:07:57 -04:00
Visne
c6d3e4f3bd Fix warnings and code cleanup/fixes (#13570) 2023-01-19 13:56:45 +11:00
Leon Friedrich
881a2b2ece PopupSystem public methods rejig (#12830) 2022-12-19 08:41:47 +11:00
Julian Giebel
0df65e5c2a Adds the NetProbe cartridge (#12543)
* Implement NetProbeCartridge

* Add audio and a popup when scanning a device
Add some doc comments

* Set program icon

* Add NetProbe cartridge as rare loot to maintenance loot tool spawner

* Make the maximum amount of saved entries configurable
Add a scrollbar that shows when there are more entries than fit on the screen

* Make device net id names translatable
2022-11-13 15:36:00 -06:00
Flipp Syder
07fe950c91 fix crash on devicenet address adding (#11457) 2022-09-24 02:51:02 -07:00
Flipp Syder
b6a548fb97 adds examinable text for address to some device networked entities (#11455) 2022-09-22 14:00:54 -05:00
Flipp Syder
1c4e1ba5de Adds a component to require an entity to be powered to receive DeviceNetwork packets. (#11390) 2022-09-19 16:59:32 -07:00
Flipp Syder
ec6cdbd51a Removes hacky behavior from DeviceListSystem (#11255) 2022-09-14 16:09:43 +10:00
Flipp Syder
c3d7ecace6 Adds a link limit and UI to device list (#11017)
* adds a link limit to device list

* locale strings

* uhhh what's efcore doing there

* adds a UI for device list on the device

* merge conflict fixing
2022-09-05 18:22:39 -07:00
Flipp Syder
9ace52a6c1 Device link visualizer (#11054)
* 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
2022-09-05 19:55:44 -05:00
Flipp Syder
d447b0f80e Air alarm patches (#11004) 2022-09-04 02:04:15 -07:00
vulppine
363d51e407 adds clarification for why network configurator stores an entityUID 2022-09-01 21:36:54 -07:00
vulppine
dffbe5b761 mapinit updates ui state for networkconfigurators as well 2022-08-30 22:06:06 -07:00