Skip to content
This repository has been archived by the owner on Nov 1, 2024. It is now read-only.

Up020724 #364

Closed
wants to merge 1,038 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1038 commits
Select commit Hold shift + click to select a range
f121946
Fix RotateWhilePulling not working (#29032)
ElectroJr Jun 16, 2024
22efc2b
Automatic changelog update
PJBot Jun 16, 2024
1cb9f5d
add carp hardsuit for traitors (#25155)
deltanedas Jun 16, 2024
c9540db
Automatic changelog update
PJBot Jun 16, 2024
14cd55e
Remove ServerAlertsComponentTests (#29027)
ElectroJr Jun 16, 2024
6829630
Update submodule to 226.0.0 (#29100)
metalgearsloth Jun 16, 2024
fdb487c
Update origin (#28342)
lzk228 Jun 16, 2024
771c34c
Update omega (#28343)
lzk228 Jun 16, 2024
99358e8
Update marathon (#28344)
lzk228 Jun 16, 2024
93ea4c0
Update packed (#28346)
lzk228 Jun 16, 2024
92e6e10
Update train (#28345)
lzk228 Jun 16, 2024
ce56410
Update fland (#28347)
lzk228 Jun 16, 2024
31d155d
Update box (#28348)
lzk228 Jun 16, 2024
5e50bd8
Missing meteor presets (#29044)
EmoGarbage404 Jun 16, 2024
ee2769e
atlas update (#28514)
deltanedas Jun 16, 2024
89a9f07
Add a system for modifying entity names without causing conflicts (#2…
Tayrtahn Jun 16, 2024
1482345
Delete RandomSentience event (#28982)
Futuristic-OK Jun 16, 2024
8a199a8
Automatic changelog update
PJBot Jun 16, 2024
813b84d
Merge branch 'master' of https://github.com/space-wizards/space-stati…
Jun 17, 2024
388d372
Fix incorrect use of atmos dt (#29112)
Partmedia Jun 17, 2024
72665eb
Automatic changelog update
PJBot Jun 17, 2024
f7aca6b
nuke actions from map files (#28589)
deltanedas Jun 17, 2024
390f8d1
Makes Eyepatches Flippable (#26277)
Cojoke-dot Jun 17, 2024
7ff557d
Automatic changelog update
PJBot Jun 17, 2024
c332677
remove robotics console emag checking, make it a bit fairer (#27876)
deltanedas Jun 17, 2024
ffcaf61
Automatic changelog update
PJBot Jun 17, 2024
4aa74c5
improve meteor spawning (#29057)
EmoGarbage404 Jun 17, 2024
b02e838
Automatic changelog update
PJBot Jun 17, 2024
5038012
Add new lizard horns, Demonic (#29022)
UbaserB Jun 17, 2024
efbcce2
Automatic changelog update
PJBot Jun 17, 2024
e5a85e2
Make wearing an Ushanka also apply accent to your name (#29111)
Tayrtahn Jun 17, 2024
9b5219a
Fix double label on chem jugs (#29137)
Tayrtahn Jun 17, 2024
e04492e
Automatic changelog update
PJBot Jun 17, 2024
0cf56b9
Fix DresserFilled storagefill rarely causing an error (#29135)
Tayrtahn Jun 17, 2024
82c4db6
Fix female reptilians not having gasp sounds (#29143)
Dutch-VanDerLinde Jun 18, 2024
a1e66cf
clean up weather systems (#28792)
TheShuEd Jun 18, 2024
e5ef2a3
Implement vital chef's hat functionality (#25950)
Tayrtahn Jun 18, 2024
af7e599
Automatic changelog update
PJBot Jun 18, 2024
bd0631c
Add cvar to disable round end pvs overrides (#29151)
DrSmugleaf Jun 18, 2024
47653f3
Update submodule to 226.1.0 (#29159)
metalgearsloth Jun 18, 2024
d7d13b7
Merge commit '47653f359d729a7e2cb37031504b96c97c730bc5' of https://gi…
whatston3 Jun 18, 2024
3da9cb4
Whitelist, MachinePart compilation fixes
whatston3 Jun 18, 2024
7393ac5
Fix merge conflicts in PlayTimeTrackingSystem
whatston3 Jun 18, 2024
3ab815d
Fixing compilation errors
whatston3 Jun 18, 2024
31fb9a9
More compilation fixes: mostly Shared.GameTicking
whatston3 Jun 18, 2024
2ede552
Compilation fixes
whatston3 Jun 19, 2024
0fad14c
More compilation fixes, commented out tests
whatston3 Jun 19, 2024
23521c9
Redundant fluent entries
whatston3 Jun 19, 2024
8f48875
Fluent: cleanup dupe entries
whatston3 Jun 21, 2024
b6f5c4c
Convert messagePacks to localizedDatasets
whatston3 Jun 21, 2024
1a244c4
Undupe disabilities, pens, supply bot
whatston3 Jun 21, 2024
07f7884
Undupe SpaceNinjaGear
whatston3 Jun 21, 2024
fe5a1ba
Undupe supplybot construction
whatston3 Jun 21, 2024
b2c7c3e
Undupe FrontelLisp
whatston3 Jun 21, 2024
aa1164a
Missing backpack/duffelbag entries
whatston3 Jun 21, 2024
228480f
machine parts, filled backpacks
whatston3 Jun 21, 2024
6bea6b2
machine parts, salvage techfab
whatston3 Jun 21, 2024
321716a
NF Devices/production.yml - stackRequirements
whatston3 Jun 21, 2024
f23890e
Trait
dvir001 Jun 21, 2024
9509453
Merge branch 'master' of https://github.com/dvir001/frontier-station-…
dvir001 Jun 21, 2024
45d84ab
Update pen.yml
dvir001 Jun 21, 2024
9a22e4e
Merge branch 'master' into june24-upstream-merge
dvir001 Jun 21, 2024
da8c045
Update speech.yml
dvir001 Jun 21, 2024
eab3775
FIxup
dvir001 Jun 21, 2024
cc6399f
Unmangle vox metadata
whatston3 Jun 21, 2024
35a3289
RPED under _NF folder, PartExchanger stuff
whatston3 Jun 21, 2024
98da099
Restore upgradeable parts, v1 - broken
whatston3 Jun 21, 2024
c746851
Fix lathe
dvir001 Jun 21, 2024
efabfa8
Fix Hardsuits/security.rsi
whatston3 Jun 21, 2024
ab0d52f
security.rsi: restore on-equipped-HELMET
whatston3 Jun 21, 2024
039cc10
Hidden loadout groups (#29170)
Errant-4 Jun 19, 2024
cd08dd2
Bags
dvir001 Jun 21, 2024
1a34203
Cleanup
dvir001 Jun 21, 2024
cdced97
Update Upstream.yml
dvir001 Jun 21, 2024
e3c3080
Update dungeon_items_general.yml
dvir001 Jun 21, 2024
cec37e0
FireaxeCabinetCommand: add openable
whatston3 Jun 22, 2024
3d438b1
YAMLLinter fixes (backpack fills, machine parts)
whatston3 Jun 22, 2024
cb0241e
fireaxe_cabinet: yaml linter fixes
whatston3 Jun 22, 2024
b11a08b
pen: remove stampedBorderless, stampedPersonal
whatston3 Jun 22, 2024
730ebf0
fix syndicate, mob_hostile_base, production.yml
whatston3 Jun 22, 2024
b0cabf4
syndicate.yml: parent - Uplink to LightUplink
whatston3 Jun 22, 2024
a115135
Fix stack itemSize
whatston3 Jun 22, 2024
e9a730a
Remove overflowJobs from stations & shuttles
whatston3 Jun 22, 2024
70240b0
NFSD, Pirate, Syndie light uplink store defns
whatston3 Jun 22, 2024
671aa4a
trade station overflowJobs, pirate/sec uplinks
whatston3 Jun 22, 2024
b8dfa56
fix pirate uplink id
whatston3 Jun 22, 2024
01ec90f
bluespace event delays, uplink storeName->name
whatston3 Jun 22, 2024
9d06464
event startDelay, tranq lathe recipe, floor stacks
whatston3 Jun 22, 2024
575bc37
tall/short localized names, missing nyano janitor
whatston3 Jun 22, 2024
c592115
NFSD, SR bag inheritance
whatston3 Jun 22, 2024
b32351b
bags: parents to parent
whatston3 Jun 22, 2024
1d4b3e0
bag fixes (NOTE: nyano/ERT fills were removed)
whatston3 Jun 22, 2024
147a9e6
Cleanp Lathes, again
dvir001 Jun 22, 2024
61eef49
Merge branch 'june24-upstream-merge' of https://github.com/whatston3/…
dvir001 Jun 22, 2024
8240906
Backpack
dvir001 Jun 22, 2024
e2253aa
CableHV not real
dvir001 Jun 22, 2024
d21c3ae
MachinePartPrototype->_NF, machinepart spawning
whatston3 Jun 22, 2024
66e2001
Emotes
dvir001 Jun 22, 2024
39e4dd7
Fix Basic Mobs
dvir001 Jun 22, 2024
eef489f
Unmask the Syndicate
dvir001 Jun 22, 2024
bf27020
Update emergencyresponseteam.yml
dvir001 Jun 22, 2024
f624ea8
First attempt, remove MsgWhitelist
whatston3 Jun 22, 2024
1fbdafa
Xeno
dvir001 Jun 22, 2024
75b9cbd
Update equipped-FEET.png
dvir001 Jun 22, 2024
24f2650
Spawner Fixup
dvir001 Jun 22, 2024
ac88b99
Update wrecks.yml
dvir001 Jun 22, 2024
6cc956b
IdCardConsoleWindow: Passenger->Contractor
whatston3 Jun 22, 2024
a920b77
Revert "Apc & Substation resprite (#28998)"
whatston3 Jun 22, 2024
a2c45da
HumanoidProfileEditor: do not import bank balance
whatston3 Jun 23, 2024
e9dc19a
ghost role & job whitelists: rough version (pain)
whatston3 Jun 23, 2024
5ed388e
FIXME: HumanoidCharacterProfile.WithBankBalance
whatston3 Jun 23, 2024
db778e8
GhostRolePrototype for whitelisted role lookup
whatston3 Jun 24, 2024
5162d07
Ghost role whitelist consistency
whatston3 Jun 24, 2024
aefed7e
Default char to 25k spesos, SharedGameTicker job
whatston3 Jun 24, 2024
1b6c174
Set Charlie Charlieson's bank balance
whatston3 Jun 24, 2024
8a2417d
Fix revolver whitelist check
whatston3 Jun 24, 2024
e496851
ConstructionSystem: machine upgrades to _NF
whatston3 Jun 24, 2024
aa1e84a
better stack upgrades pt1, better donk co oven
whatston3 Jun 24, 2024
58cc66b
MachinePartComponent syntax error
whatston3 Jun 25, 2024
dc2fe7d
breaking rpeds to get compilation working
whatston3 Jun 25, 2024
c962876
MachinePartPrototype: add stack type
whatston3 Jun 25, 2024
2dbbbbe
Returning to "requirements" for upgradeable comps
whatston3 Jun 25, 2024
b7f1ae1
yaml fixup, machine frame progress
whatston3 Jun 25, 2024
4b4ecf5
Remove stack from machinePart prototypes
whatston3 Jun 25, 2024
2057367
rped fix v2
whatston3 Jun 25, 2024
dcf1573
rped fix 2.1 - comments, fix syntax, progress
whatston3 Jun 25, 2024
576579b
Add PowerCell tiers to power cells
whatston3 Jun 25, 2024
847969f
don't split stacks when they need exactly as much
whatston3 Jun 25, 2024
1779659
Hide unused departments
whatston3 Jun 25, 2024
6763332
MicrowaveSystem: respect init cook time reduction
whatston3 Jun 26, 2024
ce49049
upg machine parts to _NF, different stack types
whatston3 Jun 26, 2024
4641271
add base component ratings, upg components to _NF
whatston3 Jun 26, 2024
9bc2186
ghost role ban & whitelist checks
whatston3 Jun 26, 2024
094fa36
revert ghost role ban, UI checks whitelist status
whatston3 Jun 26, 2024
b8e7ab2
Merge branch 'master' of https://github.com/new-frontiers-14/frontier…
whatston3 Jun 27, 2024
2f33541
undupe loadout spawn, add job-specific gear
whatston3 Jun 27, 2024
c97cd5b
Global whitelist commands & checks
whatston3 Jun 27, 2024
6ffafae
WhitelistCommands: remove await
whatston3 Jun 27, 2024
3f79594
NFSD department playtime printouts
whatston3 Jun 27, 2024
a054b9d
Missing localized loadout species descriptor
whatston3 Jun 27, 2024
48bd4b1
Fix Kilderkin guidebook entry
whatston3 Jun 27, 2024
9b9350a
Frontier guidebook rules
whatston3 Jun 27, 2024
f090de9
Frontier Guidebook rules: headers
whatston3 Jun 27, 2024
59f1598
Frontier Guidebook rules rework
whatston3 Jun 27, 2024
d9a0fe7
Add individual rule pages as children, rewrites
whatston3 Jun 27, 2024
598a70e
guide text localizations (unused?)
whatston3 Jun 27, 2024
65bbb60
HumanoidProfileEditor: "spawn-as-overflow" text
whatston3 Jun 27, 2024
d1b9ddf
Reordering & naming Frontier guidebook entries
whatston3 Jun 27, 2024
4235dd1
MachineUpgrading parse fix, remove antags, cargo
whatston3 Jun 27, 2024
ac4cbdc
Remove references to cargo, antags, glossary pages
whatston3 Jun 27, 2024
46eb0ea
Guidebook rewrites
whatston3 Jun 27, 2024
6820d53
Reorder NF guidebook sections
whatston3 Jun 27, 2024
b2d69c9
Remove placing items on tabletop boards. (#29513)
PJB3005 Jun 27, 2024
ec050a7
Remove antag guidebook refs
whatston3 Jun 27, 2024
4196b94
Remove placing items on tabletop boards. (#29513) (#1570)
whatston3 Jun 27, 2024
b611714
Remove more guidebook entries
whatston3 Jun 27, 2024
ae88b15
Merge branch 'master' of https://github.com/new-frontiers-14/frontier…
whatston3 Jun 27, 2024
71407b5
Remove books & cargo guidebook entry refs
whatston3 Jun 27, 2024
1c05085
Added uplinks to pirate spawn loadout (#1572)
Salvantrix Jun 27, 2024
d38f65b
Automatic Changelog (#1572)
FrontierATC Jun 27, 2024
8f15809
Merge branch 'master' of https://github.com/new-frontiers-14/frontier…
whatston3 Jun 27, 2024
4734494
Pirates: uplink to pocket 1, captain back storage
whatston3 Jun 27, 2024
7658ef0
Remove commented out client prefs UI files
whatston3 Jun 27, 2024
41627a6
Speech: Streetpunk, Scottish accents costs to 1
whatston3 Jun 28, 2024
aada9d0
events.yml: restore FalseAlarm for consistency
whatston3 Jun 28, 2024
619dd3c
Restore LoneNukeOps, uncomment FalseAlarm event
whatston3 Jun 28, 2024
99feade
Update GasMixerComponent.cs
dvir001 Jun 28, 2024
dd0b1ba
Filters
dvir001 Jun 28, 2024
9b8af83
NFSD
dvir001 Jun 28, 2024
e8c4543
Update security_uplink_catalog.yml
dvir001 Jun 28, 2024
dc1370d
Mail: Cleanup, Fixes, More SR Mail (#1535)
whatston3 Jun 28, 2024
c96ef24
Automatic Changelog (#1535)
FrontierATC Jun 28, 2024
994e872
Update VendingMachineSystem.cs
dvir001 Jun 28, 2024
2e5c16a
Shipyard
dvir001 Jun 28, 2024
714d258
Shipyard
dvir001 Jun 28, 2024
c175ff4
Update ShipyardSystem.Consoles.cs
dvir001 Jun 28, 2024
4adb892
POI + Frontier
dvir001 Jun 28, 2024
bf634d8
Buffs data carrier duration (#1566)
Myzumi Jun 28, 2024
f32701d
Automatic Changelog (#1566)
FrontierATC Jun 28, 2024
9a3f241
NFSD
dvir001 Jun 28, 2024
d5e182a
MagnetPickupSystem timing (#1575)
whatston3 Jun 29, 2024
83f8a33
THE SR BERET (#1573)
VividPups Jun 29, 2024
43c79d9
Automatic Changelog (#1573)
FrontierATC Jun 29, 2024
f7f6a80
ATM, shipyard console insert/remove events, string
whatston3 Jun 29, 2024
d34b9c4
Merge branch 'master' of https://github.com/new-frontiers-14/frontier…
whatston3 Jun 29, 2024
581dd7a
Pilot belt as a belt, not outerclothing
whatston3 Jun 29, 2024
9d52b93
Update mob_hostile_expeditions_dinosaurs.yml
dvir001 Jun 29, 2024
2b5d5b8
Update mercenary.yml
dvir001 Jun 29, 2024
fe98fa5
Update access_configurator.yml
dvir001 Jun 29, 2024
bc82102
Shredder
dvir001 Jun 29, 2024
b741789
Update SharedPuddleSystem.Evaporation.cs
dvir001 Jun 29, 2024
ff4a106
Fix/remove FRONTIER MERGE comments
whatston3 Jun 29, 2024
b9319e1
Resolving FRONTIER MERGE pt 2
whatston3 Jun 29, 2024
f9998aa
GeneralRecordsUI: accept jobList, comment it
whatston3 Jun 29, 2024
83c7b8b
MachineFrameSystem: dict type fix
whatston3 Jun 29, 2024
62683ec
MachineFrameComponent: Progress, Requirements type
whatston3 Jun 29, 2024
250a800
departments.yml: show antag, remove enabled
whatston3 Jun 29, 2024
fb6d6bd
Pain
dvir001 Jun 29, 2024
61359ad
Merge branch 'june24-upstream-merge' of https://github.com/whatston3/…
dvir001 Jun 29, 2024
150379b
Events + Trash
dvir001 Jun 29, 2024
7afed9f
Update trash.yml
dvir001 Jun 29, 2024
e3b086c
Maps
dvir001 Jun 29, 2024
852569b
Update events.yml
dvir001 Jun 29, 2024
52cf8b8
Laser Pistol (#1527)
ErhardSteinhauer Jun 30, 2024
fb73c9b
Automatic Changelog (#1527)
FrontierATC Jun 30, 2024
10983f0
Unhardcode a bunch of shipyard console stuff (#1581)
arimah Jun 30, 2024
e70d673
Automatic Changelog (#1581)
FrontierATC Jun 30, 2024
7d66f95
Merge branch 'master' of https://github.com/new-frontiers-14/frontier…
whatston3 Jun 30, 2024
4f42327
Remove food vendors from ships & POIs.
whatston3 Jun 30, 2024
55979f4
Remove extraneous using declaration
arimah Jun 30, 2024
077dd46
Frontier birthday gift & holiday
whatston3 Jun 30, 2024
76b6f7b
Fix Frontier's birthday start day
whatston3 Jun 30, 2024
a52f539
Frontier birthday: July 1-3, "recently", not today
whatston3 Jun 30, 2024
5be37d1
initial commit (#1584)
ErhardSteinhauer Jul 1, 2024
2fca06e
Automatic Changelog (#1584)
FrontierATC Jul 1, 2024
d36b828
Update tools.yml
dvir001 Jul 1, 2024
e540a41
Frontier birthday ends July 3, birthday paper name
whatston3 Jul 1, 2024
36e4aa7
Update chefvend.yml
dvir001 Jul 1, 2024
6e5c678
Merge branch 'june24-upstream-merge' of https://github.com/whatston3/…
dvir001 Jul 1, 2024
c59ac05
AGPL v3 (#1585)
Cheackraze Jul 1, 2024
e6299dd
Update base.yml
dvir001 Jul 1, 2024
8723807
No longer needed
dvir001 Jul 1, 2024
39f3c09
Update computers_shipyard_mothership.yml
dvir001 Jul 1, 2024
aab2f2f
Revert "Refinement process follow-up (#1144)" (#1586)
dvir001 Jul 1, 2024
42846fe
Automatic Changelog (#1586)
FrontierATC Jul 1, 2024
3fe5e9d
Update tools.yml
dvir001 Jul 1, 2024
5fd88fb
Update pets.yml
dvir001 Jul 1, 2024
50975f9
Update hud.yml
dvir001 Jul 1, 2024
c5afb3b
Nfsd
dvir001 Jul 1, 2024
b096c2b
WorldGen
dvir001 Jul 1, 2024
30e4371
Update mailDeliveries.yml
dvir001 Jul 1, 2024
9dbd742
Update speech.yml
dvir001 Jul 1, 2024
20b0d92
Update speech.yml
dvir001 Jul 1, 2024
2ce4ff0
Fixes the Admeme Teleporter Despawns (#1576)
Myzumi Jul 1, 2024
136c29f
Automatic Changelog (#1576)
FrontierATC Jul 1, 2024
3ffcfd1
RSI fixes
whatston3 Jul 1, 2024
84a0708
Salvage
dvir001 Jul 1, 2024
a13c589
Merge branch 'june24-upstream-merge' of https://github.com/whatston3/…
dvir001 Jul 1, 2024
6b180e0
fix rogue
Cheackraze Jul 1, 2024
93857af
Merge branch 'june24-upstream-merge' of https://github.com/whatston3/…
Cheackraze Jul 1, 2024
9070817
Update dungeon_items_kitchen.yml
dvir001 Jul 1, 2024
676598e
Merge branch 'june24-upstream-merge' of https://github.com/whatston3/…
dvir001 Jul 1, 2024
2c6fa14
Salvage & wrecks cleanup
whatston3 Jul 1, 2024
5b82072
Update salvage.yml
dvir001 Jul 1, 2024
9501714
Merge branch 'june24-upstream-merge' of https://github.com/whatston3/…
dvir001 Jul 1, 2024
20ce75f
Update salvage.yml
dvir001 Jul 1, 2024
2ffd279
Merge pull request #1536 from whatston3/june24-upstream-merge
whatston3 Jul 1, 2024
54c68c0
мерж апстрим(ошибки)
Sh1ntra Jul 2, 2024
ca65ef3
раздавите меня камазом
Sh1ntra Jul 3, 2024
fd83fb0
раздавите меня камазом
Sh1ntra Jul 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
19 changes: 13 additions & 6 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
root = true

[*]

charset = utf-8
Expand All @@ -12,6 +13,7 @@ tab_width = 4
#end_of_line = crlf
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 120

#### .NET Coding Conventions ####

Expand Down Expand Up @@ -277,7 +279,7 @@ dotnet_naming_style.t_upper_camel_case_style.capitalization = pascal_case
dotnet_naming_style.t_upper_camel_case_style.required_prefix = T
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case

dotnet_naming_symbols.constants_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
dotnet_naming_symbols.constants_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.constants_symbols.applicable_kinds = field
dotnet_naming_symbols.constants_symbols.required_modifiers = const

Expand Down Expand Up @@ -316,27 +318,32 @@ dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static

dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static,readonly
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static, readonly

dotnet_naming_symbols.property_symbols.applicable_accessibilities = *
dotnet_naming_symbols.property_symbols.applicable_kinds = property

dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.public_fields_symbols.applicable_kinds = field

dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.static_readonly_symbols.applicable_kinds = field
dotnet_naming_symbols.static_readonly_symbols.required_modifiers = static,readonly
dotnet_naming_symbols.static_readonly_symbols.required_modifiers = static, readonly

dotnet_naming_symbols.types_and_namespaces_symbols.applicable_accessibilities = *
dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds = namespace,class,struct,enum,delegate
dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds = namespace, class, struct, enum, delegate

dotnet_naming_symbols.type_parameters_symbols.applicable_accessibilities = *
dotnet_naming_symbols.type_parameters_symbols.applicable_kinds = type_parameter

# ReSharper properties
resharper_braces_for_ifelse = required_for_multiline
resharper_csharp_wrap_arguments_style = chop_if_long
resharper_csharp_wrap_parameters_style = chop_if_long
resharper_keep_existing_attribute_arrangement = true
resharper_wrap_chained_binary_patterns = chop_if_long
resharper_wrap_chained_method_calls = chop_if_long
resharper_csharp_trailing_comma_in_multiline_lists = true

[*.{csproj,xml,yml,yaml,dll.config,msbuildproj,targets,props}]
indent_size = 2
Expand Down
6 changes: 4 additions & 2 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#/Content.*/GameTicking/ @moonheart08 @EmoGarbage404
#/Resources/ServerInfo/ @moonheart08 @Chief-Engineer
#/Resources/ServerInfo/Guidebook/ @moonheart08 @EmoGarbage404
#/Resources/ServerInfo/Guidebook/ServerRules/ @Chief-Engineer
#/Resources/engineCommandPerms.yml @moonheart08 @Chief-Engineer
#/Resources/clientCommandPerms.yml @moonheart08 @Chief-Engineer

Expand All @@ -23,19 +24,20 @@
#/Resources/Prototypes/Body/ @DrSmugleaf # suffering
#/Resources/Prototypes/Entities/Mobs/Player/ @DrSmugleaf
#/Resources/Prototypes/Entities/Mobs/Species/ @DrSmugleaf
#/Resources/Prototypes/Guidebook/rules.yml @Chief-Engineer
#/Content.*/Body/ @DrSmugleaf
#/Content.YAMLLinter @DrSmugleaf
#/Content.Shared/Damage/ @DrSmugleaf

#/Content.*/Anomaly/ @EmoGarbage404
#/Content.*/Anomaly/ @EmoGarbage404 @TheShuEd
#/Content.*/Lathe/ @EmoGarbage404
#/Content.*/Materials/ @EmoGarbage404
#/Content.*/Mech/ @EmoGarbage404
#/Content.*/Research/ @EmoGarbage404
#/Content.*/Stack/ @EmoGarbage404
#/Content.*/Xenoarchaeology/ @EmoGarbage404
#/Content.*/Zombies/ @EmoGarbage404
#/Resources/Prototypes/Entities/Structures/Specific/anomalies.yml @EmoGarbage404
#/Resources/Prototypes/Entities/Structures/Specific/anomalies.yml @EmoGarbage404 @TheShuEd
#/Resources/Prototypes/Research/ @EmoGarbage404

#/Content.*/Forensics/ @ficcialfaint
Expand Down
273 changes: 273 additions & 0 deletions Content.Benchmarks/ComponentQueryBenchmark.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,273 @@
#nullable enable
using System;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Configs;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Shared.Clothing.Components;
using Content.Shared.Doors.Components;
using Content.Shared.Item;
using Robust.Server.GameObjects;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Random;

namespace Content.Benchmarks;

/// <summary>
/// Benchmarks for comparing the speed of various component fetching/lookup related methods, including directed event
/// subscriptions
/// </summary>
[Virtual]
[GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)]
[CategoriesColumn]
public class ComponentQueryBenchmark
{
public const string Map = "Maps/atlas.yml";

private TestPair _pair = default!;
private IEntityManager _entMan = default!;
private MapId _mapId = new(10);
private EntityQuery<ItemComponent> _itemQuery;
private EntityQuery<ClothingComponent> _clothingQuery;
private EntityQuery<MapComponent> _mapQuery;
private EntityUid[] _items = default!;

[GlobalSetup]
public void Setup()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup(typeof(QueryBenchSystem).Assembly);

_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
_entMan = _pair.Server.ResolveDependency<IEntityManager>();

_itemQuery = _entMan.GetEntityQuery<ItemComponent>();
_clothingQuery = _entMan.GetEntityQuery<ClothingComponent>();
_mapQuery = _entMan.GetEntityQuery<MapComponent>();

_pair.Server.ResolveDependency<IRobustRandom>().SetSeed(42);
_pair.Server.WaitPost(() =>
{
var success = _entMan.System<MapLoaderSystem>().TryLoad(_mapId, Map, out _);
if (!success)
throw new Exception("Map load failed");
_pair.Server.MapMan.DoMapInitialize(_mapId);
}).GetAwaiter().GetResult();

_items = new EntityUid[_entMan.Count<ItemComponent>()];
var i = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent>();
while (enumerator.MoveNext(out var uid, out _))
{
_items[i++] = uid;
}
}

[GlobalCleanup]
public async Task Cleanup()
{
await _pair.DisposeAsync();
PoolManager.Shutdown();
}

#region TryComp

/// <summary>
/// Baseline TryComp benchmark. When the benchmark was created, around 40% of the items were clothing.
/// </summary>
[Benchmark(Baseline = true)]
[BenchmarkCategory("TryComp")]
public int TryComp()
{
var hashCode = 0;
foreach (var uid in _items)
{
if (_clothingQuery.TryGetComponent(uid, out var clothing))
hashCode = HashCode.Combine(hashCode, clothing.GetHashCode());
}
return hashCode;
}

/// <summary>
/// Variant of <see cref="TryComp"/> that is meant to always fail to get a component.
/// </summary>
[Benchmark]
[BenchmarkCategory("TryComp")]
public int TryCompFail()
{
var hashCode = 0;
foreach (var uid in _items)
{
if (_mapQuery.TryGetComponent(uid, out var map))
hashCode = HashCode.Combine(hashCode, map.GetHashCode());
}
return hashCode;
}

/// <summary>
/// Variant of <see cref="TryComp"/> that is meant to always succeed getting a component.
/// </summary>
[Benchmark]
[BenchmarkCategory("TryComp")]
public int TryCompSucceed()
{
var hashCode = 0;
foreach (var uid in _items)
{
if (_itemQuery.TryGetComponent(uid, out var item))
hashCode = HashCode.Combine(hashCode, item.GetHashCode());
}
return hashCode;
}

/// <summary>
/// Variant of <see cref="TryComp"/> that uses `Resolve()` to try get the component.
/// </summary>
[Benchmark]
[BenchmarkCategory("TryComp")]
public int Resolve()
{
var hashCode = 0;
foreach (var uid in _items)
{
DoResolve(uid, ref hashCode);
}
return hashCode;
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void DoResolve(EntityUid uid, ref int hash, ClothingComponent? clothing = null)
{
if (_clothingQuery.Resolve(uid, ref clothing, false))
hash = HashCode.Combine(hash, clothing.GetHashCode());
}

#endregion

#region Enumeration

[Benchmark]
[BenchmarkCategory("Item Enumerator")]
public int SingleItemEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent>();
while (enumerator.MoveNext(out var item))
{
hashCode = HashCode.Combine(hashCode, item.GetHashCode());
}

return hashCode;
}

[Benchmark]
[BenchmarkCategory("Item Enumerator")]
public int DoubleItemEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ClothingComponent, ItemComponent>();
while (enumerator.MoveNext(out _, out var item))
{
hashCode = HashCode.Combine(hashCode, item.GetHashCode());
}

return hashCode;
}

[Benchmark]
[BenchmarkCategory("Item Enumerator")]
public int TripleItemEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ClothingComponent, ItemComponent, TransformComponent>();
while (enumerator.MoveNext(out _, out _, out var xform))
{
hashCode = HashCode.Combine(hashCode, xform.GetHashCode());
}

return hashCode;
}

[Benchmark]
[BenchmarkCategory("Airlock Enumerator")]
public int SingleAirlockEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<AirlockComponent>();
while (enumerator.MoveNext(out var airlock))
{
hashCode = HashCode.Combine(hashCode, airlock.GetHashCode());
}

return hashCode;
}

[Benchmark]
[BenchmarkCategory("Airlock Enumerator")]
public int DoubleAirlockEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<AirlockComponent, DoorComponent>();
while (enumerator.MoveNext(out _, out var door))
{
hashCode = HashCode.Combine(hashCode, door.GetHashCode());
}

return hashCode;
}

[Benchmark]
[BenchmarkCategory("Airlock Enumerator")]
public int TripleAirlockEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<AirlockComponent, DoorComponent, TransformComponent>();
while (enumerator.MoveNext(out _, out _, out var xform))
{
hashCode = HashCode.Combine(hashCode, xform.GetHashCode());
}

return hashCode;
}

#endregion

[Benchmark(Baseline = true)]
[BenchmarkCategory("Events")]
public int StructEvents()
{
var ev = new QueryBenchEvent();
foreach (var uid in _items)
{
_entMan.EventBus.RaiseLocalEvent(uid, ref ev);
}

return ev.HashCode;
}
}

[ByRefEvent]
public struct QueryBenchEvent
{
public int HashCode;
}

public sealed class QueryBenchSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ClothingComponent, QueryBenchEvent>(OnEvent);
}

private void OnEvent(EntityUid uid, ClothingComponent component, ref QueryBenchEvent args)
{
args.HashCode = HashCode.Combine(args.HashCode, component.GetHashCode());
}
}
1 change: 1 addition & 0 deletions Content.Benchmarks/EntityManagerGetAllComponents.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public void Setup()

var componentFactory = new Mock<IComponentFactory>();
componentFactory.Setup(p => p.GetComponent<DummyComponent>()).Returns(new DummyComponent());
componentFactory.Setup(m => m.GetIndex(typeof(DummyComponent))).Returns(CompIdx.Index<DummyComponent>());
componentFactory.Setup(p => p.GetRegistration(It.IsAny<DummyComponent>())).Returns(dummyReg);
componentFactory.Setup(p => p.GetAllRegistrations()).Returns(new[] { dummyReg });
componentFactory.Setup(p => p.GetAllRefTypes()).Returns(new[] { CompIdx.Index<DummyComponent>() });
Expand Down
Loading
Loading