removes beforeserialization hook (#12319)

This commit is contained in:
Paul Ritter
2022-11-03 02:41:12 +01:00
committed by GitHub
parent 6eca66a637
commit c5e5729bd4
14 changed files with 199 additions and 229 deletions

View File

@@ -1,43 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Content.Shared.Gravity;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Client.Gravity
{
[UsedImplicitly]
public sealed class GravityGeneratorVisualizer : AppearanceVisualizer, ISerializationHooks
public sealed class GravityGeneratorVisualizer : AppearanceVisualizer
{
[DataField("spritemap")]
private Dictionary<string, string> _rawSpriteMap = new();
private Dictionary<GravityGeneratorStatus, string> _spriteMap = new();
void ISerializationHooks.BeforeSerialization()
private Dictionary<string, string> _rawSpriteMap
{
_rawSpriteMap = new Dictionary<string, string>();
foreach (var (status, sprite) in _spriteMap)
get => _spriteMap.ToDictionary(x => x.Value.ToString().ToLower(), x => x.Value);
set
{
_rawSpriteMap.Add(status.ToString().ToLower(), sprite);
}
}
void ISerializationHooks.AfterDeserialization()
{
// Get Sprites for each status
foreach (var status in (GravityGeneratorStatus[]) Enum.GetValues(typeof(GravityGeneratorStatus)))
{
if (_rawSpriteMap.TryGetValue(status.ToString().ToLower(), out var sprite))
// Get Sprites for each status
foreach (var status in (GravityGeneratorStatus[]) Enum.GetValues(typeof(GravityGeneratorStatus)))
{
_spriteMap[status] = sprite;
if (value.TryGetValue(status.ToString().ToLower(), out var sprite))
{
_spriteMap[status] = sprite;
}
}
}
}
private Dictionary<GravityGeneratorStatus, string> _spriteMap = new();
[Obsolete("Subscribe to your component being initialised instead.")]
public override void InitializeEntity(EntityUid entity)
{

View File

@@ -1,8 +1,5 @@
using System;
using Content.Shared.Research.Components;
using Content.Shared.Research.Prototypes;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Prototypes;
namespace Content.Client.Research
@@ -21,14 +18,14 @@ namespace Content.Client.Research
if (curState is not TechnologyDatabaseState state) return;
Technologies.Clear();
TechnologyIds.Clear();
var protoManager = IoCManager.Resolve<IPrototypeManager>();
foreach (var techID in state.Technologies)
{
if (!protoManager.TryIndex(techID, out TechnologyPrototype? technology)) continue;
Technologies.Add(technology);
if (!protoManager.HasIndex<TechnologyPrototype>(techID)) continue;
TechnologyIds.Add(techID);
}
OnDatabaseUpdated?.Invoke();

View File

@@ -53,7 +53,7 @@ namespace Content.Client.Research.UI
public bool IsTechnologyUnlocked(TechnologyPrototype technology)
{
return _technologyDatabase?.IsTechnologyUnlocked(technology) ?? false;
return _technologyDatabase?.IsTechnologyUnlocked(technology.ID) ?? false;
}
public bool CanUnlockTechnology(TechnologyPrototype technology)