public override void loadConfig(TezReader reader) { reader.beginObject("Node"); m_Child = TezBehaviorTree.create(reader.readString("CID")); m_Child.loadConfig(reader); reader.endObject("Node"); }
public override void loadConfig(TezReader reader) { m_Root = (TezBTComposite)create(reader.readString("CID")); m_Root.tree = this; m_Root.parent = this; m_Root.loadConfig(reader); }
private static void writeFinalClass(TezReader reader, StringBuilder builder, string className, string parentClass, string rootClass, string rootMember) { builder.AppendLine(string.Format("public class {0} : TezCategoryFinalToken<{0}, {0}.Category>", className)); builder.AppendLine("{"); #region 枚举变量 builder.AppendLine("public enum Category"); builder.AppendLine("{"); for (int i = 0; i < reader.count; i++) { builder.AppendLine(reader.readString(i) + ","); } builder.AppendLine("}"); #endregion #region 构造函数 builder.AppendLine(string.Format("private {0}(Category value, ITezCategoryBaseToken parentToken) : base(value, parentToken)", className)); builder.AppendLine("{"); builder.AppendLine("}"); #endregion #region 声明变量 for (int i = 0; i < reader.count; i++) { builder.AppendLine(string.Format("public static readonly {0} {1} = new {0}(Category.{1}, {2}.{0});", className, reader.readString(i), parentClass)); } #endregion #region 初始化变量 builder.AppendLine("public static void init()"); builder.AppendLine("{"); for (int i = 0; i < reader.count; i++) { builder.AppendLine(string.Format("{0}.registerID({1}.{2});", reader.readString(i), rootClass, rootMember)); } builder.AppendLine("}"); #endregion builder.AppendLine("}"); builder.AppendLine(); }
public override void readFromSave(TezReader reader) { if (Enum.TryParse(reader.readString("KeyCode"), out KeyCode result)) { keyCode = result; } else { throw new Exception(); } }
public static void readProperty(this TezReader reader, TezValueWrapper vw) { switch (vw.valueType) { case TezValueType.Bool: { var result = (TezValueWrapper <bool>)vw; result.value = reader.readBool(result.name); break; } case TezValueType.Int: { var result = (TezValueWrapper <int>)vw; result.value = reader.readInt(result.name); break; } case TezValueType.Float: { var result = (TezValueWrapper <float>)vw; result.value = reader.readFloat(result.name); break; } case TezValueType.Double: break; case TezValueType.String: { var result = (TezValueWrapper <string>)vw; result.value = reader.readString(result.name); break; } case TezValueType.Class: break; case TezValueType.StaticString: break; case TezValueType.Type: break; case TezValueType.Unknown: break; default: break; } }
public override void loadConfig(TezReader reader) { reader.beginArray("Nodes"); var count = reader.count; for (int i = 0; i < count; i++) { reader.beginObject(i); var node = TezBehaviorTree.create(reader.readString("CID")); this.addNode(node); node.loadConfig(reader); reader.endObject(i); } reader.endArray("Nodes"); }
/// <summary> /// /// Category Cshap File Generator /// /// </summary> /// <param name="outPath"></param> /// <param name="reader"></param> public static void generateCodeFile(string outPath, TezReader reader) { List <string> final_list = new List <string>(); StringBuilder builder = new StringBuilder(); var root_class = "Root"; var wrapper_class = reader.readString("WrapperClass"); var name_space = reader.readString("Namespace"); builder.AppendLine("using System;"); builder.AppendLine("using System.Collections.Generic;"); builder.AppendLine("using tezcat.Framework.Core;"); builder.AppendLine(); builder.AppendLine(); ///Namespace builder.AppendLine(string.Format("namespace {0}", name_space)); builder.AppendLine("{"); ///Config Class builder.AppendLine(string.Format("public static class {0}", wrapper_class)); builder.AppendLine("{"); #region 写类 reader.beginObject(root_class); var children = writeRootClass(reader, builder, root_class); ///从Key中获得所有Class的名称 foreach (var class_name in children) { ///如果是Object ///说明是Path if (reader.tryBeginObject(class_name)) { ///写入当前PathClass ///并且得到下一级Class的Name var new_children = writePathClass(reader, builder, class_name, root_class); writeClasses(new_children, reader, builder, class_name, root_class, class_name, final_list); reader.endObject(class_name); ///调用自己写入下一个Class } ///如果不是Object ///说明是Final else { reader.beginArray(class_name); writeFinalClass(reader, builder, class_name, root_class, root_class, class_name); reader.endArray(class_name); final_list.Add(class_name); } } reader.endObject(root_class); #endregion #region 初始化函数 builder.AppendLine("public static void init()"); builder.AppendLine("{"); for (int i = 0; i < final_list.Count; i++) { builder.AppendLine(string.Format("{0}.init();", final_list[i])); } builder.AppendLine("}"); #endregion ///Config Class builder.AppendLine("}"); ///Namespace builder.AppendLine("}"); var writer = TezFilePath.createTextFile(outPath + "/" + wrapper_class + ".cs"); writer.Write(builder.ToString()); writer.Close(); }