Commit Graph

105 Commits

Author SHA1 Message Date
NotAlwaysTrue
f9ad542029 Merge branch 'CBT' into dev_itemrefactor 2026-04-30 22:15:38 +08:00
NotAlwaysTrue
25683dcf39 Reapply "OBT1.1.0 Merge branch 'dev_pte' into dev"
This reverts commit 046483b9da.
2026-04-30 21:59:54 +08:00
Regalis11
a4607dffad v1.12.6.2 (Spring Update 2026) 2026-04-09 15:10:07 +03:00
Eero
7b8275100d Improve thread safety and performance in core systems
Refactors event, entity, and physics management to use thread-safe and lock-free data structures (Immutable collections, ConcurrentQueue, ConcurrentDictionary, Channel) for improved concurrency and performance. Replaces O(n) queue lookups with O(1) set/dictionary checks, ensures atomic updates for shared state, and optimizes queue draining and deferred action processing. Updates related code to use new APIs and patterns, and adds documentation for thread safety and workflow.
2025-12-29 16:47:10 +08:00
Eero
90962b2328 Refactor Item collections for thread safety and performance
Replaces static Item.ItemList and related collections with thread-safe data structures using ConcurrentDictionary and ImmutableHashSet. Adds thread-safe helpers for marking items for deconstruction and managing item lists. Updates all usages of Item.ItemList and DeconstructItems to use new APIs, improving performance and safety in multi-threaded contexts. Also refactors MeleeWeapon and Projectile impact queues to use ConcurrentQueue, and updates related logic throughout the codebase.
2025-12-28 03:57:04 +08:00
Markus Isberg
598966f200 Release 1.11.4.1 (Winter Update) 2025-12-08 14:56:47 +00:00
Regalis11
b2d91cde7c Release 1.10.6.0 - Autumn Update 2025 Hotfix 1 2025-09-25 11:11:35 +03:00
Regalis11
caa0326cf8 Release 1.10.5.0 - Autumn Update 2025 2025-09-17 13:44:21 +03:00
Regalis11
6661bb607b Release 1.9.8.0 - Summer Update Hotfix 1 2025-07-01 11:40:07 +03:00
Regalis11
ea5a2bc693 Release 1.9.7.0 - Summer Update 2025 2025-06-17 16:38:11 +03:00
Regalis11
ec9e29af07 Release 1.8.8.1 - Calm Before the Storm Hotfix 1 2025-04-29 12:46:51 +03:00
Markus Isberg
a4a3427e4e Unstable 1.8.4.0 2025-03-12 12:56:27 +00:00
Regalis11
230d1b6e78 v1.5.7.0 (Summer Update) 2024-06-18 16:50:02 +03:00
Markus Isberg
0a0a9784c5 Blood in the Water Hotfix 2 - 1.4.6.0 2024-05-02 14:08:04 +03:00
Regalis11
ff1b8951a7 v1.4.4.1 (Blood in the Water Update) 2024-04-24 18:09:05 +03:00
Regalis11
89b91d1c3e Merge branch 'master' into dev
# Conflicts:
#	Barotrauma/BarotraumaClient/ClientSource/Characters/Character.cs
#	Barotrauma/BarotraumaClient/ClientSource/DebugConsole.cs
#	Barotrauma/BarotraumaClient/ClientSource/GUI/Store.cs
#	Barotrauma/BarotraumaClient/ClientSource/Items/Inventory.cs
#	Barotrauma/BarotraumaClient/ClientSource/Items/Item.cs
#	Barotrauma/BarotraumaClient/ClientSource/Map/Map/Radiation.cs
#	Barotrauma/BarotraumaClient/ClientSource/Map/MapEntity.cs
#	Barotrauma/BarotraumaClient/ClientSource/Networking/ServerList/ServerInfo.cs
#	Barotrauma/BarotraumaClient/ClientSource/Screens/MainMenuScreen/MainMenuScreen.cs
#	Barotrauma/BarotraumaClient/ClientSource/Screens/ServerListScreen/ServerListScreen.cs
#	Barotrauma/BarotraumaClient/ClientSource/Screens/SubEditorScreen.cs
#	Barotrauma/BarotraumaClient/ClientSource/Serialization/SerializableEntityEditor.cs
#	Barotrauma/BarotraumaClient/ClientSource/Settings/SettingsMenu.cs
#	Barotrauma/BarotraumaClient/ClientSource/SpamServerFilter.cs
#	Barotrauma/BarotraumaClient/ClientSource/Sprite/Sprite.cs
#	Barotrauma/BarotraumaClient/ClientSource/Steam/Lobby.cs
#	Barotrauma/BarotraumaClient/LinuxClient.csproj
#	Barotrauma/BarotraumaClient/MacClient.csproj
#	Barotrauma/BarotraumaClient/WindowsClient.csproj
#	Barotrauma/BarotraumaServer/LinuxServer.csproj
#	Barotrauma/BarotraumaServer/MacServer.csproj
#	Barotrauma/BarotraumaServer/ServerSource/GameMain.cs
#	Barotrauma/BarotraumaServer/ServerSource/Steam/SteamManager.cs
#	Barotrauma/BarotraumaServer/ServerSource/Traitors/TraitorManager.cs
#	Barotrauma/BarotraumaServer/WindowsServer.csproj
#	Barotrauma/BarotraumaShared/SharedSource/Characters/Animation/HumanoidAnimController.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/Animation/Ragdoll.cs
#	Barotrauma/BarotraumaShared/SharedSource/DebugConsole.cs
#	Barotrauma/BarotraumaShared/SharedSource/Extensions/IEnumerableExtensions.cs
#	Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/CampaignMode.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/ItemPrefab.cs
#	Barotrauma/BarotraumaShared/SharedSource/Map/Map/Location.cs
#	Barotrauma/BarotraumaShared/SharedSource/Serialization/Editable/ConditionallyEditable.cs
#	Barotrauma/BarotraumaShared/SharedSource/Settings/GameSettings.cs
#	Barotrauma/BarotraumaShared/changelog.txt
#	Libraries/BarotraumaLibs/BarotraumaCore/Utils/MathUtils.cs
2024-04-24 17:38:13 +03:00
Regalis11
3791670c42 v1.3.0.1 (Epic Store release) 2024-03-28 18:34:33 +02:00
Regalis11
0c433eb187 v1.2.8.0 (Winter Update hotfix 2) 2024-01-11 16:19:43 +02:00
Regalis11
ada8d6f260 v1.2.7.0 (Winter Update hotfix) 2023-12-20 15:00:42 +02:00
Regalis11
b91e85559d v1.2.6.0 (Winter Update) 2023-12-14 16:11:27 +02:00
Markus Isberg
fb5ea537bf Unstable 1.2.4.0 2023-11-30 13:53:00 +02:00
Markus Isberg
8a2e2ea0ae Unstable 1.2.1.0 2023-11-10 17:45:19 +02:00
Regalis11
a8f9c97dda v1.1.19.3 (Treacherous Tides Hotfix 2) 2023-10-30 17:38:29 +02:00
Regalis11
34ffc520cc v1.1.18.0 (Treacherous Tides Update) 2023-10-19 17:18:51 +03:00
Markus Isberg
cf8f0de659 Unstable 1.1.14.0 2023-10-02 16:43:54 +03:00
Regalis11
94f5a93a0c Merge remote-tracking branch 'origin/master' into dev
# Conflicts:
#	Barotrauma/BarotraumaClient/ClientSource/DebugConsole.cs
#	Barotrauma/BarotraumaClient/ClientSource/Events/EventManager.cs
#	Barotrauma/BarotraumaClient/ClientSource/GUI/CrewManagement.cs
#	Barotrauma/BarotraumaClient/ClientSource/GUI/MedicalClinicUI.cs
#	Barotrauma/BarotraumaClient/ClientSource/GUI/Store.cs
#	Barotrauma/BarotraumaClient/ClientSource/GUI/SubmarineSelection.cs
#	Barotrauma/BarotraumaClient/ClientSource/GameSession/GameModes/CampaignMode.cs
#	Barotrauma/BarotraumaClient/ClientSource/GameSession/GameModes/MultiPlayerCampaign.cs
#	Barotrauma/BarotraumaClient/ClientSource/GameSession/RoundSummary.cs
#	Barotrauma/BarotraumaClient/ClientSource/Items/Components/Door.cs
#	Barotrauma/BarotraumaClient/ClientSource/Items/Components/Machines/Fabricator.cs
#	Barotrauma/BarotraumaClient/ClientSource/Items/Components/Projectile.cs
#	Barotrauma/BarotraumaClient/ClientSource/Map/Lights/ConvexHull.cs
#	Barotrauma/BarotraumaClient/ClientSource/Map/Lights/LightManager.cs
#	Barotrauma/BarotraumaClient/ClientSource/Map/Lights/LightSource.cs
#	Barotrauma/BarotraumaClient/ClientSource/Map/Structure.cs
#	Barotrauma/BarotraumaClient/ClientSource/Networking/GameClient.cs
#	Barotrauma/BarotraumaClient/ClientSource/Networking/Voip/VoipClient.cs
#	Barotrauma/BarotraumaClient/ClientSource/Networking/Voting.cs
#	Barotrauma/BarotraumaClient/ClientSource/Screens/ServerListScreen/ServerListScreen.cs
#	Barotrauma/BarotraumaClient/LinuxClient.csproj
#	Barotrauma/BarotraumaClient/MacClient.csproj
#	Barotrauma/BarotraumaClient/WindowsClient.csproj
#	Barotrauma/BarotraumaServer/LinuxServer.csproj
#	Barotrauma/BarotraumaServer/MacServer.csproj
#	Barotrauma/BarotraumaServer/ServerSource/DebugConsole.cs
#	Barotrauma/BarotraumaServer/ServerSource/GameSession/MedicalClinic.cs
#	Barotrauma/BarotraumaServer/ServerSource/Items/Inventory.cs
#	Barotrauma/BarotraumaServer/ServerSource/Networking/GameServer.cs
#	Barotrauma/BarotraumaServer/ServerSource/Utils/DoSProtection.cs
#	Barotrauma/BarotraumaServer/WindowsServer.csproj
#	Barotrauma/BarotraumaShared/SharedSource/Characters/AI/HumanAIController.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/AI/IndoorsSteeringManager.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/AI/Objectives/AIObjectiveContainItem.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/AI/Objectives/AIObjectiveFindSafety.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/AI/Objectives/AIObjectiveGetItem.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/AI/Objectives/AIObjectiveGoTo.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/AI/Objectives/AIObjectiveIdle.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/AI/ShipCommand/ShipIssueWorkerOperateWeapons.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/Attack.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/Character.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/Health/Afflictions/Affliction.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/Health/Afflictions/AfflictionPrefab.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/Health/CharacterHealth.cs
#	Barotrauma/BarotraumaShared/SharedSource/Characters/Params/CharacterParams.cs
#	Barotrauma/BarotraumaShared/SharedSource/ContentManagement/ContentPackageManager.cs
#	Barotrauma/BarotraumaShared/SharedSource/Enums.cs
#	Barotrauma/BarotraumaShared/SharedSource/Events/EventActions/MissionAction.cs
#	Barotrauma/BarotraumaShared/SharedSource/Events/EventActions/NPCChangeTeamAction.cs
#	Barotrauma/BarotraumaShared/SharedSource/Events/EventActions/NPCFollowAction.cs
#	Barotrauma/BarotraumaShared/SharedSource/Events/EventActions/NPCWaitAction.cs
#	Barotrauma/BarotraumaShared/SharedSource/Events/EventManager.cs
#	Barotrauma/BarotraumaShared/SharedSource/Events/Missions/Mission.cs
#	Barotrauma/BarotraumaShared/SharedSource/Events/Missions/PirateMission.cs
#	Barotrauma/BarotraumaShared/SharedSource/Events/Missions/SalvageMission.cs
#	Barotrauma/BarotraumaShared/SharedSource/GameSession/CargoManager.cs
#	Barotrauma/BarotraumaShared/SharedSource/GameSession/Data/Reputation.cs
#	Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/CampaignMode.cs
#	Barotrauma/BarotraumaShared/SharedSource/GameSession/GameSession.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/Components/Door.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/Components/Holdable/LevelResource.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/Components/Holdable/RangedWeapon.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/Components/ItemContainer.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/Components/Projectile.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/LightComponent.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/Components/Turret.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/Item.cs
#	Barotrauma/BarotraumaShared/SharedSource/Items/ItemPrefab.cs
#	Barotrauma/BarotraumaShared/SharedSource/Map/Gap.cs
#	Barotrauma/BarotraumaShared/SharedSource/Map/Levels/Level.cs
#	Barotrauma/BarotraumaShared/SharedSource/Map/Map/Location.cs
#	Barotrauma/BarotraumaShared/SharedSource/Map/Map/Map.cs
#	Barotrauma/BarotraumaShared/SharedSource/Map/Outposts/OutpostGenerator.cs
#	Barotrauma/BarotraumaShared/SharedSource/Map/Submarine.cs
#	Barotrauma/BarotraumaShared/SharedSource/Map/SubmarineBody.cs
#	Barotrauma/BarotraumaShared/SharedSource/Networking/ServerSettings.cs
#	Barotrauma/BarotraumaShared/SharedSource/Settings/GameSettings.cs
#	Barotrauma/BarotraumaShared/SharedSource/StatusEffects/PropertyConditional.cs
#	Barotrauma/BarotraumaShared/SharedSource/StatusEffects/StatusEffect.cs
#	Barotrauma/BarotraumaShared/changelog.txt
2023-06-15 16:55:39 +03:00
itchyOwl
83de72e3d2 v1.0.20.1 (summer patch) 2023-06-15 16:46:54 +03:00
Regalis11
ee1db852b1 v1.0.13.1 (first post-1.0 patch) 2023-05-10 15:07:17 +03:00
Regalis11
f8af8db91a v1.0.9.0 (2nd hotfix) 2023-04-12 15:42:35 +03:00
Markus Isberg
9470edead3 Build 1.1.4.0 2023-03-31 18:40:44 +03:00
Regalis11
b934dda228 v1.0.8.0 (Hotfix) 2023-03-16 17:00:21 +02:00
Regalis11
2c5a7923b0 Faction Test v1.0.1.0 2023-02-16 15:01:28 +02:00
Markus Isberg
25fa5a9552 Build 0.21.6.0 2023-01-31 18:01:29 +02:00
Markus Isberg
697ec52120 Build 0.21.1.0 2023-01-13 18:10:35 +02:00
Markus Isberg
caa5a2f762 Faction Test 100.13.0.0 2023-01-11 15:36:23 +02:00
Markus Isberg
6f788fb8b4 Build 0.20.12.0 2022-12-09 20:08:36 +02:00
Markus Isberg
1650735468 Faction Test 100.11.0.0 2022-12-09 20:08:17 +02:00
Markus Isberg
df805574c4 Build 0.20.8.0 2022-11-25 19:56:30 +02:00
Markus Isberg
0057f5bfce Faction Test 100.6.0.0 2022-11-25 19:55:45 +02:00
Markus Isberg
c44fb0ad3a Faction Test 100.5.0.0 2022-11-18 18:32:04 +02:00
Markus Isberg
ecb6d40b4b Build 0.20.7.0 2022-11-18 18:13:38 +02:00
Markus Isberg
c772b61fc1 Faction Test 100.4.0.0 2022-11-14 18:28:28 +02:00
Markus Isberg
8c8fd865c5 Build 0.20.6.0 2022-11-14 18:14:35 +02:00
Markus Isberg
54712b5dc9 Build 0.20.4.0 2022-11-11 17:57:23 +02:00
Markus Isberg
edaf4b09fe Build 0.20.0.0 2022-10-27 17:54:57 +03:00
Regalis11
6cddd03918 v0.19.14.0 2022-10-20 17:05:24 +03:00
Juan Pablo Arce
3ca584f2fc v0.19.8.0 2022-09-28 21:30:52 -03:00
Juan Pablo Arce
1fd2a51bbb Unstable v0.19.5.0 2022-09-14 12:48:12 -03:00
Juan Pablo Arce
3f2c843247 Unstable v0.19.3.0 2022-09-02 15:10:56 -03:00
Juan Pablo Arce
1219615d64 Unstable v0.19.1.0 2022-08-19 13:59:08 -03:00