public override void Save(XndNode xndNode, bool newGuid)
        {
            ParticleDataSaveLoad.SaveData("ParticleMaterialInstanceNode", xndNode, newGuid, CSParam as ParticleMaterialInstanceControlConstructionParams, this, mLinkedNodesContainer);
            base.Save(xndNode, newGuid);

            if (ShowValues.Count > 0)
            {
                InitValueDatas = ShowValues;
            }

            var attr = xndNode.AddAttrib("MaterialInstance_control");

            attr.Version = 0;
            attr.BeginWrite();
            attr.Write(InitValueDatas.Count);

            for (int i = 0; i < InitValueDatas.Count; i++)
            {
                var showvalue = InitValueDatas[i];
                attr.Write(showvalue.MaterialInstanceName);
                attr.Write(showvalue.VarRNameValues.Count);
                foreach (var varvalue in showvalue.VarRNameValues)
                {
                    attr.Write(varvalue.Key);
                    attr.Write(varvalue.Value.GetType().FullName);
                    {
                        if (varvalue.Value.GetType().Equals(typeof(float)))
                        {
                            attr.Write((float)varvalue.Value);
                            //elem.VarObject.mMaterialInstance.SetVarValue(elem.VarObject.Index, 0, ref value);
                        }
                        else if (varvalue.Value.GetType().Equals(typeof(Vector2)))
                        {
                            attr.Write((Vector2)varvalue.Value);
                        }
                        else if (varvalue.Value.GetType().Equals(typeof(Vector3)))
                        {
                            attr.Write((Vector3)varvalue.Value);
                        }
                        else if (varvalue.Value.GetType().Equals(typeof(Vector4)))
                        {
                            attr.Write((Vector4)varvalue.Value);
                        }
                        else if (varvalue.Value.GetType().Equals(typeof(EngineNS.Color)))
                        {
                            attr.Write((Color4)varvalue.Value);
                        }
                    }
                }

                attr.Write(showvalue.SRVRNameValues.Count);
                foreach (var srvvalue in showvalue.SRVRNameValues)
                {
                    attr.Write(srvvalue.Key);
                    attr.Write(srvvalue.Value as RName);
                }
            }
            attr.EndWrite();
        }
示例#2
0
        public override void Save(XndNode xndNode, bool newGuid)
        {
            var att = xndNode.AddAttrib("MtlMacros");

            att.BeginWrite();
            att.WriteMetaObject(mMtlMacros);
            att.EndWrite();
            base.Save(xndNode, newGuid);
        }
示例#3
0
        public override void Save(XndNode xndNode, bool newGuid)
        {
            var att = xndNode.AddAttrib("Data");

            att.Version = 0;
            att.BeginWrite();
            att.Write(TargetTypeName);
            att.EndWrite();
            base.Save(xndNode, newGuid);
        }
示例#4
0
        public override void Save(XndNode xndNode, bool newGuid)
        {
            var att = xndNode.AddAttrib("loopData");

            att.BeginWrite();
            att.Write(CountDefaultValue);
            att.EndWrite();

            base.Save(xndNode, newGuid);
        }
示例#5
0
        public override void Save(XndNode xndNode, bool newGuid)
        {
            var att = xndNode.AddAttrib("DefaultParamValue");

            att.Version = 1;
            att.BeginWrite();
            CodeGenerateSystem.Base.PropertyClassGenerator.SaveClassInstanceProperties(mTemplateClassInstance, att);
            att.EndWrite();
            base.Save(xndNode, newGuid);
        }
示例#6
0
        public override void Save(XndNode xndNode, bool newGuid)
        {
            var att = xndNode.AddAttrib("_shaderVar");

            att.Version = 0;
            att.BeginWrite();
            att.WriteMetaObject(ShaderVarInfo);
            att.EndWrite();
            base.Save(xndNode, newGuid);
        }
        public static void SaveData(string name, XndNode xndNode, bool newGuid, StructNodeControlConstructionParams csparam, IParticleNode pnode, CodeGenerateSystem.Controls.NodesContainerControl mLinkedNodesContainer)
        {
            var psd = pnode as IParticleSaveData;

            if (psd != null && psd.IsLoadLink() == false)
            {
                var test = ParticleDataSaveLoad.LoadData(csparam, mLinkedNodesContainer, psd);
            }

            if (mLinkedNodesContainer != null)
            {
                var att = xndNode.AddAttrib(name);
                att.Version = 0;
                att.BeginWrite();

                List <string> keys = new List <string>();
                //var csparam = CSParam as StructNodeControlConstructionParams;
                if (csparam.CategoryDic == null)
                {
                    att.Write(0);
                    att.EndWrite();
                }
                else
                {
                    att.Write(csparam.CategoryDic.Count);
                    foreach (var category in csparam.CategoryDic)
                    {
                        att.Write(category.Key);
                        att.Write(category.Value.Items.Count);

                        keys.Add(category.Key);
                    }
                    att.EndWrite();

                    for (int i = 0; i < keys.Count; i++)
                    {
                        var Node     = xndNode.AddNode(keys[i], 0, 0);
                        var category = csparam.CategoryDic[keys[i]];
                        for (int j = 0; j < category.Items.Count; j++)
                        {
                            var childNode = Node.AddNode("childNode", 0, 0);
                            category.Items[j].Save(childNode);
                        }
                    }
                }
            }

            //base.Save(xndNode, newGuid);
            if (pnode.GetCreateObject() != null)
            {
                var childenode = xndNode.AddNode("CreateObjectNode", 0, 0);

                pnode.GetCreateObject().Save(childenode, newGuid);
            }
        }
        public override void Save(XndNode xndNode, bool newGuid)
        {
            GetGradientDatas();
            var att = xndNode.AddAttrib("DefaultParamValue");

            att.Version = 0;
            att.BeginWrite();
            att.Write(GradientDatas.Count);
            for (int i = 0; i < GradientDatas.Count; i++)
            {
                att.WriteMetaObject(GradientDatas[i]);
            }
            att.EndWrite();
            base.Save(xndNode, newGuid);
        }
示例#9
0
        public override void Save(XndNode xndNode, bool newGuid)
        {
            var att = xndNode.AddAttrib("defaultParam");

            att.Version = 1;
            att.BeginWrite();
            if (mTemplateClassInstance != null)
            {
                att.Write((Byte)1);
                CodeGenerateSystem.Base.PropertyClassGenerator.SaveClassInstanceProperties(mTemplateClassInstance, att);
            }
            else
            {
                att.Write((Byte)0);
            }
            att.EndWrite(); base.Save(xndNode, newGuid);
        }
示例#10
0
        public override void Save(XndNode xndNode, bool newGuid)
        {
            var att = xndNode.AddAttrib("defaultParam");

            att.Version = 1;
            att.BeginWrite();
            var allType = mTemplateClassInstance_All.GetType();

            foreach (var pro in mTemplateClassInstance_Show.GetType().GetProperties())
            {
                var allPro = allType.GetProperty(pro.Name);
                allPro.SetValue(mTemplateClassInstance_All, pro.GetValue(mTemplateClassInstance_Show));
            }
            CodeGenerateSystem.Base.PropertyClassGenerator.SaveClassInstanceProperties(mTemplateClassInstance_All, att);
            att.EndWrite();

            base.Save(xndNode, newGuid);
        }
示例#11
0
        public override void Save(XndNode xndNode, bool newGuid)
        {
            GetBezierPointsFromCtrl();
            var att = xndNode.AddAttrib("Data");

            att.Version = 1;
            att.BeginWrite();
            CodeGenerateSystem.Base.PropertyClassGenerator.SaveClassInstanceProperties(mTemplateClassInstance, att);
            att.Write((Int32)mBezierPoints.Count);
            foreach (var bPt in mBezierPoints)
            {
                var pt = new EngineNS.BezierPointBase(bPt.Position, bPt.ControlPoint);
                att.WriteMetaObject(pt);
            }
            att.Write(mBezierWidth);
            att.Write(mBezierHeight);
            att.EndWrite();
            base.Save(xndNode, newGuid);
        }
示例#12
0
        protected override void SaveLinks(XndNode xndNode, bool newGuid)
        {
            var att = xndNode.AddAttrib("TransitionLinks");

            att.Version = 0;
            att.BeginWrite();
            att.Write((int)(LinkInfos.Count));
            foreach (var link in LinkInfos)
            {
                // 创建新的GUID则输出以前的GUID
                if (newGuid)
                {
                    att.Write(link.m_linkFromObjectInfo.m_copyedGuid);
                    att.Write(link.m_linkToObjectInfo.m_copyedGuid);
                }
                else
                {
                    att.Write(link.m_linkFromObjectInfo.GUID);
                    att.Write(link.m_linkToObjectInfo.GUID);
                }
            }
            att.EndWrite();
        }