diff --git a/CONFLICTS_TO_RESOLVE.txt b/CONFLICTS_TO_RESOLVE.txt new file mode 100644 index 000000000000..a2912623ec8e --- /dev/null +++ b/CONFLICTS_TO_RESOLVE.txt @@ -0,0 +1,195 @@ +./Content.Client/Commands/DebugCommands.cs.rej +./Content.Client/Commands/MappingClientSideSetupCommand.cs.rej +./Content.Client/Cooldown/CooldownGraphic.cs.rej +./Content.Client/Disposal/PressureBar.cs.rej +./Content.Client/HotPotato/HotPotatoSystem.cs.rej +./Content.Client/Instruments/InstrumentSystem.cs.rej +./Content.Client/Inventory/ClientInventorySystem.cs.rej +./Content.Client/Light/RgbLightControllerSystem.cs.rej +./Content.Client/Power/APC/UI/ApcMenu.xaml.cs.rej +./Content.Client/Trigger/Components/TimerTriggerVisualizerComponent.cs.rej +./Content.Client/Trigger/Systems/ProximityTriggerAnimationSystem.cs.rej +./Content.Client/Trigger/Systems/TimerTriggerVisualizerSystem.cs.rej +./Content.Client/UserInterface/Systems/DamageOverlays/Overlays/DamageOverlay.cs.rej +./Content.Client/UserInterface/Systems/ProgressColorSystem.cs.rej +./Content.IntegrationTests/Tests/InventoryHelpersTest.cs.rej +./Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs.rej +./Content.IntegrationTests/Tests/RoundEndTest.cs.rej +./Content.IntegrationTests/Tests/StoreTests.cs.rej +./Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs.rej +./Content.Server/Atmos/EntitySystems/FlammableSystem.cs.rej +./Content.Server/Chat/Managers/ChatSanitizationManager.cs.rej +./Content.Server/Chat/Systems/ChatSystem.cs.rej +./Content.Server/Defusable/Systems/DefusableSystem.cs.rej +./Content.Server/Destructible/DestructibleSystem.cs.rej +./Content.Server/Destructible/Thresholds/Behaviors/TimerStartBehavior.cs.rej +./Content.Server/Destructible/Thresholds/Behaviors/TriggerBehavior.cs.rej +./Content.Server/DeviceLinking/Systems/DeviceLinkSystem.cs.rej +./Content.Server/DeviceLinking/Systems/MemoryCellSystem.cs.rej +./Content.Server/DeviceLinking/Systems/SignallerSystem.cs.rej +./Content.Server/Drowsiness/DrowsinessSystem.cs.rej +./Content.Server/Emp/EmpSystem.cs.rej +./Content.Server/Explosion/Components/ProjectileGrenadeComponent.cs.rej +./Content.Server/Explosion/EntitySystems/ProjectileGrenadeSystem.cs.rej +./Content.Server/Explosion/EntitySystems/ScatteringGrenadeSystem.cs.rej +./Content.Server/GameTicking/Rules/TraitorRuleSystem.cs.rej +./Content.Server/Ghost/Roles/GhostRoleSystem.cs.rej +./Content.Server/Holopad/HolopadSystem.cs.rej +./Content.Server/HotPotato/HotPotatoSystem.cs.rej +./Content.Server/Instruments/InstrumentSystem.cs.rej +./Content.Server/LandMines/LandMineSystem.cs.rej +./Content.Server/Medical/VomitSystem.cs.rej +./Content.Server/Mind/Commands/MakeSentientCommand.cs.rej +./Content.Server/Mind/MindSystem.cs.rej +./Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs.rej +./Content.Server/NPC/Systems/NPCSteeringSystem.cs.rej +./Content.Server/NPC/Systems/NPCSystem.cs.rej +./Content.Server/Ninja/Systems/SpiderChargeSystem.cs.rej +./Content.Server/Nutrition/EntitySystems/CreamPieSystem.cs.rej +./Content.Server/Payload/EntitySystems/PayloadSystem.cs.rej +./Content.Server/PneumaticCannon/PneumaticCannonSystem.cs.rej +./Content.Server/Polymorph/Systems/PolymorphSystem.cs.rej +./Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs.rej +./Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs.rej +./Content.Server/Silicons/Borgs/BorgSystem.cs.rej +./Content.Server/Sound/EmitSoundSystem.cs.rej +./Content.Server/Speech/EntitySystems/BlockListeningSystem.cs.rej +./Content.Server/Speech/EntitySystems/ListeningSystem.cs.rej +./Content.Server/Speech/EntitySystems/ReplacementAccentSystem.cs.rej +./Content.Server/Speech/Muting/MutingSystem.cs.rej +./Content.Server/Station/Systems/StationSpawningSystem.cs.rej +./Content.Server/Stunnable/Systems/StunOnCollideSystem.cs.rej +./Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMicrophoneSystem.cs.rej +./Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs.rej +./Content.Server/Telephone/TelephoneSystem.cs.rej +./Content.Server/Tools/ToolSystem.cs.rej +./Content.Server/Trigger/Systems/IgniteOnTriggerSystem.cs.rej +./Content.Server/Trigger/Systems/SpeakOnTriggerSystem.cs.rej +./Content.Shared/Actions/Components/TargetActionComponent.cs.rej +./Content.Shared/Anomaly/AnomalySynchronizerSystem.cs.rej +./Content.Shared/Anomaly/Components/AnomalySynchronizerComponent.cs.rej +./Content.Shared/Bed/Sleep/SleepingSystem.cs.rej +./Content.Shared/CCVar/CCVars.Viewport.cs.rej +./Content.Shared/CCVar/CCVars.cs.rej +./Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs.rej +./Content.Shared/Chat/SharedChatSystem.cs.rej +./Content.Shared/Cuffs/Components/HandcuffComponent.cs.rej +./Content.Shared/Cuffs/SharedCuffableSystem.cs.rej +./Content.Shared/Damage/Systems/SharedGodmodeSystem.cs.rej +./Content.Shared/Damage/Systems/SharedStaminaSystem.cs.rej +./Content.Shared/DisplacementMap/DisplacementData.cs.rej +./Content.Shared/Emp/SharedEmpSystem.cs.rej +./Content.Shared/Explosion/Components/ScatteringGrenadeComponent.cs.rej +./Content.Shared/Eye/VisibilityFlags.cs.rej +./Content.Shared/Flash/SharedFlashSystem.cs.rej +./Content.Shared/Glue/GlueComponent.cs.rej +./Content.Shared/Glue/GlueSystem.cs.rej +./Content.Shared/Glue/GluedComponent.cs.rej +./Content.Shared/HotPotato/HotPotatoComponent.cs.rej +./Content.Shared/HotPotato/SharedHotPotatoSystem.cs.rej +./Content.Shared/Humanoid/SkinColor.cs.rej +./Content.Shared/Interaction/Components/UnremoveableComponent.cs.rej +./Content.Shared/Inventory/InventoryComponent.cs.rej +./Content.Shared/Magic/SharedMagicSystem.cs.rej +./Content.Shared/Medical/Cryogenics/SharedCryoPodSystem.cs.rej +./Content.Shared/Mind/SharedMindSystem.cs.rej +./Content.Shared/Mousetrap/MousetrapComponent.cs.rej +./Content.Shared/Ninja/Components/SpiderChargeComponent.cs.rej +./Content.Shared/Payload/Components/PayloadTriggerComponent.cs.rej +./Content.Shared/Placeable/PlaceableSurfaceSystem.cs.rej +./Content.Shared/Rootable/SharedRootableSystem.cs.rej +./Content.Shared/Rotatable/RotatableComponent.cs.rej +./Content.Shared/SSDIndicator/SSDIndicatorComponent.cs.rej +./Content.Shared/Silicons/Laws/SharedSiliconLawSystem.cs.rej +./Content.Shared/Singularity/EntitySystems/SharedEmitterSystem.cs.rej +./Content.Shared/Slippery/SlipperySystem.cs.rej +./Content.Shared/Sound/Components/BaseEmitSoundComponent.cs.rej +./Content.Shared/Speech/ListenEvent.cs.rej +./Content.Shared/StatusEffect/StatusEffectsSystem.cs.rej +./Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs.rej +./Content.Shared/Sticky/Components/StickyComponent.cs.rej +./Content.Shared/Storage/Components/DumpableComponent.cs.rej +./Content.Shared/Storage/EntitySystems/DumpableSystem.cs.rej +./Content.Shared/Stunnable/SharedStunSystem.cs.rej +./Content.Shared/Tools/Components/WelderComponent.cs.rej +./Content.Shared/Trigger/Components/Effects/SmokeOnTriggerComponent.cs.rej +./Content.Shared/Trigger/Components/RandomTimerTriggerComponent.cs.rej +./Content.Shared/Trigger/Components/Triggers/RepeatingTriggerComponent.cs.rej +./Content.Shared/Trigger/Systems/TriggerOnMobstateChangeSystem.cs.rej +./Content.Shared/Trigger/TriggerVisuals.cs.rej +./Content.Shared/Weapons/Misc/TetherGunComponent.cs.rej +./Content.Shared/Weapons/Ranged/Events/OnEmptyGunShotEvent.cs.rej +./Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs.rej +./Resources/Credits/GitHub.txt.rej +./Resources/Locale/en-US/abilities/mime.ftl.rej +./Resources/Locale/en-US/commands/mappingclientsidesetup-command.ftl.rej +./Resources/Locale/en-US/nukeops/nuke-ops.ftl.rej +./Resources/Locale/en-US/station-events/events/random-sentience.ftl.rej +./Resources/Locale/en-US/storage/components/dumpable-component.ftl.rej +./Resources/Locale/en-US/store/store.ftl.rej +./Resources/Prototypes/Catalog/Fills/Lockers/security.yml.rej +./Resources/Prototypes/Entities/Clothing/Belt/belts.yml.rej +./Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml.rej +./Resources/Prototypes/Entities/Effects/admin_triggers.yml.rej +./Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml.rej +./Resources/Prototypes/Entities/Mobs/NPCs/animals.yml.rej +./Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml.rej +./Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml.rej +./Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml.rej +./Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml.rej +./Resources/Prototypes/Entities/Mobs/Player/dragon.yml.rej +./Resources/Prototypes/Entities/Mobs/Species/base.yml.rej +./Resources/Prototypes/Entities/Mobs/Species/vox.yml.rej +./Resources/Prototypes/Entities/Objects/Consumable/Food/Baked/cake.yml.rej +./Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml.rej +./Resources/Prototypes/Entities/Objects/Devices/Electronics/signaller.yml.rej +./Resources/Prototypes/Entities/Objects/Devices/Electronics/triggers.yml.rej +./Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml.rej +./Resources/Prototypes/Entities/Objects/Devices/mousetrap.yml.rej +./Resources/Prototypes/Entities/Objects/Devices/payload.yml.rej +./Resources/Prototypes/Entities/Objects/Fun/toys.yml.rej +./Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml.rej +./Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Bombs/plastic.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Bombs/spider.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/grenade.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_ballistic.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml.rej +./Resources/Prototypes/Entities/Objects/Weapons/Throwable/scattering_grenades.yml.rej +./Resources/Prototypes/Entities/StatusEffects/misc.yml.rej +./Resources/Prototypes/Entities/Structures/Dispensers/booze.yml.rej +./Resources/Prototypes/Entities/Structures/Dispensers/soda.yml.rej +./Resources/Prototypes/Entities/Structures/Holographic/projections.yml.rej +./Resources/Prototypes/Entities/Structures/Machines/bombs.yml.rej +./Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml.rej +./Resources/Prototypes/Entities/Structures/Power/apc.yml.rej +./Resources/Prototypes/Entities/Structures/Power/chargers.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Misc/bell.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Misc/mirror.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Misc/noticeboard.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Signs/base_structuresigns.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Signs/paintings.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Storage/Cabinets/defib_cabinet.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Storage/Cabinets/extinguisher_cabinet.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Storage/Cabinets/fireaxe_cabinet.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Storage/shelfs.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Storage/wall_dispensers.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/Switches/switch.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/WallmountMachines/air_alarm.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/WallmountMachines/fire_alarm.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/WallmountMachines/intercom.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/WallmountMachines/screen.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/WallmountMachines/station_map.yml.rej +./Resources/Prototypes/Entities/Structures/Wallmounts/WallmountMachines/timer.yml.rej +./Resources/Prototypes/GameRules/roundstart.yml.rej +./Resources/Prototypes/Magic/teleport_spells.yml.rej +./Resources/Prototypes/Reagents/medicine.yml.rej +./Resources/Prototypes/Research/civilianservices.yml.rej +./Resources/Prototypes/tags.yml.rej +./Resources/ServerInfo/Guidebook/ServerRules/RoleplayRules/RuleR4Metashield.xml.rej +./Resources/Textures/Objects/Devices/pinpointer.rsi/meta.json.rej +./Resources/Textures/Objects/Misc/id_cards.rsi/meta.json.rej diff --git a/CONFLICT_RESOLUTION_GUIDE.md b/CONFLICT_RESOLUTION_GUIDE.md new file mode 100644 index 000000000000..57a9f6679aca --- /dev/null +++ b/CONFLICT_RESOLUTION_GUIDE.md @@ -0,0 +1,127 @@ +# Upstream Merge Conflict Resolution Guide + +## Overview +This document provides guidance for resolving the 171 conflicts from the upstream merge (dec2d42a1d to 61d13ce40d). + +## Summary +- **Commits**: ~210 upstream commits +- **Files Changed**: 531 +- **Conflicts**: 171 .rej files +- **Auto-Applied**: 360 files + +## How to Resolve Conflicts + +Each .rej file contains "hunks" (sections of code) that couldn't be automatically applied. You need to: + +1. Open the .rej file to see what upstream wanted to change +2. Open the corresponding source file +3. Manually apply the changes while preserving Goobstation-specific code +4. Delete the .rej file when done +5. Test the build + +## Conflict Categories + +### Priority 1: Core Systems (Must Fix First) +These are critical systems that likely break the build: + +**Trigger System Refactor** - Major upstream change +- Content.Server/Explosion/EntitySystems/TriggerSystem.cs.rej +- Content.Shared/Explosion/EntitySystems/TriggerSystem.cs.rej +- Content.Shared/Trigger/* (multiple files) +- Content.Client/Explosion/TriggerSystem.cs.rej + +**Chat & Communication Systems** +- Content.Server/Chat/Systems/ChatSystem.cs.rej +- Content.Server/Chat/Managers/ChatSanitizationManager.cs.rej +- Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs.rej + +**Body & Metabolism Systems** +- Content.Shared/Body/Systems/SharedBodySystem.Metabolism.cs.rej +- Content.Shared/Body/Systems/StomachSystem.cs.rej +- Content.Server/Nutrition/EntitySystems/HungerSystem.cs.rej + +### Priority 2: Gameplay Systems +**NPC Systems** +- Content.Server/NPC/Systems/NPCSystem.cs.rej +- Content.Server/NPC/Systems/NPCCombatSystem.Ranged.cs.rej +- Content.Server/NPC/Systems/NPCSteeringSystem.cs.rej + +**Damage & Combat** +- Content.Server/Damage/Systems/DamageOnTriggerSystem.cs.rej +- Content.Server/Damage/Systems/DamageUserOnTriggerSystem.cs.rej +- Content.Shared/Damage/Systems/StaminaSystem.cs.rej + +**Abilities & Powers** +- Content.Server/Abilities/Mime/MimePowersSystem.cs.rej +- Content.Server/Abilities/Psionics/Abilities/TelegnosisSystem.cs.rej + +### Priority 3: UI & Client Systems +- Content.Client/Commands/DebugCommands.cs.rej +- Content.Client/Cooldown/CooldownGraphic.cs.rej +- Content.Client/Instruments/InstrumentSystem.cs.rej +- Content.Client/UserInterface/* (several files) + +### Priority 4: Prototypes & Content +**Medicine** (8 rejects - significant changes) +- Resources/Prototypes/Reagents/medicine.yml.rej + +**Wallmount Devices** (reorganization) +- Resources/Prototypes/Entities/Structures/Wallmounts/WallmountMachines/*.rej + +**Other Prototypes** +- Resources/Prototypes/GameRules/roundstart.yml.rej +- Resources/Prototypes/tags.yml.rej + +## Recommended Resolution Order + +1. Start with **Trigger System** - this is a major refactor that affects many other systems +2. Fix **Chat & Body systems** - core gameplay +3. Resolve **NPC & Combat systems** +4. Handle **UI & Client conflicts** +5. Finally, update **Prototypes & YAML files** + +## Testing Strategy + +After resolving each priority group: +1. Run `dotnet build` +2. Fix any compile errors +3. Run integration tests +4. Test in-game if possible + +## Common Conflict Patterns + +**Pattern 1: Goobstation added new features** +- Keep Goobstation's additions +- Apply upstream refactors around them + +**Pattern 2: Upstream refactored/renamed** +- Follow upstream's new structure +- Port Goobstation changes to new structure + +**Pattern 3: Both changed same code** +- Carefully merge both sets of changes +- Test thoroughly + +## Files to Check Carefully + +These files have multiple rejects and likely need significant work: +- Content.Server/Chat/Systems/ChatSystem.cs (likely many Goob changes) +- Content.Server/NPC/Systems/*.cs (NPC behavior differences) +- Content.Shared/Body/Systems/*.cs (metabolism/health system) +- Resources/Prototypes/Reagents/medicine.yml (8 rejects!) + +## Next Steps + +1. Read through this guide +2. Start with Priority 1 files +3. Use `git diff` to see what was auto-applied +4. Refer to upstream commits for context +5. Test frequently + +## Getting Help + +- Check upstream PR discussions for context on changes +- Look at commit messages: `git log dec2d42a1d..61d13ce40d -- ` +- Compare with vanilla SS14 if needed + +Good luck! Take it one category at a time. diff --git a/Content.Client/Actions/ActionsSystem.cs b/Content.Client/Actions/ActionsSystem.cs index b0fb8cbfae72..565f4ef6048c 100644 --- a/Content.Client/Actions/ActionsSystem.cs +++ b/Content.Client/Actions/ActionsSystem.cs @@ -491,7 +491,12 @@ private void OnWorldTargetAttempt(Entity ent, ref Ac private void OnEntityTargetAttempt(Entity ent, ref ActionTargetAttemptEvent args) { - if (args.Handled || args.Input.EntityUid is not { Valid: true } entity) + if (args.Handled) + return; + + args.Handled = true; + + if (args.Input.EntityUid is not { Valid: true } entity) return; // let world target component handle it @@ -502,8 +507,6 @@ private void OnEntityTargetAttempt(Entity ent, ref return; } - args.Handled = true; - var action = args.Action; var user = args.User; diff --git a/Content.Client/Administration/UI/AdminCamera/AdminCameraControl.xaml b/Content.Client/Administration/UI/AdminCamera/AdminCameraControl.xaml new file mode 100644 index 000000000000..1413eff00c57 --- /dev/null +++ b/Content.Client/Administration/UI/AdminCamera/AdminCameraControl.xaml @@ -0,0 +1,20 @@ + + + + + + + + + +