From 3e3ca59850f1a21f2bb8e249455d655ec6b63d2c Mon Sep 17 00:00:00 2001 From: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> Date: Sat, 14 Dec 2024 00:09:02 -0400 Subject: [PATCH 01/25] Fix Interact Verb (#1346) Finally fixed it. Interact verbs weren't appearing because this is required in BaseMob. --- Resources/Prototypes/Entities/Mobs/base.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Resources/Prototypes/Entities/Mobs/base.yml b/Resources/Prototypes/Entities/Mobs/base.yml index da413c339d..c98608fabb 100644 --- a/Resources/Prototypes/Entities/Mobs/base.yml +++ b/Resources/Prototypes/Entities/Mobs/base.yml @@ -47,13 +47,6 @@ - type: RequireProjectileTarget active: False - type: AnimatedEmotes - -- type: entity - save: false - id: MobPolymorphable - abstract: true - components: - - type: Polymorphable - type: OwnInteractionVerbs allowedVerbs: [] # TODO: define something here, or don't. From f0e4612612fe18a126cdf47d712b63bc083b5483 Mon Sep 17 00:00:00 2001 From: Kyoth25f <41803390+Kyoth25f@users.noreply.github.com> Date: Sat, 14 Dec 2024 01:22:16 -0300 Subject: [PATCH 02/25] Fix Ripley Hydraulic Clamp (#1344) # Description Fix a bug in `MechGrabberSystem` causing the hydraulic clamps in Ripley to drop items far away. ---

Media

https://github.com/user-attachments/assets/d2c8e951-e391-42d7-b45d-78a275dc8bf2

--- # Changelog :cl: - fix: Hydraulic clamps now drop entities correctly --- .../Mech/Equipment/EntitySystems/MechGrabberSystem.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs index e04499e2ab..194ef532ba 100644 --- a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs +++ b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs @@ -83,10 +83,9 @@ public void RemoveItem(EntityUid uid, EntityUid mech, EntityUid toRemove, MechGr var xform = Transform(toRemove); _transform.AttachToGridOrMap(toRemove, xform); var (mechPos, mechRot) = _transform.GetWorldPositionRotation(mechxform); - var toRemoveWorldPos = _transform.GetWorldPosition(xform); var offset = mechPos + mechRot.RotateVec(component.DepositOffset); - _transform.SetWorldPositionRotation(toRemove, toRemoveWorldPos + offset, Angle.Zero); + _transform.SetWorldPositionRotation(toRemove, offset, Angle.Zero); _mech.UpdateUserInterface(mech); } @@ -157,7 +156,7 @@ private void OnInteract(EntityUid uid, MechGrabberComponent component, UserActiv args.Handled = true; var audio = _audio.PlayPvs(component.GrabSound, uid); - + if (audio == null) return; From 6dcb367adb769f51bcaf1a647a4ca6c886a10be7 Mon Sep 17 00:00:00 2001 From: SimpleStation Changelogs Date: Sat, 14 Dec 2024 04:22:44 +0000 Subject: [PATCH 03/25] Automatic Changelog Update (#1344) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 60540bb9f6..fcc6810c65 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -8627,3 +8627,10 @@ Entries: id: 6574 time: '2024-12-11T23:26:33.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1335 +- author: Kyoth25f + changes: + - type: Fix + message: Hydraulic clamps now drop entities correctly + id: 6575 + time: '2024-12-14T04:22:17.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1344 From c4c3e4283ae077fd0f55e4cce31710f31de046f7 Mon Sep 17 00:00:00 2001 From: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> Date: Sat, 14 Dec 2024 14:09:00 -0400 Subject: [PATCH 04/25] Salvage Magnet UI and Character Switching Height/Width Bug Fix (#1347) # Description i fixed it also added a button "Connect & Go to Lobby" for people testing lobby stuff! Resolves #1131 --- # Changelog :cl: - fix: Fixed the bug where switching characters made your width/height change to incorrect values. - fix: Fixed the salvage magnet opening ten times. --------- Signed-off-by: sleepyyapril <123355664+sleepyyapril@users.noreply.github.com> --- .../Lobby/UI/HumanoidProfileEditor.xaml.cs | 32 +++++++++++-------- Content.Client/MainMenu/MainMenu.cs | 26 +++++++++++++-- .../MainMenu/UI/MainMenuControl.xaml | 5 +++ .../UI/SalvageMagnetBoundUserInterface.cs | 4 +-- .../Locale/en-US/main-menu/main-menu.ftl | 1 + 5 files changed, 51 insertions(+), 17 deletions(-) diff --git a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs index f23fd6b4a0..ce14882d16 100644 --- a/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs +++ b/Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs @@ -95,7 +95,8 @@ public HumanoidProfileEditor( IPlayerManager playerManager, IPrototypeManager prototypeManager, JobRequirementsManager requirements, - MarkingManager markings) + MarkingManager markings + ) { RobustXamlLoader.Load(this); _cfgManager = cfgManager; @@ -114,7 +115,8 @@ public HumanoidProfileEditor( SaveButton.OnPressed += args => { Save?.Invoke(); }; ResetButton.OnPressed += args => { - SetProfile((HumanoidCharacterProfile?) _preferencesManager.Preferences?.SelectedCharacter, + SetProfile( + (HumanoidCharacterProfile?) _preferencesManager.Preferences?.SelectedCharacter, _preferencesManager.Preferences?.SelectedCharacterIndex); }; @@ -193,12 +195,11 @@ public HumanoidProfileEditor( #endregion Species - #region Height + #region Height and Width var prototype = _species.Find(x => x.ID == Profile?.Species) ?? _species.First(); UpdateHeightWidthSliders(); - UpdateDimensions(SliderUpdate.Both); HeightSlider.OnValueChanged += _ => UpdateDimensions(SliderUpdate.Height); WidthSlider.OnValueChanged += _ => UpdateDimensions(SliderUpdate.Width); @@ -492,7 +493,7 @@ public void RefreshFlavorText() if (_flavorText != null) return; - _flavorText = new FlavorText.FlavorText(); + _flavorText = new(); _flavorText.OnFlavorTextChanged += OnFlavorTextChange; _flavorTextEdit = _flavorText.CFlavorTextInput; CTabContainer.AddTab(_flavorText, Loc.GetString("humanoid-profile-editor-flavortext-tab")); @@ -763,11 +764,11 @@ public void RefreshJobs() foreach (var job in jobs) { var jobContainer = new BoxContainer { Orientation = LayoutOrientation.Horizontal, }; - var selector = new RequirementsSelector { Margin = new Thickness(3f, 3f, 3f, 0f) }; + var selector = new RequirementsSelector { Margin = new(3f, 3f, 3f, 0f) }; var icon = new TextureRect { - TextureScale = new Vector2(2, 2), + TextureScale = new(2, 2), VerticalAlignment = VAlignment.Center }; var jobIcon = _prototypeManager.Index(job.Icon); @@ -1349,21 +1350,26 @@ private void UpdateSpawnPriorityControls() private void UpdateHeightWidthSliders() { + if (Profile is null) + return; + var species = _species.Find(x => x.ID == Profile?.Species) ?? _species.First(); HeightSlider.MinValue = species.MinHeight; HeightSlider.MaxValue = species.MaxHeight; - HeightSlider.Value = Profile?.Height ?? species.DefaultHeight; + HeightSlider.SetValueWithoutEvent(Profile?.Height ?? species.DefaultHeight); WidthSlider.MinValue = species.MinWidth; WidthSlider.MaxValue = species.MaxWidth; - WidthSlider.Value = Profile?.Width ?? species.DefaultWidth; + WidthSlider.SetValueWithoutEvent(Profile?.Width ?? species.DefaultWidth); var height = MathF.Round(species.AverageHeight * HeightSlider.Value); HeightLabel.Text = Loc.GetString("humanoid-profile-editor-height-label", ("height", (int) height)); var width = MathF.Round(species.AverageWidth * WidthSlider.Value); WidthLabel.Text = Loc.GetString("humanoid-profile-editor-width-label", ("width", (int) width)); + + UpdateDimensions(SliderUpdate.Both); } private enum SliderUpdate @@ -1375,9 +1381,10 @@ private enum SliderUpdate private void UpdateDimensions(SliderUpdate updateType) { - var species = _species.Find(x => x.ID == Profile?.Species) ?? _species.First(); + if (Profile == null) + return; - if (Profile == null) return; + var species = _species.Find(x => x.ID == Profile?.Species) ?? _species.First(); var heightValue = Math.Clamp(HeightSlider.Value, species.MinHeight, species.MaxHeight); var widthValue = Math.Clamp(WidthSlider.Value, species.MinWidth, species.MaxWidth); @@ -1386,13 +1393,12 @@ private void UpdateDimensions(SliderUpdate updateType) if (updateType == SliderUpdate.Height || updateType == SliderUpdate.Both) if (ratio < 1 / sizeRatio || ratio > sizeRatio) - widthValue = heightValue / (ratio < 1 / sizeRatio ? (1 / sizeRatio) : sizeRatio); + widthValue = heightValue * (ratio < 1 / sizeRatio ? (1 / sizeRatio) : sizeRatio); if (updateType == SliderUpdate.Width || updateType == SliderUpdate.Both) if (ratio < 1 / sizeRatio || ratio > sizeRatio) heightValue = widthValue * (ratio < 1 / sizeRatio ? (1 / sizeRatio) : sizeRatio); - heightValue = Math.Clamp(heightValue, species.MinHeight, species.MaxHeight); widthValue = Math.Clamp(widthValue, species.MinWidth, species.MaxWidth); diff --git a/Content.Client/MainMenu/MainMenu.cs b/Content.Client/MainMenu/MainMenu.cs index 43c5bfe567..58d94adf22 100644 --- a/Content.Client/MainMenu/MainMenu.cs +++ b/Content.Client/MainMenu/MainMenu.cs @@ -7,6 +7,7 @@ using Robust.Client.UserInterface.Controls; using Robust.Shared; using Robust.Shared.Configuration; +using Robust.Shared.Console; using Robust.Shared.Network; using Robust.Shared.Utility; using UsernameHelpers = Robust.Shared.AuthLib.UsernameHelpers; @@ -25,9 +26,11 @@ public sealed class MainScreen : Robust.Client.State.State [Dependency] private readonly IGameController _controllerProxy = default!; [Dependency] private readonly IResourceCache _resourceCache = default!; [Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!; + [Dependency] private readonly IConsoleHost _console = default!; private MainMenuControl _mainMenuControl = default!; private bool _isConnecting; + private bool _shouldGoLobby; // ReSharper disable once InconsistentNaming private static readonly Regex IPv6Regex = new(@"\[(.*:.*:.*)](?::(\d+))?"); @@ -38,15 +41,27 @@ protected override void Startup() _mainMenuControl = new MainMenuControl(_resourceCache, _configurationManager); _userInterfaceManager.StateRoot.AddChild(_mainMenuControl); + _client.PlayerJoinedGame += OnPlayerJoinedGame; + _mainMenuControl.QuitButton.OnPressed += QuitButtonPressed; _mainMenuControl.OptionsButton.OnPressed += OptionsButtonPressed; _mainMenuControl.DirectConnectButton.OnPressed += DirectConnectButtonPressed; + _mainMenuControl.GoToLobbyButton.OnPressed += GoToLobbyButtonPressed; _mainMenuControl.AddressBox.OnTextEntered += AddressBoxEntered; _mainMenuControl.ChangelogButton.OnPressed += ChangelogButtonPressed; _client.RunLevelChanged += RunLevelChanged; } + private void OnPlayerJoinedGame(object? sender, PlayerEventArgs e) + { + if (_shouldGoLobby) + { + _console.ExecuteCommand("golobby"); + _shouldGoLobby = false; + } + } + /// protected override void Shutdown() { @@ -77,12 +92,18 @@ private void DirectConnectButtonPressed(BaseButton.ButtonEventArgs args) TryConnect(input.Text); } + private void GoToLobbyButtonPressed(BaseButton.ButtonEventArgs obj) + { + var input = _mainMenuControl.AddressBox; + TryConnect(input.Text); + + _shouldGoLobby = true; + } + private void AddressBoxEntered(LineEdit.LineEditEventArgs args) { if (_isConnecting) - { return; - } TryConnect(args.Text); } @@ -185,6 +206,7 @@ private void _setConnectingState(bool state) { _isConnecting = state; _mainMenuControl.DirectConnectButton.Disabled = state; + _mainMenuControl.GoToLobbyButton.Disabled = state; } } } diff --git a/Content.Client/MainMenu/UI/MainMenuControl.xaml b/Content.Client/MainMenu/UI/MainMenuControl.xaml index d6c3f4b941..e0242300fc 100644 --- a/Content.Client/MainMenu/UI/MainMenuControl.xaml +++ b/Content.Client/MainMenu/UI/MainMenuControl.xaml @@ -30,6 +30,11 @@ Text="{Loc 'main-menu-direct-connect-button'}" TextAlign="Center" StyleIdentifier="mainMenu"/> +