Cleaning Up Unnecessary Folders#2523
Conversation
WalkthroughThis set of changes standardizes namespaces and resource paths by removing underscore prefixes across C#, YAML, and localization files. It adds new modsuit items and their catalog entries, updates related localization and sprite paths, and introduces a new game event entity. Several redundant or outdated files and references are removed for consistency. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Suggested labels
Suggested reviewers
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 5
🔭 Outside diff range comments (1)
Content.Shared/WhiteDream/Grab/GrabThrownSystem.cs (1)
60-62: Stamina damage is applied to the wrong entity
_stamina.TakeStaminaDamageis called on the thrown entity (ent) instead of the entity that was hit (args.OtherEntity).
Every other effect in this handler (damage, lay-down, color flash) targetsargs.OtherEntity, so stamina should be consistent.- _stamina.TakeStaminaDamage(ent, (float) Math.Floor(modNumber / 2)); + _stamina.TakeStaminaDamage(args.OtherEntity, (float) Math.Floor(modNumber / 2));
🧹 Nitpick comments (4)
Content.Server/WhiteDream/Blocking/RechargeableBlockingComponent.cs (1)
6-14: Consider exposingDischargedvia[DataField]if mappers need it.
Right now theDischargedflag is only[ViewVariables], meaning it can’t be set from YAML prototypes. If design intent is to spawn the component in a pre-discharged state (e.g. for ruined gear on a derelict station), add[DataField]so content authors aren’t forced to fire a runtime event to flip the bit.Content.Server/WhiteDream/Blocking/RechargeableBlockingSystem.cs (1)
91-92: Replace the “0.01” magic epsilon with a named constantThe functional change (dropping the parentheses) is a no-op, but the hard-coded
0.01still reads like a stray decimal in the mess hall. Declare it as aconst float FullChargeEpsilon = 0.01f;at the top of the class so future maintainers know it’s intentional and can tweak it ship-wide from one place.- if (battery.CurrentCharge < battery.MaxCharge - 0.01) + const float FullChargeEpsilon = 0.01f; + if (battery.CurrentCharge < battery.MaxCharge - FullChargeEpsilon) return;Resources/Locale/en-US/_EE/store/uplink-catalog.ftl (1)
18-19: Elite modsuit description compares itself to itself – likely a copy-paste fumbleLine 19 says “Compared with the Jaeger modsuit …” while the entry itself is the Jaeger modsuit. That Sol-bred confusion will read oddly to the crew.
-uplink-modsuit-elitemodsuit-desc = ... Compared with the Jaeger modsuit, it offers unparalleled protection ... +uplink-modsuit-elitemodsuit-desc = ... Compared with the Raider modsuit, it offers unparalleled protection ...Content.Client/DeltaV/Salvage/UI/MiningVoucherMenu.xaml.cs (1)
30-57: SetEntity risks duplicate UI children on successive calls.
If the menu is reused, every invocation stacks more buttons ontoMain, cluttering the interface like unkempt bunks. Clear the container first:public void SetEntity(EntityUid owner) { if (!_entMan.TryGetComponent<MiningVendorComponent>(owner, out var comp)) return; + // Ensure a fresh slate each time the menu is populated. + Main.RemoveAllChildren(); + for (var i = 0; i < comp.Kits.Count; i++)This keeps memory tidy and prevents duplicate click handlers.
| - type: Unremoveable | ||
| - type: Sprite | ||
| sprite: _Imp/Drone/dronesatchel.rsi | ||
| sprite: _Impstation/Drone/dronesatchel.rsi |
There was a problem hiding this comment.
💡 Verification agent
❓ Verification inconclusive
Sprite reference updated—double-check the asset.
_Impstation/Drone/dronesatchel.rsi replaces the old _Imp path. Run the same check to ensure the RSI resides in the new directory; otherwise the drone’s satchel will vanish into the void.
🏁 Script executed:
#!/bin/bash
# Verify satchel sprite directory after namespace migration.
fd -t d dronesatchel.rsi | grep -i '_Impstation/Drone'Length of output: 54
Shipmate, our last sweep turned up nothing—looks like we scanned for a directory instead of the sprite file itself. Let’s run a proper file search to confirm the new path:
🏁 Script executed:
#!/bin/bash
# Verify satchel sprite file path after namespace migration.
fd -t f dronesatchel.rsi | grep -i '_Impstation/Drone'Length of output: 54
By the Biesel Republic! Our asset still hasn’t surfaced. Let’s widen the net and hunt down any “satchel” directories:
🏁 Script executed:
#!/bin/bash
# Broad sweep for any satchel-related RSI directories
fd -t d -i 'satchel'Length of output: 20
By the Biesel Republic! Let’s run one last, case-insensitive sweep for the satchel asset:
🏁 Script executed:
#!/bin/bash
# Case-insensitive search for dronesatchel.rsi anywhere in the repo
fd -t f -i 'dronesatchel.rsi'Length of output: 29
By the Biesel Republic! The satchel sprite is nowhere to be found in our new _Impstation/Drone namespace—our fleet-wide sweeps turned up zero results. This will leave the drone’s satchel missing in action unless the asset is properly migrated.
• Location to fix: Resources/Prototypes/_Impstation/Drone/drone_tools.yml (line 11)
– Current: sprite: _Impstation/Drone/dronesatchel.rsi
• Action required:
- Confirm that dronesatchel.rsi has been moved into Resources/Graphics/Impstation/Drone/ (or the correct directory).
- If it resides elsewhere, update the
sprite:path to match its actual location. - If it doesn’t exist yet, add the RSI file under the proper namespace before merging.
Fix this before launch or the Sol Alliance will claim our recruits failed inspection!
🤖 Prompt for AI Agents
In Resources/Prototypes/_Impstation/Drone/drone_tools.yml at line 11, the sprite
path for dronesatchel.rsi is incorrect or the asset is missing. Verify if
dronesatchel.rsi exists in Resources/Graphics/Impstation/Drone/ or its correct
directory. If found elsewhere, update the sprite path accordingly in the YAML
file. If the RSI file does not exist, add it to the proper namespace before
merging to ensure the drone’s satchel sprite is available.
| sprite: _Impstation/Drone/drone.rsi #Mobs/Silicon/drone.rsi | ||
| map: ["base"] | ||
| - type: BorgTransponder | ||
| sprite: | ||
| sprite: _Imp/Drone/drone.rsi | ||
| sprite: _Impstation/Drone/drone.rsi | ||
| state: shell |
There was a problem hiding this comment.
💡 Verification agent
❓ Verification inconclusive
Verify the new sprite path actually exists, ensign.
We’ve swapped the sprite reference to _Impstation/Drone/drone.rsi, but a missing .rsi at runtime will make the whole hangar bay look like Sol-Alliance scrap. Double-check the asset landed in the repo.
🏁 Script executed:
#!/bin/bash
# Confirm the sprite bundle exists in the repository
fd drone.rsi | grep "_Impstation/Drone/drone.rsi" || {
echo "Sprite bundle _Impstation/Drone/drone.rsi not found!" >&2
exit 1
}Length of output: 173
Action Required: Missing sprite asset _Impstation/Drone/drone.rsi
Ensign, your new sprite reference isn’t on file—runtime will spit out garbage instead of our sleek drones. Ensure the asset is committed or correct the path before launch.
Affected location:
- File: Resources/Prototypes/_Impstation/Drone/Mobs_Player_silicon.yml
- Lines: 170–175
Suspicious snippet:
sprite: _Impstation/Drone/drone.rsi #Mobs/Silicon/drone.rsi
map: ["base"]
- type: BorgTransponder
sprite:
sprite: _Impstation/Drone/drone.rsi
state: shell
Next steps:
- Add the missing file at
Resources/Textures/_Impstation/Drone/drone.rsi(or your designated asset folder). - OR update both
sprite:entries to point at the correct existing path (e.g.,Mobs/Silicon/drone.rsi).
🤖 Prompt for AI Agents
In Resources/Prototypes/_Impstation/Drone/Mobs_Player_silicon.yml lines 170 to
175, the sprite asset path _Impstation/Drone/drone.rsi is missing or incorrect,
causing runtime errors. Fix this by either adding the missing sprite file to
Resources/Textures/_Impstation/Drone/drone.rsi or update both sprite references
to point to an existing valid sprite path such as Mobs/Silicon/drone.rsi.
| - sprite: /Textures/WhiteDream/Interface/Alerts/pull.rsi | ||
| state: pulling | ||
| - sprite: /Textures/_White/Interface/Alerts/pull.rsi | ||
| - sprite: /Textures/WhiteDream/Interface/Alerts/pull.rsi | ||
| state: grab-soft | ||
| - sprite: /Textures/_White/Interface/Alerts/pull.rsi | ||
| - sprite: /Textures/WhiteDream/Interface/Alerts/pull.rsi | ||
| state: grab-hard | ||
| - sprite: /Textures/_White/Interface/Alerts/pull.rsi | ||
| - sprite: /Textures/WhiteDream/Interface/Alerts/pull.rsi | ||
| state: grab-choke |
There was a problem hiding this comment.
💡 Verification agent
❓ Verification inconclusive
Confirm the renamed sprite path actually exists, recruit.
The sprite path has been updated to /Textures/WhiteDream/Interface/Alerts/pull.rsi. A missing .rsi will explode at runtime faster than a badly-vented plasma canister. Verify the asset made the jump from _White to WhiteDream along with every required state before this hits staging.
🏁 Script executed:
#!/bin/bash
# Ensure the renamed RSI folder and expected states exist.
# Expect exactly one matching directory.
fd -td -e rsi pull.rsi | grep -E '^Textures/WhiteDream/Interface/Alerts/pull\.rsi$' || {
echo "ERROR: pull.rsi not found under WhiteDream path" >&2
}
# Check that the four icon states are present.
required_states=("pulling" "grab-soft" "grab-hard" "grab-choke")
for state in "${required_states[@]}"; do
if ! rg -q "\"$state\"" Textures/WhiteDream/Interface/Alerts/pull.rsi; then
echo "ERROR: state '$state' missing from pull.rsi" >&2
fi
doneLength of output: 1462
#!/bin/bash
# Locating all pull.rsi files in the repository
echo "🚀 Locating pull.rsi files..."
pull_files=$(fd -e rsi pull.rsi)
if [[ -z "$pull_files" ]]; then
echo "❌ ERROR: No pull.rsi files found anywhere!" >&2
exit 1
fi
echo "📂 Found pull.rsi at:"
echo "$pull_files"
# Verify each required state in every found file
required_states=("pulling" "grab-soft" "grab-hard" "grab-choke")
for file in $pull_files; do
echo "🔎 Verifying states in $file"
for state in "${required_states[@]}"; do
if ! grep -q "\"$state\"" "$file"; then
echo "❌ ERROR: state '$state' missing in $file" >&2
else
echo "✅ State '$state' OK"
fi
done
doneMissing pull.rsi asset under Textures/WhiteDream/Interface/Alerts
Our scan came up empty – pull.rsi isn’t in the WhiteDream path, and we can’t find the “pulling”, “grab-soft”, “grab-hard” or “grab-choke” states. Before this sails to staging, patch these gaps:
• Add pull.rsi to Textures/WhiteDream/Interface/Alerts/
• Define all four states in that RSI (pulling, grab-soft, grab-hard, grab-choke)
• Double-check there are no leading slashes or typos in the YML references
Fix these ASAP so the runtime doesn’t detonate like a mis-vented plasma canister.
🤖 Prompt for AI Agents
In Resources/Prototypes/Alerts/alerts.yml around lines 436 to 443, the
referenced pull.rsi asset is missing from Textures/WhiteDream/Interface/Alerts/,
and the states pulling, grab-soft, grab-hard, and grab-choke are not defined in
that RSI file. To fix this, add the pull.rsi file to the specified directory,
define all four required states within the RSI file, and ensure the YML sprite
paths do not have leading slashes or typos.
| speciesRestriction: [Thaven] | ||
| sprites: | ||
| - sprite: _DV/Mobs/Customization/thaven.rsi | ||
| - sprite: DeltaV/Mobs/Customization/thaven.rsi |
There was a problem hiding this comment.
💡 Verification agent
🧩 Analysis chain
Verify the new sprite route is actually aboard the ship
All five markings now point at DeltaV/Mobs/Customization/thaven.rsi. If that .rsi file wasn’t moved to the exact same path (case-sensitive on the server), every Thaven will spawn faceless and the logs will scream about missing sprites—just the sort of sloppiness the Sol Alliance would ship.
Also applies to: 17-17, 26-26, 36-36, 45-45
🏁 Script executed:
#!/bin/bash
# Check if the sprite file really exists after the folder purge
fd thaven.rsi | grep -F 'DeltaV/Mobs/Customization/thaven.rsi' || {
echo "⚠️ Sprite not found at expected path"
exit 1
}Length of output: 156
🏁 Script executed:
#!/bin/bash
# List all occurrences of thaven.rsi in the repository to verify the actual path
fd thaven.rsi || {
echo "⚠️ No thaven.rsi file found in the repo"
exit 1
}Length of output: 15
Sprite file missing at DeltaV/Mobs/Customization/thaven.rsi – action required
I ran a full repo scan and there’s no thaven.rsi at the exact, case-sensitive path. Without it, every Thaven will spawn faceless and the logs will flood with missing‐sprite errors.
Affected locations in
Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/thaven.yml
- Line 8
- Line 17
- Line 26
- Line 36
- Line 45
Next steps:
• Ensure DeltaV/Mobs/Customization/thaven.rsi is committed under that exact path and casing.
• If the asset lives elsewhere, update each sprite: reference to the correct location (or move/rename the file).
Don’t let the human-supremacist Sol Alliance sneak in sloppy assets again.
🤖 Prompt for AI Agents
In Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/thaven.yml
at lines 8, 17, 26, 36, and 45, the sprite file
DeltaV/Mobs/Customization/thaven.rsi is missing or incorrectly referenced.
Verify that the file exists at the exact path with correct casing and commit it
if missing. If the file is located elsewhere, update all sprite references on
these lines to point to the correct path or move/rename the file to match the
current references.
| speciesRestriction: [IPC] | ||
| sprites: | ||
| - sprite: _SimpleStation/Mobs/Customization/wings64x34.rsi | ||
| - sprite: Mobs/Customization/wings64x34.rsi |
There was a problem hiding this comment.
💡 Verification agent
🧩 Analysis chain
Sprite path relocation — confirm the asset & state really exist
The sprite reference was shortened to Mobs/Customization/wings64x34.rsi. If the file wasn’t physically moved to the new location (or placed in a fallback search path), the engine will fail to load the marking at runtime.
Please verify that:
Resources/Textures/Mobs/Customization/wings64x34.rsi(or equivalent) is present in the repo.- The state
roboticexists inside that.rsi.
Run this from the repository root to confirm:
🏁 Script executed:
#!/bin/bash
# Ensure the sprite file exists and list its states (grep for 'state =').
set -euo pipefail
# 1) Locate the sprite file
fd wings64x34.rsi | tee /dev/stderr
# 2) Quick sanity-check that the 'robotic' state is declared
fd wings64x34.rsi -x grep -nH 'robotic'Length of output: 151
Space crew, the Sol Alliance thought they could hide our wing asset by nixing tee. We’ll strip the dead weight and rerun inspection with pure shell commands:
This will confirm both the existence of wings64x34.rsi and the presence of the robotic state without relying on missing utilities.
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# 1) Locate the sprite file(s)
paths=$(fd wings64x34.rsi)
echo "Found sprite paths:"
echo "$paths" || true
# 2) Check each file for the 'robotic' state declaration
echo "Searching for 'robotic' states:"
for p in $paths; do
grep -nH 'state\s*=\s*robotic' "$p" || echo " → No 'robotic' state in $p"
doneLength of output: 188
Missing sprite asset — wings64x34.rsi not found
No wings64x34.rsi was located in the repository. The marking will fail to load at runtime under the current reference.
Action items:
- Add (or restore) the sprite at
Resources/Textures/Mobs/Customization/wings64x34.rsi - Ensure the file declares a
roboticstate, e.g.:
state = robotic - Confirm the path in
Resources/Prototypes/Entities/Mobs/Customization/Markings/ipc_wings.yml:7
matches the actual asset location
🤖 Prompt for AI Agents
In Resources/Prototypes/Entities/Mobs/Customization/Markings/ipc_wings.yml at
line 7, the sprite file wings64x34.rsi is missing, causing runtime load
failures. Add or restore the wings64x34.rsi file to
Resources/Textures/Mobs/Customization/, ensure it includes a state declaration
like "state = robotic", and verify that the sprite path in the YAML file matches
this location exactly.
|
This would make porting stuff from other codebases harder. The most ideal solution would be the adoption of goob style projects. As for prototypes, this would increase collision likelihood with Wizard's. |
|
why do goob, imp, and ee keep the _? |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Description
A large number of unnecessary folders greatly clutters the project space and interferes with project forks. Ideally, it is worth removing all folders with _ at the beginning and leaving only _EE. This PR only removes duplicate server folders.
_White -> WhiteDream
_DV -> DeltaV
_Imp -> _impstation
_CS4875 - Migrated to Nyanotrasen (What is this anyway?)
_TG - Migrated to _EE. (This isn't even SS14)
_SimpleStation - Migrated to root folder.
Content.GoobStation -> _Goobstation
Changelog
no cl