Новый класс обработки легаси-сущностей
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
using Pf2eDataScrapper.Importers.Implementations.Aonprd.DataBuilder.Helpers;
|
||||
using Pf2eDataScrapper.Importers.Implementations.Aonprd.DataBuilder.Processors;
|
||||
using Pf2eModel.Model.Base;
|
||||
using Pf2eModel.Model.Base.Source;
|
||||
using Pf2eModel.Model.Common.I18n;
|
||||
|
||||
namespace Pf2eDataScrapper.Importers.Implementations.Aonprd.DataBuilder;
|
||||
|
||||
internal class LegacyEntityHandler
|
||||
{
|
||||
public string LegacyId { get; private set; }
|
||||
|
||||
public string LegacyName { get; private set; } = "";
|
||||
|
||||
public List<EntitySource> LegacySources { get; private set; } = [];
|
||||
|
||||
public bool LegacyPrepared { get; private set; } = false;
|
||||
|
||||
public List<Entity> RemasterEntities = [];
|
||||
|
||||
public LegacyEntityHandler(AbstractEntityProcessor processor)
|
||||
{
|
||||
LegacyId = processor.Input.GetRequired<string>("id");
|
||||
Prepare(processor);
|
||||
}
|
||||
|
||||
public LegacyEntityHandler(string legacyId, Entity remasterEntity)
|
||||
{
|
||||
LegacyId = legacyId;
|
||||
LegacyPrepared = false;
|
||||
RemasterEntities.Add(remasterEntity);
|
||||
}
|
||||
|
||||
public void Prepare(AbstractEntityProcessor processor)
|
||||
{
|
||||
if (LegacyPrepared)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
LegacyName = processor.Input.GetRequired<string>("name");
|
||||
LegacySources = processor.GetSources();
|
||||
LegacyPrepared = true;
|
||||
|
||||
foreach (Entity remasterEntity in RemasterEntities)
|
||||
{
|
||||
Apply(remasterEntity);
|
||||
}
|
||||
}
|
||||
|
||||
public void Apply(Entity remasterEntity)
|
||||
{
|
||||
if (!remasterEntity.Name.Contains(LegacyName))
|
||||
{
|
||||
remasterEntity.Name[LocaleType.LegacyEnglish] = LegacyName;
|
||||
}
|
||||
|
||||
foreach (EntitySource legacySource in LegacySources)
|
||||
{
|
||||
EntitySource entitySource = new()
|
||||
{
|
||||
Entity = remasterEntity,
|
||||
Source = legacySource.Source,
|
||||
Suffix = legacySource.Suffix,
|
||||
IsRemaster = false,
|
||||
};
|
||||
|
||||
remasterEntity.Sources.Add(entitySource);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user