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>()
// 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? {
println("AttackSpriteManager: Getting attack sprite for characterId=$characterId, isLarge=$isLarge")
@ -86,7 +86,7 @@ class AttackSpriteManager(private val context: Context) {
try {
// 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 exists = ${characterDataFile.exists()}")

View File

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

View File

@ -10,22 +10,22 @@ class SpriteFileManager(private val context: Context) {
fun copySpriteFilesToInternalStorage() {
try {
// 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()) {
extractedAssetsDir.mkdirs()
}
// 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()) {
extractedStatsDir.mkdirs()
}
// 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
copyAssetDirectory("Battle_Sprites_Reference/extracted_digimon_stats", extractedStatsDir)
copyAssetDirectory("battle_sprites/extracted_digimon_stats", extractedStatsDir)
println("Sprite files copied successfully to: ${extractedAssetsDir.absolutePath}")
println("Stats files copied successfully to: ${extractedStatsDir.absolutePath}")
@ -84,12 +84,56 @@ class SpriteFileManager(private val context: Context) {
}
fun checkSpriteFilesExist(): Boolean {
val extractedAssetsDir = File(context.filesDir, "Battle_Sprites_Reference/extracted_assets")
val extractedStatsDir = File(context.filesDir, "Battle_Sprites_Reference/extracted_digimon_stats")
val extractedAssetsDir = File(context.filesDir, "battle_sprites/extracted_assets")
val extractedStatsDir = File(context.filesDir, "battle_sprites/extracted_digimon_stats")
val assetsExist = extractedAssetsDir.exists() && extractedAssetsDir.listFiles()?.isNotEmpty() == true
val statsExist = extractedStatsDir.exists() && extractedStatsDir.listFiles()?.isNotEmpty() == true
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()
}
}
}