/*
 *
 *  [SerializeField] private DebugManager dbg = null;
 *
 *  [SerializeField] private LevelManagement LevMan = null;
 *  [SerializeField] private Distaff distaff = null;
 *
 *  //[SerializeField] private LevelLoader LL = null;
 *
 *  //[SerializeField] private Pooler pooler = null;
 *
 */
    protected virtual void Awake()
    {
        FindLoader();
        //initialize
        SceneScripts = new InjectionDict();

        //GameManager Reg
        if (dbg_g == null)
        {
            dbg_g = GMInject.Instance.RegisterInjection <DebugGlobal>();
        }
        if (DiskJockey == null)
        {
            DiskJockey = GMInject.Instance.RegisterInjection <AudioManager>();
        }
        if (tGen == null)
        {
            tGen = GMInject.Instance.RegisterInjection <TotalGenerator>();
        }
        if (GM == null)
        {
            GM = GMInject.Instance.RegisterInjection <GameManager>();
        }
        //Add GM Scripts to Dict
        SceneScripts.Add <DebugGlobal>(dbg_g);
        SceneScripts.Add <AudioManager>(DiskJockey);
        SceneScripts.Add <TotalGenerator>(tGen);
        SceneScripts.Add <GameManager>(GM);

        LoadInjector();

        InjectTest();
        Preload();
    }
    protected virtual void LoadInjector()
    {
        List <LoadItem> loader = loadList.Feed();

        foreach (LoadItem item in loader)
        {
            SceneScripts.Add(item.type, item.script);
            //Debug.Log("SM: Added " + item.type);
        }
    }