public void Awake()
        {
            instance     = this;
            sabersByName = new Dictionary <string, SaberInfo>();
            sabersByName.Add(Plugin.playerController.leftSaber.name, new SaberInfo {
                eulerRotation = Vector3.zero, offset = Vector3.zero, saber = Plugin.playerController.leftSaber, isMainSaber = true
            });
            sabersByName.Add(Plugin.playerController.rightSaber.name, new SaberInfo {
                eulerRotation = Vector3.zero, offset = Vector3.zero, saber = Plugin.playerController.rightSaber, isMainSaber = true
            });

            // container heists!
            ISMCCContainer = GameObject.FindObjectsOfType <MonoInstallerBase>()
                             .Select(installer => installer.GetProperty <DiContainer>("Container"))
                             .Where(container => container != null && container.HasBinding <ISaberModelController>())
                             .FirstOrDefault();
            if (ISMCCContainer == null)
            {
                Logger.log.Error("Container heist 1 failed!");
            }
            colorManagerContainer = GameObject.FindObjectsOfType <MonoInstallerBase>()
                                    .Select(installer => installer.GetProperty <DiContainer>("Container"))
                                    .Where(container => container != null && container.HasBinding <ColorManager>())
                                    .FirstOrDefault();
            if (colorManagerContainer == null)
            {
                Logger.log.Error("Container heist 2 failed!");
            }
        }
 public void OnDestroy()
 {
     instance = null;
 }