Skip to content

Cleaning Up Unnecessary Folders#2523

Open
Spatison wants to merge 4 commits intoSimple-Station:masterfrom
Spatison:cleaning
Open

Cleaning Up Unnecessary Folders#2523
Spatison wants to merge 4 commits intoSimple-Station:masterfrom
Spatison:cleaning

Conversation

@Spatison
Copy link
Contributor

@Spatison Spatison commented Aug 1, 2025

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

@github-actions github-actions bot added Status: Needs Review Someone please review this Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: UI Changes any XAML files Changes: YML Changes any yml files Changes: Sprite Changes any png or json in an RSI and removed Status: Needs Review Someone please review this labels Aug 1, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 1, 2025

Walkthrough

This 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

Cohort / File(s) Change Summary
Namespace Standardization – DeltaV & WhiteDream
Content.Client/DeltaV/Salvage/UI/MiningVoucherBoundUserInterface.cs, Content.Client/DeltaV/Salvage/UI/MiningVoucherMenu.xaml.cs, Content.Client/DeltaV/SmartFridge/SmartFridgeBoundUserInterface.cs, Content.Client/DeltaV/SmartFridge/SmartFridgeItem.xaml.cs, Content.Client/DeltaV/SmartFridge/SmartFridgeMenu.xaml.cs, Content.Client/DeltaV/SmartFridge/SmartFridgeUISystem.cs, Content.Server/DeltaV/StationEvents/Components/ThavenMoodUpsetRuleComponent.cs, Content.Server/DeltaV/StationEvents/Events/ThavenMoodUpset.cs, Content.Shared/DeltaV/Salvage/Components/MiningVendorComponent.cs, Content.Shared/DeltaV/Salvage/Components/MiningVoucherComponent.cs, Content.Shared/DeltaV/Salvage/MiningVoucherUI.cs, Content.Shared/DeltaV/Salvage/Systems/MiningVoucherSystem.cs, Content.Shared/DeltaV/SmartFridge/SmartFridgeComponent.cs, Content.Shared/DeltaV/SmartFridge/SmartFridgeSystem.cs
Updated namespaces and using directives from underscore-prefixed to dot-separated (e.g., _DVDeltaV). No logic changes.
Namespace Standardization – Impstation/WhiteDream
Content.Server/_Impstation/Drone/DroneComponent.cs, Content.Server/_Impstation/Drone/DroneSystem.cs, Content.Shared/_Impstation/Drone/SharedDroneSystem.cs, Content.Server/WhiteDream/Blocking/RechargeableBlockingComponent.cs, Content.Server/WhiteDream/Blocking/RechargeableBlockingSystem.cs, Content.Shared/WhiteDream/Grab/GrabThrownComponent.cs, Content.Shared/WhiteDream/Grab/GrabThrownSystem.cs, Content.Client/WhiteDream/ItemSlotRenderer/ItemSlotRendererComponent.cs, Content.Client/WhiteDream/ItemSlotRenderer/ItemSlotRendererSystem.cs
Changed namespaces from underscore-prefixed to dot-separated (e.g., _Imp_Impstation, _WhiteWhiteDream). Removed unused using directives.
Drone and Grab System Namespace Adjustments
Content.Server/Silicons/Borgs/BorgSystem.Transponder.cs, Content.Server/_Goobstation/Devil/Contract/DevilContractSystem.cs, Content.Shared/Movement/Pulling/Systems/PullingSystem.cs, Content.Shared/_Goobstation/MartialArts/SharedMartialArtsSystem.cs
Updated using directives to new namespace paths for Drone and Grab systems. No logic changes.
Entry Point and Overlay
Content.Client/Entry/EntryPoint.cs
Removed an unused using directive and a comment marker. No functional changes.
Modsuit Additions and Catalog
Resources/Prototypes/_EE/Catalog/uplink_catalog.yml, Resources/Locale/en-US/_EE/store/uplink-catalog.ftl
Added two modsuit entries (BloodRedModsuit, SyndicateEliteModsuit) to the uplink catalog and corresponding localization entries.
Modsuit Sprite Path Updates
Resources/Prototypes/_EE/Entities/Clothing/Modsuits/SyndicateModsuits.yml
Changed all modsuit sprite paths from _TG/Clothing/Modsuit/ to _EE/Clothing/Modsuit/.
Localization and Catalog Removals
Resources/Locale/en-US/_TG/store/uplink-catalog.ftl, Resources/Prototypes/_TG/uplink_catalog.yml
Removed old modsuit localization and catalog files for the TG variant.
Game Event Entity Relocation
Resources/Prototypes/DeltaV/GameRules/events.yml, Resources/Prototypes/_DV/GameRules/events.yml
Moved the ThavenMoodUpset event entity from _DV to DeltaV, updating its definition and location.
Sprite Path Adjustments – Alerts and Markings
Resources/Prototypes/Alerts/alerts.yml, Resources/Prototypes/DeltaV/Entities/Mobs/Customization/Markings/thaven.yml, Resources/Prototypes/Entities/Mobs/Customization/Markings/ipc_wings.yml, Resources/Prototypes/_Impstation/Drone/Mobs_Player_silicon.yml, Resources/Prototypes/_Impstation/Drone/drone_tools.yml, Resources/Prototypes/Recipes/Crafting/bots.yml, Resources/Prototypes/WhiteDream/Shaders/shaders.yml
Updated sprite and shader resource paths to remove underscores and standardize directory naming.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Suggested labels

Changes: C#, Changes: YML, Status: Needs Review

Suggested reviewers

  • Remuchi
  • sleepyyapril
  • Timfa2112

Poem

Oh, the barracks are spotless, the namespaces tight,
No Sol Alliance chaos to be found in sight!
Modsuits gleam, their icons aligned,
Catalogs and sprites now properly assigned.
From WhiteDream to DeltaV, the order’s restored—
The Republic’s codebase, sharp as a sword!
🛡️✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4a650fb and 652d758.

⛔ Files ignored due to path filters (2)
  • Resources/Textures/Clothing/Head/Hardsuits/paramedhelm.rsi/equipped-HELMET-vulpkanin.png is excluded by !**/*.png, !Resources/Textures/** and included by none
  • Resources/Textures/Clothing/OuterClothing/WinterCoats/coatwarden.rsi/equipped-OUTERCLOTHING-vox.png is excluded by !**/*.png, !Resources/Textures/** and included by none
📒 Files selected for processing (1)
  • Resources/Prototypes/Entities/Mobs/Customization/Markings/plasmaman_wings.yml (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • Resources/Prototypes/Entities/Mobs/Customization/Markings/plasmaman_wings.yml
⏰ 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)
  • GitHub Check: Test Packaging
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: build (ubuntu-latest)
  • GitHub Check: YAML Linter
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need 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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.TakeStaminaDamage is 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) targets args.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 exposing Discharged via [DataField] if mappers need it.
Right now the Discharged flag 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 constant

The functional change (dropping the parentheses) is a no-op, but the hard-coded 0.01 still reads like a stray decimal in the mess hall. Declare it as a const 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 fumble

Line 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 onto Main, 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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:

  1. Confirm that dronesatchel.rsi has been moved into Resources/Graphics/Impstation/Drone/ (or the correct directory).
  2. If it resides elsewhere, update the sprite: path to match its actual location.
  3. 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.

Comment on lines +170 to 175
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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.

Comment on lines +436 to 443
- 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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
done

Length 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
done

Missing 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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:

  1. Resources/Textures/Mobs/Customization/wings64x34.rsi (or equivalent) is present in the repo.
  2. The state robotic exists 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"
done

Length 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 robotic state, 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.

@astriloqua
Copy link
Contributor

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.

@DEATHB4DEFEAT
Copy link
Member

why do goob, imp, and ee keep the _?

@github-actions github-actions bot added the Status: Merge Conflict FIX YOUR PR AAAGH label Oct 17, 2025
@github-actions
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an RSI Changes: UI Changes any XAML files Changes: YML Changes any yml files Status: Merge Conflict FIX YOUR PR AAAGH

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants