Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
232 commits
Select commit Hold shift + click to select a range
445d1b6
Fix RCDDeconstructableComponent filename (#42180)
CrazyPhantom779 Jan 1, 2026
4920c9e
Update (MOST) instances of `EntityUid, Component` in GunSystem to `En…
mqole Jan 1, 2026
74d482c
Revert "Exo - Exomas Version (revertable)" (#42203)
Emisse Jan 1, 2026
6de41e8
Revert "Christmas-ifed Packed Station!" (#42202)
Emisse Jan 1, 2026
4f1a111
Update RT to 270.1.0 (#42198)
PJB3005 Jan 1, 2026
e1b790e
Make xenoborg thrusters anti-easy-sabotagge (#42201)
Samuka-C Jan 1, 2026
e5d8800
Automatic changelog update
PJBot Jan 1, 2026
4b9ef47
Snowball fixes (#42124)
Spessmann Jan 2, 2026
732db19
Automatic changelog update
PJBot Jan 2, 2026
c796eb3
Guard against div/0 for HeatContainerHelpers (#42213)
ArtisticRoomba Jan 2, 2026
9754944
expanded FillLevelSpriteTest test and fixed found issues (#34165)
Ian321 Jan 3, 2026
856ad11
Automatic changelog update
PJBot Jan 3, 2026
d366c67
Fix style classes used on monotone labels (#41969)
eoineoineoin Jan 3, 2026
bdb7102
Intercom resprite (#41962)
K-Dynamic Jan 3, 2026
bdbc148
Automatic changelog update
PJBot Jan 3, 2026
fc99582
Ironsands Structures (#39793)
Aearo-Deepwater Jan 3, 2026
269bd56
Automatic changelog update
PJBot Jan 3, 2026
da4a488
Melee weapons animations upgrade (#41425)
TheShuEd Jan 3, 2026
4d19496
Automatic changelog update
PJBot Jan 3, 2026
d7219bd
Update Credits (#42228)
github-actions[bot] Jan 4, 2026
fe6a2f0
Stable to master (#42238)
VasilisThePikachu Jan 4, 2026
fa7c2be
Dragon rift no longer deletes all rifts when destroyed (#42234)
TheFlyingSentry Jan 5, 2026
d3d3500
Automatic changelog update
PJBot Jan 5, 2026
62c1302
fixed typo/duplicate adjective (#42249)
AreYouConfused Jan 5, 2026
e572d75
STABLE -> MASTER (#42251)
slarticodefast Jan 5, 2026
71c3fa8
Predict thieving beacon (#39610)
slarticodefast Jan 5, 2026
122feda
Msg Toolshed Command (#41936)
ScarKy0 Jan 5, 2026
d3137c2
Automatic changelog update
PJBot Jan 5, 2026
54d7f2b
Cleanup Toolshed Locale (#42259)
ScarKy0 Jan 5, 2026
4b7aaa3
jugs closeable, move chemistry entities into chemistry directory (#29…
IProduceWidgets Jan 5, 2026
19b1f47
Automatic changelog update
PJBot Jan 5, 2026
2a71253
Move some miscellaneous random spawners to entity tables (#42245)
SnappingOpossum Jan 6, 2026
ae414ac
Fix da rulez (#42264)
PicklOH Jan 6, 2026
a287d5c
Automatic changelog update
PJBot Jan 6, 2026
cdd990b
Adds sky blue curtains/tables to their respective spawners (#42266)
IamVelcroboy Jan 6, 2026
e2baaa1
Revert Closable Jugs (#42267)
Princess-Cheeseballs Jan 6, 2026
f92ed84
[FEATURE] More icons (#42200)
ThatGuyUSA Jan 6, 2026
c81e671
Automatic changelog update
PJBot Jan 6, 2026
2176f00
Replace recently added StorageFill with EntityTableContainerFill (#42…
SnappingOpossum Jan 6, 2026
279dabd
Merge stable into master (#42274)
Princess-Cheeseballs Jan 6, 2026
de67294
Guarantee glue and lube in toybox (#42146)
0-Anon Jan 7, 2026
4ed0d37
Automatic changelog update
PJBot Jan 7, 2026
590dc94
Chameleon Projector Battery, Price Decrease (#42271)
ScarKy0 Jan 7, 2026
e3419b1
Automatic changelog update
PJBot Jan 7, 2026
20d1b2c
Fix attributions for /Resources/Audio/Misc/ (#42230)
VerinSenpai Jan 7, 2026
a8469ca
Predict Rotting Examine (#42254)
ScarKy0 Jan 7, 2026
d65aa07
Grappling gun rope visual change (#42207)
iaada Jan 7, 2026
41f91a9
Xenoborg camera monitor now shows xenoborgs names (#42205)
Samuka-C Jan 7, 2026
66c1a98
Automatic changelog update
PJBot Jan 7, 2026
03b7788
Vox now say they become fried chicken upon taking enough heat dmg (#4…
SomegnihT Jan 7, 2026
8be191a
Automatic changelog update
PJBot Jan 7, 2026
8b9801a
Reorganize and clean Fun yml (#42184)
iaada Jan 7, 2026
95bdc66
Automatic changelog update
PJBot Jan 7, 2026
b267bad
Ninja bomb planting tweak (#41208)
kontakt Jan 7, 2026
3633cdb
Automatic changelog update
PJBot Jan 7, 2026
a9b953c
Add origin member to class (#41250)
kontakt Jan 7, 2026
74ead53
Remove yaml'd non-existent components + test for that (#38878)
perryprog Jan 7, 2026
da7bbe5
Warden Suit Tail Fix (#42276)
TiniestShark Jan 8, 2026
142ce2a
Fix Capitalization on HoP's Fountain Pen (#42300)
JackspajfMain Jan 8, 2026
350c67c
Fix Internals Sounds not working. (#42304)
Princess-Cheeseballs Jan 8, 2026
7aba244
Automatic changelog update
PJBot Jan 8, 2026
e27ae3d
Goliath Hardsuit Fixes (#42303)
Princess-Cheeseballs Jan 8, 2026
80d38c5
fix electrify sound effects being reversed (#42294)
lunarcomets Jan 8, 2026
28e830f
Fix forced vaping checking if the user's mouth is blocked instead of …
Tayrtahn Jan 8, 2026
019268b
Remove battery from the handheld health analyzer (#42292)
iaada Jan 8, 2026
e4ac948
fix: respect AllowedSlots for gogo hat (#39189)
perryprog Jan 8, 2026
a42eb56
Automatic changelog update
PJBot Jan 8, 2026
5d5c61f
Bring back shrug sanitization in a different form (#41236)
LevitatingTree Jan 8, 2026
acc95fa
Automatic changelog update
PJBot Jan 8, 2026
f8ff3a9
Fix broken state when attempting to escape a locker while cuffed (#42…
Tayrtahn Jan 8, 2026
d0e9816
Fland: Fix atmos right side apc (#42314)
F1restar4 Jan 8, 2026
b406193
Automatic changelog update
PJBot Jan 9, 2026
8ec4669
Allow items spawned in the smart fridge to show up as an entry. (#42268)
Princess-Cheeseballs Jan 9, 2026
386aca7
Add craft for bonfire and bonfire with stake (#42211)
B-Kirill Jan 9, 2026
22682fc
Automatic changelog update
PJBot Jan 9, 2026
ec02400
Increase shuttle FTL cooldown to prevent FTL spamming (#42209)
mikeysaurus Jan 9, 2026
16c9cfe
Automatic changelog update
PJBot Jan 9, 2026
51e7a39
Predict DrainSystem (#41711)
Pok27 Jan 9, 2026
78343b2
feat: allow removing empty smart fridge entries (#39195)
perryprog Jan 9, 2026
7586c80
Automatic changelog update
PJBot Jan 9, 2026
85b3dcc
Stake Admin Alert (#42324)
ScarKy0 Jan 9, 2026
96d2339
Fix projectile deceleration (#42320)
B-Kirill Jan 9, 2026
72b0223
Automatic changelog update
PJBot Jan 9, 2026
d7fcb03
BUGFIX: Cabbage placed on taco shells no longer turns into a carrot (…
Hitlinemoss Jan 9, 2026
9256f3f
Automatic changelog update
PJBot Jan 9, 2026
a7fc17d
Add the Syndicate Delivery Console + Corpsman Medicine Bundle (#41201)
SlamBamActionman Jan 10, 2026
32dafcf
Foldable wig on clowns mask (#42208)
SolidSyn Jan 10, 2026
4ebdbff
Automatic changelog update
PJBot Jan 10, 2026
319617f
Use NextByte to properly construct colours (#42335)
BarryNorfolk Jan 10, 2026
c3d7652
Automatic changelog update
PJBot Jan 10, 2026
5d93719
Predict Mind State Examine (#42253)
ScarKy0 Jan 10, 2026
46e8614
Automatic changelog update
PJBot Jan 10, 2026
f0ae589
Update Credits (#42352)
github-actions[bot] Jan 11, 2026
c0fbaf1
Fix warning spam from ShortKeyName (#42351)
PJB3005 Jan 11, 2026
5025e0d
Janiborg Module Cleanup (#42330)
ScarKy0 Jan 11, 2026
3a0049e
Automatic changelog update
PJBot Jan 11, 2026
b707110
fix: clear health bar/icon overlay damage containers on update (#39288)
perryprog Jan 11, 2026
716e5ac
Fix action tooltip warnings (#42361)
slarticodefast Jan 11, 2026
9338834
Add admin logs for connecting/disconnecting players (#42363)
SlamBamActionman Jan 11, 2026
a92702e
Automatic changelog update
PJBot Jan 11, 2026
4fafb55
Predict BarSignBoundUserinterface (#42364)
slarticodefast Jan 11, 2026
435b7d5
Add the ability for station maps to track grids they are not on (#41248)
SlamBamActionman Jan 12, 2026
98647f1
Admin: fixes description for "help osay" (#42368)
Velken Jan 12, 2026
7104014
Automatic changelog update
PJBot Jan 12, 2026
94071a6
Fix GenpopLockerBoundUserInterface prediction (#42365)
slarticodefast Jan 12, 2026
06a9625
Fix holywater locale string usage. (#42378)
VerinSenpai Jan 12, 2026
c9ec5e8
Medical Cyborg Modules Rework. (#42123)
Princess-Cheeseballs Jan 12, 2026
11f3087
Automatic changelog update
PJBot Jan 12, 2026
360bfd6
Spray bottles with visible reagent contents (#42155)
chaisftw Jan 12, 2026
45b3609
Automatic changelog update
PJBot Jan 12, 2026
7f4bc8f
Reworks destruction Space Law to include Silicons (#42317)
PicklOH Jan 12, 2026
d06b18a
Allow late join from arrivals to be considered for antagonist. (#39837)
Quantum-cross Jan 12, 2026
84a2103
Automatic changelog update
PJBot Jan 12, 2026
de10a3a
Allow the admin door remote to toggle overcharge (#42370)
Kowlin Jan 13, 2026
de9d833
Automatic changelog update
PJBot Jan 13, 2026
4cd5d11
Balance swing at Vestine (#42302)
Princess-Cheeseballs Jan 13, 2026
f3c40aa
Automatic changelog update
PJBot Jan 13, 2026
6cbd19a
Lower hyperzine injector cost (#42383)
ScarKy0 Jan 13, 2026
f24e1db
Automatic changelog update
PJBot Jan 13, 2026
29c68e4
Add the Syndicate Delivery Console to the Nukie planet + target stati…
SlamBamActionman Jan 13, 2026
ea131f7
Automatic changelog update
PJBot Jan 13, 2026
4d16565
Lower smuggler's satchel price to 1TC (#42381)
ScarKy0 Jan 13, 2026
69330e5
Automatic changelog update
PJBot Jan 13, 2026
04bda3a
Role time tracking support for admins (#31776)
Errant-4 Jan 13, 2026
738f55c
Adds EMP Resistance component, gives it to ninja suit and headset (#4…
alexalexmax Jan 13, 2026
53607b8
Automatic changelog update
PJBot Jan 13, 2026
418b2b7
Allow station tiles to be placed on solid ground and other platings. …
Velken Jan 13, 2026
69d2ddd
Automatic changelog update
PJBot Jan 13, 2026
f0f0871
WYA to Where you at (#42350)
notquitehadouken Jan 13, 2026
4ae961b
A handful of typo fixes (#42396)
Eternally-Confused Jan 13, 2026
f8a6a79
Buff throwing knives kit (#42391)
ScarKy0 Jan 13, 2026
d723054
Automatic changelog update
PJBot Jan 13, 2026
a18fc33
Fix scram allowing you to bring someone along (#42393)
ScarKy0 Jan 13, 2026
4d1843f
Automatic changelog update
PJBot Jan 13, 2026
c860502
Viper High Capacity Ammo (#42392)
ScarKy0 Jan 13, 2026
3cec0aa
Automatic changelog update
PJBot Jan 13, 2026
7540c8f
Pry open critical Borgs (#42319)
SirWarock Jan 13, 2026
0b27da5
Automatic changelog update
PJBot Jan 13, 2026
c7e4f20
Fix tritium fires breaking conservation of mass (#41870)
SapphicOverload Jan 13, 2026
ac1870a
Automatic changelog update
PJBot Jan 13, 2026
60e172e
AirtightSystem Tests (#42190)
ArtisticRoomba Jan 13, 2026
b5f0dd8
Increase trit-to-frezon ratio from 1:8 to 1:50 (#42400)
ArtisticRoomba Jan 13, 2026
1fdc70a
Automatic changelog update
PJBot Jan 13, 2026
2399b61
EmpResistance cleanup (#42402)
ScarKy0 Jan 14, 2026
6cae5d9
Fix TritiumFireReaction low fuel limiting behavior (#42407)
ArtisticRoomba Jan 14, 2026
0af56ce
Automatic changelog update
PJBot Jan 14, 2026
fb13349
Decouple gibbing from the body system (#42405)
sowelipililimute Jan 14, 2026
9979a08
Maid uniform sprite change. (#38335)
skrybl Jan 14, 2026
7ebca1d
Automatic changelog update
PJBot Jan 14, 2026
d326420
[Wiki] loc fix (#3483)
Pok27 Jan 14, 2026
91dd9f7
Add a target station map to the LoneOp shuttle (#42376)
SlamBamActionman Jan 14, 2026
95496c8
Automatic changelog update
PJBot Jan 14, 2026
b5fb3d4
Replace the Reach DoorRemoteAll with DoorRemoteCustom (#42385)
Kowlin Jan 14, 2026
b220631
Automatic changelog update
PJBot Jan 14, 2026
e5ce73a
Xenoborgs now drop pieces of pinpointer (#42295)
Samuka-C Jan 14, 2026
6bc617c
Automatic changelog update
PJBot Jan 14, 2026
acdeac6
Make lathes refund materials when recipe gets cancelled (#42416)
korczoczek Jan 14, 2026
dc47295
Automatic changelog update
PJBot Jan 14, 2026
d857acf
Fixed Containment Generators not updating pointlight correctly (#42289)
TheFlyingSentry Jan 14, 2026
48cbd02
Automatic changelog update
PJBot Jan 14, 2026
14b867d
allow shuttle to Scan for Objects while FTL is on cooldown (#42283)
cmorley191 Jan 14, 2026
f702dc8
Atmos GasSpecificHeats in shared (#42136)
ArtisticRoomba Jan 14, 2026
1f80b6a
Fix TryAllReactionsTest reacting early and not checking priority (#42…
DrSmugleaf Jan 14, 2026
d637786
Reduce unnecessary `ComponentInit` work for airtight entities (#42390)
TriviaSolari Jan 15, 2026
e196d37
Automatic changelog update
PJBot Jan 15, 2026
4219bca
Put arrows on all the single-directional pipes (#42408)
notquitehadouken Jan 15, 2026
5d92953
Move artifact random spawners to entity table spawners. (#42422)
SnappingOpossum Jan 15, 2026
7532171
Increase TEG power generation by 75% (#42421)
ArtisticRoomba Jan 15, 2026
1799798
Automatic changelog update
PJBot Jan 15, 2026
eff710e
[Wiki] loc fix 2 (#3484)
Pok27 Jan 15, 2026
07076a5
Cleanup warnings: CS0414 (#42429)
B-Kirill Jan 15, 2026
aa8a61b
Make cancer mice actually hurt (#42298)
kontakt Jan 15, 2026
4920404
Automatic changelog update
PJBot Jan 15, 2026
bd096a0
Make heavy xenoborg able to "swim" in space (#42415)
Samuka-C Jan 15, 2026
241b093
Automatic changelog update
PJBot Jan 15, 2026
499e9f9
Predict TransferAmountBoundUserInterface (#42358)
slarticodefast Jan 15, 2026
5cda60f
Predict defibrillators and add an integration test for them (#41572)
slarticodefast Jan 15, 2026
4f997f2
Cryo pod UI (#41850)
Fruitsalad Jan 15, 2026
766f429
Make chemicals not react inside pills (and stomachs) (#41457)
rumaks-xyz Jan 15, 2026
b723d7e
Automatic changelog update
PJBot Jan 15, 2026
28a4a54
Add integration test for drains (#41190)
slarticodefast Jan 15, 2026
619672a
Improved Health Examination Coloring (#38231)
Orsoniks Jan 15, 2026
610881d
Automatic changelog update
PJBot Jan 15, 2026
fdeb5a7
Rebase vials to DrinkBase, closeable vials, mini vials (#36132)
iaada Jan 15, 2026
ab2a4eb
Automatic changelog update
PJBot Jan 15, 2026
84ca0eb
Add attribution to Tippy.rsi (#42346)
VerinSenpai Jan 15, 2026
c7e8bbb
Add Paper Centrifuge (#42040)
ScarKy0 Jan 15, 2026
cd6c521
Automatic changelog update
PJBot Jan 15, 2026
7d58e42
Fix RCD light spam, bypass of indestructible tiles and some plating f…
Velken Jan 15, 2026
8fb3e13
Automatic changelog update
PJBot Jan 15, 2026
b149643
Camera map (#39684)
B-Kirill Jan 15, 2026
6df3ed9
Automatic changelog update
PJBot Jan 15, 2026
897a2d4
Add Mortar and Handheld Juicer (#42019)
ScarKy0 Jan 16, 2026
57ac7bb
Automatic changelog update
PJBot Jan 16, 2026
d2ac15c
Fix flatpacker exploit ignoring board costs (#42445)
EmoGarbage404 Jan 16, 2026
57e9a64
Automatic changelog update
PJBot Jan 16, 2026
0d75154
Fix core pinpointer pieces having a 5-pointer recipe (#42446)
sowelipililimute Jan 16, 2026
ab9cf3b
Automatic changelog update
PJBot Jan 16, 2026
f501ebe
merge remote master wizden
DIMMoon1 Jan 16, 2026
09db1f5
upstreamfix
DIMMoon1 Jan 16, 2026
9d3f221
Remove changelog for https://github.com/space-wizards/space-station-1…
VasilisThePikachu Jan 17, 2026
1a5d13f
[Hotfix] Delivery console unanchorable (#42499)
ScarKy0 Jan 18, 2026
e247ea5
Revert "Fix RCD light spam, bypass of indestructible tiles and some p…
VasilisThePikachu Jan 18, 2026
ca07d6b
Revert "Allow station tiles to be placed on solid ground and other pl…
VasilisThePikachu Jan 18, 2026
7b73811
Revert final changelogs for reverted prs
VasilisThePikachu Jan 18, 2026
a9e4370
Stable merge (#42505)
VasilisThePikachu Jan 18, 2026
bd135d7
merge remote wizden/stable
DIMMoon1 Jan 18, 2026
e88b41e
ok
DIMMoon1 Jan 18, 2026
b462533
[Wiki] Подгрузка ВСЕГО на вики (#3487)
Pok27 Jan 19, 2026
7ee4e66
Merge pull request #3488 from DIMMoon1/upstream01.2
DIMMoon1 Jan 20, 2026
1c771c6
tweak NukeOpstTest.cs (#3486)
JrInventor05Next Jan 20, 2026
c1282f2
paper interface translate (#3312)
lzk228 Jan 20, 2026
cf6469f
lobby art update(#3485)
kosticia Jan 20, 2026
ee8c0be
Мапперские штуки дрюки (#3438)
Golubgik Jan 20, 2026
18d2dda
Минор апдейт (#3489)
DIMMoon1 Jan 20, 2026
80acc36
[Wiki] workflows (#3490)
Pok27 Jan 21, 2026
35aebb7
Nodecision fix (#3496)
Svist666s Feb 5, 2026
333bc80
paper fix (#3492)
Svist666s Feb 5, 2026
d2ee564
Перенос СРП в Guidebook (#3499)
Pok27 Feb 6, 2026
66d4528
Фикс СРП (#3501)
Pok27 Feb 7, 2026
4979485
Fix Content.Packaging doesn't include secrets into a final server pac…
JerryImMouse Feb 7, 2026
5aa7e2b
update sprite vox&vulp(#3504)
RedTerrorDark Feb 13, 2026
ebb8dbb
Изменение лимита символов консоли связи (#3507)
Svist666s Feb 16, 2026
9bcccb1
Обновления КЗ в Guidebook (#3505)
Pok27 Feb 16, 2026
ff308ef
Перенос СРП в Guidebook часть 2 (#3508)
Pok27 Feb 16, 2026
a6ac812
[Wiki] Workflows bot (#3509)
Pok27 Feb 16, 2026
cdcdae8
Merge remote-tracking branch 'corvax/master'
tau27 Feb 18, 2026
7617ff3
Workable merge
tau27 Feb 25, 2026
0a71479
Jug fix with you
tau27 Feb 25, 2026
6739e17
Pda fix
tau27 Feb 25, 2026
5547113
ID cards fix
tau27 Feb 25, 2026
7bb1549
pda fix 2
tau27 Feb 25, 2026
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
  •  
  •  
  •  
111 changes: 54 additions & 57 deletions .github/workflows/update-wiki.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,11 @@ on:
branches: [ master, jsondump ]
paths:
- '.github/workflows/update-wiki.yml'
- 'Content.Shared/Chemistry/**.cs'
- 'Content.Server/Chemistry/**.cs'
- 'Content.Server/GuideGenerator/**.cs'
- 'Content.Server/Corvax/GuideGenerator/**.cs'
- 'Resources/Prototypes/Reagents/**.yml'
- 'Resources/Prototypes/Chemistry/**.yml'
- 'Resources/Prototypes/Recipes/Reactions/**.yml'
- 'Content.Shared/**'
- 'Content.Server/**'
- 'Content.Client/**'
- 'Resources/**'
- 'RobustToolbox/'
- 'Resources/Locale/**.ftl'

jobs:
update-wiki:
Expand Down Expand Up @@ -52,52 +48,53 @@ jobs:
run: dotnet ./bin/Content.Server/Content.Server.dll --cvar autogen.destination_file=prototypes.json
continue-on-error: true

- name: Upload chem_prototypes.json to wiki
uses: jtmullen/mediawiki-edit-action@v0.1.1
with:
wiki_text_file: ./bin/Content.Server/data/chem_prototypes.json
edit_summary: Update chem_prototypes.json via GitHub Actions
page_name: "${{ secrets.WIKI_PAGE_ROOT }}/chem_prototypes.json"
api_url: ${{ secrets.WIKI_ROOT_URL }}/api.php
username: ${{ secrets.WIKI_BOT_USER }}
password: ${{ secrets.WIKI_BOT_PASS }}

- name: Upload react_prototypes.json to wiki
uses: jtmullen/mediawiki-edit-action@v0.1.1
with:
wiki_text_file: ./bin/Content.Server/data/react_prototypes.json
edit_summary: Update react_prototypes.json via GitHub Actions
page_name: "${{ secrets.WIKI_PAGE_ROOT }}/react_prototypes.json"
api_url: ${{ secrets.WIKI_ROOT_URL }}/api.php
username: ${{ secrets.WIKI_BOT_USER }}
password: ${{ secrets.WIKI_BOT_PASS }}

- name: Upload entity_prototypes.json to wiki
uses: jtmullen/mediawiki-edit-action@v0.1.1
with:
wiki_text_file: ./bin/Content.Server/data/entity_prototypes.json
edit_summary: Update entity_prototypes.json via GitHub Actions
page_name: "${{ secrets.WIKI_PAGE_ROOT }}/entity_prototypes.json"
api_url: ${{ secrets.WIKI_ROOT_URL }}/api.php
username: ${{ secrets.WIKI_BOT_USER }}
password: ${{ secrets.WIKI_BOT_PASS }}

- name: Upload mealrecipes_prototypes.json to wiki
uses: jtmullen/mediawiki-edit-action@v0.1.1
with:
wiki_text_file: ./bin/Content.Server/data/mealrecipes_prototypes.json
edit_summary: Update mealrecipes_prototypes.json via GitHub Actions
page_name: "${{ secrets.WIKI_PAGE_ROOT }}/mealrecipes_prototypes.json"
api_url: ${{ secrets.WIKI_ROOT_URL }}/api.php
username: ${{ secrets.WIKI_BOT_USER }}
password: ${{ secrets.WIKI_BOT_PASS }}

- name: Upload loc.json to wiki
uses: jtmullen/mediawiki-edit-action@v0.1.1
with:
wiki_text_file: ./bin/Content.Server/data/loc.json
edit_summary: Update loc.json via GitHub Actions
page_name: "${{ secrets.WIKI_PAGE_ROOT }}/loc.json"
api_url: ${{ secrets.WIKI_ROOT_URL }}/api.php
username: ${{ secrets.WIKI_BOT_USER }}
password: ${{ secrets.WIKI_BOT_PASS }}
# Проходит по всем JSON-файлам в директории BASE и загружает каждый файл как страницу в MediaWiki.
# Имя страницы формируется из относительного пути к файлу.
- name: Upload JSON files to wiki
shell: bash
run: |
set -euo pipefail

BASE="./bin/Content.Server/data"
ROOT="${{ secrets.WIKI_PAGE_ROOT }}"
API="${{ secrets.WIKI_ROOT_URL }}/api.php"
USER="${{ secrets.WIKI_BOT_USER }}"
PASS="${{ secrets.WIKI_BOT_PASS }}"

API="$(printf "%s" "$API" | tr -d '\r\n' | sed 's/[[:space:]]*$//')"
USER="$(printf "%s" "$USER" | tr -d '\r\n')"
PASS="$(printf "%s" "$PASS" | tr -d '\r\n')"
ROOT="$(printf "%s" "$ROOT" | tr -d '\r\n' | sed 's/[[:space:]]*$//')"

cookiejar="$(mktemp)"
trap 'rm -f "$cookiejar"' EXIT

login_token=$(curl -sS -c "$cookiejar" --data "action=query&meta=tokens&type=login&format=json" "$API" | jq -r '.query.tokens.logintoken')
curl -sS -c "$cookiejar" -b "$cookiejar" \
--data-urlencode "action=login" \
--data-urlencode "lgname=$USER" \
--data-urlencode "lgpassword=$PASS" \
--data-urlencode "lgtoken=$login_token" \
--data-urlencode "format=json" \
"$API" > /dev/null

find "$BASE" -type f -name '*.json' | while IFS= read -r file; do
rel="${file#$BASE/}"
rel="$(printf "%s" "$rel" | tr -d '\r\n' | sed 's/:/_/g')"
page="$ROOT/$rel"
echo "Uploading $rel → $page"

token=$(curl -sS -b "$cookiejar" --data "action=query&meta=tokens&format=json" "$API" | jq -r '.query.tokens.csrftoken')

curl -sS -b "$cookiejar" \
--data-urlencode "action=edit" \
--data-urlencode "title=$page" \
--data-urlencode "summary=Update $rel via GitHub Actions" \
--data-urlencode "text@${file}" \
--data-urlencode "token=$token" \
--data-urlencode "bot=true" \
--data-urlencode "minor=true" \
--data-urlencode "assert=bot" \
--data-urlencode "format=json" \
"$API" | jq -r '.'
done
83 changes: 83 additions & 0 deletions Content.Benchmarks/HeatCapacityBenchmark.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
using System.Threading.Tasks;
using BenchmarkDotNet.Attributes;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Server.Atmos.EntitySystems;
using Content.Shared.Atmos;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.GameObjects;

namespace Content.Benchmarks;

[Virtual]
[GcServer(true)]
[MemoryDiagnoser]
public class HeatCapacityBenchmark
{
private TestPair _pair = default!;
private IEntityManager _sEntMan = default!;
private IEntityManager _cEntMan = default!;
private Client.Atmos.EntitySystems.AtmosphereSystem _cAtmos = default!;
private AtmosphereSystem _sAtmos = default!;
private GasMixture _mix;

[GlobalSetup]
public async Task SetupAsync()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup();
_pair = await PoolManager.GetServerClient();
await _pair.Connect();
_cEntMan = _pair.Client.ResolveDependency<IEntityManager>();
_sEntMan = _pair.Server.ResolveDependency<IEntityManager>();
_cAtmos = _cEntMan.System<Client.Atmos.EntitySystems.AtmosphereSystem>();
_sAtmos = _sEntMan.System<AtmosphereSystem>();

const float volume = 2500f;
const float temperature = 293.15f;

const float o2 = 12.3f;
const float n2 = 45.6f;
const float co2 = 0.42f;
const float plasma = 0.05f;

_mix = new GasMixture(volume) { Temperature = temperature };

_mix.AdjustMoles(Gas.Oxygen, o2);
_mix.AdjustMoles(Gas.Nitrogen, n2);
_mix.AdjustMoles(Gas.CarbonDioxide, co2);
_mix.AdjustMoles(Gas.Plasma, plasma);
}

[Benchmark]
public async Task ClientHeatCapacityBenchmark()
{
await _pair.Client.WaitPost(delegate
{
for (var i = 0; i < 10000; i++)
{
_cAtmos.GetHeatCapacity(_mix, applyScaling: true);
}
});
}

[Benchmark]
public async Task ServerHeatCapacityBenchmark()
{
await _pair.Server.WaitPost(delegate
{
for (var i = 0; i < 10000; i++)
{
_sAtmos.GetHeatCapacity(_mix, applyScaling: true);
}
});
}

[GlobalCleanup]
public async Task CleanupAsync()
{
await _pair.DisposeAsync();
PoolManager.Shutdown();
}
}
35 changes: 35 additions & 0 deletions Content.Client/Atmos/EntitySystems/AtmosphereSystem.Gases.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using System.Runtime.CompilerServices;
using Content.Shared.Atmos;

namespace Content.Client.Atmos.EntitySystems;

public sealed partial class AtmosphereSystem
{
/*
Partial class for operations involving GasMixtures.

Any method that is overridden here is usually because the server-sided implementation contains
code that would escape sandbox. As such these methods are overridden here with a safe
implementation.
*/

[MethodImpl(MethodImplOptions.AggressiveInlining)]
protected override float GetHeatCapacityCalculation(float[] moles, bool space)
{
// Little hack to make space gas mixtures have heat capacity, therefore allowing them to cool down rooms.
if (space && MathHelper.CloseTo(NumericsHelpers.HorizontalAdd(moles), 0f))
{
return Atmospherics.SpaceHeatCapacity;
}

// explicit stackalloc call is banned on client tragically.
// the JIT does not stackalloc this during runtime,
// though this isnt the hottest code path so it should be fine
// the gc can eat a little as a treat
var tmp = new float[moles.Length];
NumericsHelpers.Multiply(moles, GasSpecificHeats, tmp);
// Adjust heat capacity by speedup, because this is primarily what
// determines how quickly gases heat up/cool.
return MathF.Max(NumericsHelpers.HorizontalAdd(tmp), Atmospherics.MinimumHeatCapacity);
}
}
2 changes: 1 addition & 1 deletion Content.Client/Atmos/EntitySystems/AtmosphereSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace Content.Client.Atmos.EntitySystems;

public sealed class AtmosphereSystem : SharedAtmosphereSystem
public sealed partial class AtmosphereSystem : SharedAtmosphereSystem
{
public override void Initialize()
{
Expand Down
53 changes: 0 additions & 53 deletions Content.Client/BarSign/BarSignSystem.cs

This file was deleted.

30 changes: 30 additions & 0 deletions Content.Client/BarSign/BarSignVisualizerSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using Content.Shared.BarSign;
using Content.Shared.Power;
using Robust.Client.GameObjects;
using Robust.Shared.Prototypes;

namespace Content.Client.BarSign;

public sealed class BarSignVisualizerSystem : VisualizerSystem<BarSignComponent>
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;

protected override void OnAppearanceChange(EntityUid uid, BarSignComponent component, ref AppearanceChangeEvent args)
{
AppearanceSystem.TryGetData<bool>(uid, PowerDeviceVisuals.Powered, out var powered, args.Component);
AppearanceSystem.TryGetData<string>(uid, BarSignVisuals.BarSignPrototype, out var currentSign, args.Component);

if (powered
&& currentSign != null
&& _prototypeManager.Resolve<BarSignPrototype>(currentSign, out var proto))
{
SpriteSystem.LayerSetSprite((uid, args.Sprite), 0, proto.Icon);
args.Sprite?.LayerSetShader(0, "unshaded");
}
else
{
SpriteSystem.LayerSetRsiState((uid, args.Sprite), 0, "empty");
args.Sprite?.LayerSetShader(0, null, null);
}
}
}
19 changes: 7 additions & 12 deletions Content.Client/BarSign/Ui/BarSignBoundUserInterface.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,32 +19,27 @@ protected override void Open()
var sign = EntMan.GetComponentOrNull<BarSignComponent>(Owner)?.Current is { } current
? _prototype.Index(current)
: null;
var allSigns = Shared.BarSign.BarSignSystem.GetAllBarSigns(_prototype)
var allSigns = BarSignSystem.GetAllBarSigns(_prototype)
.OrderBy(p => Loc.GetString(p.Name))
.ToList();
_menu = new(sign, allSigns);

_menu.OnSignSelected += id =>
{
SendMessage(new SetBarSignMessage(id));
SendPredictedMessage(new SetBarSignMessage(id));
};

_menu.OnClose += Close;
_menu.OpenCentered();
}

public void Update(ProtoId<BarSignPrototype>? sign)
public override void Update()
{
if (_prototype.Resolve(sign, out var signPrototype))
_menu?.UpdateState(signPrototype);
}

protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing)
if (!EntMan.TryGetComponent<BarSignComponent>(Owner, out var signComp))
return;
_menu?.Dispose();

if (_prototype.Resolve(signComp.Current, out var signPrototype))
_menu?.UpdateState(signPrototype);
}
}

Loading
Loading