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:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user