38 lines
753 B
C#
38 lines
753 B
C#
using Godot;
|
|
using System.Text;
|
|
using System.Collections.Generic;
|
|
using System;
|
|
|
|
namespace Rokojori
|
|
{
|
|
public class CachedResource<T> where T:Resource
|
|
{
|
|
protected T _resource;
|
|
protected string _path;
|
|
public string path => _path;
|
|
protected Func<Resource,T> _converter;
|
|
|
|
public CachedResource( string path, Func<Resource,T> converter = null )
|
|
{
|
|
_path = path;
|
|
_converter = converter;
|
|
}
|
|
|
|
public T Get()
|
|
{
|
|
if ( _resource == null )
|
|
{
|
|
|
|
_resource = _converter == null ?
|
|
ResourceLoader.Load<T>( _path ) :
|
|
_converter( ResourceLoader.Load( _path ) );
|
|
|
|
RJLog.Log( _path, _resource );
|
|
|
|
|
|
}
|
|
|
|
return _resource;
|
|
}
|
|
}
|
|
} |