Upstream fixes (#664)

* fix weird name saving

* fix item status

* Fix single-user BUIs erroneously closing (#28375)

(cherry picked from commit 08952b467d9b2b2db85cb9ebb4e8b628c0145716)

* fix meatyore shop

* possible playtime fix

* fixes

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
ThereDrD
2024-08-25 01:37:24 +03:00
committed by GitHub
parent dba9565865
commit 1b07a035ce
8 changed files with 67 additions and 22 deletions

View File

@@ -20,15 +20,14 @@ namespace Content.Client.Lathe.UI
_menu = new LatheMenu(this);
_menu.OnClose += Close;
_menu.OnServerListButtonPressed += _ =>
{
SendMessage(new ConsoleServerSelectionMessage());
SendPredictedMessage(new ConsoleServerSelectionMessage());
};
_menu.RecipeQueueAction += (recipe, amount) =>
{
SendMessage(new LatheQueueRecipeMessage(recipe, amount));
SendPredictedMessage(new LatheQueueRecipeMessage(recipe, amount));
};
_menu.OpenCenteredRight();
@@ -54,8 +53,10 @@ namespace Content.Client.Lathe.UI
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing)
return;
_menu?.Dispose();
}
}

View File

@@ -43,7 +43,9 @@ public sealed class MeatyOreUIController : UIController
{
base.FrameUpdate(args);
if(!_buttonLoaded) return;
if (!_buttonLoaded)
return;
var shouldBeVisible = CheckButtonVisibility();
MeatyOreButton!.Visible = shouldBeVisible;
}
@@ -51,13 +53,19 @@ public sealed class MeatyOreUIController : UIController
private bool CheckButtonVisibility()
{
if(!_sponsorsManager.TryGetInfo(out var sponsor)) return false;
if(sponsor?.Tier == null || sponsor?.MeatyOreCoin == 0) return false;
if (!_sponsorsManager.TryGetInfo(out var sponsor))
return false;
var controlledEntity = _playerManager!.LocalPlayer!.ControlledEntity;
if(controlledEntity == null) return false;
if (sponsor.Tier == null || sponsor.MeatyOreCoin == 0)
return false;
if (!_entityManager.HasComponent<HumanoidAppearanceComponent>(controlledEntity)) return false;
var controlledEntity = _playerManager.LocalPlayer!.ControlledEntity;
if (controlledEntity == null)
return false;
if (!_entityManager.HasComponent<HumanoidAppearanceComponent>(controlledEntity))
return false;
return true;
}

View File

@@ -45,7 +45,7 @@ public sealed partial class ChangelingSystem
private void OnShop(EntityUid uid, SubdermalImplantComponent component, ChangelingShopActionEvent args)
{
if(!TryComp<StoreComponent>(uid, out var store))
if (!TryComp<StoreComponent>(uid, out var store))
return;
_storeSystem.ToggleUi(args.Performer, uid, store);

View File

@@ -309,7 +309,7 @@ public sealed class PlayTimeTrackingManager : IPlayTimeTrackingManager, ISharedP
var data = new PlayTimeData();
_playTimeData.Add(session, data);
var playTimes = await _db.GetPlayTimes(session.UserId, cancel);
var playTimes = await _db.GetPlayTimes(session.UserId);
cancel.ThrowIfCancellationRequested();
foreach (var timer in playTimes)

View File

@@ -1,4 +1,5 @@
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Content.Server.Chat.Managers;
using System.Net.Http;
@@ -29,6 +30,7 @@ using Robust.Shared.Configuration;
using Robust.Shared.Map;
using Robust.Shared.Network;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Server._White.MeatyOre;
@@ -46,6 +48,7 @@ public sealed class MeatyOreStoreSystem : EntitySystem
[Dependency] private readonly SharedJobSystem _jobSystem = default!;
[Dependency] private readonly PopupSystem _popupSystem = default!;
[Dependency] private readonly GameTicker _gameTicker = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
private HttpClient _httpClient = default!;
private string _apiUrl = default!;
@@ -149,7 +152,7 @@ public sealed class MeatyOreStoreSystem : EntitySystem
return;
_pvsOverrideSystem.AddSessionOverride(storeEntity.Value, playerSession);
_storeSystem.ToggleUi(playerEntity.Value, storeEntity.Value, storeComponent);
_storeSystem.ToggleUi(playerEntity.Value, storeEntity.Value);
}
private bool TryGetStore(ICommonSession session, out StoreComponent store, [NotNullWhen(true)] out EntityUid? storeEntity)
@@ -187,19 +190,19 @@ public sealed class MeatyOreStoreSystem : EntitySystem
private (EntityUid, StoreComponent) CreateStore(NetUserId userId, int balance)
{
var session = _playerManager.GetSessionById(userId);
var storeEntity = _entityManager.SpawnEntity("StoreMeatyOreEntity", MapCoordinates.Nullspace);
var storeComponent = Comp<StoreComponent>(storeEntity);
var user = session.AttachedEntity!;
_storeSystem.InitializeFromPreset(StorePresetPrototype, storeEntity, storeComponent);
var storeComponent = Comp<StoreComponent>(user.Value);
_storeSystem.InitializeFromPreset(StorePresetPrototype, user.Value, storeComponent);
storeComponent.Balance.Clear();
_storeSystem.TryAddCurrency(new Dictionary<string, FixedPoint2> { { MeatyOreCurrencyPrototype, balance } },
storeEntity, storeComponent);
user.Value, storeComponent);
_meatyOreStores[userId] = (storeEntity, storeComponent);
_pvsOverrideSystem.AddSessionOverride(storeEntity, session);
_meatyOreStores[userId] = (user.Value, storeComponent);
return (storeEntity, storeComponent);
return (user.Value, storeComponent);
}
private async void TryAddRole(EntityUid user, EntityUid target, StoreComponent store, EntityUid storeEntity)

View File

@@ -221,8 +221,17 @@
type: SpellSelectorBUI
enum.CultEmpowerRemoveUiKey.Key:
type: SpellRemoverBUI
enum.StoreUiKey.Key:
type: StoreBoundUserInterface
# WD-EDIT END
- type: Puller
# WD edit start
- type: Store
preset: StorePresetMeatyOre
balance:
MeatyOreCoin: 0
- type: IgnorBUIInteractionRange # Oleg kryt
# WD edit end
- type: Butcherable
butcheringType: Spike # TODO human.
spawned:

View File

@@ -38,7 +38,7 @@
materials:
Steel: 250
Plastic: 100
- type: latheRecipe
id: WeaponLaserCarbine
result: WeaponLaserCarbine
@@ -390,6 +390,30 @@
materials:
Steel: 120
- type: latheRecipe # WD
id: MagazineShotgun
result: MagazineShotgun
category: Ammo
completetime: 5
materials:
Steel: 300
- type: latheRecipe # WD
id: MagazineShotgunSlug
result: MagazineShotgunSlug
category: Ammo
completetime: 5
materials:
Steel: 300
- type: latheRecipe # WD
id: MagazinePistolCaselessRifle
result: MagazinePistolCaselessRifle
category: Ammo
completetime: 5
materials:
Steel: 300
- type: latheRecipe
id: ShellShotgunIncendiary
result: ShellShotgunIncendiary

View File

@@ -19,6 +19,7 @@
currencyWhitelist:
- MeatyOreCoin
# This is unused now
- type: entity
id: StoreMeatyOreEntity
name: ThisIsDumb
@@ -32,5 +33,4 @@
interfaces:
enum.StoreUiKey.Key:
type: StoreBoundUserInterface
range: -1
- type: IgnorBUIInteractionRange