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