01748bc5f8
Adding dispose methods to AxiosFile objects Adding extended log to AxiosLog Fixing issue in CommandConsole where the first line would not be displayed Adding commands to commandconsole
66 lines
2.0 KiB
C#
66 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace Axios.Engine.Data
|
|
{
|
|
// Q. What is the point of this?
|
|
// A. This is not to cache textures loaded by content manager
|
|
// but other data/content that isn't. Use cases include:
|
|
// - Any graphics generated during runtime (such as dialogs)
|
|
// - Command console
|
|
// - Any data that is loaded in during run time (such as maps)
|
|
// Content manager performs it's own caching so anything loaded by it
|
|
// or the Gameservice - then attempted to load again will not be loaded
|
|
// again but rather a reference to it will be returned
|
|
// ************************************************
|
|
// DANGER WILL ROBINSON DANGER
|
|
// ************************************************
|
|
// Only store stuff here that you want during the FULL lifecycle of your game
|
|
// The cache is never cleared - so a reference will exist for the objects you leave
|
|
// You MAY clear the cache by using the clear method or unset
|
|
//
|
|
// You probably don't want this
|
|
// There is no cache...
|
|
// This is not the cache you are looking for...
|
|
//
|
|
public class Cache : Singleton<Cache>
|
|
{
|
|
private Dictionary<string, object> _cache;
|
|
public Cache()
|
|
{
|
|
_cache = new Dictionary<string, object>();
|
|
}
|
|
|
|
public object get(string key)
|
|
{
|
|
object val;
|
|
_cache.TryGetValue(key, out val);
|
|
return val;
|
|
}
|
|
|
|
public T get<T>(string key)
|
|
{
|
|
object val;
|
|
_cache.TryGetValue(key, out val);
|
|
return (T)val;
|
|
}
|
|
|
|
public void set(string key, object obj)
|
|
{
|
|
_cache[key] = obj;
|
|
}
|
|
|
|
public void unset(string key)
|
|
{
|
|
_cache.Remove(key);
|
|
}
|
|
|
|
public void clear()
|
|
{
|
|
_cache = new Dictionary<string, object>();
|
|
}
|
|
}
|
|
}
|