Example #1
0
        private void LoadFromModel(InstanceTrailData trailData)
        {
            _instanceTrailData = trailData;

            _lengthSlider.Value    = _instanceTrailData.Length;
            _widthSlider.Value     = _instanceTrailData.Width;
            _whitestepSlider.Value = _instanceTrailData.WhiteStep;
        }
        public void SetupTrailData()
        {
            if (GetCustomSaber(out var customsaber))
            {
                return;
            }

            // TODO: Setup sf trail data
            _instanceTrailData = default;
        }
Example #3
0
        /// <summary>
        /// Creates an <see cref="InstanceTrailData"/> object
        /// with the correct trail transforms
        /// </summary>
        /// <param name="saberObject">The saber gameobject that the <see cref="CustomTrail"/> component is on</param>
        /// <param name="trailModel">The <see cref="TrailModel"/> to use</param>
        public void InitializeTrailData(GameObject saberObject, TrailModel trailModel)
        {
            if (trailModel is null)
            {
                return;
            }

            var trails = saberObject?.GetComponentsInChildren <CustomTrail>();

            if (trails is null || trails.Length < 1)
            {
                return;
            }

            var saberTrail = trails[0];

            if (trails.Length > 1)
            {
                SecondaryTrails = new List <CustomTrail>();
                for (int i = 1; i < trails.Length; i++)
                {
                    SecondaryTrails.Add(trails[i]);
                }
            }

            // if trail comes from the preset save system
            // the model comes without the material assigned
            // so we assign
            if (trailModel.Material is null)
            {
                trailModel.Material = new MaterialDescriptor(saberTrail.TrailMaterial);

                // set texture wrap mode
                if (trailModel.Material.Material.TryGetMainTexture(out var tex))
                {
                    trailModel.OriginalTextureWrapMode = tex.wrapMode;
                }
            }

            Transform pointStart = saberTrail.PointStart;
            Transform pointEnd   = saberTrail.PointEnd;

            // Correction for sabers that have the transforms set up the other way around
            bool isTrailReversed = pointStart.localPosition.z > pointEnd.localPosition.z;

            if (isTrailReversed)
            {
                pointStart = saberTrail.PointEnd;
                pointEnd   = saberTrail.PointStart;
            }

            InstanceTrailData = new InstanceTrailData(trailModel, pointStart, pointEnd, isTrailReversed);
        }
Example #4
0
        public TrailModel InitializeTrailData(GameObject saberObject, TrailModel trailModel)
        {
            var(data, model) = InstanceTrailData.FromCustomSaber(saberObject, trailModel);
            if (data == null || model == null)
            {
                return(null);
            }

            InstanceTrailData = data;

            return(model);
        }
Example #5
0
 public override void DidClose()
 {
     _instanceTrailData = null;
     _trailPreviewer.Destroy();
     _editorInstanceManager.OnSaberInstanceCreated -= CreateTrail;
 }