mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 16:15:43 +00:00
chore: get Iwd and Ipak creators in constructor for post processors
This commit is contained in:
parent
416823c6cd
commit
3c3161448f
@ -68,7 +68,7 @@ namespace zone_creator
|
|||||||
AssetCreationContext creationContext(*zone, &creatorCollection, &ignoredAssetLookup);
|
AssetCreationContext creationContext(*zone, &creatorCollection, &ignoredAssetLookup);
|
||||||
|
|
||||||
objCompiler->ConfigureCreatorCollection(
|
objCompiler->ConfigureCreatorCollection(
|
||||||
creatorCollection, *zone, zoneDefinitionContext, *context.m_asset_search_path, lookup, context.m_out_dir, context.m_cache_dir);
|
creatorCollection, *zone, zoneDefinitionContext, *context.m_asset_search_path, lookup, creationContext, context.m_out_dir, context.m_cache_dir);
|
||||||
objLoader->ConfigureCreatorCollection(creatorCollection, *zone, *context.m_asset_search_path, lookup);
|
objLoader->ConfigureCreatorCollection(creatorCollection, *zone, *context.m_asset_search_path, lookup);
|
||||||
|
|
||||||
for (const auto& assetEntry : context.m_definition->m_assets)
|
for (const auto& assetEntry : context.m_definition->m_assets)
|
||||||
|
@ -17,13 +17,17 @@ namespace
|
|||||||
// No compilers yet
|
// No compilers yet
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigurePostProcessors(
|
void ConfigurePostProcessors(AssetCreatorCollection& collection,
|
||||||
AssetCreatorCollection& collection, Zone& zone, const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const fs::path& outDir)
|
Zone& zone,
|
||||||
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const fs::path& outDir)
|
||||||
{
|
{
|
||||||
auto& memory = *zone.GetMemory();
|
auto& memory = *zone.GetMemory();
|
||||||
|
|
||||||
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
||||||
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, outDir));
|
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, zoneStates, outDir));
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -32,8 +36,9 @@ void ObjCompiler::ConfigureCreatorCollection(AssetCreatorCollection& collection,
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const fs::path& outDir,
|
const fs::path& outDir,
|
||||||
const fs::path& cacheDir) const
|
const fs::path& cacheDir) const
|
||||||
{
|
{
|
||||||
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, outDir);
|
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, zoneStates, outDir);
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ namespace IW3
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const std::filesystem::path& outDir,
|
const std::filesystem::path& outDir,
|
||||||
const std::filesystem::path& cacheDir) const override;
|
const std::filesystem::path& cacheDir) const override;
|
||||||
};
|
};
|
||||||
|
@ -17,13 +17,17 @@ namespace
|
|||||||
// No compilers yet
|
// No compilers yet
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigurePostProcessors(
|
void ConfigurePostProcessors(AssetCreatorCollection& collection,
|
||||||
AssetCreatorCollection& collection, Zone& zone, const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const fs::path& outDir)
|
Zone& zone,
|
||||||
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const fs::path& outDir)
|
||||||
{
|
{
|
||||||
auto& memory = *zone.GetMemory();
|
auto& memory = *zone.GetMemory();
|
||||||
|
|
||||||
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
||||||
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, outDir));
|
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, zoneStates, outDir));
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -32,8 +36,9 @@ void ObjCompiler::ConfigureCreatorCollection(AssetCreatorCollection& collection,
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const fs::path& outDir,
|
const fs::path& outDir,
|
||||||
const fs::path& cacheDir) const
|
const fs::path& cacheDir) const
|
||||||
{
|
{
|
||||||
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, outDir);
|
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, zoneStates, outDir);
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ namespace IW4
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const std::filesystem::path& outDir,
|
const std::filesystem::path& outDir,
|
||||||
const std::filesystem::path& cacheDir) const override;
|
const std::filesystem::path& cacheDir) const override;
|
||||||
};
|
};
|
||||||
|
@ -17,13 +17,17 @@ namespace
|
|||||||
// No compilers yet
|
// No compilers yet
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigurePostProcessors(
|
void ConfigurePostProcessors(AssetCreatorCollection& collection,
|
||||||
AssetCreatorCollection& collection, Zone& zone, const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const fs::path& outDir)
|
Zone& zone,
|
||||||
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const fs::path& outDir)
|
||||||
{
|
{
|
||||||
auto& memory = *zone.GetMemory();
|
auto& memory = *zone.GetMemory();
|
||||||
|
|
||||||
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
||||||
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, outDir));
|
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, zoneStates, outDir));
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -32,8 +36,9 @@ void ObjCompiler::ConfigureCreatorCollection(AssetCreatorCollection& collection,
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const fs::path& outDir,
|
const fs::path& outDir,
|
||||||
const fs::path& cacheDir) const
|
const fs::path& cacheDir) const
|
||||||
{
|
{
|
||||||
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, outDir);
|
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, zoneStates, outDir);
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ namespace IW5
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const std::filesystem::path& outDir,
|
const std::filesystem::path& outDir,
|
||||||
const std::filesystem::path& cacheDir) const override;
|
const std::filesystem::path& cacheDir) const override;
|
||||||
};
|
};
|
||||||
|
@ -17,13 +17,17 @@ namespace
|
|||||||
// No compilers yet
|
// No compilers yet
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigurePostProcessors(
|
void ConfigurePostProcessors(AssetCreatorCollection& collection,
|
||||||
AssetCreatorCollection& collection, Zone& zone, const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const fs::path& outDir)
|
Zone& zone,
|
||||||
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const fs::path& outDir)
|
||||||
{
|
{
|
||||||
auto& memory = *zone.GetMemory();
|
auto& memory = *zone.GetMemory();
|
||||||
|
|
||||||
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
||||||
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, outDir));
|
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, zoneStates, outDir));
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -32,8 +36,9 @@ void ObjCompiler::ConfigureCreatorCollection(AssetCreatorCollection& collection,
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const fs::path& outDir,
|
const fs::path& outDir,
|
||||||
const fs::path& cacheDir) const
|
const fs::path& cacheDir) const
|
||||||
{
|
{
|
||||||
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, outDir);
|
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, zoneStates, outDir);
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ namespace T5
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const std::filesystem::path& outDir,
|
const std::filesystem::path& outDir,
|
||||||
const std::filesystem::path& cacheDir) const override;
|
const std::filesystem::path& cacheDir) const override;
|
||||||
};
|
};
|
||||||
|
@ -19,16 +19,20 @@ namespace
|
|||||||
collection.AddAssetCreator(std::make_unique<KeyValuePairsCompiler>(zone, zoneDefinition.m_zone_definition));
|
collection.AddAssetCreator(std::make_unique<KeyValuePairsCompiler>(zone, zoneDefinition.m_zone_definition));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigurePostProcessors(
|
void ConfigurePostProcessors(AssetCreatorCollection& collection,
|
||||||
AssetCreatorCollection& collection, Zone& zone, const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const fs::path& outDir)
|
Zone& zone,
|
||||||
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const fs::path& outDir)
|
||||||
{
|
{
|
||||||
auto& memory = *zone.GetMemory();
|
auto& memory = *zone.GetMemory();
|
||||||
|
|
||||||
if (ImageIPakPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
if (ImageIPakPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
||||||
collection.AddAssetPostProcessor(std::make_unique<ImageIPakPostProcessor<AssetImage>>(zoneDefinition, searchPath, outDir));
|
collection.AddAssetPostProcessor(std::make_unique<ImageIPakPostProcessor<AssetImage>>(zoneDefinition, searchPath, zoneStates, outDir));
|
||||||
|
|
||||||
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
if (ImageIwdPostProcessor<AssetImage>::AppliesToZoneDefinition(zoneDefinition))
|
||||||
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, outDir));
|
collection.AddAssetPostProcessor(std::make_unique<ImageIwdPostProcessor<AssetImage>>(zoneDefinition, searchPath, zoneStates, outDir));
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
@ -37,9 +41,10 @@ void ObjCompiler::ConfigureCreatorCollection(AssetCreatorCollection& collection,
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const fs::path& outDir,
|
const fs::path& outDir,
|
||||||
const fs::path& cacheDir) const
|
const fs::path& cacheDir) const
|
||||||
{
|
{
|
||||||
ConfigureCompilers(collection, zone, zoneDefinition, searchPath);
|
ConfigureCompilers(collection, zone, zoneDefinition, searchPath);
|
||||||
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, outDir);
|
ConfigurePostProcessors(collection, zone, zoneDefinition, searchPath, zoneStates, outDir);
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ namespace T6
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const std::filesystem::path& outDir,
|
const std::filesystem::path& outDir,
|
||||||
const std::filesystem::path& cacheDir) const override;
|
const std::filesystem::path& cacheDir) const override;
|
||||||
};
|
};
|
||||||
|
@ -27,6 +27,7 @@ public:
|
|||||||
const ZoneDefinitionContext& zoneDefinition,
|
const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
IGdtQueryable& gdt,
|
IGdtQueryable& gdt,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const std::filesystem::path& outDir,
|
const std::filesystem::path& outDir,
|
||||||
const std::filesystem::path& cacheDir) const = 0;
|
const std::filesystem::path& cacheDir) const = 0;
|
||||||
|
|
||||||
|
@ -6,9 +6,11 @@
|
|||||||
|
|
||||||
AbstractImageIPakPostProcessor::AbstractImageIPakPostProcessor(const ZoneDefinitionContext& zoneDefinition,
|
AbstractImageIPakPostProcessor::AbstractImageIPakPostProcessor(const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const std::filesystem::path& outDir)
|
const std::filesystem::path& outDir)
|
||||||
: m_zone_definition(zoneDefinition),
|
: m_zone_definition(zoneDefinition),
|
||||||
m_search_path(searchPath),
|
m_search_path(searchPath),
|
||||||
|
m_ipak_creator(zoneStates.GetZoneAssetCreationState<IPakCreator>()),
|
||||||
m_out_dir(outDir),
|
m_out_dir(outDir),
|
||||||
m_initialized(false),
|
m_initialized(false),
|
||||||
m_obj_container_index(0u),
|
m_obj_container_index(0u),
|
||||||
@ -39,8 +41,7 @@ void AbstractImageIPakPostProcessor::FindNextObjContainer(AssetCreationContext&
|
|||||||
if (objContainer.m_type != ZoneDefinitionObjContainerType::IPAK)
|
if (objContainer.m_type != ZoneDefinitionObjContainerType::IPAK)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
auto& ipakCreator = context.GetZoneAssetCreationState<IPakCreator>();
|
m_current_ipak = m_ipak_creator.GetOrAddIPak(objContainer.m_name);
|
||||||
m_current_ipak = ipakCreator.GetOrAddIPak(objContainer.m_name);
|
|
||||||
m_current_ipak_start_index = objContainer.m_asset_start;
|
m_current_ipak_start_index = objContainer.m_asset_start;
|
||||||
m_current_ipak_end_index = objContainer.m_asset_end;
|
m_current_ipak_end_index = objContainer.m_asset_end;
|
||||||
return;
|
return;
|
||||||
@ -70,5 +71,5 @@ void AbstractImageIPakPostProcessor::PostProcessAsset(XAssetInfoGeneric& assetIn
|
|||||||
|
|
||||||
void AbstractImageIPakPostProcessor::FinalizeZone(AssetCreationContext& context)
|
void AbstractImageIPakPostProcessor::FinalizeZone(AssetCreationContext& context)
|
||||||
{
|
{
|
||||||
context.GetZoneAssetCreationState<IPakCreator>().Finalize(m_search_path, m_out_dir);
|
m_ipak_creator.Finalize(m_search_path, m_out_dir);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,10 @@
|
|||||||
class AbstractImageIPakPostProcessor : public IAssetPostProcessor
|
class AbstractImageIPakPostProcessor : public IAssetPostProcessor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AbstractImageIPakPostProcessor(const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const std::filesystem::path& outDir);
|
AbstractImageIPakPostProcessor(const ZoneDefinitionContext& zoneDefinition,
|
||||||
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const std::filesystem::path& outDir);
|
||||||
|
|
||||||
static bool AppliesToZoneDefinition(const ZoneDefinitionContext& zoneDefinition);
|
static bool AppliesToZoneDefinition(const ZoneDefinitionContext& zoneDefinition);
|
||||||
|
|
||||||
@ -21,6 +24,7 @@ private:
|
|||||||
|
|
||||||
const ZoneDefinitionContext& m_zone_definition;
|
const ZoneDefinitionContext& m_zone_definition;
|
||||||
ISearchPath& m_search_path;
|
ISearchPath& m_search_path;
|
||||||
|
IPakCreator& m_ipak_creator;
|
||||||
const std::filesystem::path& m_out_dir;
|
const std::filesystem::path& m_out_dir;
|
||||||
|
|
||||||
bool m_initialized;
|
bool m_initialized;
|
||||||
@ -35,8 +39,11 @@ template<typename AssetType> class ImageIPakPostProcessor final : public Abstrac
|
|||||||
public:
|
public:
|
||||||
static_assert(std::is_base_of_v<IAssetBase, AssetType>);
|
static_assert(std::is_base_of_v<IAssetBase, AssetType>);
|
||||||
|
|
||||||
ImageIPakPostProcessor(const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const std::filesystem::path& outDir)
|
ImageIPakPostProcessor(const ZoneDefinitionContext& zoneDefinition,
|
||||||
: AbstractImageIPakPostProcessor(zoneDefinition, searchPath, outDir)
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const std::filesystem::path& outDir)
|
||||||
|
: AbstractImageIPakPostProcessor(zoneDefinition, searchPath, zoneStates, outDir)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,9 +7,11 @@
|
|||||||
|
|
||||||
AbstractImageIwdPostProcessor::AbstractImageIwdPostProcessor(const ZoneDefinitionContext& zoneDefinition,
|
AbstractImageIwdPostProcessor::AbstractImageIwdPostProcessor(const ZoneDefinitionContext& zoneDefinition,
|
||||||
ISearchPath& searchPath,
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
const std::filesystem::path& outDir)
|
const std::filesystem::path& outDir)
|
||||||
: m_zone_definition(zoneDefinition),
|
: m_zone_definition(zoneDefinition),
|
||||||
m_search_path(searchPath),
|
m_search_path(searchPath),
|
||||||
|
m_iwd_creator(zoneStates.GetZoneAssetCreationState<IwdCreator>()),
|
||||||
m_out_dir(outDir),
|
m_out_dir(outDir),
|
||||||
m_initialized(false),
|
m_initialized(false),
|
||||||
m_obj_container_index(0u),
|
m_obj_container_index(0u),
|
||||||
@ -40,8 +42,7 @@ void AbstractImageIwdPostProcessor::FindNextObjContainer(AssetCreationContext& c
|
|||||||
if (objContainer.m_type != ZoneDefinitionObjContainerType::IWD)
|
if (objContainer.m_type != ZoneDefinitionObjContainerType::IWD)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
auto& iwdCreator = context.GetZoneAssetCreationState<IwdCreator>();
|
m_current_iwd = m_iwd_creator.GetOrAddIwd(objContainer.m_name);
|
||||||
m_current_iwd = iwdCreator.GetOrAddIwd(objContainer.m_name);
|
|
||||||
m_current_iwd_start_index = objContainer.m_asset_start;
|
m_current_iwd_start_index = objContainer.m_asset_start;
|
||||||
m_current_iwd_end_index = objContainer.m_asset_end;
|
m_current_iwd_end_index = objContainer.m_asset_end;
|
||||||
return;
|
return;
|
||||||
@ -71,5 +72,5 @@ void AbstractImageIwdPostProcessor::PostProcessAsset(XAssetInfoGeneric& assetInf
|
|||||||
|
|
||||||
void AbstractImageIwdPostProcessor::FinalizeZone(AssetCreationContext& context)
|
void AbstractImageIwdPostProcessor::FinalizeZone(AssetCreationContext& context)
|
||||||
{
|
{
|
||||||
context.GetZoneAssetCreationState<IwdCreator>().Finalize(m_search_path, m_out_dir);
|
m_iwd_creator.Finalize(m_search_path, m_out_dir);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,10 @@
|
|||||||
class AbstractImageIwdPostProcessor : public IAssetPostProcessor
|
class AbstractImageIwdPostProcessor : public IAssetPostProcessor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AbstractImageIwdPostProcessor(const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const std::filesystem::path& outDir);
|
AbstractImageIwdPostProcessor(const ZoneDefinitionContext& zoneDefinition,
|
||||||
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const std::filesystem::path& outDir);
|
||||||
|
|
||||||
static bool AppliesToZoneDefinition(const ZoneDefinitionContext& zoneDefinition);
|
static bool AppliesToZoneDefinition(const ZoneDefinitionContext& zoneDefinition);
|
||||||
|
|
||||||
@ -21,6 +24,7 @@ private:
|
|||||||
|
|
||||||
const ZoneDefinitionContext& m_zone_definition;
|
const ZoneDefinitionContext& m_zone_definition;
|
||||||
ISearchPath& m_search_path;
|
ISearchPath& m_search_path;
|
||||||
|
IwdCreator& m_iwd_creator;
|
||||||
const std::filesystem::path& m_out_dir;
|
const std::filesystem::path& m_out_dir;
|
||||||
|
|
||||||
bool m_initialized;
|
bool m_initialized;
|
||||||
@ -35,8 +39,11 @@ template<typename AssetType> class ImageIwdPostProcessor final : public Abstract
|
|||||||
public:
|
public:
|
||||||
static_assert(std::is_base_of_v<IAssetBase, AssetType>);
|
static_assert(std::is_base_of_v<IAssetBase, AssetType>);
|
||||||
|
|
||||||
ImageIwdPostProcessor(const ZoneDefinitionContext& zoneDefinition, ISearchPath& searchPath, const std::filesystem::path& outDir)
|
ImageIwdPostProcessor(const ZoneDefinitionContext& zoneDefinition,
|
||||||
: AbstractImageIwdPostProcessor(zoneDefinition, searchPath, outDir)
|
ISearchPath& searchPath,
|
||||||
|
ZoneAssetCreationStateContainer& zoneStates,
|
||||||
|
const std::filesystem::path& outDir)
|
||||||
|
: AbstractImageIwdPostProcessor(zoneDefinition, searchPath, zoneStates, outDir)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user