// Generation Methods private RigidNode_Base CreateNodeWithChild() { RotationalJoint_Base joint = new RotationalJoint_Base(); joint.axis = new BXDVector3(2, 2, 2); joint.basePoint = new BXDVector3(3, 131, 3); JointDriver driver = new JointDriver(JointDriverType.MOTOR); driver.SetPort(414); driver.isCan = true; WheelDriverMeta wheelDriverMeta = new WheelDriverMeta(); wheelDriverMeta.radius = 9.4F; wheelDriverMeta.center = new BXDVector3(1, 1, 1); driver.AddInfo(wheelDriverMeta); joint.cDriver = driver; Guid childID = new Guid(); RigidNode_Base baseNode = new RigidNode_Base(id); RigidNode_Base childNode = new RigidNode_Base(childID); baseNode.AddChild(joint, childNode); return(baseNode); }
public static RigidNode_Base ReadSkeleton(string path) { string jsonData = File.ReadAllText(path); RigidNode_Base root = null; JsonConverter[] converters = { new JointConverter(), new DriverMetaConverter() }; JsonSkeleton skeleton = JsonConvert.DeserializeObject <JsonSkeleton>(jsonData, new JsonSerializerSettings() { Converters = converters }); List <JsonSkeletonNode> nodes = skeleton.Nodes; if (nodes.Count < 1) { Console.Error.WriteLine("0 Nodes Loaded! Failed import"); return(null); } foreach (JsonSkeletonNode node in nodes) { RigidNode_Base newNode = RigidNode_Base.NODE_FACTORY(new Guid(node.GUID)); newNode.ModelFileName = node.ModelFileName; newNode.ModelFullID = node.ModelID; if (node.ParentID == "-1") { root = newNode; root.driveTrainType = skeleton.DriveTrainType; } else { root.AddChild(node.joint, newNode); } } return(root); }