internal static RigidBodyList GetRigidBodyList(Stream fs, Header header) { RigidBodyList data = new RigidBodyList(); data.RigidBodies = new List <RigidBodyData>(); data.RigidBodyCount = ParserHelper.getInt(fs); for (int i = 0; i < data.RigidBodyCount; i++) { data.RigidBodies.Add(RigidBodyData.GetRigidBodyData(fs, header)); } return(data); }
internal static RigidBodyData GetRigidBodyData(Stream fs, Header header) { RigidBodyData data = new RigidBodyData(); data.RigidBodyName = ParserHelper.getTextBuf(fs, header.Encode); data.RigidBodyName_En = ParserHelper.getTextBuf(fs, header.Encode); data.BoneIndex = ParserHelper.getIndex(fs, header.BoneIndexSize); data.RigidBodyGroup = ParserHelper.getByte(fs); data.UnCollisionGroupFlag = ParserHelper.getUShort(fs); data.Shape = (RigidBodyShape)ParserHelper.getByte(fs); data.Size = ParserHelper.getFloat3(fs); data.Position = ParserHelper.getFloat3(fs); data.Rotation = ParserHelper.getFloat3(fs); data.Mass = ParserHelper.getFloat(fs); data.MoveAttenuation = ParserHelper.getFloat(fs); data.RotationAttenuation = ParserHelper.getFloat(fs); data.Repulsion = ParserHelper.getFloat(fs); data.Friction = ParserHelper.getFloat(fs); data.PhysicsCalcType = (PhysicsCalcType)ParserHelper.getByte(fs); return(data); }