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

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

* refactor

* ещё перевод

* Revert "refactor"

This reverts commit 355c2724c4ed9cd1357661e3ba889a88bdf17db7.

* инверсия условия для проверки наличия прототипа
This commit is contained in:
BIGZi0348
2024-10-26 17:54:11 +03:00
committed by GitHub
parent adba83c08a
commit 288d9c4fc0
4 changed files with 28 additions and 11 deletions

View File

@@ -1,6 +1,7 @@
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
using Robust.Shared.Prototypes;
namespace Content.Server._White.AutoRegenReagent
{
@@ -11,10 +12,10 @@ namespace Content.Server._White.AutoRegenReagent
public string? SolutionName = null; // we'll fail during tests otherwise
[DataField("reagents", required: true)]
public List<string> Reagents = default!;
public List<ProtoId<ReagentPrototype>> Reagents = default!;
[DataField]
public string CurrentReagent = "";
public ProtoId<ReagentPrototype> CurrentReagent = default!;
[DataField]
public int CurrentIndex = 0;

View File

@@ -1,10 +1,11 @@
using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Shared.Chemistry.EntitySystems;
using Content.Server.Chemistry.EntitySystems;
using Content.Server.Popups;
using Content.Shared.Examine;
using Content.Shared.Interaction.Events;
using Content.Shared.Verbs;
using Robust.Shared.Timing;
using Robust.Shared.Prototypes;
namespace Content.Server._White.AutoRegenReagent
{
@@ -13,9 +14,10 @@ namespace Content.Server._White.AutoRegenReagent
/// </summary>
public sealed class AutoRegenReagentSystem : EntitySystem
{
[Dependency] private readonly SolutionContainerSystem _solutionSystem = default!;
[Dependency] private readonly SharedSolutionContainerSystem _solutionSystem = default!;
[Dependency] private readonly PopupSystem _popups = default!;
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
public override void Initialize()
{
@@ -45,7 +47,7 @@ namespace Content.Server._White.AutoRegenReagent
if (autoComp.Solution == null)
return;
_solutionSystem.TryAddReagent(autoComp.Solution.Value, autoComp.CurrentReagent, autoComp.UnitsPerInterval);
_solutionSystem.TryAddReagent(autoComp.Solution.Value, autoComp.CurrentReagent, autoComp.UnitsPerInterval, out _);
}
}
@@ -69,7 +71,8 @@ namespace Content.Server._White.AutoRegenReagent
private void OnExamined(EntityUid uid, AutoRegenReagentComponent component, ExaminedEvent args)
{
args.PushMarkup(Loc.GetString("reagent-name", ("reagent", component.CurrentReagent)));
if (_prototypeManager.TryIndex(component.CurrentReagent, out var reagentProto))
args.PushMarkup(Loc.GetString("reagent-name", ("reagent", reagentProto.LocalizedName)));
}
private void AddSwitchVerb(EntityUid uid, AutoRegenReagentComponent component,
@@ -106,7 +109,7 @@ namespace Content.Server._White.AutoRegenReagent
component.CurrentReagent = component.Reagents[component.CurrentIndex];
}
private string SwitchReagent(AutoRegenReagentComponent component, EntityUid? user = null)
private void SwitchReagent(AutoRegenReagentComponent component, EntityUid? user = null)
{
if (component.CurrentIndex + 1 == component.Reagents.Count)
component.CurrentIndex = 0;
@@ -118,10 +121,14 @@ namespace Content.Server._White.AutoRegenReagent
component.CurrentReagent = component.Reagents[component.CurrentIndex];
if (user != null)
_popups.PopupEntity(Loc.GetString("autoregen-switched", ("reagent", component.CurrentReagent)), user.Value, user.Value);
if (user == null)
return;
if (!_prototypeManager.TryIndex(component.CurrentReagent, out var reagentProto))
return;
_popups.PopupEntity(Loc.GetString("autoregen-switched", ("reagent", reagentProto.LocalizedName)), user.Value, user.Value);
return component.CurrentReagent;
}
}
}

View File

@@ -2,3 +2,4 @@ stack-holder-empty = Тут пусто.
stack-holder = Оно содержит: { $number } { $item }.
autoregen-switched = Реагент сменён на { $reagent }.
reagent-name = Текущий реагент: { $reagent }.
autoreagent-switch = Сменить реагент

View File

@@ -1,6 +1,10 @@
## UI
hypospray-volume-text = Объем: [color=white]{ $currentVolume }/{ $totalVolume }[/color]
hypospray-all-mode-text = Только ввод
hypospray-mobs-only-mode-text = Забор и ввод
hypospray-invalid-text = Ошибка
hypospray-volume-label = Объем: [color=white]{$currentVolume}/{$totalVolume}u[/color]
Mode: [color=white]{$modeString}[/color]
## Entity
@@ -11,3 +15,7 @@ hypospray-component-empty-message = Он пустой!
hypospray-component-feel-prick-message = Вы чувствуете слабый укольчик!
hypospray-component-transfer-already-full-message = { $owner } уже заполнен!
hypospray-cant-inject = Нельзя сделать инъекцию в { $target }!
hypospray-verb-mode-label = Переключить забор из емкостей
hypospray-verb-mode-inject-all = Вы больше не можете производить забор из емкостей.
hypospray-verb-mode-inject-mobs-only = Теперь вы можете производить забор из емкостей.