diff --git a/scripts/EMIPGenerator.py b/scripts/EMIPGenerator.py index e8d2003..a20c08e 100644 --- a/scripts/EMIPGenerator.py +++ b/scripts/EMIPGenerator.py @@ -48,7 +48,7 @@ class AssetEdit: output += (1).to_bytes(4, byteorder="little") # m_ColorSpace output += len(imageData).to_bytes(4, byteorder="little") output += imageData - if self.type > 0: + if self.hasStream: output += b"\0" * 12 # Empty Streaming Data return output @@ -59,6 +59,16 @@ class AssetEdit: length = int.from_bytes(data[0:4], byteorder='little') paddedLength = length + (4 - length) % 4 self.name = data[4:4+length].decode('utf-8') + arrayPos = paddedLength + 4 * 15 + arrayLength = int.from_bytes(data[arrayPos:arrayPos+4], byteorder="little") + paddedArrayLength = arrayLength + (4 - arrayLength) % 4 + if arrayPos + 4 + paddedArrayLength == len(data): + self.hasStream = False + elif arrayPos + 4 + paddedArrayLength == len(data) - 12: + self.hasStream = True + else: + print(f"Couldn't figure out if {self.name} has a stream or not. Comparing {arrayPos + 4 + paddedArrayLength} to {len(data)}") + self.hasStream = True def getAssetInfo(self, assets, bundle): if self.id is None: @@ -96,7 +106,7 @@ class AssetEdit: self.id = id if objType == "Texture2D" and self.file[-4:] == ".png": print(f"Will replace object #{id} with contents of {self.file} converted to a Texture2D") - self.shouldDecode = True + self.loadTexture2DInfo(assets, bundle) else: print(f"Will replace object #{id} with contents of {self.file}") break diff --git a/scripts/TMPAssetConverter.py b/scripts/TMPAssetConverter.py index 548196b..4a95719 100644 --- a/scripts/TMPAssetConverter.py +++ b/scripts/TMPAssetConverter.py @@ -251,7 +251,7 @@ with open(behaviourFN, "rb") as behaviourFile: if len(sys.argv) > 4: atlasName = readString(atlasName) - with open(outFN + "/" + atlasName + "_Texture2D.dat", "wb") as outFile: + with open(outFN + "/" + original.filename + " Atlas_Texture2D.dat", "wb") as outFile: outFile.write(atlasOut) with open(outFN + "/" + original.filename + "_TextMeshProFont.dat", "wb") as outFile: outFile.write(combineFonts(original=original, new=behaviour))