mirror of
https://github.com/nacabaro/vbhelper.git
synced 2026-06-05 13:52:54 +00:00
Updated file and sprite managers to use new file structure.
This commit is contained in:
parent
d86ee00109
commit
fa8546f283
@ -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()}")
|
||||
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user