public void PopulateValuesFromAssetSchematic(AssetSchematic schematic) { //Debug.Log("Populating values."); //Origin & Description this.item_id = schematic.origin_and_description.mcs_id; this.item_name = schematic.origin_and_description.name; this.collection_id = schematic.origin_and_description.collection_id; this.collection_name = schematic.origin_and_description.collection_name; this.vendorId = schematic.origin_and_description.vendor_id; //Version this.collection_version = schematic.version_and_control.collection_version; this.item_version = schematic.version_and_control.item_version; this.mcs_version = schematic.version_and_control.mcs_version; //Type & function this.function = schematic.type_and_function.item_function; this.rank = schematic.type_and_function.hierarchy_rank; // TODO: Should be using AssetSchematic.ItemStructure instead. this.schematic = new ItemSchematic(); this.schematic.lods = schematic.structure_and_physics.item_structure.lods; this.schematic.persistent = schematic.structure_and_physics.item_structure.persistent; if (this.function != ItemFunction.figure) { this.compatibilities = new ItemCompatibilities(); this.compatibilities.figures = schematic.version_and_control.compatibilities; } DownConvertDarwinSpecToProtoSpec(); }
//during the import process unity gives us these arrays per gameobject - they are our metatadata from fbx public void PopulateValuesFromImportArrays(string[] names, object[] values) { for (int i = 0; i < names.Length; i++) { //our placeholder values - make sure you dont use a previous parsed bad value!!! string name = names[i]; string string_value; float float_value; switch (name) { case "hierarchy_rank": string_value = values[i].ToString(); this.rank = EnumHelper.ParseEnum <HierarchyRank>(string_value); break; // case "primary_function": // string_value = values[i].ToString(); // this.function = EnumHelper.ParseEnum<PrimaryFunction>(string_value); // break; case "item_function": string_value = values[i].ToString(); this.function = EnumHelper.ParseEnum <ItemFunction>(string_value); break; case "collection_version": float_value = float.Parse(values[i].ToString()); this.collection_version = float_value; break; case "item_version": float_value = float.Parse(values[i].ToString()); this.item_version = float_value; break; case "mcs_version": float_value = float.Parse(values[i].ToString()); this.mcs_version = float_value; break; case "item_id": string_value = values[i].ToString(); this.item_id = string_value; break; case "id": string_value = values[i].ToString(); this.item_id = string_value; break; case "collection_id": string_value = values[i].ToString(); this.collection_id = string_value; break; case "item_name": string_value = values[i].ToString(); this.item_name = string_value; break; case "name": string_value = values[i].ToString(); this.item_name = string_value; break; case "collection_name": string_value = values[i].ToString(); this.collection_name = string_value; break; case "geometries": string_value = values[i].ToString(); //json bundle this.schematic = ItemSchematic.CreateFromJSON(string_value); break; case "compatibilities": string_value = values[i].ToString(); //json bundle if (this.function != ItemFunction.figure) { this.compatibilities = ItemCompatibilities.CreateFromJSON(string_value); } break; } } DownConvertDarwinSpecToProtoSpec(); }