Skip to content

Commit

Permalink
Merge Upstream (space-wizards#562)
Browse files Browse the repository at this point in the history
* Air alarms check sensors upon power returning

* Update Credits (space-wizards#31409)

Co-authored-by: PJBot <[email protected]>

* Replace obsolete code in GasPortableSystem (space-wizards#31407)

* Change `Resave` Permission Requirement to Host (space-wizards#31397)

ChangePermissionFlagToHost

* Automatic changelog update

* Remove client state from server AirAlarmComponent (space-wizards#31236)

* Remove client state from server AirAlarmComponent

Send information for all connected devices, not just the ones for the
current tab, as attempting to limit this breaks multiple users viewing
the same UI.

Fixes space-wizards#12842

* Send device data as a list, rather than a dictionary

---------

Co-authored-by: Eoin Mcloughlin <[email protected]>

* Fix ChemVend jugs again (space-wizards#31398)

This re-introduces the dummy entity naming code, originally introduced in space-wizards#29178 and randomly removed by space-wizards#30064 with no technical justification given.

Fixes space-wizards#31373

* Automatic changelog update

* Fix dungeon spawn + ftl overlap (space-wizards#31413)

* Fix dungeon spawn + ftl overlap

* Better fixes

* Automatic changelog update

* Fix firelockedge rotation (space-wizards#31371)

save

* Automatic changelog update

* Update Oasis (space-wizards#31415)

* Cameras and junk

* I forgot to clear my multitool

* Automatic changelog update

* marathon update (space-wizards#31421)

* Give sec cadets jackboots instead of combat boots (space-wizards#31419)

give cadets jackboots

* Automatic changelog update

* meta update (space-wizards#31423)

* Adds the Head of Greytide stamp (space-wizards#30189)

suggested changes from discord discussion, sprite change, add to refactored loot table

* Automatic changelog update

* Verb tweaks (space-wizards#31309)

* Verb tweaks

Remove the LOS check because this is already done above in CanExamine.

* Fix outlines

* import

* Add ContainerComp (space-wizards#31311)

Applies EntProtoId changes upon insertion / removal from container. Can also be useful for borgs / mechs / vehicles in future but atm I just used it for AI.

* Blueprints (space-wizards#31138)

* Blueprints

* Update tables_loot.yml

* doink

* mark as required

* Automatic changelog update

* decouple ItemToggle from PowerCellDraw (space-wizards#31392)

* remove ItemToggle from PowerCellDraw query

* add EntityQuery for resolves, make them all optional

* move integration to ToggleCellDraw

* add ToggleCellDraw to almost every PowerCellDraw prototype

* :trollface:

* :trollface:

* :trollface:

* let it disable on mapinit

* set update time on mapinit, make borg power logic consistent now

* :trollface:

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Automatic changelog update

* Power stuff (space-wizards#31314)

* Power stuff

- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.

* big update

* boing

* ItemToggle + slots stuff (space-wizards#31312)

* ItemToggle + slots stuff

- Add component for itemslot locks to match LockComponent (surprised this didn't exist).
- Add thing for pointlight to match itemtoggle. In future should be used for PDAs and stuff but need to fix some other stuff first.

* Also this

* grill

* Run actions on press (space-wizards#31191)

I know UI generallys want to do stuff on key-up not key-down. With that being said the delay on release for these is noticeable.
e.g.
ActivateInWorld / UseInHand / any in-world interactions are on-press. This is especially noticeable if you have the same event on action + verb.

* Automatic changelog update

* Action stuff (space-wizards#31305)

* Action stuff

- Cleanup some event stuff
- Avoid dirtying entity unnecessarily
- Add ActionGrant as an easy way to apply / remove actions via compregistry.

* Fix merge

* Update submodule to 231.0.0 (space-wizards#31430)

* Weather fix (space-wizards#30857)

* weather fix

* localize errors

* ContainerComp fix (space-wizards#31434)

Forgot to push these ones on the branch.

* togglelight updates (space-wizards#31435)

Missed in the green checkmark sea

* Increase (SUPER)PACMAN ramp rate/tolerance (space-wizards#31403)

All PACMANs used to use the same ramping parameters, this meant a SUPERPACMAN (50 kW) took literally a 100 seconds to get up to its full output level. Ouch.

PACMAN has been raised to 5000 W/s with 1500 W tolerance, SUPERPACMAN to 7500 W/s with 2500 W tolerance

* Automatic changelog update

* Make space scanning T1 technology (space-wizards#31321)

make space scanning and mass scanner t1 tech

* Automatic changelog update

* Add a bool to disable buckling on InteractHand (space-wizards#30001)

* Automatic changelog update

* fix(FieldGenerators): Don't show nonsense popup (space-wizards#30469)

* .

* bagel update (space-wizards#31440)

* bagel update

* fixgridatmos

* qm office

* sci cam fix

* jesus christ so many routers

* remove invalids

* Fix-Resprite emote icons (space-wizards#31447)

* Fix-Resprite emote icons

* change scream

* Moff cooking. Part one. (space-wizards#30668)

* yml part

* guidebook

* commit

* some fixes

* a little

* change

* Automatic changelog update

* Cog update (space-wizards#31458)

made disposals less bad

* Add BUI ctor tests (space-wizards#31463)

5 lines of eaten iocmanager.injectdependencies led to this.

* Predict EmitSoundOnUIOpen (space-wizards#31464)

* Predict EmitSoundOnUIOpen

BUI prediction led to this moment.

* unforky

* Bots now make sound when they speak (space-wizards#31471)

fixes 31454

* Automatic changelog update

* Change the science radio channel color (space-wizards#31319)

* Change the science radio channel color

* This one looks better

* Automatic changelog update

* Move OnGhostAttempt to GhostSystem (space-wizards#31445)

* Move OnGhostAttempt to GhostSystem

* Remove unused dependencies and sort them

* Fix energy sword visuals (space-wizards#31478)

* Automatic changelog update

* Replace obsolete code in shuttle systems. (space-wizards#31408)

* Format DockingSystem.Shuttle

* arrivals system

* docking system

* shuttle console system

* emergency shuttle system

* shuttle system

* thruster system

* Fix compile error

---------

Co-authored-by: Pieter-Jan Briers <[email protected]>

* Replaces small fans on most shuttles with directional fans. (space-wizards#31495)

* Automatic changelog update

* Replace obsolete functions in NPC systems (space-wizards#31448)

* Make guidebook remember where you left off (space-wizards#31375)

* Guidebook tracks last read entry

* Persistent guidebook fixes

* Persistent guidebook requested changes

* Update Content.Client/UserInterface/Systems/Guidebook/GuidebookUIController.cs

---------

Co-authored-by: Pieter-Jan Briers <[email protected]>

* Automatic changelog update

* Remove double-iteration from the mime wall code (space-wizards#31420)

* Remove double-iteration from the mime wall code

* Update

* Update

* fix method OnEntityEnter in DamageContactsSystem (space-wizards#31494)

fix

Co-authored-by: Dimastra <[email protected]>

* Automatic changelog update

* Make Gas Miners indestructable, anchorable, and pullable. (space-wizards#31370)

* Make miner indestructable, and pullable.

* Miners can't be unanchored. Only anchored.

---------

Co-authored-by: JIPDawg <[email protected]>

* Automatic changelog update

* bagel update (space-wizards#31502)

* Minor fixes to character profile editor save/reset buttons (space-wizards#31505)

Merge SetDirty() with preview reload

People were forgetting to SetDirty() when changing a property; move SetDirty()
into preview reloading, since if the preview is being reloaded, some property
has definitely changed anyway.

Co-authored-by: Eoin Mcloughlin <[email protected]>

* Centcom & FTLDestination cleanup (space-wizards#30226)

* centcomm name and ftlcomp

* networking microopstimization

* go sleep.

* map names and arrivals

* Fix swapped around Safety Moth poster graphics (space-wizards#31507)

* Automatic changelog update

* Mark explosives as a contraband (space-wizards#31508)

* Automatic changelog update

* Mark the syndicate raid helmet as a Syndicate contraband (space-wizards#31512)

* Automatic changelog update

* Add title to multitool door-access-configuration window (space-wizards#31504)

Fixes space-wizards#29923.

Co-authored-by: Eoin Mcloughlin <[email protected]>

* Restrict the explorer gas mask to cargo (space-wizards#31514)

* Automatic changelog update

* Fix stray pixel in officer beersky barsign (space-wizards#31517)

* Scale text in admin player overlay (space-wizards#31503)

* Scale text in admin player overlay

Fixes space-wizards#30040

* Feedback from PR - get UI scale through root window

---------

Co-authored-by: Eoin Mcloughlin <[email protected]>

* New Health Analyzer UI (space-wizards#30834)

* WIP: first prototype

* Change text slightly

* Allow names to wrap

* Add label for the scan mode

* Remove ugly text

* Readd bleeding message

* Update code

* Allow for the Health Analyzer UI to grow vertically

* Automatic changelog update

* Disable Arrivals message for Cryosleep (space-wizards#30888)

* Disable arrivals message for cryosleep late arrivals

* Provide silent to PlayerSpawnCompleteEvent

* Fix typo

* Move message to event and into arrivals system

* Automatic changelog update

* Remove glibc from devshell (space-wizards#28842)

* Automated whitelists (space-wizards#23985)

* Beginnings of making the breadmemes jobs easier

* stuff

* stuff pt. 2

* Stuff pt.3

* Stuff I forgot last time

* Basic whitelist

Only people that are added to the whitelist with the addwhitelist command will be able to join. I call this the "legacy" whitelist

* Remove always deny condition in favor of just breaking if playtime check fails

* Change default whitelist

Default whitelist is now the "legacy" whitelist.

* localization

* Admin check

* minor spelling change

* Fix build

* Whitelist message

* Fix vars not being datafield and spelling mistakes

* Minor spelling mistake

* Change config for salamander

* Reviews and stuff

* Add summaries

* Fix whitelists

* Forgot to add a datafield

* Fixing stuff I guess

* Reuse admin remarks to reduce load when connecting.

* Update log messages to be verbose instead of debug

* Reviews

* whoops

* Explain a bit more how whitelist checking works

* Apply CE's review

* Append Membership to Blacklist and Whitelist conditions

* Fix review comments

* Uncapitalize playerConnectionWhitelist, add to ignored client prototypes

* Make note count field work

* Fix cvar for thingy

---------

Co-authored-by: Pieter-Jan Briers <[email protected]>

* Make nukie plushie a non-contraband item (space-wizards#31516)

Make nukie plushies a non-contraband item

* Automatic changelog update

* fix uncapitalized "S" in Salvage Specialist (space-wizards#31529)

"Salvage specialist" to "Salvage Specialist"; all is right with the world

* Make AKMS security restricted (space-wizards#31519)

* Automatic changelog update

* bagel update (space-wizards#31535)

* Update submodule to 231.1.0 (space-wizards#31536)

* Station AI (space-wizards#30944)

* Station AI overlay

* implement

* Bunch of ports

* Fix a heap of bugs and basic scouting

* helldivers

* Shuffle interactions a bit

* navmap stuff

* Revert "navmap stuff"

This reverts commit d1f89dd.

* AI wires implemented

* Fix examines

* Optimise the overlay significantly

* Back to old static

* BUI radial working

* lots of work

* Saving work

* thanks fork

* alright

* pc

* AI upload console

* AI upload

* stuff

* Fix copy-paste shitcode

* AI actions

* navmap work

* Fixes

* first impressions

* a

* reh

* Revert "navmap work"

This reverts commit 6f63fea.

# Conflicts:
#	Content.Client/Silicons/StationAi/StationAiOverlay.cs

* OD

* radar

* weh

* Fix examines

* scoop mine eyes

* fixes

* reh

* Optimise

* Final round of optimisations

* Fixes

* fixes

* Bagel station ai (space-wizards#31537)

* real

* AI

* proto fix

* Fix PostMapInit tests not considering job containerspawns (space-wizards#31538)

* Fix PostMapInit tests nto considering job containerspawns

* fix

* AI whitelist fix (space-wizards#31542)

* cog update (space-wizards#31540)

updooted cog

* AI radio fix (space-wizards#31547)

Love to see it

* Storage BUI bandaid (space-wizards#31506)

grug storageuicontroller

* Fix puddle context menu (space-wizards#31555)

* Update AI holo sprite to camera (space-wizards#31558)

Update AI camera to 13 default

Holo was a placeholder. This is better in the interim.

* Add AI warp points (space-wizards#31559)

* Automatic changelog update

* Fix AI being ejectable (space-wizards#31561)

* Automatic changelog update

* Fix whitelist (space-wizards#31563)

* Automatic changelog update

* bagel update (space-wizards#31562)

* bagel update

* ore processor cargo

* Add some more stuff to AI whitelist (space-wizards#31564)

* Add some more stuff to AI whitelist

* by the nine

* Automatic changelog update

* Meta - Med disposals and chem room extra pipe fix (space-wizards#31467)

Delete extra pipe & fix disposals junction

* bagel hotfix (space-wizards#31566)

bagel update

* update AI job icon to 8x8  (space-wizards#31565)

icon and meta.json

* Automatic changelog update

* Update ClothingSpeedModifierSystem.cs (space-wizards#29994)

* TryGetContainerContainer

* Math

* Changed AddMarkup to AddMarkupOrThrow

* Better math

* engine version

* engine version

* Add black suspenders (space-wizards#29055)

* Black suspenders

* fix

* fix linter

* Automatic changelog update

* recolor riot helmet (space-wizards#31530)

* recolor riot helmet

resolves space-wizards#31256
match riot helmet to default security helmet

* further color tweaks for consistency; update meta.json

Tweaked equipped sprites to more closely match the security helmet.

* Automatic changelog update

* added wide-spectrum anomaly locator to anomaly cyborg module (space-wizards#31427)

added wide-spectrum anomaly locator to anomaly borg module

* Automatic changelog update

* Add Robust.Xaml.csproj to the solution (space-wizards#31573)

* add construction for carp statue (space-wizards#31261)

* separate eyes and teeth

* make it buildable and make fixture less abusable

* norot

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Automatic changelog update

* fix spelling error silicon jobs (space-wizards#31581)

Update department.ftl

* Fixes shuttles not being able to FTL onto/near station (space-wizards#31569)

fixes FTL

* Automatic changelog update

* Fix defibs draining battery when turned off (space-wizards#31593)

* Bagel - LV cable wasn't connected (space-wizards#31591)

fixes a missing wire

* Marathon - Names a singular camera (space-wizards#31590)

Fixes unnamed camera

* Automatic changelog update

* Reach - Scientist added to map's prototype (space-wizards#31567)

Added scientist to map prototype

* Change my copyright (space-wizards#31599)

* Remove random cyrillic letters (space-wizards#31600)

* escape pod tiny fan (space-wizards#31601)

* escape pod tiny fan

* oop

* Fix nuke disk erroneously being marked 'left behind' (space-wizards#31602)

Fix erroneous 'disk left behind' objective

* Automatic changelog update

* bagel update (space-wizards#31603)

* bagel update

* light switch to make audience area darker in theatre

* Add rings (Salvage loot real)! (space-wizards#31372)

* First commit

* I'm silly

* Another fix

* How could I forget the descriptions!

* Forgot

* Made textures alligned properly

* Removed the stuff!

* Opps

* Typo fixes

* Automatic changelog update

* bagel update (space-wizards#31605)

* Sec Webbing Icon Resprite and Rename (space-wizards#29599)

* Sec Webbing Icon Resprite and Rename

* Renamed To Security Carrier

* Cherry (space-wizards#28962)

* Add files via upload

* Update produce.yml

* Update produce.yml

* Update seeds.yml

* Update flavor-profiles.ftl

* Update flavors.yml

* Update meal_recipes.yml

* Update food_produce.yml

* Update meta.json

* Update seeds.yml

* Update botany.yml

* Delete Resources/Textures/Objects/Specific/Hydroponics/cherry.rsi/meta.json

* Create meta.json

* Delete Resources/Textures/Objects/Specific/Hydroponics/cherry.rsi/meta.json

* Create meta.json

* Update produce.yml

* Update produce.yml

* Update produce.yml

* Update food_produce.yml

* Update food_produce.yml

* Update produce.yml

* Apply suggestions from code review

Co-authored-by: Tayrtahn <[email protected]>

* Update seeds.yml

* Update juice.yml

* Update juice.ftl

* Update seeds.ftl

* Update seeds.yml

* Update cargo_botany.yml

* Update cargo_botany.yml

* Update cargo_botany.yml

* Update cargo_vending.yml

* Update cargo_vending.yml

* Update seeds.yml

* Update seeds.yml

* Update meta.json

* Update produce.yml

* Cherry Tree

* Alphabetical order

* Update food_produce.yml

* Update food-sequence.ftl

* Update food-sequence.ftl

* Update produce.yml

* Update produce.yml

* Update food-sequence.ftl

---------

Co-authored-by: Tayrtahn <[email protected]>

* Automatic changelog update

* Add Command Glasses (space-wizards#30447)

* Initial commit

* Removed wanted and mindshield status display

* Updated glasses visuals & contraband status

* Added Command Hud

* Changed name to administration glasses/hud

* Automatic changelog update

* Added plastitanium walls and windows (space-wizards#31178)

* added plastitanium walls and windows

* Changed crack sprite on diagonal window from square to diagonal

* Automatic changelog update

* Make railings render over tables (space-wizards#31589)

Make rails render over tables

* Automatic changelog update

* Update submodule to 232.0.0 (space-wizards#31616)

* Automatic changelog update

* Fixup playerspawn stuff (space-wizards#31546)

* Fixup playerspawn stuff

- Also removed arrivals forcing, this should just turn containerspawnpoint off.

* fix this one

* test fix

* really fix

* strange pill tweaks (space-wizards#30524)

* fix randomfill logic

* Revert "fix randomfill logic"

This reverts commit 7cd73c0.

* change strange pill weights

* proposed balance changes

* Automatic changelog update

* Fix openable visuals (space-wizards#31484)

First commit

* reduce lathe recipe copy pasta (space-wizards#31515)

* add inheritance to lathe recipes and make result an override

* add GetResult method to lathe system

* make other parts of the code use GetResult

* clean up the stock parts yml

* remove unused apu boards from dynamic recipes

* make inverse dictionary public so test doesnt have to copy paste

* revert result override stuff

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* cog update (space-wizards#31631)

* cog update

* woopsie, fixed that

* fix cherries

* fix cherries 2 electric boogaloo

* fix maps

---------

Co-authored-by: osjarw <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <[email protected]>
Co-authored-by: Mervill <[email protected]>
Co-authored-by: PursuitInAshes <[email protected]>
Co-authored-by: eoineoineoin <[email protected]>
Co-authored-by: Eoin Mcloughlin <[email protected]>
Co-authored-by: Pieter-Jan Briers <[email protected]>
Co-authored-by: metalgearsloth <[email protected]>
Co-authored-by: themias <[email protected]>
Co-authored-by: IProduceWidgets <[email protected]>
Co-authored-by: Emisse <[email protected]>
Co-authored-by: PopGamer46 <[email protected]>
Co-authored-by: ArtisticRoomba <[email protected]>
Co-authored-by: Nemanja <[email protected]>
Co-authored-by: deltanedas <[email protected]>
Co-authored-by: Ed <[email protected]>
Co-authored-by: Alzore <[email protected]>
Co-authored-by: ShadowCommander <[email protected]>
Co-authored-by: Brandon Hu <[email protected]>
Co-authored-by: lzk <[email protected]>
Co-authored-by: Spessmann <[email protected]>
Co-authored-by: Moomoobeef <[email protected]>
Co-authored-by: Winkarst <[email protected]>
Co-authored-by: slarticodefast <[email protected]>
Co-authored-by: QueerNB <[email protected]>
Co-authored-by: 12rabbits <[email protected]>
Co-authored-by: Pieter-Jan Briers <[email protected]>
Co-authored-by: Dimastra <[email protected]>
Co-authored-by: Dimastra <[email protected]>
Co-authored-by: JIPDawg <[email protected]>
Co-authored-by: JIPDawg <[email protected]>
Co-authored-by: Saphire Lattice <[email protected]>
Co-authored-by: Thomas <[email protected]>
Co-authored-by: stellar-novas <[email protected]>
Co-authored-by: Simon <[email protected]>
Co-authored-by: saintmuntzer <[email protected]>
Co-authored-by: JustCone <[email protected]>
Co-authored-by: lunarcomets <[email protected]>
Co-authored-by: Errant <[email protected]>
Co-authored-by: coolboy911 <[email protected]>
Co-authored-by: beck-thompson <[email protected]>
Co-authored-by: DieselMohawk <[email protected]>
Co-authored-by: RumiTiger <[email protected]>
Co-authored-by: Tayrtahn <[email protected]>
Co-authored-by: SlamBamActionman <[email protected]>
Co-authored-by: Unisol <[email protected]>
Co-authored-by: Partmedia <[email protected]>
Co-authored-by: MisterMecky <[email protected]>
  • Loading branch information
Show file tree
Hide file tree
Showing 81 changed files with 1,019 additions and 546 deletions.
9 changes: 3 additions & 6 deletions Content.IntegrationTests/Tests/MaterialArbitrageTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public async Task NoMaterialArbitrage()
var pricing = entManager.System<PricingSystem>();
var stackSys = entManager.System<StackSystem>();
var mapSystem = server.System<SharedMapSystem>();
var latheSys = server.System<SharedLatheSystem>();
var compFact = server.ResolveDependency<IComponentFactory>();

Assert.That(mapSystem.IsInitialized(testMap.MapId));
Expand All @@ -53,12 +54,8 @@ public async Task NoMaterialArbitrage()
var materialName = compFact.GetComponentName(typeof(MaterialComponent));
var destructibleName = compFact.GetComponentName(typeof(DestructibleComponent));

// construct inverted lathe recipe dictionary
Dictionary<string, List<LatheRecipePrototype>> latheRecipes = new();
foreach (var proto in protoManager.EnumeratePrototypes<LatheRecipePrototype>())
{
latheRecipes.GetOrNew(proto.Result).Add(proto);
}
// get the inverted lathe recipe dictionary
var latheRecipes = latheSys.InverseRecipes;

// Lets assume the possible lathe for resource multipliers:
// TODO: each recipe can technically have its own cost multiplier associated with it, so this test needs redone to factor that in.
Expand Down
8 changes: 4 additions & 4 deletions Content.IntegrationTests/Tests/PostMapInitTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -254,14 +254,14 @@ await server.WaitPost(() =>
var jobs = new HashSet<ProtoId<JobPrototype>>(comp.SetupAvailableJobs.Keys);

var spawnPoints = entManager.EntityQuery<SpawnPointComponent>()
.Where(x => x.SpawnType == SpawnPointType.Job)
.Select(x => x.Job!.Value);
.Where(x => x.SpawnType == SpawnPointType.Job && x.Job != null)
.Select(x => x.Job.Value);

jobs.ExceptWith(spawnPoints);

spawnPoints = entManager.EntityQuery<ContainerSpawnPointComponent>()
.Where(x => x.SpawnType == SpawnPointType.Job)
.Select(x => x.Job!.Value);
.Where(x => x.SpawnType is SpawnPointType.Job or SpawnPointType.Unset && x.Job != null)
.Select(x => x.Job.Value);

jobs.ExceptWith(spawnPoints);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ private void OnPacketRecv(EntityUid uid, AtmosMonitorComponent component, Device
}

_deviceNetSystem.QueuePacket(uid, args.SenderAddress, payload);
Alert(uid, component.LastAlarmState);
break;
}
}
Expand Down
12 changes: 4 additions & 8 deletions Content.Server/Shuttles/Systems/ArrivalsSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
using Content.Server.Shuttles.Components;
using Content.Server.Shuttles.Events;
using Content.Server.Spawners.Components;
using Content.Server.Spawners.EntitySystems;
using Content.Server.Station.Components;
using Content.Server.Station.Events;
using Content.Server.Station.Systems;
Expand Down Expand Up @@ -69,11 +70,6 @@ public sealed class ArrivalsSystem : EntitySystem
/// </summary>
public bool Enabled { get; private set; }

/// <summary>
/// Flags if all players must arrive via the Arrivals system, or if they can spawn in other ways.
/// </summary>
public bool Forced { get; private set; }

/// <summary>
/// Flags if all players spawning at the departure terminal have godmode until they leave the terminal.
/// </summary>
Expand All @@ -95,6 +91,8 @@ public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<PlayerSpawningEvent>(HandlePlayerSpawning, before: new []{ typeof(ContainerSpawnPointSystem), typeof(SpawnPointSystem)});

SubscribeLocalEvent<StationArrivalsComponent, StationPostInitEvent>(OnStationPostInit);

SubscribeLocalEvent<ArrivalsShuttleComponent, ComponentStartup>(OnShuttleStartup);
Expand All @@ -112,11 +110,9 @@ public override void Initialize()

// Don't invoke immediately as it will get set in the natural course of things.
Enabled = _cfgManager.GetCVar(CCVars.ArrivalsShuttles);
Forced = _cfgManager.GetCVar(CCVars.ForceArrivals);
ArrivalsGodmode = _cfgManager.GetCVar(CCVars.GodmodeArrivals);

_cfgManager.OnValueChanged(CCVars.ArrivalsShuttles, SetArrivals);
_cfgManager.OnValueChanged(CCVars.ForceArrivals, b => Forced = b);
_cfgManager.OnValueChanged(CCVars.GodmodeArrivals, b => ArrivalsGodmode = b);

// Command so admins can set these for funsies
Expand Down Expand Up @@ -339,7 +335,7 @@ public void HandlePlayerSpawning(PlayerSpawningEvent ev)
return;

// Only works on latejoin even if enabled.
if (!Enabled || !Forced && _ticker.RunLevel != GameRunLevel.InRound)
if (!Enabled || _ticker.RunLevel != GameRunLevel.InRound)
return;

if (!HasComp<StationArrivalsComponent>(ev.Station))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ public sealed class ContainerSpawnPointSystem : EntitySystem
[Dependency] private readonly StationSystem _station = default!;
[Dependency] private readonly StationSpawningSystem _stationSpawning = default!;

public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<PlayerSpawningEvent>(HandlePlayerSpawning, before: new []{ typeof(SpawnPointSystem) });
}

public void HandlePlayerSpawning(PlayerSpawningEvent args)
{
if (args.SpawnResult != null)
Expand Down
42 changes: 0 additions & 42 deletions Content.Server/Station/Systems/StationSpawningSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,27 +56,11 @@ public sealed class StationSpawningSystem : SharedStationSpawningSystem

private bool _randomizeCharacters;

private Dictionary<SpawnPriorityPreference, Action<PlayerSpawningEvent>> _spawnerCallbacks = new();

/// <inheritdoc/>
public override void Initialize()
{
base.Initialize();
Subs.CVar(_configurationManager, CCVars.ICRandomCharacters, e => _randomizeCharacters = e, true);

_spawnerCallbacks = new Dictionary<SpawnPriorityPreference, Action<PlayerSpawningEvent>>()
{
{ SpawnPriorityPreference.Arrivals, _arrivalsSystem.HandlePlayerSpawning },
{
SpawnPriorityPreference.Cryosleep, ev =>
{
if (_arrivalsSystem.Forced)
_arrivalsSystem.HandlePlayerSpawning(ev);
else
_containerSpawnPointSystem.HandlePlayerSpawning(ev);
}
}
};
}

/// <summary>
Expand All @@ -98,33 +82,7 @@ public override void Initialize()

var ev = new PlayerSpawningEvent(job, profile, station);

if (station != null && profile != null)
{
// Try to call the character's preferred spawner first.
if (_spawnerCallbacks.TryGetValue(profile.SpawnPriority, out var preferredSpawner))
{
preferredSpawner(ev);

foreach (var (key, remainingSpawner) in _spawnerCallbacks)
{
if (key == profile.SpawnPriority)
continue;

remainingSpawner(ev);
}
}
else
{
// Call all of them in the typical order.
foreach (var typicalSpawner in _spawnerCallbacks.Values)
{
typicalSpawner(ev);
}
}
}

RaiseLocalEvent(ev);

DebugTools.Assert(ev.SpawnResult is { Valid: true } or null);

return ev.SpawnResult;
Expand Down
6 changes: 0 additions & 6 deletions Content.Shared/CCVar/CCVars.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1531,12 +1531,6 @@ public static readonly CVarDef<int>
public static readonly CVarDef<bool> ArrivalsReturns =
CVarDef.Create("shuttle.arrivals_returns", false, CVar.SERVERONLY);

/// <summary>
/// Should all players be forced to spawn at departures, even on roundstart, even if their loadout says they spawn in cryo?
/// </summary>
public static readonly CVarDef<bool> ForceArrivals =
CVarDef.Create("shuttle.force_arrivals", false, CVar.SERVERONLY);

/// <summary>
/// Should all players who spawn at arrivals have godmode until they leave the map?
/// </summary>
Expand Down
14 changes: 7 additions & 7 deletions Content.Shared/Lathe/SharedLatheSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public abstract class SharedLatheSystem : EntitySystem
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly SharedMaterialStorageSystem _materialStorage = default!;

private readonly Dictionary<string, List<LatheRecipePrototype>> _inverseRecipeDictionary = new();
public readonly Dictionary<string, List<LatheRecipePrototype>> InverseRecipes = new();

public override void Initialize()
{
Expand Down Expand Up @@ -83,20 +83,20 @@ private void OnPrototypesReloaded(PrototypesReloadedEventArgs obj)

private void BuildInverseRecipeDictionary()
{
_inverseRecipeDictionary.Clear();
InverseRecipes.Clear();
foreach (var latheRecipe in _proto.EnumeratePrototypes<LatheRecipePrototype>())
{
if (latheRecipe.Result == null)
if (latheRecipe.Result is not {} result)
continue;

_inverseRecipeDictionary.GetOrNew(latheRecipe.Result).Add(latheRecipe);
InverseRecipes.GetOrNew(result).Add(latheRecipe);
}
}

public bool TryGetRecipesFromEntity(string prototype, [NotNullWhen(true)] out List<LatheRecipePrototype>? recipes)
{
recipes = new();
if (_inverseRecipeDictionary.TryGetValue(prototype, out var r))
if (InverseRecipes.TryGetValue(prototype, out var r))
recipes.AddRange(r);
return recipes.Count != 0;
}
Expand All @@ -111,7 +111,7 @@ public string GetRecipeName(LatheRecipePrototype proto)
if (!string.IsNullOrWhiteSpace(proto.Name))
return Loc.GetString(proto.Name);

if (proto.Result is { } result)
if (proto.Result is {} result)
{
return _proto.Index(result).Name;
}
Expand All @@ -137,7 +137,7 @@ public string GetRecipeDescription(LatheRecipePrototype proto)
if (!string.IsNullOrWhiteSpace(proto.Description))
return Loc.GetString(proto.Description);

if (proto.Result is { } result)
if (proto.Result is {} result)
{
return _proto.Index(result).Description;
}
Expand Down
12 changes: 11 additions & 1 deletion Content.Shared/Research/Prototypes/LatheRecipePrototype.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,27 @@
using Content.Shared.Materials;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Array;
using Robust.Shared.Utility;

namespace Content.Shared.Research.Prototypes
{
[NetSerializable, Serializable, Prototype]
public sealed partial class LatheRecipePrototype : IPrototype
public sealed partial class LatheRecipePrototype : IPrototype, IInheritingPrototype
{
[ViewVariables]
[IdDataField]
public string ID { get; private set; } = default!;

/// <inheritdoc/>
[ParentDataField(typeof(AbstractPrototypeIdArraySerializer<LatheRecipePrototype>))]
public string[]? Parents { get; }

/// <inheritdoc />
[NeverPushInheritance]
[AbstractDataField]
public bool Abstract { get; }

/// <summary>
/// Name displayed in the lathe GUI.
/// </summary>
Expand Down
96 changes: 45 additions & 51 deletions Resources/Changelog/Changelog.yml
Original file line number Diff line number Diff line change
@@ -1,55 +1,4 @@
Entries:
- author: EmoGarbage404
changes:
- message: Attempting to uncuff oneself while being pulled will now take twice as
long.
type: Tweak
- message: Reduced cooldown after attempting to uncuff oneself back to previous
values.
type: Tweak
id: 6742
time: '2024-06-15T04:01:22.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/29008
- author: EmoGarbage404
changes:
- message: Fixed bottles, when used inhand, not being drank from but instead repeatedly
opening and closing.
type: Fix
id: 6743
time: '2024-06-15T05:20:43.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/29010
- author: Flareguy
changes:
- message: Replaced RelayStation with a more fair ruin.
type: Remove
id: 6744
time: '2024-06-15T06:02:56.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/28971
- author: metalgearsloth
changes:
- message: Fix the character profile sometimes thinking there's changes to save
even if the loadouts haven't changed.
type: Fix
id: 6745
time: '2024-06-15T06:52:49.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/28737
- author: EmoGarbage404
changes:
- message: Fixed borgs and other non-humans getting deleted by salvage magnet wrecks
disappearing.
type: Fix
id: 6746
time: '2024-06-15T13:19:23.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/29006
- author: ShadowCommander
changes:
- message: Added a red light to firelocks when their warning lights are active.
type: Add
- message: Firelocks no longer require power to show warning lights.
type: Tweak
id: 6747
time: '2024-06-15T15:17:16.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/29024
- author: Ian321
changes:
- message: Donk co. microwaves now have their own machine board.
Expand Down Expand Up @@ -3849,3 +3798,48 @@
id: 7241
time: '2024-08-28T20:48:46.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/31372
- author: RumiTiger
changes:
- message: Cherry has been added to the game!
type: Add
- message: The recipe for cherry pie has been reintroduced to the game!
type: Add
id: 7242
time: '2024-08-29T01:30:59.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/28962
- author: SlamBamActionman, Graded
changes:
- message: Added administration glasses to Captain and HoP lockers!
type: Add
id: 7243
time: '2024-08-29T01:58:16.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/30447
- author: osjarw
changes:
- message: Fix air alarms not checking sensor states upon power returning.
type: Fix
id: 7244
time: '2024-08-29T02:43:27.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/29857
- author: Winkarst-cpu
changes:
- message: Now railings render over tables.
type: Tweak
id: 7245
time: '2024-08-29T03:04:43.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/31589
- author: metalgearsloth
changes:
- message: Fix storage UI being buggy.
type: Fix
id: 7246
time: '2024-08-29T03:23:37.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/31616
- author: MisterMecky
changes:
- message: Changed strange pill possible reagents. They are no longer mostly composed
of amatoxin and space mirage.
type: Tweak
id: 7247
time: '2024-08-29T13:21:06.0000000+00:00'
url: https://github.com/space-wizards/space-station-14/pull/30524
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
flavor-base-futuristic = futuristic
flavor-complex-cherry = like cherry
flavor-base-offensive = offensive

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
reagent-name-juice-cherry = cherry juice
reagent-desc-juice-cherry = The best red flavor.
2 changes: 0 additions & 2 deletions Resources/Locale/en-US/Goobstation/seeds/seeds.ftl

This file was deleted.

1 change: 1 addition & 0 deletions Resources/Locale/en-US/flavors/flavor-profiles.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ flavor-complex-meatballs = like meatballs
flavor-complex-nettles = like nettles
flavor-complex-jungle = like jungle
flavor-complex-vegetables = like vegetables
flavor-complex-cherry = like cherries
# use it when there multiple types of veggies

## Complex foodstuffs (cooked foods, joke flavors, etc)
Expand Down
Loading

0 comments on commit 30f4413

Please sign in to comment.