static UPackage_Info LoadInfo_fromFile(string file_path) { var pkg = UnrealLoader.LoadFullPackage(file_path); var _R = new UPackage_Info(); var imp = new List <UPortedItem_Info>(); foreach (var v in pkg.Imports) { UPortedItem_Info upi; if (Get_UPIInfo(v.ClassName, v.OuterName, v.ObjectName, out upi, _R)) { imp.Add(upi); } } var exp = new List <UPortedItem_Info>(); foreach (var v in pkg.Exports) { UPortedItem_Info upi; if (Get_UPIInfo(v.ClassName, v.OuterName, v.ObjectName, out upi, _R)) { exp.Add(upi); } } _R.PackageName = Get_PkgName(file_path).ToLower(); _R.Imports = imp; _R.Exports = exp; return(_R); }
static bool Get_UPIInfo(string class_name, string parent_name, string object_name, out UPortedItem_Info upi_info, UPackage_Info claimer) { if (ignored_pkgs.Contains(parent_name)) { upi_info = null; return(false); } else { switch (class_name) { case "MaterialInstanceConstant": upi_info = new UPortedItem_Info() { Claimer = claimer, ObjClass = UObjectClass.MaterialInstanceConstant, Parent = parent_name.ToLower(), ObjName = object_name }; return(true); case "SkeletalMesh": upi_info = new UPortedItem_Info() { Claimer = claimer, ObjClass = UObjectClass.SkeletalMesh, Parent = parent_name.ToLower(), ObjName = object_name }; return(true); case "Texture2D": upi_info = new UPortedItem_Info() { Claimer = claimer, ObjClass = UObjectClass.Texture2D, Parent = parent_name.ToLower(), ObjName = object_name }; return(true); default: upi_info = null; return(false); } } }