Exemplo n.º 1
0
        public void Construct(ColorManager colorManager, ISaberModelController modelController, SiraSaberEffectManager siraSaberEffectManager)
        {
            // Woohoo! We received the saber model from Zenject!
            _saberModelController = modelController;
            _saberModelController.Init(transform, nextType);
            _siraSaberEffectManager = siraSaberEffectManager;

            _colorManager = colorManager;

            // Create all the stuff thats supposed to be on the saber
            _saberTypeObject = gameObject.AddComponent <SaberTypeObject>();
            Utilities.ObjectSaberType(ref _saberTypeObject) = nextType;

            // Create and populate the saber object
            _saber = gameObject.AddComponent <Saber>();
            Utilities.SaberObjectType(ref _saber) = _saberTypeObject;
            GameObject top    = new GameObject("Top");
            GameObject bottom = new GameObject("Bottom");

            top.transform.SetParent(transform);
            bottom.transform.SetParent(transform);
            top.transform.position = new Vector3(0f, 0f, 1f);

            Utilities.TopPos(ref _saber)    = top.transform;
            Utilities.BottomPos(ref _saber) = bottom.transform;
            Utilities.HandlePos(ref _saber) = bottom.transform;

            _siraSaberEffectManager.SaberCreated(_saber);
        }
Exemplo n.º 2
0
        public static Color GetColor(this Saber saber)
        {
            ISaberModelController modelController = saber.gameObject.GetComponentInChildren <ISaberModelController>(true);

            if (modelController is BasicSaberModelController)
            {
                BasicSaberModelController bsmc = modelController as BasicSaberModelController;
                Light light = SaberLight(ref bsmc);
                return(light.color);
            }
            else if (modelController is IColorable)
            {
                IColorable colorable = modelController as IColorable;
                return(colorable.Color);
            }
            return(Color.white);
        }
Exemplo n.º 3
0
        private static IEnumerator ChangeColorCoroutine(Saber saber, Color color, float time = 0.05f)
        {
            if (time != 0)
            {
                yield return(new WaitForSeconds(time));
            }
            ISaberModelController modelController = saber.gameObject.GetComponentInChildren <ISaberModelController>(true);

            if (modelController is BasicSaberModelController bsmc)
            {
                Color tintColor = ModelInitData(ref bsmc).trailTintColor;
                SetSaberGlowColor[]     setSaberGlowColors     = SaberGlowColor(ref bsmc);
                SetSaberFakeGlowColor[] setSaberFakeGlowColors = FakeSaberGlowColor(ref bsmc);
                Light light = SaberLight(ref bsmc);
                saber.ChangeColor(color, bsmc, tintColor, setSaberGlowColors, setSaberFakeGlowColors, light);
            }
            else if (modelController is IColorable colorable)
            {
                colorable.SetColor(color);
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// Create a saber model provider.
 /// </summary>
 /// <param name="priority">The priority of the provider. The highest provider is the model controller that is used.</param>
 /// <param name="controller">The model controller that is used to setup the saber.</param>
 public SaberModelProvider(int priority, ISaberModelController controller)
 {
     Priority        = priority;
     ModelController = controller;
 }