mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 18:27:24 +01:00
remove layer validator
This commit is contained in:
parent
271367eaf2
commit
b56b23f2a6
1 changed files with 29 additions and 27 deletions
|
|
@ -13,31 +13,31 @@ namespace Penumbra.Interop.PathResolving;
|
||||||
public class PathResolver : IDisposable, IService
|
public class PathResolver : IDisposable, IService
|
||||||
{
|
{
|
||||||
private readonly PerformanceTracker _performance;
|
private readonly PerformanceTracker _performance;
|
||||||
private readonly Configuration _config;
|
private readonly Configuration _config;
|
||||||
private readonly CollectionManager _collectionManager;
|
private readonly CollectionManager _collectionManager;
|
||||||
private readonly ResourceLoader _loader;
|
private readonly ResourceLoader _loader;
|
||||||
|
|
||||||
private readonly SubfileHelper _subfileHelper;
|
private readonly SubfileHelper _subfileHelper;
|
||||||
private readonly PathState _pathState;
|
private readonly PathState _pathState;
|
||||||
private readonly MetaState _metaState;
|
private readonly MetaState _metaState;
|
||||||
private readonly GameState _gameState;
|
private readonly GameState _gameState;
|
||||||
private readonly CollectionResolver _collectionResolver;
|
private readonly CollectionResolver _collectionResolver;
|
||||||
private readonly GamePathPreProcessService _preprocessor;
|
private readonly GamePathPreProcessService _preprocessor;
|
||||||
|
|
||||||
public PathResolver(PerformanceTracker performance, Configuration config, CollectionManager collectionManager, ResourceLoader loader,
|
public PathResolver(PerformanceTracker performance, Configuration config, CollectionManager collectionManager, ResourceLoader loader,
|
||||||
SubfileHelper subfileHelper, PathState pathState, MetaState metaState, CollectionResolver collectionResolver, GameState gameState,
|
SubfileHelper subfileHelper, PathState pathState, MetaState metaState, CollectionResolver collectionResolver, GameState gameState,
|
||||||
GamePathPreProcessService preprocessor)
|
GamePathPreProcessService preprocessor)
|
||||||
{
|
{
|
||||||
_performance = performance;
|
_performance = performance;
|
||||||
_config = config;
|
_config = config;
|
||||||
_collectionManager = collectionManager;
|
_collectionManager = collectionManager;
|
||||||
_subfileHelper = subfileHelper;
|
_subfileHelper = subfileHelper;
|
||||||
_pathState = pathState;
|
_pathState = pathState;
|
||||||
_metaState = metaState;
|
_metaState = metaState;
|
||||||
_gameState = gameState;
|
_gameState = gameState;
|
||||||
_preprocessor = preprocessor;
|
_preprocessor = preprocessor;
|
||||||
_collectionResolver = collectionResolver;
|
_collectionResolver = collectionResolver;
|
||||||
_loader = loader;
|
_loader = loader;
|
||||||
_loader.ResolvePath = ResolvePath;
|
_loader.ResolvePath = ResolvePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -48,22 +48,24 @@ public class PathResolver : IDisposable, IService
|
||||||
if (!_config.EnableMods)
|
if (!_config.EnableMods)
|
||||||
return (null, ResolveData.Invalid);
|
return (null, ResolveData.Invalid);
|
||||||
|
|
||||||
|
//TODO @Star - check for state validater where applicable, otherwise will break executions
|
||||||
|
|
||||||
// Do not allow manipulating layers to prevent very obvious cheating and softlocks.
|
// Do not allow manipulating layers to prevent very obvious cheating and softlocks.
|
||||||
if (resourceType is ResourceType.Lvb or ResourceType.Lgb or ResourceType.Sgb)
|
//if (resourceType is ResourceType.Lvb or ResourceType.Lgb or ResourceType.Sgb)
|
||||||
return (null, ResolveData.Invalid);
|
//return (null, ResolveData.Invalid);
|
||||||
|
|
||||||
return category switch
|
return category switch
|
||||||
{
|
{
|
||||||
// Only Interface collection.
|
// Only Interface collection.
|
||||||
ResourceCategory.Ui => ResolveUi(path),
|
ResourceCategory.Ui => ResolveUi(path),
|
||||||
// Never allow changing scripts.
|
// Never allow changing scripts.
|
||||||
ResourceCategory.UiScript => (null, ResolveData.Invalid),
|
ResourceCategory.UiScript => (null, ResolveData.Invalid),
|
||||||
ResourceCategory.GameScript => (null, ResolveData.Invalid),
|
ResourceCategory.GameScript => (null, ResolveData.Invalid),
|
||||||
// Use actual resolving.
|
// Use actual resolving.
|
||||||
ResourceCategory.Chara => Resolve(path, resourceType),
|
ResourceCategory.Chara => Resolve(path, resourceType),
|
||||||
ResourceCategory.Shader => ResolveShader(path, resourceType),
|
ResourceCategory.Shader => ResolveShader(path, resourceType),
|
||||||
ResourceCategory.Vfx => Resolve(path, resourceType),
|
ResourceCategory.Vfx => Resolve(path, resourceType),
|
||||||
ResourceCategory.Sound => Resolve(path, resourceType),
|
ResourceCategory.Sound => Resolve(path, resourceType),
|
||||||
// EXD Modding in general should probably be prohibited but is currently used for fan translations.
|
// EXD Modding in general should probably be prohibited but is currently used for fan translations.
|
||||||
// We prevent WebURL specifically because it technically allows launching arbitrary programs / to execute arbitrary code.
|
// We prevent WebURL specifically because it technically allows launching arbitrary programs / to execute arbitrary code.
|
||||||
ResourceCategory.Exd => path.Path.StartsWith("exd/weburl"u8)
|
ResourceCategory.Exd => path.Path.StartsWith("exd/weburl"u8)
|
||||||
|
|
@ -76,10 +78,10 @@ public class PathResolver : IDisposable, IService
|
||||||
? ResolveUi(path)
|
? ResolveUi(path)
|
||||||
: DefaultResolver(path),
|
: DefaultResolver(path),
|
||||||
ResourceCategory.BgCommon => DefaultResolver(path),
|
ResourceCategory.BgCommon => DefaultResolver(path),
|
||||||
ResourceCategory.Bg => DefaultResolver(path),
|
ResourceCategory.Bg => DefaultResolver(path),
|
||||||
ResourceCategory.Cut => DefaultResolver(path),
|
ResourceCategory.Cut => DefaultResolver(path),
|
||||||
ResourceCategory.Music => DefaultResolver(path),
|
ResourceCategory.Music => DefaultResolver(path),
|
||||||
_ => DefaultResolver(path),
|
_ => DefaultResolver(path),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue