mirror of
https://github.com/nacabaro/vbhelper.git
synced 2026-06-05 22:02: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>()
|
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()}")
|
||||||
|
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
@ -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()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user