public AnimationAsset(AnimationAssetConstructionParams csParam) : base(csParam) { InitConstruction(); if (csParam.AnimAsset == null) { csParam.AnimAsset = new AnimAsset(); if (csParam.HostNodesContainer.HostNode is AnimStateControl) { csParam.AnimAsset.AnimAssetLocationName = csParam.HostNodesContainer.HostNode.NodeName; csParam.AnimAsset.AnimAssetLocation = AnimAssetLocation.State; csParam.AnimAsset.AnimAssetName = csParam.NodeName.PureName(); } else { System.Diagnostics.Debugger.Break(); } } var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(bool), "IsLoop", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this); var clsType = mTemplateClassInstance.GetType(); var xNamePro = clsType.GetProperty("IsLoop"); xNamePro.SetValue(mTemplateClassInstance, csParam.IsLoop); RNameNodeName = csParam.NodeName; NodeName = csParam.NodeName.PureName(); Notifies = csParam.Notifies; IsOnlyReturnValue = true; AddLinkPinInfo("AnimAssetLinkHandle", mCtrlValueLinkHandle, null); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(bool), "PerformanceFirst", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(float), "FadeTime", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, null, false); var clsType = mTemplateClassInstance.GetType(); var performanceFirstPro = clsType.GetProperty("PerformanceFirst"); performanceFirstPro.SetValue(mTemplateClassInstance, PerformanceFirst); SetBinding(TransitionCrossfadeShow.PerformanceFirstProperty, new Binding("PerformanceFirst") { Source = mTemplateClassInstance, Mode = BindingMode.TwoWay }); var fadeTimePro = clsType.GetProperty("FadeTime"); fadeTimePro.SetValue(mTemplateClassInstance, FadeTime); SetBinding(TransitionCrossfadeShow.FadeTimeProperty, new Binding("FadeTime") { Source = mTemplateClassInstance, Mode = BindingMode.TwoWay }); }
public void CreateTemplateClass(List <CodeGenerateSystem.Base.CustomPropertyInfo> cpInfos) { var csParam = CSParam as ReturnConstructParam; mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, $"Return_{csParam.MethodInfo.ParentClassType.FullName}.{csParam.MethodInfo.MethodName}", false); InitTemplateClass_WPF(cpInfos); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); //cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(Int32), "ActiveValue", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, null, false); //CreateBinding(mTemplateClassInstance, "ActiveValue", LASelectPoseByEnumControl.ActiveValueProperty, ActiveValue); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(long), "Time", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, null, false); CreateBinding(mTemplateClassInstance, "Time", BehaviorTree_WaitActionControl.TimeProperty, Time); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); //cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(CompositeNodeType), "CompositeNodeType", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, null, false); //CreateBinding(mTemplateClassInstance, "CompositeNodeType", BehaviorTree_PlayAnimationActionControl.CompositeNodeTypeProperty, CompositeNodeType); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(string), "Time", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute(), new EngineNS.Editor.Editor_ClassPropertySelectAttributeAttribute(BTCenterDataWarpper.CenterDataType, new Type[] { typeof(long), typeof(Int32), typeof(float), typeof(double) }) })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, null, false); CreateBinding(mTemplateClassInstance, "Time", BehaviorTree_WaitDataTimeActionControl.TimeProperty, Time); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(string), "SyncPlayPercentGrop", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this); CreateBinding(mTemplateClassInstance, "SyncPlayPercentGrop", LABlendSpaceControl.SyncPlayPercentGropProperty, SyncPlayPercentGrop); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(float), "Alpha", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, null, false); CreateBinding(mTemplateClassInstance, "Alpha", LALegIKControl.AlphaProperty, Alpha); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(string), "TargetPosition", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute(), new EngineNS.Editor.Editor_ClassPropertySelectAttributeAttribute(BTCenterDataWarpper.CenterDataType, new Type[] { typeof(EngineNS.Vector3) }) })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(string), "ArriveDistance", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute(), new EngineNS.Editor.Editor_ClassPropertySelectAttributeAttribute(BTCenterDataWarpper.CenterDataType, new Type[] { typeof(long), typeof(Int32), typeof(float), typeof(double) }) })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, "PG_" + BTCenterDataWarpper.CenterDataType.Name + this.Id.ToString(), false); CreateBinding(mTemplateClassInstance, "TargetPosition", BehaviorTree_MoveToActionControl.TargetPositionProperty, TargetPosition); CreateBinding(mTemplateClassInstance, "ArriveDistance", BehaviorTree_MoveToActionControl.ArriveDistanceProperty, ArriveDistance); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(bool), "BoolValue", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(float), "TrueBlendTime", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(float), "FalseBlendTime", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, null, false); CreateBinding(mTemplateClassInstance, "BoolValue", LASelectPoseByBoolControl.BoolValueProperty, BoolValue); CreateBinding(mTemplateClassInstance, "TrueBlendTime", LASelectPoseByBoolControl.TrueBlendValueProperty, TrueBlendValue); CreateBinding(mTemplateClassInstance, "FalseBlendTime", LASelectPoseByBoolControl.FalseBlendValueProperty, FalseBlendValue); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); //cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(bool), "Repeat", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); //cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(bool), "DefaultState", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); //cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(float), "Duration", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); //cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(float), "WidthScale", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); //cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(EngineNS.RName), "AnimationFilePath", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute(), new EngineNS.Editor.Editor_RNameTypeAttribute(EngineNS.Editor.Editor_RNameTypeAttribute.AnimationClip) })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this); //CreateBinding(mTemplateClassInstance, "DefaultState", LAClipNodeControl.DefaultStateProperty, DefaultState); //CreateBinding(mTemplateClassInstance, "Duration", LAClipNodeControl.DurationProperty, Duration); //CreateBinding(mTemplateClassInstance, "WidthScale", LAClipNodeControl.WidthScaleProperty, WidthScale); //CreateBinding(mTemplateClassInstance, "AnimationFilePath", LAClipNodeControl.AnimationFilePathProperty, AnimationFilePath); }
void BindingTemplateClassInstanceProperties() { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(float), "Alpha", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(uint), "Iteration", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(float), "LimitAngle", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(string), "RootBone", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute(), new EngineNS.Editor.Editor_LAGraphBonePoseSelectAttribute() })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(string), "EndEffecterBone", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute(), new EngineNS.Editor.Editor_LAGraphBonePoseSelectAttribute() })); cpInfos.Add(CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(typeof(string), "TargetBone", new Attribute[] { new EngineNS.Rtti.MetaDataAttribute(), new EngineNS.Editor.Editor_LAGraphBonePoseSelectAttribute() })); mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, null, false); CreateBinding(mTemplateClassInstance, "Alpha", LACCDIKControl.AlphaProperty, Alpha); CreateBinding(mTemplateClassInstance, "Iteration", LACCDIKControl.IterationProperty, Iteration); CreateBinding(mTemplateClassInstance, "LimitAngle", LACCDIKControl.LimitAngleProperty, LimitAngle); CreateBinding(mTemplateClassInstance, "RootBone", LACCDIKControl.RootBoneNameProperty, RootBoneName); CreateBinding(mTemplateClassInstance, "EndEffecterBone", LACCDIKControl.EndEffecterBoneNameProperty, EndEffecterBoneName); CreateBinding(mTemplateClassInstance, "TargetBone", LACCDIKControl.TargetBoneNameProperty, TargetBoneName); }
protected void CreateTemplateClassInstance() { if (mCustomPropertyInfos.Count == 0) { return; } var classType = CodeGenerateSystem.Base.PropertyClassGenerator.CreateTypeFromCustomPropertys(mCustomPropertyInfos); mTemplateClassInstance = System.Activator.CreateInstance(classType) as CodeGenerateSystem.Base.GeneratorClassBase; var field = mTemplateClassInstance.GetType().GetField("HostNode"); if (field != null) { field.SetValue(mTemplateClassInstance, this); } foreach (var property in mTemplateClassInstance.GetType().GetProperties()) { property.SetValue(mTemplateClassInstance, CodeGenerateSystem.Program.GetDefaultValueFromType(property.PropertyType)); } }
void CreateTemplateClass_Show() { var allType = mTemplateClassInstance_All.GetType(); if (mTemplateClassInstance_Show != null) { foreach (var pro in mTemplateClassInstance_Show.GetType().GetProperties()) { var allPro = allType.GetProperty(pro.Name); allPro.SetValue(mTemplateClassInstance_All, pro.GetValue(mTemplateClassInstance_Show)); } } var cpInfos_Show = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); var param = CSParam as ExpandNodeConstructParam; foreach (var pro in param.ExpandType.GetProperties()) { if (!pro.CanWrite) { continue; } var atts = pro.GetCustomAttributes(typeof(EngineNS.Editor.MacrossMemberAttribute), false); if (atts == null || atts.Length == 0) { continue; } var mm = atts[0] as EngineNS.Editor.MacrossMemberAttribute; // 只读不能设置 if (mm.HasType(EngineNS.Editor.MacrossMemberAttribute.enMacrossType.ReadOnly)) { continue; } if (param.ActiveMembers.Contains(pro.Name)) { var cpInfo = new CodeGenerateSystem.Base.CustomPropertyInfo(); cpInfo.PropertyName = pro.Name; cpInfo.PropertyType = pro.PropertyType; foreach (var att in pro.GetCustomAttributes(false)) { cpInfo.PropertyAttributes.Add(att as System.Attribute); } cpInfo.DefaultValue = CodeGenerateSystem.Program.GetDefaultValueFromType(cpInfo.PropertyType); cpInfo.CurrentValue = cpInfo.DefaultValue; cpInfos_Show.Add(cpInfo); } } foreach (var field in param.ExpandType.GetFields()) { var atts = field.GetCustomAttributes(typeof(EngineNS.Editor.MacrossMemberAttribute), false); if (atts == null || atts.Length == 0) { continue; } var mm = atts[0] as EngineNS.Editor.MacrossMemberAttribute; // 只读不能设置 if (mm.HasType(EngineNS.Editor.MacrossMemberAttribute.enMacrossType.ReadOnly)) { continue; } if (param.ActiveMembers.Contains(field.Name)) { var cpInfo = new CodeGenerateSystem.Base.CustomPropertyInfo(); cpInfo.PropertyName = field.Name; cpInfo.PropertyType = field.FieldType; foreach (var att in field.GetCustomAttributes(false)) { cpInfo.PropertyAttributes.Add(att as System.Attribute); } cpInfo.DefaultValue = CodeGenerateSystem.Program.GetDefaultValueFromType(cpInfo.PropertyType); cpInfo.CurrentValue = cpInfo.DefaultValue; cpInfos_Show.Add(cpInfo); } } mTemplateClassInstance_Show = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos_Show, this, "ExpandShow" + Guid.NewGuid().ToString(), false); bool createNewAllTC = false; foreach (var pro in mTemplateClassInstance_Show.GetType().GetProperties()) { var allPro = allType.GetProperty(pro.Name); if (allPro == null) { createNewAllTC = true; } else { pro.SetValue(mTemplateClassInstance_Show, allPro.GetValue(mTemplateClassInstance_All)); } } if (createNewAllTC) { var showType = mTemplateClassInstance_Show.GetType(); CreateTemplateClass_All(); foreach (var pro in mTemplateClassInstance_All.GetType().GetProperties()) { var showPro = showType.GetProperty(pro.Name); pro.SetValue(mTemplateClassInstance_All, showPro.GetValue(mTemplateClassInstance_Show)); } } }
public Function(CodeGenerateSystem.Base.ConstructionParams smParam) : base(smParam) { InitializeComponent(); var splits = CSParam.ConstructParam.Split('|'); var include = splits[0]; if (include.Contains(":")) { include = EngineNS.CEngine.Instance.FileManager._GetRelativePathFromAbsPath(include, EngineNS.CEngine.Instance.FileManager.Bin); } include = include.Replace("\\", "/"); if (include.Contains("bin/")) { var nIdx = include.IndexOf("bin/"); include = include.Substring(nIdx + 4); } System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); xmlDoc.LoadXml(splits[1]); mStrFuncName = xmlDoc.DocumentElement.GetAttribute("Name"); NodeName = mStrFuncName; var tempElements = xmlDoc.GetElementsByTagName("Param"); if (tempElements.Count > 0) { var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); var paramInElm = tempElements[0]; int nIdx = 0; foreach (System.Xml.XmlElement node in paramInElm.ChildNodes) { var typeStr = node.GetAttribute("Type"); var nameStr = node.GetAttribute("Name"); var strAttr = node.GetAttribute("Attribute"); switch (strAttr) { case "out": case "return": break; default: { var cpInfo = CodeGenerateSystem.Base.CustomPropertyInfo.GetFromParamInfo(Program.GetTypeFromValueType(typeStr), nameStr, new Attribute[] { new EngineNS.Rtti.MetaDataAttribute() }); if (cpInfo != null) { cpInfos.Add(cpInfo); } } break; } AddLink(nIdx, typeStr, nameStr, strAttr); nIdx++; } mTemplateClassInstance = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos, this, $"{this.GetType().FullName}.PropertyClass_{mStrFuncName}", false); foreach (var property in mTemplateClassInstance.GetType().GetProperties()) { property.SetValue(mTemplateClassInstance, CodeGenerateSystem.Program.GetDefaultValueFromType(property.PropertyType)); } if (HostNodesContainer != null && HostNodesContainer.HostControl != null) { mTemplateClassInstance.EnableUndoRedo(HostNodesContainer.HostControl.UndoRedoKey, mStrFuncName); } } this.UpdateLayout(); }
void CreateTemplateClass_All() { var cpInfos_All = new List <CodeGenerateSystem.Base.CustomPropertyInfo>(); var param = CSParam as ExpandNodeConstructParam; if (param.ExpandType == null) { return; } foreach (var pro in param.ExpandType.GetProperties()) { if (!pro.CanWrite) { continue; } var atts = pro.GetCustomAttributes(typeof(EngineNS.Editor.MacrossMemberAttribute), false); if (atts == null || atts.Length == 0) { continue; } var mm = atts[0] as EngineNS.Editor.MacrossMemberAttribute; // 只读不能设置 if (mm.HasType(EngineNS.Editor.MacrossMemberAttribute.enMacrossType.ReadOnly)) { continue; } var cpInfo = new CodeGenerateSystem.Base.CustomPropertyInfo(); cpInfo.PropertyName = pro.Name; cpInfo.PropertyType = pro.PropertyType; foreach (var att in pro.GetCustomAttributes(false)) { cpInfo.PropertyAttributes.Add(att as System.Attribute); } cpInfo.DefaultValue = CodeGenerateSystem.Program.GetDefaultValueFromType(cpInfo.PropertyType); cpInfo.CurrentValue = cpInfo.DefaultValue; cpInfos_All.Add(cpInfo); } foreach (var field in param.ExpandType.GetFields()) { var atts = field.GetCustomAttributes(typeof(EngineNS.Editor.MacrossMemberAttribute), false); if (atts == null || atts.Length == 0) { continue; } var mm = atts[0] as EngineNS.Editor.MacrossMemberAttribute; // 只读不能设置 if (mm.HasType(EngineNS.Editor.MacrossMemberAttribute.enMacrossType.ReadOnly)) { continue; } var cpInfo = new CodeGenerateSystem.Base.CustomPropertyInfo(); cpInfo.PropertyName = field.Name; cpInfo.PropertyType = field.FieldType; foreach (var att in field.GetCustomAttributes(false)) { cpInfo.PropertyAttributes.Add(att as System.Attribute); } cpInfo.DefaultValue = CodeGenerateSystem.Program.GetDefaultValueFromType(cpInfo.PropertyType); cpInfo.CurrentValue = cpInfo.DefaultValue; cpInfos_All.Add(cpInfo); } mTemplateClassInstance_All = CodeGenerateSystem.Base.PropertyClassGenerator.CreateClassInstanceFromCustomPropertys(cpInfos_All, this, $"ExpandNode_{param.ExpandType.FullName}.{NodeName}", false); }