Exemple #1
0
 public void SyncValues(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
 {
     if (ColorGradient.ColorBaseNode != null)
     {
         if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
         {
             for (int i = 0; i < sys.SubParticleSystems.Count; i++)
             {
                 var subsys = sys.SubParticleSystems[i];
                 if (subsys.SubStates != null)
                 {
                     for (int j = 0; j < subsys.SubStates.Length; j++)
                     {
                         var colornode = subsys.SubStates[j].ColorNode;
                         if (colornode != null)
                         {
                             if (colornode.GetType().Name.Equals(GetClassName()))
                             {
                                 subsys.SubStates[j].ColorNode = ColorGradient.ColorBaseNode;
                                 return;
                             }
                         }
                     }
                 }
             }
         }
     }
 }
        public void SetPGradient(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            ParticleNode = null;

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    if (subsys.SubStates != null)
                    {
                        for (int j = 0; j < subsys.SubStates.Length; j++)
                        {
                            var node = subsys.SubStates[j].MacrossParticleStateNode;
                            if (node != null)
                            {
                                if (node.GetType().Name.Equals(GetClassName()))
                                {
                                    ParticleNode = node.Data;
                                    break;
                                }
                            }
                        }
                        if (ParticleNode != null)
                        {
                            break;
                        }
                    }
                }
            }
        }
        public void SyncValues(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            if (ParticleNode == null)
            {
                return;
            }

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    if (subsys.SubStates != null)
                    {
                        for (int j = 0; j < subsys.SubStates.Length; j++)
                        {
                            var node = subsys.SubStates[j].MacrossParticleStateNode;
                            if (node != null)
                            {
                                if (node.GetType().Name.Equals(GetClassName()))
                                {
                                    subsys.SubStates[j].MacrossParticleStateNode.Data = ParticleNode as EngineNS.Bricks.Particle.ParticleStateNode.ParticleStateData;
                                    return;
                                }
                            }
                        }
                    }
                }
            }
        }
        public void SyncValues(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            //if (DataGradient.DataGradient1.PDataGradient != null)
            //    return;

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    if (subsys.SubStates != null)
                    {
                        for (int j = 0; j < subsys.SubStates.Length; j++)
                        {
                            if (subsys.SubStates[j].VelocityByTangentNode != null)
                            {
                                if (subsys.SubStates[j].VelocityByTangentNode.GetType().Name.Equals(GetClassName()))
                                {
                                    subsys.SubStates[j].VelocityByTangentNode       = DataGradient.DataGradient1.PDataGradient as EngineNS.Bricks.Particle.ParticleVelocityByTangentNode;
                                    subsys.SubStates[j].VelocityByTangentNode.Power = DataGradient.DataGradient2.PDataGradient as EngineNS.Bricks.Particle.ParticleVelocityByTangentNode.TangentPower;
                                    return;
                                }
                            }
                        }
                    }
                }
            }
        }
Exemple #5
0
        public void SyncValues(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            if (ParticleNode == null)
            {
                return;
            }

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    if (subsys.SubStates != null)
                    {
                        for (int j = 0; j < subsys.SubStates.Length; j++)
                        {
                            if (subsys.SubStates[j].RandomDirectionNode != null && subsys.SubStates[j].RandomDirectionNode.GetType().Name.Equals(GetClassName()))
                            {
                                subsys.SubStates[j].RandomDirectionNode._Data = ParticleNode as EngineNS.Bricks.Particle.RandomDirectionNode.Data;
                                if (subsys.SubStates[j].RandomDirectionNode._Data != null && subsys.SubStates[j].RandomDirectionNode._Data.EmitterShape != null)
                                {
                                    subsys.SubStates[j].Shape = subsys.SubStates[j].RandomDirectionNode._Data.EmitterShape;
                                }
                                return;
                            }
                        }
                    }
                }
            }
        }
        public void ResetPropertyChanged(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            SetPGradient(sys);
            var createobj = GetCreateObject();

            if (ParticleNode == null || createobj == null)
            {
                return;
            }

            if (PropertyNames.Count == 0)
            {
                return;
            }

            for (int i = 0; i < PropertyNames.Count; i++)
            {
                var propertyName = PropertyNames[i];
                var ProInfo1     = ParticleNode.GetType().GetProperty(propertyName);
                var ProInfo2     = createobj.GetType().GetProperty(propertyName);
                if (ProInfo1 != null && ProInfo2 != null)
                {
                    ProInfo1.SetValue(ParticleNode, ProInfo2.GetValue(createobj));
                }
            }

            PropertyNames.Clear();
        }
        public void SyncValues(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            if (DataGradient.PDataGradient == null)
            {
                return;
            }

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    if (subsys.SubStates != null)
                    {
                        for (int j = 0; j < subsys.SubStates.Length; j++)
                        {
                            var node = subsys.SubStates[j].AcceleratedNode;
                            if (node != null)
                            {
                                if (node.GetType().Name.Equals(GetClassName()))
                                {
                                    subsys.SubStates[j].AcceleratedNode = DataGradient.PDataGradient as EngineNS.Bricks.Particle.AcceleratedNode;
                                    return;
                                }
                            }
                        }
                    }
                }
            }
        }
 public void SetPGradient(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
 {
     DataGradient.DataGradient1.PDataGradient = null;
     DataGradient.DataGradient2.PDataGradient = null;
     if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
     {
         for (int i = 0; i < sys.SubParticleSystems.Count; i++)
         {
             var subsys = sys.SubParticleSystems[i];
             if (subsys.SubStates != null)
             {
                 for (int j = 0; j < subsys.SubStates.Length; j++)
                 {
                     var node = subsys.SubStates[j].VelocityByTangentNode;
                     if (node != null && node.GetType().Name.Equals(GetClassName()))
                     {
                         DataGradient.DataGradient1.PDataGradient = node;
                         DataGradient.DataGradient2.PDataGradient = node.Power;
                         break;
                     }
                 }
                 if (DataGradient.DataGradient1.PDataGradient != null)
                 {
                     break;
                 }
             }
         }
     }
 }
Exemple #9
0
 public void SetPGradient(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
 {
     //if (DataGradient.PDataGradient != null)
     //{
     //    return;
     //}
     ColorGradient.ColorBaseNode = null;
     if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
     {
         for (int i = 0; i < sys.SubParticleSystems.Count; i++)
         {
             var subsys = sys.SubParticleSystems[i];
             if (subsys.SubStates != null)
             {
                 for (int j = 0; j < subsys.SubStates.Length; j++)
                 {
                     var colornode = subsys.SubStates[j].ColorNode;
                     if (colornode != null)
                     {
                         if (colornode.GetType().Name.Equals(GetClassName()))
                         {
                             ColorGradient.ColorBaseNode = colornode;
                             break;
                         }
                     }
                 }
                 if (ColorGradient.ColorBaseNode != null)
                 {
                     break;
                 }
             }
         }
     }
 }
Exemple #10
0
        public void SetPGradient(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            ParticleNode = null;

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    if (subsys.SubStates != null)
                    {
                        for (int j = 0; j < subsys.SubStates.Length; j++)
                        {
                            if (subsys.SubStates[j].RandomDirectionNode != null && subsys.SubStates[j].RandomDirectionNode.GetType().Name.Equals(GetClassName()))
                            {
                                ParticleNode = subsys.SubStates[j].RandomDirectionNode._Data;
                                if (subsys.SubStates[j].RandomDirectionNode._Data != null)
                                {
                                    subsys.SubStates[j].RandomDirectionNode._Data.EmitterShape = subsys.SubStates[j].Shape;
                                }
                                break;
                            }
                        }

                        if (ParticleNode != null)
                        {
                            break;
                        }
                    }
                }
            }
        }
        public void SetPGradient(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            ParticleNode = null;

            //ShowValues.Clear();
            var TempShowValues = ShowValues;

            ShowValues = new List <MaterialInstanceEditProperty>();
            if (sys.SubParticleSystems != null)
            {
                for (int s = 0; s < sys.SubParticleSystems.Count; s++)
                {
                    var subsys = sys.SubParticleSystems[s];
                    if (subsys.MaterialInstanceNode != null && subsys.MaterialInstanceNode.GetType().Name.Equals(GetClassName()))
                    {
                        if (subsys.HostActorMesh != null && subsys.HostActorMesh.SceneMesh != null && subsys.HostActorMesh.SceneMesh.MtlMeshArray != null)
                        {
                            bool needcreate = subsys.HostActorMesh.SceneMesh.MtlMeshArray.Length != TempShowValues.Count;
                            if (needcreate == false)
                            {
                                for (int i = 0; i < subsys.HostActorMesh.SceneMesh.MtlMeshArray.Length; i++)
                                {
                                    var mtl = subsys.HostActorMesh.SceneMesh.MtlMeshArray[i];
                                    if (mtl.MtlInst == null)
                                    {
                                        needcreate = true;
                                        break;
                                    }

                                    if (mtl.MtlInst.Name.Equals(TempShowValues[i].MaterialInstanceName) == false)
                                    {
                                        needcreate = true;
                                        break;
                                    }
                                }
                            }

                            for (int i = 0; i < subsys.HostActorMesh.SceneMesh.MtlMeshArray.Length; i++)
                            {
                                var mtl = subsys.HostActorMesh.SceneMesh.MtlMeshArray[i];
                                //if (mtl.MtlInst != null)
                                {
                                    var ShowValue = new MaterialInstanceEditProperty();
                                    ShowValue.SetMaterialInstance(mtl.MtlInst, subsys.HostActorMesh.SceneMesh, i);
                                    if (needcreate == false)
                                    {
                                        ShowValue.SyncValues(TempShowValues[i]);
                                    }
                                    ShowValues.Add(ShowValue);
                                }
                            }
                        }
                    }
                }
            }
        }
        public void SetPGradient(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            ParticleNode = null;

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    var node   = subsys.TextureCutNode;
                    if (node != null)
                    {
                        if (node.GetType().Name.Equals(GetClassName()))
                        {
                            ParticleNode = node._Data;
                            break;
                        }
                    }
                }
            }
        }
Exemple #13
0
        public void SetPGradient(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            DataGradient.PDataGradient = null;
            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    if (subsys.SubStates != null)
                    {
                        for (int j = 0; j < subsys.SubStates.Length; j++)
                        {
                            var nodes = subsys.SubStates[j].ParticleVelocityNodes;
                            if (nodes != null)
                            {
                                foreach (var node in nodes)
                                {
                                    if (node.GetType().Name.Equals(GetClassName()))
                                    {
                                        DataGradient.PDataGradient = node;
                                        break;
                                    }
                                }
                            }
                            if (DataGradient.PDataGradient != null)
                            {
                                break;
                            }
                        }

                        if (DataGradient.PDataGradient != null)
                        {
                            break;
                        }
                    }
                }
            }
        }
        public void SetPGradient(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            ParticleNode = null;

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    var nodes  = subsys.ComposeNodes;
                    foreach (var node in nodes)
                    {
                        if (node.GetType().Name.Equals(GetClassName()))
                        {
                            ParticleNode = node._Data;
                            break;
                        }
                    }

                    if (ParticleNode != null)
                    {
                        break;
                    }
                }
            }


            if (ParticleNode != null)
            {
                var pc = sys.HostActorMesh as EngineNS.Bricks.Particle.GParticleComponent;
                if (pc != null)
                {
                    pc.ParticleSystemPropertyChangedEvent -= ResetPropertyChanged;
                    pc.ParticleSystemPropertyChangedEvent += ResetPropertyChanged;
                }
            }
        }
        public void SyncValues(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            if (ParticleNode == null)
            {
                return;
            }

            if (sys.SubParticleSystems != null && sys.SubParticleSystems.Count != 0)
            {
                for (int i = 0; i < sys.SubParticleSystems.Count; i++)
                {
                    var subsys = sys.SubParticleSystems[i];
                    var node   = subsys.TextureCutNode;
                    if (node != null)
                    {
                        if (node.GetType().Name.Equals(GetClassName()))
                        {
                            node._Data = ParticleNode as EngineNS.Bricks.Particle.TextureCutNode.Data;
                            return;
                        }
                    }
                }
            }
        }
Exemple #16
0
 public void AddHelpMeshComponentHelp(CRenderContext rc, EngineNS.GamePlay.Actor.GActor actor, EngineNS.Bricks.Particle.CGfxParticleSystem sys)
 {
     AddHelpMeshComponent(rc, actor, sys);
 }
Exemple #17
0
        public async System.Threading.Tasks.Task CreateBoundBox(CRenderContext rc, EngineNS.GamePlay.Actor.GActor actor, EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            this.RemoveComponent("BoxVolumeData");
            if (sys.IsShowBox)
            {
                var boxcom = new LooseOctree.BoxComponent();
                boxcom.Size   = new Vector3(sys.AABB.L, sys.AABB.H, sys.AABB.W);
                boxcom.Center = sys.AABB.Center;
                var init = new LooseOctree.BoxComponent.BoxComponentInitializer();
                init.SpecialName = "BoxVolumeData";
                await boxcom.SetInitializer(rc, actor, actor, init);

                boxcom.LineMeshComponent.Host = actor;

                this.AddComponent(boxcom);
            }
        }
 public void SyncValues(EngineNS.Bricks.Particle.CGfxParticleSystem sys)
 {
     SetPGradient(sys);
 }
Exemple #19
0
        public async System.Threading.Tasks.Task ResetDebugBox(CRenderContext rc, EngineNS.GamePlay.Actor.GActor actor, EngineNS.Bricks.Particle.CGfxParticleSystem sys)
        {
            BoundingBox.Merge(ref Host.LocalBoundingBox, ref sys.AABB.Box, out Host.LocalBoundingBox);
            OnUpdateDrawMatrix(ref Host.Placement.mDrawTransform);

            await CreateBoundBox(rc, Host, sys);
        }