Files
OldThink/Content.Shared/Mobs/Systems/MobStateActionsSystem.cs
BIGZi0348 aabdcec60c Не должно ебануть (#170)
* fix borg (#719)

* Automatic changelog update

* Переводы снаряжения и прочей мелочи в стартовом меню (#720)

* Сумки, мешки и прочее

* Перевод снаряжения

* перевод черт персонажа

* Добавлено ничего

* Automatic changelog update

* Фикс отображения потери мастера для импланта подчинения (#721)

* фикс отображения

* brain damage is real

* я блять запустил райдер ради рефактора одного ифа

* а лучше даже так

* Automatic changelog update

* add coderabbitai config (#722)

* fix (#723)

* Шприц теперь является оружием массового поражения (#724)

* Automatic changelog update

* Пиздец (#725)

Я на это потратил 2 недели

* Automatic changelog update

* Honk FM (#136) (#726)

* Fix Cosmic Temperance и новые песенки в jukebox

* Новая музыка в jucebox x2

Co-authored-by: Vorge7 <vorge228@gmail.com>

* Automatic changelog update

* Флаф (fluff) мне (big_zi_348) (#727)

* Заработал

* brain damage

* fuck (#729)

* Automatic changelog update

* FUCKERS (#732)

* Удаление ненужных суффиксов (#731)

* Перевод захардкукоженной строки (#728)

* Пластырь поможет

* очапятка

* Перевод ревенанта

* Карповый перекат

* Create shakeable-component.ftl

* Криогеника

* Хранилища скафандров

* Update autotranslate-14.ftl

* Update Cyborgs.xml

* Комоды

* Кредиты

* Удалил дубликат

* Информация

* Пластырь миму и клоуну

* Переводы всего

* Перевод аплинка

* Удалил ненужные суффиксы

* Revert "Удалил ненужные суффиксы"

This reverts commit d82f05f30c37ec2c11e5736b91239fe9dd1a4d17.

* Удаление ненужных суффиксов

* Перевод реагентовых слизней

* Перевод аномалий

* Перевод маяков

* Перевод различной мелочи

* Automatic changelog update

* Переводы и правки Гайдов (#730)

* Automatic changelog update

* aaaaa (#733)

* Правка локализации (#737)

* Update ThirstSystem.cs (#736)

* AccessConfiguratorForBorgs (#735)

* Automatic changelog update

* Починил бесконечную сварку (#734)

* Automatic changelog update

* ShowManifestFeature (#738)

* Automatic changelog update

* I LOVE OPENSOURCE

* Изменение размеров милишек (#739)

* Фикс размеров

* Заготовку биты тоже

* Правка

* Automatic changelog update

* Время после взрыва нюки (#740)

* More Fun

* Автоформатирование

* Подкрутка

* Automatic changelog update

* Скальпель в армейские ботинки (#741)

* Automatic changelog update

* DoHeavyAttack stamina check (#742)

* Automatic changelog update

* aaaaaaaaaaaaaaaaaaaaaaaaaaaaa (#743)

* fix retarded code (#744)

* Automatic changelog update

* Локализация (#746)

* Правка мелочей

* Имя клоуну

* Перевод оповещений для РНД

* перевод занавесок

* перевод столов

* Automatic changelog update

* Перевод и обновление кода гипоспрея для боргов (#745)

* Я только хотел перевести...

* refactor

* ещё перевод

* Revert "refactor"

This reverts commit 355c2724c4ed9cd1357661e3ba889a88bdf17db7.

* инверсия условия для проверки наличия прототипа

* Automatic changelog update

* Больше вещей в пояса охраны (#748)

* Подкрутки и докрутки (#749)

* Automatic changelog update

* Добавил отображение защиты от горения и подправил описание защиты от взрывов (#747)

* Добавил отображение защиты от горения

* Update Content.Shared/Clothing/EntitySystems/FireProtectionSystem.cs

Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>

* Update Resources/Locale/ru-RU/_white/info/fire-protection.ftl

Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>

* Правки

* негативный ноль с плавающей точкой

---------

Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>

* Automatic changelog update

* Фикс текстурок внешних шлюзов (#751)

* Микромелочь

* Ещё одна мелочь

* Починка прозрачности

* Automatic changelog update

* the fuck (#752)

* the fuck

* more logs

* avoooo (#753)

* nyaUpdate (#754)

* Merge pull request #756

* nya v1.2

* ahhhh ** всех закопает (#758)

* Ребаланс РНД (#750)

* Третий тир больше нас не остановит

* More less

* Ребаланс

* правочки подправочки

* СКОРАЯ!!! ПОМОГИТЕ!!!

* Automatic changelog update

* Конфета или жизнь (#757)

* Конфета или жизнь

* gremlins invasion

* Я ДОБАВИЛ БОЛЬШЕ МУСОРА НА СТАНЦИЮ!!!

* Переводы (много) (#755)

* Перевод технологий РНД

* Перевод действий поглаживающего характера

* Целая куча мелочей

* Ещё больше мелочей

* Слишком много мелочей

* маленькая мелочь

* unshit some ftl shit

* Automatic changelog update

* [Tweak] Random updates (#760)

* Security random updates

* Engineering random updates

* ERT random updates

* Really random

* Important random update

* Automatic changelog update

* Мелочёчки (#761)

* Automatic changelog update

* optimized network stack (#763)

* [Add] Pouches (#762)

* Add: Pouches base and sprites

* Add: Micro-resprite, pouches in secdrobe

* Minus suffix

* Automatic changelog update

* aaaaa (#765)

* Я как всегда кучу хуйни в один пакет сую (#766)

* Automatic changelog update

* а (#767)

* Automatic changelog update

* fix (#768)

* optimizaaaaaations (#769)

* Переводы (#770)

* Мелочёчки

* А когда ты будешь делать что-то полезное, кроме переводов?

* Я удалил НаноТрейзен

* Automatic changelog update

* fixed dumb shit that nobody cares (#772)

* Automatic changelog update

* Фикс взрывной ручки (#771)

* Automatic changelog update

* угу (#775)

* fix yaica (#773)

* Automatic changelog update

* Revert "fix yaica (#773)" (#776)

This reverts commit 9739d41607.

* fix retard (#777)

* fuck (#780)

* ВНИМАНИЕ!!! ОБНАРУЖЕНЫ УЛИТКИ!!! (#774)

* Automatic changelog update

* Локализация + ЕБУЧИЙ ПИКСЕЛЬ (#778)

* Перевод №1

* Перевод №2

* Пиксель

* сейфы

* сканер аномалий

* Перевод пИИ

* Перевод №3

* Перевод сканера здоровья

* Дионы

* Перевод экспедиций

* Automatic changelog update

* Фиксики работают сверхурочно (#781)

* Automatic changelog update

* Это заняло больше времени, чем я думал (#782)

* Automatic changelog update

---------

Co-authored-by: Jabak <163307958+Jabaks@users.noreply.github.com>
Co-authored-by: RavmorganButOnCocaine <valtos@nextmail.ru>
Co-authored-by: ThereDrD <88589686+ThereDrD0@users.noreply.github.com>
Co-authored-by: Vorge7 <vorge228@gmail.com>
Co-authored-by: Valtos <valtos@spaces.ru>
Co-authored-by: haiwwkes <49613070+rhailrake@users.noreply.github.com>
Co-authored-by: keslik <114428094+keslik1313@users.noreply.github.com>
2024-11-12 20:33:05 +03:00

58 lines
1.9 KiB
C#

using Content.Shared.Actions;
using Content.Shared.Mobs.Components;
namespace Content.Shared.Mobs.Systems;
/// <summary>
/// Adds and removes defined actions when a mob's <see cref="MobState"/> changes.
/// </summary>
public sealed class MobStateActionsSystem : EntitySystem
{
[Dependency] private readonly SharedActionsSystem _actions = default!;
/// <inheritdoc/>
public override void Initialize()
{
SubscribeLocalEvent<MobStateActionsComponent, MobStateChangedEvent>(OnMobStateChanged);
SubscribeLocalEvent<MobStateComponent, ComponentInit>(OnMobStateComponentInit); // WD ahead of wizden
}
private void OnMobStateChanged(EntityUid uid, MobStateActionsComponent component, MobStateChangedEvent args)
{
ComposeActions(uid, component, args.NewMobState); // WD ahead of wizden
}
private void OnMobStateComponentInit(EntityUid uid, MobStateComponent component, ComponentInit args) // WD ahead of wizden
{
if (!TryComp<MobStateActionsComponent>(uid, out var mobStateActionsComp))
return;
ComposeActions(uid, mobStateActionsComp, component.CurrentState);
}
/// <summary>
/// Adds or removes actions from a mob based on mobstate.
/// </summary>
private void ComposeActions(EntityUid uid, MobStateActionsComponent component, MobState newMobState) // WD ahead of wizden
{
if (!TryComp<ActionsComponent>(uid, out var action))
return;
foreach (var act in component.GrantedActions)
{
Del(act);
}
component.GrantedActions.Clear();
if (!component.Actions.TryGetValue(newMobState, out var toGrant))
return;
foreach (var id in toGrant)
{
EntityUid? act = null;
if (_actions.AddAction(uid, ref act, id, uid, action))
component.GrantedActions.Add(act.Value);
}
}
}