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
Expand Up @@ -16,6 +16,9 @@ protected override void Open()

_window = this.CreateWindow<MiningConsoleWindow>();

_window.AllSetStagePressed += stage =>
SendMessage(new MiningConsoleSetAllStagesMessage(stage));

_window.ToggleModePressed += () =>
SendMessage(new MiningConsoleToggleModeMessage());

Expand Down
15 changes: 15 additions & 0 deletions Content.Client/_Wega/Mining/MiningConsoleWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,21 @@
<customControls:HSeparator StyleClasses="LowDivider" Margin="0 0 0 10"/>
</BoxContainer>

<BoxContainer Orientation="Vertical" VerticalExpand="False" Margin="10">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal" Margin="2 0 2 6">
<Label Text="{Loc 'mining-console-all-stage-title'}" StyleClasses="LabelBig" MinWidth="120"/>
</BoxContainer>
<BoxContainer Orientation="Horizontal" SeparationOverride="6" Margin="2">
<Button Name="AllStage1Button" Text="{Loc 'mining-console-all-stage-1'}" MinSize="124 24"/>
<Button Name="AllStage2Button" Text="{Loc 'mining-console-all-stage-2'}" MinSize="124 24"/>
<Button Name="AllStage3Button" Text="{Loc 'mining-console-all-stage-3'}" MinSize="124 24"/>
</BoxContainer>
</BoxContainer>
</BoxContainer>

<customControls:HSeparator StyleClasses="LowDivider" Margin="0 0 0 10"/>

<BoxContainer Orientation="Vertical" VerticalExpand="False" Margin="10">
<controls:StripeBack>
<Label Text="{Loc 'mining-console-servers'}" HorizontalAlignment="Center" StyleClasses="LabelSubText" Margin="0 4"/>
Expand Down
4 changes: 4 additions & 0 deletions Content.Client/_Wega/Mining/MiningConsoleWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public sealed partial class MiningConsoleWindow : FancyWindow
public Action? ToggleWithdrawPressed;
public Action<NetEntity>? ToggleServerActivationPressed;
public Action<NetEntity, int>? ServerStageChangePressed;
public Action<int>? AllSetStagePressed;

public MiningConsoleWindow()
{
Expand All @@ -24,6 +25,9 @@ public MiningConsoleWindow()
ToggleActivation.OnPressed += _ => ToggleActivationPressed?.Invoke();
RefreshButton.OnPressed += _ => ToggleUpdateRequested?.Invoke();
WithdrawButton.OnPressed += _ => ToggleWithdrawPressed?.Invoke();
AllStage1Button.OnPressed += _ => AllSetStagePressed?.Invoke(1);
AllStage2Button.OnPressed += _ => AllSetStagePressed?.Invoke(2);
AllStage3Button.OnPressed += _ => AllSetStagePressed?.Invoke(3);
}

public void UpdateState(MiningConsoleBoundInterfaceState state)
Expand Down
15 changes: 15 additions & 0 deletions Content.Server/_Wega/Mining/MiningConsoleSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public override void Initialize()
SubscribeLocalEvent<MiningConsoleComponent, MiningConsoleToggleModeMessage>(OnToggleMode);
SubscribeLocalEvent<MiningConsoleComponent, MiningConsoleToggleUpdateMessage>(OnUpdate);
SubscribeLocalEvent<MiningConsoleComponent, MiningConsoleWithdrawMessage>(OnWithdraw);
SubscribeLocalEvent<MiningConsoleComponent, MiningConsoleSetAllStagesMessage>(OnSetAllStages);
}

private void OnInit(EntityUid uid, MiningConsoleComponent comp, MapInitEvent args)
Expand Down Expand Up @@ -82,6 +83,20 @@ private void OnChangeServerStage(Entity<MiningConsoleComponent> entity, ref Mini
}
}

private void OnSetAllStages(Entity<MiningConsoleComponent> entity, ref MiningConsoleSetAllStagesMessage args)
{
var target = Math.Clamp(args.Stage, 1, 3);

var query = EntityQueryEnumerator<MiningServerComponent>();
while (query.MoveNext(out var serverUid, out var server))
{
if (server.MiningStage != target)
SetServerStage(serverUid, target, server);
}

UpdateUi(entity);
}

private void OnUpdate(Entity<MiningConsoleComponent> entity, ref MiningConsoleToggleUpdateMessage arg)
=> UpdateUi(entity);

Expand Down
17 changes: 15 additions & 2 deletions Content.Server/_Wega/Mining/MiningServerSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,16 @@ public override void Update(float frameTime)
while (query.MoveNext(out var uid, out var server, out var consumer))
{
if (server.IsBroken || consumer.ReceivedPower < server.ActualPowerConsumption)
{
{
consumer.DrawRate = 0f;

if (server.IsActive)
{
server.IsActive = false;
UpdateAppearance(uid, server);
_ambient.SetAmbience(uid, false);
}

server.CurrentTemperature = Math.Max(server.CurrentTemperature - 0.145f * frameTime, 293f);
continue;
}
Expand Down Expand Up @@ -81,9 +90,13 @@ public override void Update(float frameTime)

if (server.CurrentTemperature >= server.BreakdownTemperature && !server.IsBroken)
{
server.IsBroken = true;
server.IsActive = false;

consumer.DrawRate = 0f;

UpdateAppearance(uid, server);
_ambient.SetAmbience(uid, false);
server.IsBroken = true;
}
}
}
Expand Down
11 changes: 11 additions & 0 deletions Content.Shared/_Wega/Mining/MiningConsoleUi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,14 @@ public sealed record MiningServerData(
bool IsBroken,
bool IsActive
);

[Serializable, NetSerializable]
public sealed class MiningConsoleSetAllStagesMessage : BoundUserInterfaceMessage
{
public readonly int Stage;

public MiningConsoleSetAllStagesMessage(int stage)
{
Stage = stage;
}
}
7 changes: 6 additions & 1 deletion Resources/Locale/ru-RU/_wega/mining/mining.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,9 @@ mining-server-status-inactive = ВЫКЛЮЧЕН
mining-server-power-on = Вкл
mining-server-power-off = Выкл

mining-server-examined = Заряд запитан на [color=green]{$percent}%[/color].
mining-server-examined = Заряд запитан на [color=green]{$percent}%[/color].

mining-console-all-stage-title = Стадия для всех серверов
mining-console-all-stage-1 = 1
mining-console-all-stage-2 = 2
mining-console-all-stage-3 = 3
Loading