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 = new LatheMenu(this);
|
||||||
_menu.OnClose += Close;
|
_menu.OnClose += Close;
|
||||||
|
|
||||||
|
|
||||||
_menu.OnServerListButtonPressed += _ =>
|
_menu.OnServerListButtonPressed += _ =>
|
||||||
{
|
{
|
||||||
SendMessage(new ConsoleServerSelectionMessage());
|
SendPredictedMessage(new ConsoleServerSelectionMessage());
|
||||||
};
|
};
|
||||||
|
|
||||||
_menu.RecipeQueueAction += (recipe, amount) =>
|
_menu.RecipeQueueAction += (recipe, amount) =>
|
||||||
{
|
{
|
||||||
SendMessage(new LatheQueueRecipeMessage(recipe, amount));
|
SendPredictedMessage(new LatheQueueRecipeMessage(recipe, amount));
|
||||||
};
|
};
|
||||||
|
|
||||||
_menu.OpenCenteredRight();
|
_menu.OpenCenteredRight();
|
||||||
@@ -54,8 +53,10 @@ namespace Content.Client.Lathe.UI
|
|||||||
protected override void Dispose(bool disposing)
|
protected override void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
base.Dispose(disposing);
|
base.Dispose(disposing);
|
||||||
|
|
||||||
if (!disposing)
|
if (!disposing)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_menu?.Dispose();
|
_menu?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,9 @@ public sealed class MeatyOreUIController : UIController
|
|||||||
{
|
{
|
||||||
base.FrameUpdate(args);
|
base.FrameUpdate(args);
|
||||||
|
|
||||||
if(!_buttonLoaded) return;
|
if (!_buttonLoaded)
|
||||||
|
return;
|
||||||
|
|
||||||
var shouldBeVisible = CheckButtonVisibility();
|
var shouldBeVisible = CheckButtonVisibility();
|
||||||
MeatyOreButton!.Visible = shouldBeVisible;
|
MeatyOreButton!.Visible = shouldBeVisible;
|
||||||
}
|
}
|
||||||
@@ -51,13 +53,19 @@ public sealed class MeatyOreUIController : UIController
|
|||||||
|
|
||||||
private bool CheckButtonVisibility()
|
private bool CheckButtonVisibility()
|
||||||
{
|
{
|
||||||
if(!_sponsorsManager.TryGetInfo(out var sponsor)) return false;
|
if (!_sponsorsManager.TryGetInfo(out var sponsor))
|
||||||
if(sponsor?.Tier == null || sponsor?.MeatyOreCoin == 0) return false;
|
return false;
|
||||||
|
|
||||||
var controlledEntity = _playerManager!.LocalPlayer!.ControlledEntity;
|
if (sponsor.Tier == null || sponsor.MeatyOreCoin == 0)
|
||||||
if(controlledEntity == null) return false;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public sealed partial class ChangelingSystem
|
|||||||
|
|
||||||
private void OnShop(EntityUid uid, SubdermalImplantComponent component, ChangelingShopActionEvent args)
|
private void OnShop(EntityUid uid, SubdermalImplantComponent component, ChangelingShopActionEvent args)
|
||||||
{
|
{
|
||||||
if(!TryComp<StoreComponent>(uid, out var store))
|
if (!TryComp<StoreComponent>(uid, out var store))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_storeSystem.ToggleUi(args.Performer, uid, store);
|
_storeSystem.ToggleUi(args.Performer, uid, store);
|
||||||
|
|||||||
@@ -309,7 +309,7 @@ public sealed class PlayTimeTrackingManager : IPlayTimeTrackingManager, ISharedP
|
|||||||
var data = new PlayTimeData();
|
var data = new PlayTimeData();
|
||||||
_playTimeData.Add(session, data);
|
_playTimeData.Add(session, data);
|
||||||
|
|
||||||
var playTimes = await _db.GetPlayTimes(session.UserId, cancel);
|
var playTimes = await _db.GetPlayTimes(session.UserId);
|
||||||
cancel.ThrowIfCancellationRequested();
|
cancel.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
foreach (var timer in playTimes)
|
foreach (var timer in playTimes)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Content.Server.Chat.Managers;
|
using Content.Server.Chat.Managers;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
@@ -29,6 +30,7 @@ using Robust.Shared.Configuration;
|
|||||||
using Robust.Shared.Map;
|
using Robust.Shared.Map;
|
||||||
using Robust.Shared.Network;
|
using Robust.Shared.Network;
|
||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
namespace Content.Server._White.MeatyOre;
|
namespace Content.Server._White.MeatyOre;
|
||||||
|
|
||||||
@@ -46,6 +48,7 @@ public sealed class MeatyOreStoreSystem : EntitySystem
|
|||||||
[Dependency] private readonly SharedJobSystem _jobSystem = default!;
|
[Dependency] private readonly SharedJobSystem _jobSystem = default!;
|
||||||
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
[Dependency] private readonly PopupSystem _popupSystem = default!;
|
||||||
[Dependency] private readonly GameTicker _gameTicker = default!;
|
[Dependency] private readonly GameTicker _gameTicker = default!;
|
||||||
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
|
|
||||||
private HttpClient _httpClient = default!;
|
private HttpClient _httpClient = default!;
|
||||||
private string _apiUrl = default!;
|
private string _apiUrl = default!;
|
||||||
@@ -149,7 +152,7 @@ public sealed class MeatyOreStoreSystem : EntitySystem
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
_pvsOverrideSystem.AddSessionOverride(storeEntity.Value, playerSession);
|
_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)
|
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)
|
private (EntityUid, StoreComponent) CreateStore(NetUserId userId, int balance)
|
||||||
{
|
{
|
||||||
var session = _playerManager.GetSessionById(userId);
|
var session = _playerManager.GetSessionById(userId);
|
||||||
var storeEntity = _entityManager.SpawnEntity("StoreMeatyOreEntity", MapCoordinates.Nullspace);
|
var user = session.AttachedEntity!;
|
||||||
var storeComponent = Comp<StoreComponent>(storeEntity);
|
|
||||||
|
|
||||||
_storeSystem.InitializeFromPreset(StorePresetPrototype, storeEntity, storeComponent);
|
var storeComponent = Comp<StoreComponent>(user.Value);
|
||||||
|
|
||||||
|
_storeSystem.InitializeFromPreset(StorePresetPrototype, user.Value, storeComponent);
|
||||||
storeComponent.Balance.Clear();
|
storeComponent.Balance.Clear();
|
||||||
|
|
||||||
_storeSystem.TryAddCurrency(new Dictionary<string, FixedPoint2> { { MeatyOreCurrencyPrototype, balance } },
|
_storeSystem.TryAddCurrency(new Dictionary<string, FixedPoint2> { { MeatyOreCurrencyPrototype, balance } },
|
||||||
storeEntity, storeComponent);
|
user.Value, storeComponent);
|
||||||
|
|
||||||
_meatyOreStores[userId] = (storeEntity, storeComponent);
|
_meatyOreStores[userId] = (user.Value, storeComponent);
|
||||||
_pvsOverrideSystem.AddSessionOverride(storeEntity, session);
|
|
||||||
|
|
||||||
return (storeEntity, storeComponent);
|
return (user.Value, storeComponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void TryAddRole(EntityUid user, EntityUid target, StoreComponent store, EntityUid storeEntity)
|
private async void TryAddRole(EntityUid user, EntityUid target, StoreComponent store, EntityUid storeEntity)
|
||||||
|
|||||||
@@ -221,8 +221,17 @@
|
|||||||
type: SpellSelectorBUI
|
type: SpellSelectorBUI
|
||||||
enum.CultEmpowerRemoveUiKey.Key:
|
enum.CultEmpowerRemoveUiKey.Key:
|
||||||
type: SpellRemoverBUI
|
type: SpellRemoverBUI
|
||||||
|
enum.StoreUiKey.Key:
|
||||||
|
type: StoreBoundUserInterface
|
||||||
# WD-EDIT END
|
# WD-EDIT END
|
||||||
- type: Puller
|
- type: Puller
|
||||||
|
# WD edit start
|
||||||
|
- type: Store
|
||||||
|
preset: StorePresetMeatyOre
|
||||||
|
balance:
|
||||||
|
MeatyOreCoin: 0
|
||||||
|
- type: IgnorBUIInteractionRange # Oleg kryt
|
||||||
|
# WD edit end
|
||||||
- type: Butcherable
|
- type: Butcherable
|
||||||
butcheringType: Spike # TODO human.
|
butcheringType: Spike # TODO human.
|
||||||
spawned:
|
spawned:
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
materials:
|
materials:
|
||||||
Steel: 250
|
Steel: 250
|
||||||
Plastic: 100
|
Plastic: 100
|
||||||
|
|
||||||
- type: latheRecipe
|
- type: latheRecipe
|
||||||
id: WeaponLaserCarbine
|
id: WeaponLaserCarbine
|
||||||
result: WeaponLaserCarbine
|
result: WeaponLaserCarbine
|
||||||
@@ -390,6 +390,30 @@
|
|||||||
materials:
|
materials:
|
||||||
Steel: 120
|
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
|
- type: latheRecipe
|
||||||
id: ShellShotgunIncendiary
|
id: ShellShotgunIncendiary
|
||||||
result: ShellShotgunIncendiary
|
result: ShellShotgunIncendiary
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
currencyWhitelist:
|
currencyWhitelist:
|
||||||
- MeatyOreCoin
|
- MeatyOreCoin
|
||||||
|
|
||||||
|
# This is unused now
|
||||||
- type: entity
|
- type: entity
|
||||||
id: StoreMeatyOreEntity
|
id: StoreMeatyOreEntity
|
||||||
name: ThisIsDumb
|
name: ThisIsDumb
|
||||||
@@ -32,5 +33,4 @@
|
|||||||
interfaces:
|
interfaces:
|
||||||
enum.StoreUiKey.Key:
|
enum.StoreUiKey.Key:
|
||||||
type: StoreBoundUserInterface
|
type: StoreBoundUserInterface
|
||||||
range: -1
|
|
||||||
- type: IgnorBUIInteractionRange
|
- type: IgnorBUIInteractionRange
|
||||||
|
|||||||
Reference in New Issue
Block a user