Skip to content

Самодельные инструменты v2.0#2489

Open
NekoSyndicateNihon wants to merge 9 commits intoAdventureTimeSS14:masterfrom
NekoSyndicateNihon:handmadetools
Open

Самодельные инструменты v2.0#2489
NekoSyndicateNihon wants to merge 9 commits intoAdventureTimeSS14:masterfrom
NekoSyndicateNihon:handmadetools

Conversation

@NekoSyndicateNihon
Copy link
Contributor

Новые инструменты

Было добавлено 3 новых самодельных инструмента имеющих крафт.

Баланс

Теперь самодельные инструменты - дешёвый аналог обычных инструментов, но из за их качества сборки работа с ними займёт больше времени.

Техническая информация

Были проведены тесты на локальной сборке, всё работает отлично без багов.

Чейнджлог

🆑 NekoSyndicate

  • add: Самодельные кусачки.
  • add: Самодельный гаечный ключ .
  • add: Самодельная отвёртка.
  • tweak: Все самодельные инструменты имеют модификатор скорости 0.4.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 13, 2026

Walkthrough

Добавлены четыре новые сущности изготовленных вручную инструментов: ADTHandMadeCrowbar, ADTHandMadeWirecutter, ADTHandMadeScrewdriver и ADTHandMadeWrench — каждая наследует соответствующий базовый инструмент и включает компоненты MeleeWeapon/Tool/Construction/прочее. Обновлены графы крафта (ADTHandmadeCrowbarGraph и три новых графа для wirecutter/screwdriver/wrench) и записи в improvised.yml для поддержки этих рецептов. Из сущности ADTSupermatterScalpel удалён компонент типа SupermatterImmune.

Possibly related PRs

  • Фикс телескопичек #2015 — в этом PR также изменялся компонент MeleeWeapon и добавлялось/корректировалось поле wideAnimationRotation на оружейных/инструментальных сущностях.

Suggested labels

size/L, Status: Needs Review, S: Untriaged

Suggested reviewers

  • Unlumy
  • Schrodinger71
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed Название чётко описывает добавление версии 2.0 самодельных инструментов, что соответствует основному содержанию PR.
Description check ✅ Passed Описание содержит информацию о новых инструментах, балансе, тестировании и чейнджлоге, релевантную содержимому PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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

Comment @coderabbitai help to get the list of available commands and usage tips.

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

🤖 Fix all issues with AI agents
In `@Resources/Prototypes/ADT/Entities/Objects/Tools/tools.yml`:
- Around line 119-120: Fix the YAML key formatting for the SupermatterImmune
component by removing the space before the colon so the entry reads "- type:
SupermatterImmune" instead of "- type : SupermatterImmune"; update the offending
line containing "type : SupermatterImmune" to match the project's YAML style (no
space before the colon) ensuring consistency with other component entries.
- Around line 123-143: The tool entity names contain a Latin 'c' (U+0063)
instead of a Cyrillic 'с' (U+0441); locate each tool entity's name field (for
example the value "cамодельная монтировка" and the other three tool name values)
and replace the Latin 'c' with the Cyrillic 'с' so the names use only Cyrillic
characters; verify the id strings (e.g., ADTHMCrowbar) remain unchanged and run
a search for any other occurrences of the Latin 'c' in tool name values to
correct them consistently.

In `@Resources/Prototypes/Entities/Objects/Tools/tools.yml`:
- Around line 134-135: Remove or correct the stray comment marker "#ADT add" in
tools.yml: either delete it if no change was intended, or replace it with the
proper ADT tweak format ("# ADT-Tweak-Start"/"# ADT-Tweak-End" or "#
ADT-Tweak:") and add the corresponding code if you intended to attach a
Construction component to the base Wrench (mirror the pattern used for
BaseCrowbar in crowbars.yml for the Construction addition). Ensure the change
uses the exact marker strings and, if adding the Construction component, update
the Wrench definition to include that component consistently with the
BaseCrowbar example.
🧹 Nitpick comments (6)
Resources/Prototypes/Entities/Objects/Tools/crowbars.yml (1)

191-192: Лишние пустые строки в конце файла.

Добавлены две пустые строки в конце файла. Незначительно, но лучше оставить ровно одну завершающую строку для единообразия.

Resources/Prototypes/Entities/Objects/Tools/tools.yml (1)

46-47: Лишняя пустая строка добавлена в блок Wirecutter.

Между StaticPrice и следующей сущностью добавлена дополнительная пустая строка (строка 47). Косметическое изменение, но поскольку файл находится вне /ADT/, любые изменения в официальном коде желательно минимизировать, чтобы не затруднять upstream-мерджи.

Resources/Prototypes/ADT/Recipes/Crafting/Graphs/Improvised/improvised.yml (1)

89-111: Несогласованность именования graph ID между инструментами.

У монтировки и кусачек graph ID содержит суффикс Graph:

  • ADTHandmadeCrowbarGraph (строка 83)
  • ADTHandmadeWirecutterGraph (строка 99)

А у отвёртки и ключа — нет:

  • ADTHandmadeScrewdriver (строка 91)
  • ADTHandmadeWrench (строка 107)

Ссылки корректны (совпадают с определениями в handmade_tools.yml), но для единообразия рекомендуется привести все ID к одному формату — либо ADTHandmade<Tool>Graph, либо ADTHandmade<Tool>.

Resources/Prototypes/ADT/Recipes/Crafting/Graphs/Improvised/handmade_tools.yml (1)

14-16: Отсутствует пустая строка-разделитель между графами Crowbar и Wirecutter.

Между определениями остальных графов (Wirecutter→Screwdriver, Screwdriver→Wrench) есть пустая строка-разделитель, а между Crowbar и Wirecutter — нет. Для единообразия стоит добавить.

Предлагаемое исправление
   - node: HandmadeCrowbar
     entity: ADTHMCrowbar
+
 `#Wirecutter`
 - type: constructionGraph
Resources/Prototypes/ADT/Entities/Objects/Tools/tools.yml (2)

160-163: Лишний комментарий # ADT add внутри файла из папки /ADT/.

Маркеры ADT-Tweak нужны только для файлов вне /ADT/. Внутри /ADT/ весь код и так относится к ADT — комментарий # ADT add (строка 160) и #ADT add (строка 179) избыточны и только добавляют шум. Особенно строка 179, где #ADT add имеет некорректный отступ (выглядит как под-элемент speedModifier).

Предлагаемое исправление
     speedModifier: 0.4
-    # ADT add
   - type: Construction
     speedModifier: 0.4
-      `#ADT` add
   - type: Construction

169-169: Отсутствует точка в конце описания ADTHMScrewdriver.

Строка 169: description: Оно точно не сломается — нет точки в конце предложения. У ADTHMCrowbar (строка 127) и ADTHMWirecutter (строка 150) точка/вопросительный знак присутствуют.

Comment on lines 119 to +120
- type : SupermatterImmune

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check the current state of the tools.yml file around lines 119-120
fd 'tools.yml' Resources/Prototypes/ADT/Entities/Objects/Tools/ --exec cat -n {} | sed -n "110,130p"

Repository: AdventureTimeSS14/space_station_ADT

Length of output: 672


🏁 Script executed:

#!/bin/bash
# Also check if SupermatterImmune component exists elsewhere in the project
rg -n "SupermatterImmune" Resources/Prototypes/ | head -20

Repository: AdventureTimeSS14/space_station_ADT

Length of output: 2169


🏁 Script executed:

#!/bin/bash
# Check the structure around the specific entity to understand context
fd 'tools.yml' Resources/Prototypes/ADT/Entities/Objects/Tools/ --exec cat -n {} | sed -n "100,135p"

Repository: AdventureTimeSS14/space_station_ADT

Length of output: 1141


Исправить формат YAML: убрать пробел перед двоеточием в type : SupermatterImmune

На строке 119 присутствует форматная ошибка — пробел перед двоеточием: - type : SupermatterImmune вместо - type: SupermatterImmune. Компонент SupermatterImmune корректно присутствует в коде и используется правильно, но требует соответствия YAML-стандартам (без пробела перед двоеточием), как это реализовано во всех остальных случаях в проекте.

🤖 Prompt for AI Agents
In `@Resources/Prototypes/ADT/Entities/Objects/Tools/tools.yml` around lines 119 -
120, Fix the YAML key formatting for the SupermatterImmune component by removing
the space before the colon so the entry reads "- type: SupermatterImmune"
instead of "- type : SupermatterImmune"; update the offending line containing
"type : SupermatterImmune" to match the project's YAML style (no space before
the colon) ensuring consistency with other component entries.

Comment on lines +123 to +143
- type: entity
parent: BaseCrowbar
name: cамодельная монтировка
id: ADTHMCrowbar
description: А это надёжно?..
components:
- type: Sprite
state: icon
- type: Item
storedSprite:
sprite: Objects/Tools/crowbar.rsi
state: storage
- type: MeleeWeapon
wideAnimationRotation: -100
damage:
types:
Blunt: 4
soundHit:
collection: MetalThud
- type: Prying
speedModifier: 0.4
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cd Resources/Prototypes/ADT/Entities/Objects/Tools && \
sed -n '125p;148p;167p;186p' tools.yml | od -c | head -20

Repository: AdventureTimeSS14/space_station_ADT

Length of output: 119


🏁 Script executed:

cd Resources/Prototypes/ADT/Entities/Objects/Tools && \
python3 << 'EOF'
with open('tools.yml', 'r', encoding='utf-8') as f:
    lines = f.readlines()
    target_lines = [124, 147, 166, 185]  # 0-indexed
    
for line_num in target_lines:
    line = lines[line_num]
    if 'name:' in line:
        # Extract the name value
        name_part = line.split('name:')[1].strip()
        print(f"Line {line_num + 1}: {line.strip()}")
        # Check first character
        if name_part:
            first_char = name_part[0]
            print(f"  First char: '{first_char}' U+{ord(first_char):04X}")
            if first_char == 'c':
                print(f"  → This is LATIN LOWERCASE C (U+0063)")
            elif first_char == 'с':
                print(f"  → This is CYRILLIC LOWERCASE C (U+0441)")
        print()
EOF

Repository: AdventureTimeSS14/space_station_ADT

Length of output: 491


Исправить латинскую букву c на кириллическую с во всех названиях инструментов.

Все четыре сущности (строки 125, 148, 167, 186) используют латинскую букву c (U+0063) вместо кириллической с (U+0441). Это создаёт смешанный скрипт в названиях и может вызвать проблемы с поиском и фильтрацией.

Исправления
-  name: cамодельная монтировка
+  name: самодельная монтировка
-  name: cамодельные кусачки
+  name: самодельные кусачки
-  name: cамодельная отвёртка
+  name: самодельная отвёртка
-  name: cамодельный гаечный ключ
+  name: самодельный гаечный ключ
🤖 Prompt for AI Agents
In `@Resources/Prototypes/ADT/Entities/Objects/Tools/tools.yml` around lines 123 -
143, The tool entity names contain a Latin 'c' (U+0063) instead of a Cyrillic
'с' (U+0441); locate each tool entity's name field (for example the value
"cамодельная монтировка" and the other three tool name values) and replace the
Latin 'c' with the Cyrillic 'с' so the names use only Cyrillic characters;
verify the id strings (e.g., ADTHMCrowbar) remain unchanged and run a search for
any other occurrences of the Latin 'c' in tool name values to correct them
consistently.

Comment on lines +134 to +135
#ADT add

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Комментарий #ADT add не соответствует принятому формату и не сопровождается изменениями.

Согласно гайдлайнам, изменения в официальном коде (вне /ADT/) должны быть помечены как # ADT-Tweak-Start / # ADT-Tweak-End (или # ADT-Tweak: для одиночных строк). Здесь #ADT add не следует этому формату. Кроме того, после комментария нет никакого фактического изменения — он выглядит как забытый маркер.

Если предполагалось добавить компонент Construction к базовому Wrench (по аналогии с BaseCrowbar в crowbars.yml, строки 39–43), то он отсутствует. Если нет — стоит удалить этот комментарий.

Предлагаемое исправление: удалить лишний комментарий
   - type: GuideHelp
     guides:
     - Construction
-  `#ADT` add
-

As per coding guidelines: «Все изменения вне папок /ADT/ должны быть прокомментированы примерно так # ADT-Tweak-Start / # ADT-Tweak-End».

📝 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
#ADT add
- type: GuideHelp
guides:
- Construction
🤖 Prompt for AI Agents
In `@Resources/Prototypes/Entities/Objects/Tools/tools.yml` around lines 134 -
135, Remove or correct the stray comment marker "#ADT add" in tools.yml: either
delete it if no change was intended, or replace it with the proper ADT tweak
format ("# ADT-Tweak-Start"/"# ADT-Tweak-End" or "# ADT-Tweak:") and add the
corresponding code if you intended to attach a Construction component to the
base Wrench (mirror the pattern used for BaseCrowbar in crowbars.yml for the
Construction addition). Ensure the change uses the exact marker strings and, if
adding the Construction component, update the Wrench definition to include that
component consistently with the BaseCrowbar example.

Copy link
Collaborator

@Unlumy Unlumy left a comment

Choose a reason for hiding this comment

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

ADTHM - плохое сокращение в ID, т.к. не интуитивное

лучше напиши полностью HandMade т.к. так будет корректнее
Плюсом наверное лучше спрайты поменять
Комментарии поподробнее распиши, пожалуйста а не просто #ADT add посреди ничего у визов

@Unlumy
Copy link
Collaborator

Unlumy commented Feb 23, 2026

@NekoSyndicateNihon да, не быстро, но главное, что ревью тебе сделали

@Darkiich
Copy link
Collaborator

@NekoSyndicateNihon Ревью будет выполняться?

…ndmade_tools.yml

Co-authored-by: Unlumination <144041835+Unlumy@users.noreply.github.com>
NekoSyndicateNihon and others added 4 commits February 27, 2026 15:13
Co-authored-by: Unlumination <144041835+Unlumy@users.noreply.github.com>
Co-authored-by: Unlumination <144041835+Unlumy@users.noreply.github.com>
Co-authored-by: Unlumination <144041835+Unlumy@users.noreply.github.com>
Co-authored-by: Unlumination <144041835+Unlumy@users.noreply.github.com>
@NekoSyndicateNihon
Copy link
Contributor Author

да-да-да, я просто почту и гит не проверял

@NekoSyndicateNihon
Copy link
Contributor Author

вроде всё принял

@NekoSyndicateNihon
Copy link
Contributor Author

в следующий, я пожалуй оставлю свой дискорд в пулл реквесте, чтобы меня отмечали, если что-то не так

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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@Resources/Prototypes/ADT/Recipes/Crafting/Graphs/Improvised/handmade_tools.yml`:
- Line 31: The final nodes' entity IDs are incorrect: replace the values
ADTHMWirecutter, ADTHMScrewdriver, and ADTHMWrench with the prototype IDs that
follow the project's naming convention (ADTHandMade...); update the three
occurrences (the final node entries currently using ADTHM*) to the matching
ADTHandMade* IDs used by the tool prototypes so the graph resolves the correct
crafted entities.

ℹ️ Review info

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fbee71e and 2ea5bd7.

📒 Files selected for processing (2)
  • Resources/Prototypes/ADT/Entities/Objects/Tools/tools.yml
  • Resources/Prototypes/ADT/Recipes/Crafting/Graphs/Improvised/handmade_tools.yml

amount: 1
doAfter: 1
- node: HandmadeWirecutter
entity: ADTHMWirecutter
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Исправить entity в финальных нодах графов.

На Line 31, Line 49 и Line 67 указаны ADTHMWirecutter / ADTHMScrewdriver / ADTHMWrench, но в прототипах инструментов используются id формата ADTHandMade*. В текущем виде крафт может создавать не те сущности или не резолвить прототип.

Предлагаемое исправление
-  - node: HandmadeWirecutter
-    entity: ADTHMWirecutter
+  - node: HandmadeWirecutter
+    entity: ADTHandMadeWirecutter
@@
-  - node: HandmadeScrewdriver
-    entity: ADTHMScrewdriver
+  - node: HandmadeScrewdriver
+    entity: ADTHandMadeScrewdriver
@@
-  - node: HandmadeWrench
-    entity: ADTHMWrench
+  - node: HandmadeWrench
+    entity: ADTHandMadeWrench

Also applies to: 49-49, 67-67

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@Resources/Prototypes/ADT/Recipes/Crafting/Graphs/Improvised/handmade_tools.yml`
at line 31, The final nodes' entity IDs are incorrect: replace the values
ADTHMWirecutter, ADTHMScrewdriver, and ADTHMWrench with the prototype IDs that
follow the project's naming convention (ADTHandMade...); update the three
occurrences (the final node entries currently using ADTHM*) to the matching
ADTHandMade* IDs used by the tool prototypes so the graph resolves the correct
crafted entities.

Copy link
Collaborator

@Red-Lis Red-Lis left a comment

Choose a reason for hiding this comment

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

Локализации вообще нету


- type: entity
parent: BaseCrowbar
name: cамодельная монтировка
Copy link
Collaborator

Choose a reason for hiding this comment

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

Почему в прототипах названия и описания на русском?
Тут должно быть на инглише, а локаль уже лежит в папке с ней

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Смысл от локализации, если это локально наша сборка? Можно и так написать спокойно

Copy link
Collaborator

@Red-Lis Red-Lis Feb 27, 2026

Choose a reason for hiding this comment

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

Стандарт.
Так делали - так и будут делать.
Причин куча, но считай, что стандарт самое главное.
Мне правда лень расписывать всё.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

а чей стандарт? Визардов?

Copy link
Collaborator

@Schrodinger71 Schrodinger71 Feb 27, 2026

Choose a reason for hiding this comment

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

Стандарт данного форка, будьте добры пожалуйста придерживаться его

parent: BaseCrowbar
name: cамодельная монтировка
id: ADTHandMadeCrowbar
description: А это надёжно?..
Copy link
Collaborator

Choose a reason for hiding this comment

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

Оно же


- type: entity
parent: Wirecutter
name: cамодельные кусачки
Copy link
Collaborator

Choose a reason for hiding this comment

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

Опять

parent: Wirecutter
name: cамодельные кусачки
id: ADTHandMadeWirecutter
description: Это кусачки или щипчики?
Copy link
Collaborator

Choose a reason for hiding this comment

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

Опять


- type: entity
parent: Screwdriver
name: cамодельная отвёртка
Copy link
Collaborator

Choose a reason for hiding this comment

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

Опять

parent: Screwdriver
name: cамодельная отвёртка
id: ADTHandMadeScrewdriver
description: Оно точно не сломается
Copy link
Collaborator

Choose a reason for hiding this comment

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

И опять

qualities:
- Cutting
speedModifier: 0.4
# ADT add
Copy link
Collaborator

Choose a reason for hiding this comment

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

Это папка ADT
Зачем комент, что это добавление от нас?
Типо похуй, но в наших же папках нет смысла оставлять

- type: GuideHelp
guides:
- Construction
#ADT add
Copy link
Collaborator

Choose a reason for hiding this comment

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

А это тут зачем?..
Как и пустые строки
Изменений же ноль

Copy link
Collaborator

Choose a reason for hiding this comment

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

Видимо напутал что-то
а так да, стоит убрать

@Red-Lis
Copy link
Collaborator

Red-Lis commented Feb 27, 2026

@Unlumy
Пенсия, своё глянь

Copy link
Collaborator

@Schrodinger71 Schrodinger71 left a comment

Choose a reason for hiding this comment

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

поправить style

добавлены лишнии пустые строки, их убрать
Нет локализации в Local/ADT/ .. .. .. .ftl

- type: GuideHelp
guides:
- Construction
#ADT add
Copy link
Collaborator

Choose a reason for hiding this comment

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

Видимо напутал что-то
а так да, стоит убрать

Comment on lines +191 to +192


Copy link
Collaborator

Choose a reason for hiding this comment

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

тут тоже пустые строки новые

Copy link
Collaborator

@Unlumy Unlumy left a comment

Choose a reason for hiding this comment

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

Ну, мое ревью выполнено.

Осталась локаль, починка тестов и чужие ревью

Copy link
Collaborator

@Darkiich Darkiich left a comment

Choose a reason for hiding this comment

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

После всех выполненных ревью тоже посмотрю

@Armorkillerd
Copy link
Contributor

#2436

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants