Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ent-OreBox = ящик для материалов
.desc = Большой контейнер для хранения строительных материалов.
8 changes: 8 additions & 0 deletions Resources/Prototypes/_Art/Catalog/Cargo/cargo_cargo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
- type: cargoProduct
id: CargoMaterialBox
icon:
sprite: /Textures/Structures/Storage/orebox.rsi
state: orebox
cost: 300
category: cargoproduct-category-name-cargo
group: market
Comment on lines +1 to +8

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Link the cargo product to MaterialBox.

The cargo product does not define a product field. Cargo listings use this field to identify the entity to spawn, as shown by CargoOreBox. Add product: MaterialBox; otherwise, purchasing CargoMaterialBox may not provide the new storage box.

Proposed fix
 - type: cargoProduct
   id: CargoMaterialBox
   icon:
     sprite:  /Textures/Structures/Storage/orebox.rsi
     state: orebox
+  product: MaterialBox
   cost: 300
   category: cargoproduct-category-name-cargo
   group: market
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- type: cargoProduct
id: CargoMaterialBox
icon:
sprite: /Textures/Structures/Storage/orebox.rsi
state: orebox
cost: 300
category: cargoproduct-category-name-cargo
group: market
- type: cargoProduct
id: CargoMaterialBox
icon:
sprite: /Textures/Structures/Storage/orebox.rsi
state: orebox
product: MaterialBox
cost: 300
category: cargoproduct-category-name-cargo
group: market
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Prototypes/_Art/Catalog/Cargo/cargo_cargo.yml` around lines 1 - 8,
Add the missing product field to the CargoMaterialBox cargoProduct definition,
setting it to MaterialBox so purchases spawn the intended entity, consistent
with the CargoOreBox definition.

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- type: entity
id: MaterialBox
name: material box
description: A large storage container for holding construction material.
Comment on lines +2 to +4

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Align the fork prototype identity across YAML and FTL.

The prototype uses a generic ID and raw text, while the translation targets ent-OreBox. This can cause an upstream ID collision and leave MaterialBox untranslated.

  • Resources/Prototypes/_Art/Entities/Structures/Storege/material_box.yml#L2-L4: use a fork-prefixed ID and matching locale keys for name and description.
  • Resources/Locale/ru-RU/_Art/prototypes/entities/structures/storage/material_box.ftl#L1-L2: define the matching fork-prefixed, kebab-case keys for MaterialBox.

As per coding guidelines: fork prototype IDs must be fork-named. As per path instructions: prototype display fields must use locale keys, and fork locale keys must be fork--prefixed and kebab-case.

📍 Affects 2 files
  • Resources/Prototypes/_Art/Entities/Structures/Storege/material_box.yml#L2-L4 (this comment)
  • Resources/Locale/ru-RU/_Art/prototypes/entities/structures/storage/material_box.ftl#L1-L2
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Prototypes/_Art/Entities/Structures/Storege/material_box.yml`
around lines 2 - 4, Update
Resources/Prototypes/_Art/Entities/Structures/Storege/material_box.yml lines 2-4
to use a fork-prefixed prototype ID and locale keys for the name and description
instead of raw text. Update
Resources/Locale/ru-RU/_Art/prototypes/entities/structures/storage/material_box.ftl
lines 1-2 to define matching fork-prefixed, kebab-case keys for MaterialBox.

Sources: Coding guidelines, Path instructions

parent: OreBox
components:
- type: Storage
grid:
- 0,0,19,9
maxItemSize: Normal
storageOpenSound: /Audio/Effects/closetopen.ogg
storageCloseSound: /Audio/Effects/closetclose.ogg
whitelist:
tags:
- ConstructionMaterial
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
- type: constructionGraph
id: MaterialBoxGraph
start: start
graph:
- node: start
edges:
- to: material_box
steps:
- material: Steel
amount: 7
doAfter: 1

- node: material_box
entity: MaterialBox
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
- type: construction
id: MaterialBox
graph: MaterialBoxGraph
Comment on lines +2 to +3

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Use fork-named IDs for all MaterialBox prototypes.

The construction, graph, and entity identifiers use generic names. Rename the fork-owned prototypes with the repository’s established fork prefix, then update all references.

  • Resources/Prototypes/_Art/Recipes/Construction/material_box_construction.yml#L2-L3: rename the construction ID and synchronize graph:.
  • Resources/Prototypes/_Art/Recipes/Construction/Graphs/material_box_graph.yml#L2-L2: rename the graph ID.
  • Resources/Prototypes/_Art/Recipes/Construction/Graphs/material_box_graph.yml#L14-L14: reference the renamed entity prototype.

As per coding guidelines, prototype IDs for fork content must be fork-named to avoid collisions with upstream IDs.

📍 Affects 2 files
  • Resources/Prototypes/_Art/Recipes/Construction/material_box_construction.yml#L2-L3 (this comment)
  • Resources/Prototypes/_Art/Recipes/Construction/Graphs/material_box_graph.yml#L2-L2
  • Resources/Prototypes/_Art/Recipes/Construction/Graphs/material_box_graph.yml#L14-L14
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@Resources/Prototypes/_Art/Recipes/Construction/material_box_construction.yml`
around lines 2 - 3, Rename the fork-owned MaterialBox construction, graph, and
entity references to use the repository’s established fork prefix. Update
Resources/Prototypes/_Art/Recipes/Construction/material_box_construction.yml
lines 2-3 to rename the construction ID and synchronized graph reference; update
Resources/Prototypes/_Art/Recipes/Construction/Graphs/material_box_graph.yml
line 2 to rename the graph ID and line 14 to reference the renamed entity
prototype.

Source: Coding guidelines

startNode: start
targetNode: material_box
category: construction-category-storage
objectType: Structure
placementMode: SnapgridCenter
canBuildInImpassable: false
conditions:
- !type:TileNotBlocked
Loading