Updated file and sprite managers to use new file structure.

This commit is contained in:
lightheel 2025-08-03 11:29:40 -04:00
parent d86ee00109
commit fa8546f283
3 changed files with 62 additions and 27 deletions

View File

@ -32,7 +32,7 @@ class AttackSpriteManager(private val context: Context) {
private val characterDataCache = mutableMapOf<String, CharacterData>() private val characterDataCache = mutableMapOf<String, CharacterData>()
// Base path for attack textures // Base path for attack textures
private val attackTexturesPath = "Battle_Sprites_Reference/extracted_assets/atk_textures" private val attackTexturesPath = "battle_sprites/extracted_assets/extracted_atksprites"
fun getAttackSprite(characterId: String, isLarge: Boolean = false): Bitmap? { fun getAttackSprite(characterId: String, isLarge: Boolean = false): Bitmap? {
println("AttackSpriteManager: Getting attack sprite for characterId=$characterId, isLarge=$isLarge") println("AttackSpriteManager: Getting attack sprite for characterId=$characterId, isLarge=$isLarge")
@ -86,7 +86,7 @@ class AttackSpriteManager(private val context: Context) {
try { try {
// Load character data from JSON file // Load character data from JSON file
val characterDataFile = File(context.filesDir, "Battle_Sprites_Reference/extracted_digimon_stats/character_data/CharacterData.json") val characterDataFile = File(context.filesDir, "battle_sprites/extracted_digimon_stats/character_data/CharacterData.json")
println("AttackSpriteManager: Character data file path = ${characterDataFile.absolutePath}") println("AttackSpriteManager: Character data file path = ${characterDataFile.absolutePath}")
println("AttackSpriteManager: Character data file exists = ${characterDataFile.exists()}") println("AttackSpriteManager: Character data file exists = ${characterDataFile.exists()}")

View File

@ -38,7 +38,7 @@ class BattleSpriteManager(private val context: Context) {
private val spriteCache = mutableMapOf<String, Bitmap>() private val spriteCache = mutableMapOf<String, Bitmap>()
// Base directory where your sprites are stored // Base directory where your sprites are stored
private val spriteBaseDir = File(context.filesDir, "Battle_Sprites_Reference/extracted_assets") private val spriteBaseDir = File(context.filesDir, "battle_sprites/extracted_assets")
fun loadSprite(spriteName: String, atlasName: String): Bitmap? { fun loadSprite(spriteName: String, atlasName: String): Bitmap? {
val cacheKey = "${spriteName}_${atlasName}" val cacheKey = "${spriteName}_${atlasName}"
@ -58,18 +58,9 @@ class BattleSpriteManager(private val context: Context) {
println("Available directories: ${spriteBaseDir.listFiles()?.map { it.name }}") println("Available directories: ${spriteBaseDir.listFiles()?.map { it.name }}")
try { try {
// Load the mapping file // Load the PNG texture file directly using the atlas name
val mappingFile = File(spriteBaseDir, "mappings/${atlasName}_mapping.json") val textureFile = File(spriteBaseDir, "extracted_textures/${atlasName}.png")
if (!mappingFile.exists()) {
println("Mapping file not found: ${mappingFile.absolutePath}")
return null
}
val mappingJson = mappingFile.readText()
val mapping = gson.fromJson(mappingJson, SpriteMapping::class.java)
// Load the PNG texture file
val textureFile = File(spriteBaseDir, "textures/${mapping.texture.file}")
if (!textureFile.exists()) { if (!textureFile.exists()) {
println("Texture file not found: ${textureFile.absolutePath}") println("Texture file not found: ${textureFile.absolutePath}")
return null return null
@ -142,18 +133,18 @@ class BattleSpriteManager(private val context: Context) {
// Helper method to get available atlases // Helper method to get available atlases
fun getAvailableAtlases(): List<String> { fun getAvailableAtlases(): List<String> {
try { try {
val mappingsDir = File(spriteBaseDir, "mappings") val texturesDir = File(spriteBaseDir, "extracted_textures")
if (!mappingsDir.exists()) { if (!texturesDir.exists()) {
return emptyList() return emptyList()
} }
val mappingFiles = mappingsDir.listFiles { file -> val textureFiles = texturesDir.listFiles { file ->
file.name.endsWith("_mapping.json") file.name.endsWith(".png")
} ?: emptyArray() } ?: emptyArray()
return mappingFiles.map { file -> return textureFiles.map { file ->
// Extract atlas name from filename (e.g., "dim000_mon01_mapping.json" -> "dim000_mon01") // Extract atlas name from filename (e.g., "dim000_mon01.png" -> "dim000_mon01")
file.name.substringBefore("_mapping.json") file.name.substringBefore(".png")
}.sorted() }.sorted()
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -10,22 +10,22 @@ class SpriteFileManager(private val context: Context) {
fun copySpriteFilesToInternalStorage() { fun copySpriteFilesToInternalStorage() {
try { try {
// Create the base directory for extracted_assets // Create the base directory for extracted_assets
val extractedAssetsDir = File(context.filesDir, "Battle_Sprites_Reference/extracted_assets") val extractedAssetsDir = File(context.filesDir, "battle_sprites/extracted_assets")
if (!extractedAssetsDir.exists()) { if (!extractedAssetsDir.exists()) {
extractedAssetsDir.mkdirs() extractedAssetsDir.mkdirs()
} }
// Create the base directory for extracted_digimon_stats // Create the base directory for extracted_digimon_stats
val extractedStatsDir = File(context.filesDir, "Battle_Sprites_Reference/extracted_digimon_stats") val extractedStatsDir = File(context.filesDir, "battle_sprites/extracted_digimon_stats")
if (!extractedStatsDir.exists()) { if (!extractedStatsDir.exists()) {
extractedStatsDir.mkdirs() extractedStatsDir.mkdirs()
} }
// Copy extracted_assets files from assets to internal storage // Copy extracted_assets files from assets to internal storage
copyAssetDirectory("Battle_Sprites_Reference/extracted_assets", extractedAssetsDir) copyAssetDirectory("battle_sprites/extracted_assets", extractedAssetsDir)
// Copy extracted_digimon_stats files from assets to internal storage // Copy extracted_digimon_stats files from assets to internal storage
copyAssetDirectory("Battle_Sprites_Reference/extracted_digimon_stats", extractedStatsDir) copyAssetDirectory("battle_sprites/extracted_digimon_stats", extractedStatsDir)
println("Sprite files copied successfully to: ${extractedAssetsDir.absolutePath}") println("Sprite files copied successfully to: ${extractedAssetsDir.absolutePath}")
println("Stats files copied successfully to: ${extractedStatsDir.absolutePath}") println("Stats files copied successfully to: ${extractedStatsDir.absolutePath}")
@ -84,12 +84,56 @@ class SpriteFileManager(private val context: Context) {
} }
fun checkSpriteFilesExist(): Boolean { fun checkSpriteFilesExist(): Boolean {
val extractedAssetsDir = File(context.filesDir, "Battle_Sprites_Reference/extracted_assets") val extractedAssetsDir = File(context.filesDir, "battle_sprites/extracted_assets")
val extractedStatsDir = File(context.filesDir, "Battle_Sprites_Reference/extracted_digimon_stats") val extractedStatsDir = File(context.filesDir, "battle_sprites/extracted_digimon_stats")
val assetsExist = extractedAssetsDir.exists() && extractedAssetsDir.listFiles()?.isNotEmpty() == true val assetsExist = extractedAssetsDir.exists() && extractedAssetsDir.listFiles()?.isNotEmpty() == true
val statsExist = extractedStatsDir.exists() && extractedStatsDir.listFiles()?.isNotEmpty() == true val statsExist = extractedStatsDir.exists() && extractedStatsDir.listFiles()?.isNotEmpty() == true
return assetsExist && statsExist return assetsExist && statsExist
} }
fun clearSpriteFiles() {
try {
val extractedAssetsDir = File(context.filesDir, "battle_sprites/extracted_assets")
val extractedStatsDir = File(context.filesDir, "battle_sprites/extracted_digimon_stats")
if (extractedAssetsDir.exists()) {
deleteDirectory(extractedAssetsDir)
println("Cleared extracted_assets directory")
}
if (extractedStatsDir.exists()) {
deleteDirectory(extractedStatsDir)
println("Cleared extracted_digimon_stats directory")
}
// Also clear the battle_sprites directory if it's empty
val battleSpritesDir = File(context.filesDir, "battle_sprites")
if (battleSpritesDir.exists() && battleSpritesDir.listFiles()?.isEmpty() == true) {
battleSpritesDir.delete()
println("Cleared battle_sprites directory")
}
} catch (e: Exception) {
println("Error clearing sprite files: ${e.message}")
e.printStackTrace()
}
}
private fun deleteDirectory(directory: File) {
if (directory.exists()) {
val files = directory.listFiles()
if (files != null) {
for (file in files) {
if (file.isDirectory) {
deleteDirectory(file)
} else {
file.delete()
}
}
}
directory.delete()
}
}
} }