Не должно ебануть (#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>
This commit is contained in:
@@ -6,7 +6,7 @@ using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Client.Overlays;
|
||||
|
||||
public sealed class ShowSyndicateIconsSystem : EquipmentHudSystem<ShowSyndicateIconsComponent>
|
||||
public sealed class ShowAntagonistIconsSystem : EquipmentHudSystem<ShowAntagonistIconsComponent>
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
using System.IO.Compression;
|
||||
using Content.Client.Administration.Managers;
|
||||
using Content.Client.Launcher;
|
||||
using Content.Client.MainMenu;
|
||||
using Content.Client.Replay.Spectator;
|
||||
using Content.Client.Replay.UI.Loading;
|
||||
using Content.Client.Stylesheets;
|
||||
using Content.Client.UserInterface.Systems.Chat;
|
||||
using Content.Shared.Chat;
|
||||
using Content.Shared.Effects;
|
||||
@@ -26,8 +24,6 @@ using Robust.Client.Replays.Playback;
|
||||
using Robust.Client.State;
|
||||
using Robust.Client.Timing;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Shared;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.ContentPack;
|
||||
@@ -60,7 +56,7 @@ public sealed class ContentReplayPlaybackManager
|
||||
public bool IsScreenshotMode = false;
|
||||
|
||||
private bool _initialized;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Most recently loaded file, for re-attempting the load with error tolerance.
|
||||
/// Required because the zip reader auto-disposes and I'm too lazy to change it so that
|
||||
@@ -96,32 +92,18 @@ public sealed class ContentReplayPlaybackManager
|
||||
return;
|
||||
}
|
||||
|
||||
ReturnToDefaultState();
|
||||
if (_client.RunLevel == ClientRunLevel.SinglePlayerGame)
|
||||
_client.StopSinglePlayer();
|
||||
|
||||
// Show a popup window with the error message
|
||||
var text = Loc.GetString("replay-loading-failed", ("reason", exception));
|
||||
var box = new BoxContainer
|
||||
{
|
||||
Orientation = BoxContainer.LayoutOrientation.Vertical,
|
||||
Children = {new Label {Text = text}}
|
||||
};
|
||||
|
||||
var popup = new DefaultWindow { Title = "Error!" };
|
||||
popup.Contents.AddChild(box);
|
||||
Action? retryAction = null;
|
||||
Action? cancelAction = null;
|
||||
|
||||
// Add button for attempting to re-load the replay while ignoring some errors.
|
||||
if (!_cfg.GetCVar(CVars.ReplayIgnoreErrors) && LastLoad is {} last)
|
||||
if (!_cfg.GetCVar(CVars.ReplayIgnoreErrors) && LastLoad is { } last)
|
||||
{
|
||||
var button = new Button
|
||||
{
|
||||
Text = Loc.GetString("replay-loading-retry"),
|
||||
StyleClasses = { StyleBase.ButtonCaution }
|
||||
};
|
||||
|
||||
button.OnPressed += _ =>
|
||||
retryAction = () =>
|
||||
{
|
||||
_cfg.SetCVar(CVars.ReplayIgnoreErrors, true);
|
||||
popup.Dispose();
|
||||
|
||||
IReplayFileReader reader = last.Zip == null
|
||||
? new ReplayFileReaderResources(_resMan, last.Folder)
|
||||
@@ -129,11 +111,19 @@ public sealed class ContentReplayPlaybackManager
|
||||
|
||||
_loadMan.LoadAndStartReplay(reader);
|
||||
};
|
||||
|
||||
box.AddChild(button);
|
||||
}
|
||||
|
||||
popup.OpenCentered();
|
||||
// If we have an explicit menu to get back to (e.g. replay browser UI), show a cancel button.
|
||||
if (DefaultState != null)
|
||||
{
|
||||
cancelAction = () =>
|
||||
{
|
||||
_stateMan.RequestStateChange(DefaultState);
|
||||
};
|
||||
}
|
||||
// Switch to a new game state to present the error and cancel/retry options.
|
||||
var state = _stateMan.RequestStateChange<ReplayLoadingFailed>();
|
||||
state.SetData(exception, cancelAction, retryAction);
|
||||
}
|
||||
|
||||
public void ReturnToDefaultState()
|
||||
|
||||
30
Content.Client/Replay/UI/Loading/ReplayLoadingFailed.cs
Normal file
30
Content.Client/Replay/UI/Loading/ReplayLoadingFailed.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using Content.Client.Stylesheets;
|
||||
using Robust.Client.State;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Shared.Utility;
|
||||
namespace Content.Client.Replay.UI.Loading;
|
||||
/// <summary>
|
||||
/// State used to display an error message if a replay failed to load.
|
||||
/// </summary>
|
||||
/// <seealso cref="ReplayLoadingFailedControl"/>
|
||||
/// <seealso cref="ContentReplayPlaybackManager"/>
|
||||
public sealed class ReplayLoadingFailed : State
|
||||
{
|
||||
[Dependency] private readonly IStylesheetManager _stylesheetManager = default!;
|
||||
[Dependency] private readonly IUserInterfaceManager _userInterface = default!;
|
||||
private ReplayLoadingFailedControl? _control;
|
||||
public void SetData(Exception exception, Action? cancelPressed, Action? retryPressed)
|
||||
{
|
||||
DebugTools.Assert(_control != null);
|
||||
_control.SetData(exception, cancelPressed, retryPressed);
|
||||
}
|
||||
protected override void Startup()
|
||||
{
|
||||
_control = new ReplayLoadingFailedControl(_stylesheetManager);
|
||||
_userInterface.StateRoot.AddChild(_control);
|
||||
}
|
||||
protected override void Shutdown()
|
||||
{
|
||||
_control?.Orphan();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
<Control xmlns="https://spacestation14.io"
|
||||
xmlns:pllax="clr-namespace:Content.Client.Parallax">
|
||||
<pllax:ParallaxControl />
|
||||
<Control HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<PanelContainer StyleClasses="AngleRect" />
|
||||
<BoxContainer Orientation="Vertical" SetSize="800 600" Margin="2">
|
||||
<ScrollContainer Name="what" VerticalExpand="True" HScrollEnabled="False" Margin="0 0 0 2" ReturnMeasure="True">
|
||||
<RichTextLabel Name="ReasonLabel" VerticalAlignment="Top" />
|
||||
</ScrollContainer>
|
||||
<Button Name="RetryButton" StyleClasses="Caution" Text="{Loc 'replay-loading-retry'}" Visible="False" />
|
||||
<Button Name="CancelButton" Text="{Loc 'replay-loading-cancel'}" Visible="False" />
|
||||
</BoxContainer>
|
||||
</Control>
|
||||
</Control>
|
||||
@@ -0,0 +1,38 @@
|
||||
using Content.Client.Stylesheets;
|
||||
using Robust.Client.AutoGenerated;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Shared.Utility;
|
||||
namespace Content.Client.Replay.UI.Loading;
|
||||
[GenerateTypedNameReferences]
|
||||
public sealed partial class ReplayLoadingFailedControl : Control
|
||||
{
|
||||
public ReplayLoadingFailedControl(IStylesheetManager stylesheet)
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
Stylesheet = stylesheet.SheetSpace;
|
||||
LayoutContainer.SetAnchorPreset(this, LayoutContainer.LayoutPreset.Wide);
|
||||
}
|
||||
public void SetData(Exception exception, Action? cancelPressed, Action? retryPressed)
|
||||
{
|
||||
ReasonLabel.SetMessage(
|
||||
FormattedMessage.FromUnformatted(Loc.GetString("replay-loading-failed", ("reason", exception))));
|
||||
if (cancelPressed != null)
|
||||
{
|
||||
CancelButton.Visible = true;
|
||||
CancelButton.OnPressed += _ =>
|
||||
{
|
||||
cancelPressed();
|
||||
};
|
||||
}
|
||||
if (retryPressed != null)
|
||||
{
|
||||
RetryButton.Visible = true;
|
||||
RetryButton.OnPressed += _ =>
|
||||
{
|
||||
retryPressed();
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -93,12 +93,12 @@ namespace Content.Client._White.Medical.BodyScanner
|
||||
CurrentThirst.Text = Loc.GetString("body-scanner-console-window-thirst-current-thirst-text",
|
||||
("amount", $"{state.CurrentThirst:f1}"));
|
||||
CurrentThirstStatus.Text = Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-text",
|
||||
("status", Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-" + state.CurrentThirstThreshold)));
|
||||
("status", Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-" + state.CurrentThirstThreshold)));
|
||||
|
||||
CurrentHunger.Text = Loc.GetString("body-scanner-console-window-hunger-current-hunger-text",
|
||||
("amount", $"{state.CurrentHunger:f1}"));
|
||||
CurrentHungerStatus.Text = Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-text",
|
||||
("status", Loc.GetString("body-scanner-console-window-thirst-current-thirst-status-" + state.CurrentHungerThreshold)));
|
||||
("status", Loc.GetString("body-scanner-console-window-hunger-current-hunger-status-" + state.CurrentHungerThreshold)));
|
||||
|
||||
BloodSolutionVolume.Text = Loc.GetString("body-scanner-console-window-blood-solutions-volume-group-text",
|
||||
("amount", $"{state.BloodSolution.Volume.Float():f1}"),
|
||||
@@ -127,6 +127,9 @@ namespace Content.Client._White.Medical.BodyScanner
|
||||
});
|
||||
|
||||
// Third column.
|
||||
if (state.DeadThreshold == FixedPoint2.Zero)
|
||||
state.DeadThreshold = 0.01;
|
||||
|
||||
HealthBar.Value = 1 - (state.TotalDamage / state.DeadThreshold).Float();
|
||||
|
||||
HealthBar.ForegroundStyleBoxOverride = new StyleBoxFlat()
|
||||
|
||||
Reference in New Issue
Block a user