This commit is contained in:
Marc Hernandez 2024-05-05 08:40:35 -07:00
parent 43d62557dd
commit 6f13bd834a

View File

@ -23,17 +23,17 @@ namespace res
[Serializable]
public class Ref : lib.I_Serialize
{
public string Filename =>_filename;
public string Filename =>path;
//For construction
public Ref()
{
_filename = "{UNSET_CONS}";
path = "{UNSET_CONS}";
}
public Ref( string filename )
{
_filename = filename;
path = filename;
}
virtual public void OnSerialize()
@ -53,7 +53,7 @@ namespace res
}
protected string _filename = "{UNSET_INLINE}";
private string path = "{UNSET_INLINE}";
}
[Serializable]
@ -129,11 +129,10 @@ namespace res
{
public LoadHolder( Load<T> fnLoad )
{
m_fnLoad = fnLoad;
_fnLoad = fnLoad;
}
public Load<T> m_fnLoad;
public Load<T> _fnLoad;
internal override object load()
{
@ -146,16 +145,11 @@ namespace res
{
public static T s_default = default;
public static ImmutableDictionary<string, WeakReference<T>> s_cache = ImmutableDictionary<string, WeakReference<T>>.Empty;
}
public class Mgr
{
static public void startup()
{
Resource.mgr = new Mgr();
@ -172,6 +166,11 @@ namespace res
//Register all subclasses of a particular type
//???? Should we just always do this?
static public void registerSub<T>()
{
registerSub( typeof(T) );
}
static public void registerSub( Type baseType )
{
log.info( $"Registering loader for {baseType.Name}" );
@ -188,7 +187,7 @@ namespace res
if( !baseType.IsAssignableFrom( t ) )
continue;
log.debug( $"Making a lodaer for {t.Name}" );
log.debug( $"Making a loader for {t.Name}" );
typeParams[0] = t;
var mi_ng = mi.MakeGenericMethod( typeParams );
@ -216,40 +215,12 @@ namespace res
static public Ref<T> lookup<T>( string filename ) where T : class
{
/*
LoadHolder loader_gen;
Resource.mgr.m_loaders.TryGetValue( typeof( T ), out loader_gen );
var loaderHolder = loader_gen as LoadHolder<T>;
if( loaderHolder != null )
{
var rf_raw = loaderHolder.dlgtLoad( filename );
Ref<T> rf = rf_raw as Ref<T>;
return rf;
}
*/
return new Ref<T>( filename );
}
//*
static public Ref lookup( string filename, Type t )
{
/*
LoadHolder loader_gen;
Resource.mgr.m_loaders.TryGetValue( t, out loader_gen );
var lhGenType = typeof(LoadHolder<>);
if( loaderHolder != null )
{
var rf_raw = loaderHolder.load( filename );
return rf_raw;
}
*/
return new Ref( filename );
}
//*/
@ -294,7 +265,7 @@ namespace res
{
var loader = loaderGen as LoadHolder<T>;
var v = loader.m_fnLoad( filename );
var v = loader._fnLoad( filename );
var weak = new WeakReference<T>( v );