Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update-10/20/2024 #86

Merged
merged 77 commits into from
Oct 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
68682f1
Fix Reverse Engineering UI (#1053)
Aidenkrz Oct 15, 2024
92c22ab
Automatic Changelog Update (#1053)
SimpleStation14 Oct 15, 2024
e98e9ff
Fix Arachne Turning Into Errors when They Take Damage (#1054)
Aidenkrz Oct 15, 2024
3466b39
Automatic Changelog Update (#1054)
SimpleStation14 Oct 15, 2024
db5cfce
Cocoon Sizing Bettering (#1055)
Aidenkrz Oct 15, 2024
0ebdfb0
Automatic Changelog Update (#1055)
SimpleStation14 Oct 15, 2024
1d1e6c9
Update Gax (#1048)
Ichaie Oct 15, 2024
7e1d9c4
Fix Psionic Power Rolling (#1047)
VMSolidus Oct 15, 2024
6a54e8c
Automatic Changelog Update (#1048)
SimpleStation14 Oct 15, 2024
3ddd185
Automatic Changelog Update (#1047)
SimpleStation14 Oct 15, 2024
6cbaf2f
Database Fixes (#1051)
VMSolidus Oct 16, 2024
f09d26c
Fix Crawling on Tables (#1057)
Aidenkrz Oct 16, 2024
7c1ff61
Automatic Changelog Update (#1057)
SimpleStation14 Oct 16, 2024
0865e47
Constrict Height and Width via a Size Ratio & Fix Humanoids Not Havin…
Aidenkrz Oct 16, 2024
344d035
Automatic Changelog Update (#1049)
SimpleStation14 Oct 16, 2024
5eff873
Bluespace and Normality Tweaks/Fixes + Bluespace Part Crafting (#1052)
Aidenkrz Oct 16, 2024
1d9c7a8
Automatic Changelog Update (#1052)
SimpleStation14 Oct 16, 2024
ae58bf4
Fix RSI Validator (#1060)
VMSolidus Oct 16, 2024
549d055
Chirp (#1056)
VMSolidus Oct 16, 2024
5e8b1a3
Automatic Changelog Update (#1056)
SimpleStation14 Oct 16, 2024
f3a3f4e
Fix Forensics Cleaning (#1061)
Mnemotechnician Oct 16, 2024
e8f7c11
Automatic Changelog Update (#1061)
SimpleStation14 Oct 16, 2024
a78775b
Cocoon Cleanup & Minor Bloodsucker Tweaks (#1058)
Aidenkrz Oct 17, 2024
603b86e
Automatic Changelog Update (#1058)
SimpleStation14 Oct 17, 2024
0f73ebf
Cherry-Pick Wizden PR #27960 (#1067)
VMSolidus Oct 17, 2024
f92a126
Update CDN Scripts & Automatically Build Releases (#1097)
DEATHB4DEFEAT Oct 19, 2024
00e374c
Fix the CDN Publish Script Being Unrunnable (#1098)
DEATHB4DEFEAT Oct 19, 2024
fce71cd
Adjust Air Alarm Pressure Thresholds (#996)
zelezniciar1 Oct 19, 2024
a3e467b
Automatic Changelog Update (#996)
SimpleStation14 Oct 19, 2024
0aae220
Personal Ai Languages (#1066)
VMSolidus Oct 19, 2024
7f60931
Fix Melee Contests (#1069)
VMSolidus Oct 19, 2024
fc27a8b
Automatic Changelog Update (#1069)
SimpleStation14 Oct 19, 2024
4c79a6f
Cherry-Pick Wizden PR #28447 (#1077)
VMSolidus Oct 19, 2024
528ef89
Fix Cryptobiolin (#1081)
VMSolidus Oct 19, 2024
4561092
Fix Nicotine Addiction (#1082)
VMSolidus Oct 19, 2024
a390ed7
Fix Too Much Food And Drink (#1083)
VMSolidus Oct 19, 2024
d74f719
Arena Arrivals Dock (#1086)
VMSolidus Oct 19, 2024
f2c5574
Automatic Changelog Update (#1081)
SimpleStation14 Oct 19, 2024
945b103
Cherry-Pick Space-Wizards/Space-Station-14#26001 (#1087)
Mnemotechnician Oct 19, 2024
000b5f4
Fix Mech Weight (#1090)
VMSolidus Oct 19, 2024
0cb7c3f
Pistol Ammo Counter (#1091)
VMSolidus Oct 19, 2024
482d8b3
Stop Harpy Singing On Disconnect (#1079)
VMSolidus Oct 19, 2024
790772b
Fix Add Psionic Power Command (#1095)
VMSolidus Oct 19, 2024
9e57664
Automatic Changelog Update (#1086)
SimpleStation14 Oct 19, 2024
9b77959
Chaplain Bible Loadouts (#1068)
VMSolidus Oct 19, 2024
3e626f6
Glacier Dedicated Arrivals Dock (#1088)
VMSolidus Oct 19, 2024
951e670
Automatic Changelog Update (#1095)
SimpleStation14 Oct 19, 2024
9442d40
Syndicate Listening Outpost Version 2 (#1065)
VMSolidus Oct 19, 2024
057febb
Automatic Changelog Update (#1065)
SimpleStation14 Oct 19, 2024
ba171b9
Fix Steal Hos Weapon Objective (#1084)
VMSolidus Oct 19, 2024
f354284
Automatic Changelog Update (#1084)
SimpleStation14 Oct 19, 2024
15a7be0
Adds TC To Listening Post Operatives (#1062)
gluesniffler Oct 19, 2024
1184e10
Automatic Changelog Update (#1062)
SimpleStation14 Oct 19, 2024
21b7a82
Job Whitelist System (#1093)
FoxxoTrystan Oct 19, 2024
d7de808
Automatic Changelog Update (#1093)
SimpleStation14 Oct 19, 2024
0383090
Various Wielding Fixes (#1078)
VMSolidus Oct 20, 2024
f751947
Automatic Changelog Update (#1078)
SimpleStation14 Oct 20, 2024
9ddd967
Allow Talking Across Atmosphere (#1089)
VMSolidus Oct 20, 2024
6d376a7
Automatic Changelog Update (#1089)
SimpleStation14 Oct 20, 2024
86da406
Fix a Single Petting Interaction Locale (#1106)
Mnemotechnician Oct 20, 2024
b8ed999
[Feature] Generic Radial Selector Menu (#1071)
Remuchi Oct 20, 2024
d1ec52c
Fix Breath Of Life Locale (#1109)
VMSolidus Oct 20, 2024
aec15f8
Automatic Changelog Update (#1109)
SimpleStation14 Oct 20, 2024
2059f59
Shadowkin (#960)
FoxxoTrystan Oct 20, 2024
d2da70e
Automatic Changelog Update (#960)
SimpleStation14 Oct 20, 2024
b7dd765
Remove Pathfinder Latejoin Spawns (#1105)
VMSolidus Oct 20, 2024
e56f6a9
Musician Loadouts (#1108)
VMSolidus Oct 20, 2024
ef5bb68
Automatic Changelog Update (#1105)
SimpleStation14 Oct 20, 2024
5f0f272
Automatic Changelog Update (#1108)
SimpleStation14 Oct 20, 2024
b7215ac
Epistemics Job Localizations (#1094)
VMSolidus Oct 20, 2024
5e575d8
Automatic Changelog Update (#1094)
SimpleStation14 Oct 20, 2024
5c91d23
Revert "Allow Talking Across Atmosphere (#1089)" (#1111)
VMSolidus Oct 20, 2024
62fb1d9
Fix Gax Missing LV Cable (#1112)
VMSolidus Oct 20, 2024
eda5cfb
Automatic Changelog Update (#1112)
SimpleStation14 Oct 20, 2024
d1a2d8e
Fix Arrivals Not Respecting Force Spawn (#1113)
VMSolidus Oct 20, 2024
54893bd
Automatic Changelog Update (#1113)
SimpleStation14 Oct 20, 2024
19860ff
Merge remote-tracking branch 'EE-Master/master' into Update-10/20/2024
VMSolidus Oct 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
- any-glob-to-any-file:
- "**/*.yml"
- all-globs-to-all-files:
- "!Resources/Maps/**/*.yml",
- "!Resources/Maps/**/*.yml"
- "!Resources/Prototypes/Maps/**/*.yml"

"Changes: Workflow":
Expand Down
42 changes: 10 additions & 32 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,39 +41,17 @@ jobs:
- name: Package client
run: dotnet run --project Content.Packaging client --no-wipe-release

- name: Update Build Info
run: Tools/gen_build_info.py

- name: Shuffle files around
run: |
mkdir "release/${{ github.sha }}"
mv release/*.zip "release/${{ github.sha }}"

- name: Upload files to centcomm
uses: appleboy/scp-action@master
with:
host: ${{ secrets.PUBLISH_HOST }}
username: ${{ secrets.PUBLISH_USER }}
key: ${{ secrets.PUBLISH_KEY }}
port: ${{ secrets.PUBLISH_PORT }}
source: "release/${{ github.sha }}"
target: "/var/www/builds.delta-v.org/delta-v/builds/"
strip_components: 1

- name: Update manifest JSON
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.PUBLISH_HOST }}
username: ${{ secrets.PUBLISH_USER }}
key: ${{ secrets.PUBLISH_KEY }}
port: ${{ secrets.PUBLISH_PORT }}
script: /home/deltav/publish/push.ps1 ${{ github.sha }}

- name: Publish changelog (Discord)
run: Tools/actions_changelogs_since_last_run.py
- name: Publish version
run: Tools/publish_multi_request.py
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DISCORD_WEBHOOK_URL: ${{ secrets.CHANGELOG_DISCORD_WEBHOOK }}
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
GITHUB_REPOSITORY: ${{ vars.GITHUB_REPOSITORY }}

# - name: Publish changelog (Discord)
# run: Tools/actions_changelogs_since_last_run.py
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# DISCORD_WEBHOOK_URL: ${{ secrets.CHANGELOG_DISCORD_WEBHOOK }}

- name: Publish changelog (RSS)
run: Tools/actions_changelog_rss.py
Expand Down
11 changes: 11 additions & 0 deletions Content.Client/Administration/UI/DepartmentWhitelistPanel.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<PanelContainer
xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI"
StyleClasses="BackgroundDark"
HorizontalExpand="True"
Margin="4">
<BoxContainer Orientation="Vertical">
<CheckBox Name="Department"/> <!-- Toggles all jobs in the department at once -->
<GridContainer Name="JobsContainer" Columns="4"/> <!-- Populated with each job to toggle individually-->
</BoxContainer>
</PanelContainer>
49 changes: 49 additions & 0 deletions Content.Client/Administration/UI/DepartmentWhitelistPanel.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using Content.Shared.Roles;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;

namespace Content.Client.Administration.UI;

[GenerateTypedNameReferences]
public sealed partial class DepartmentWhitelistPanel : PanelContainer
{
public Action<ProtoId<JobPrototype>, bool>? OnSetJob;

public DepartmentWhitelistPanel(DepartmentPrototype department, IPrototypeManager proto, HashSet<ProtoId<JobPrototype>> whitelists)
{
RobustXamlLoader.Load(this);

var allWhitelisted = true;
var grey = Color.FromHex("#ccc");
foreach (var id in department.Roles)
{
var thisJob = id; // closure capturing funny
var button = new CheckBox();
button.Text = proto.Index<JobPrototype>(id).LocalizedName;
if (!proto.Index<JobPrototype>(id).Whitelisted)
button.Modulate = grey; // Let admins know whitelisting this job is only for futureproofing.
button.Pressed = whitelists.Contains(id);
button.OnPressed += _ => OnSetJob?.Invoke(thisJob, button.Pressed);
JobsContainer.AddChild(button);

allWhitelisted &= button.Pressed;
}

Department.Text = Loc.GetString(department.ID);
Department.Modulate = department.Color;
Department.Pressed = allWhitelisted;
Department.OnPressed += args =>
{
foreach (var id in department.Roles)
{
// only request to whitelist roles that aren't already whitelisted, and vice versa
if (whitelists.Contains(id) != Department.Pressed)
OnSetJob?.Invoke(id, Department.Pressed);
}
};
}
}
40 changes: 40 additions & 0 deletions Content.Client/Administration/UI/JobWhitelistsEui.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
using Content.Client.Eui;
using Content.Shared.Administration;
using Content.Shared.Eui;

namespace Content.Client.Administration.UI;

public sealed class JobWhitelistsEui : BaseEui
{
private JobWhitelistsWindow Window;

public JobWhitelistsEui()
{
Window = new JobWhitelistsWindow();
Window.OnClose += () => SendMessage(new CloseEuiMessage());
Window.OnSetJob += (id, whitelisted) => SendMessage(new SetJobWhitelistedMessage(id, whitelisted));
}

public override void HandleState(EuiStateBase state)
{
if (state is not JobWhitelistsEuiState cast)
return;

Window.HandleState(cast);
}

public override void Opened()
{
base.Opened();

Window.OpenCentered();
}

public override void Closed()
{
base.Closed();

Window.Close();
Window.Dispose();
}
}
11 changes: 11 additions & 0 deletions Content.Client/Administration/UI/JobWhitelistsWindow.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<controls:FancyWindow
xmlns="https://spacestation14.io"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
Title="{Loc player-panel-job-whitelists}" MinSize="750 600">
<BoxContainer Orientation="Vertical">
<Label Name="PlayerName" Margin="4"/>
<ScrollContainer VerticalExpand="True">
<BoxContainer Name="Departments" Orientation="Vertical"/> <!-- Populated with DepartmentWhitelistPanel -->
</ScrollContainer>
</BoxContainer>
</controls:FancyWindow>
46 changes: 46 additions & 0 deletions Content.Client/Administration/UI/JobWhitelistsWindow.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using Content.Client.UserInterface.Controls;
using Content.Shared.Database;
using Content.Shared.Administration;
using Content.Shared.Roles;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;

namespace Content.Client.Administration.UI;

/// <summary>
/// An admin panel to toggle whitelists for individual jobs or entire departments.
/// This should generally be preferred to a blanket whitelist (Whitelisted: True) since
/// being good with a batong doesn't mean you know engineering and vice versa.
/// </summary>
[GenerateTypedNameReferences]
public sealed partial class JobWhitelistsWindow : FancyWindow
{
[Dependency] private readonly IPrototypeManager _proto = default!;

public Action<ProtoId<JobPrototype>, bool>? OnSetJob;

public JobWhitelistsWindow()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);

PlayerName.Text = "???";
}

public void HandleState(JobWhitelistsEuiState state)
{
PlayerName.Text = state.PlayerName;

Departments.RemoveAllChildren();
foreach (var proto in _proto.EnumeratePrototypes<DepartmentPrototype>())
{
var panel = new DepartmentWhitelistPanel(proto, _proto, state.Whitelists);
panel.OnSetJob += (id, whitelisting) => OnSetJob?.Invoke(id, whitelisting);
Departments.AddChild(panel);
}
}
}
33 changes: 33 additions & 0 deletions Content.Client/Cocoon/CocoonSystem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using Content.Shared.Cocoon;
using Content.Shared.Humanoid;
using Robust.Client.GameObjects;
using Robust.Shared.Containers;
using System.Numerics;

namespace Content.Client.Cocoon
{
public sealed class CocoonSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();

SubscribeLocalEvent<CocoonComponent, EntInsertedIntoContainerMessage>(OnCocEntInserted);
}

private void OnCocEntInserted(EntityUid uid, CocoonComponent component, EntInsertedIntoContainerMessage args)
{
if (!TryComp<SpriteComponent>(uid, out var cocoonSprite))
return;

if (TryComp<HumanoidAppearanceComponent>(args.Entity, out var humanoidAppearance)) // If humanoid, use height and width
cocoonSprite.Scale = new Vector2(humanoidAppearance.Width, humanoidAppearance.Height);
else if (!TryComp<SpriteComponent>(args.Entity, out var entSprite))
return;
else if (entSprite.BaseRSI != null) // Set scale based on sprite scale + sprite dimensions. Ideally we would somehow get a bounding box from the sprite size not including transparent pixels, but FUCK figuring that out.
cocoonSprite.Scale = entSprite.Scale * (entSprite.BaseRSI.Size / 32);
else if (entSprite.Scale != cocoonSprite.Scale) // if basersi somehow not found (?) just use scale
cocoonSprite.Scale = entSprite.Scale;
}
}
}
2 changes: 1 addition & 1 deletion Content.Client/FlavorText/FlavorText.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public FlavorText()

var loc = IoCManager.Resolve<ILocalizationManager>();
CFlavorTextInput.Placeholder = new Rope.Leaf(loc.GetString("flavor-text-placeholder"));
CFlavorTextInput.OnKeyBindDown += _ => FlavorTextChanged();
CFlavorTextInput.OnTextChanged += _ => FlavorTextChanged();
}

public void FlavorTextChanged()
Expand Down
19 changes: 18 additions & 1 deletion Content.Client/LateJoin/LateJoinGui.cs
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,24 @@ private void RebuildUI()

jobButton.OnPressed += _ => SelectedId.Invoke((id, jobButton.JobId));

if (!_characterRequirements.CheckRequirementsValid(
if (!_jobRequirements.CheckJobWhitelist(prototype, out var reason))
{
jobButton.Disabled = true;

var tooltip = new Tooltip();
tooltip.SetMessage(reason);
jobButton.TooltipSupplier = _ => tooltip;

jobSelector.AddChild(new TextureRect
{
TextureScale = new Vector2(0.4f, 0.4f),
Stretch = TextureRect.StretchMode.KeepCentered,
Texture = _sprites.Frame0(new SpriteSpecifier.Texture(new ("/Textures/Interface/Nano/lock.svg.192dpi.png"))),
HorizontalExpand = true,
HorizontalAlignment = HAlignment.Right,
});
}
else if (!_characterRequirements.CheckRequirementsValid(
prototype.Requirements ?? new(),
prototype,
(HumanoidCharacterProfile) (_prefs.Preferences?.SelectedCharacter
Expand Down
14 changes: 8 additions & 6 deletions Content.Client/Lobby/LobbyUIController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,8 @@ public override void Initialize()
_requirements.Updated += OnRequirementsUpdated;

_configurationManager.OnValueChanged(CCVars.FlavorText, _ => _profileEditor?.RefreshFlavorText());
_configurationManager.OnValueChanged(CCVars.GameRoleTimers,
_ =>
{
_profileEditor?.RefreshAntags();
_profileEditor?.RefreshJobs();
});
_configurationManager.OnValueChanged(CCVars.GameRoleTimers, _ => RefreshProfileEditor());
_configurationManager.OnValueChanged(CCVars.GameRoleWhitelist, _ => RefreshProfileEditor());

_preferencesManager.OnServerDataLoaded += PreferencesDataLoaded;
}
Expand Down Expand Up @@ -168,6 +164,12 @@ private void RefreshLobbyPreview()
PreviewPanel.SetSummaryText(humanoid.Summary);
}

private void RefreshProfileEditor()
{
_profileEditor?.RefreshAntags();
_profileEditor?.RefreshJobs();
}

private void SaveProfile()
{
DebugTools.Assert(EditedProfile != null);
Expand Down
Loading
Loading