Use spritesheets of 96x96 sprites

This commit is contained in:
infinitefusion
2025-01-01 16:29:04 -05:00
parent 84d1fe3d86
commit 234f22e78e
510 changed files with 29 additions and 7 deletions

View File

@@ -2,6 +2,11 @@ class PIFSpriteExtracter
COLUMNS = 20 # Number of columns in the spritesheet
@@spritesheet_cache = SpritesBitmapCache.new
#factor by which the sprite needs to be resized to get it to base game resolution (288x288)
def get_resize_scale
return 1
end
def load_sprite(pif_sprite,download_allowed=true)
begin
start_time = Time.now
@@ -19,6 +24,7 @@ class PIFSpriteExtracter
end
end
sprite_bitmap = AnimatedBitmap.from_bitmap(bitmap)
sprite_bitmap.scale_bitmap(get_resize_scale())
end_time = Time.now
source = loaded_from_spritesheet ? :"spritesheet" : "cache"
echoln "Loaded sprite for <head:#{pif_sprite.head_id}, body: #{pif_sprite.body_id}, variant: #{pif_sprite.alt_letter}> from #{source} in #{end_time - start_time} seconds"

View File

@@ -1,6 +1,6 @@
class AutogenExtracter < PIFSpriteExtracter
SPRITESHEET_FOLDER_PATH = "Graphics\\Battlers\\spritesheets_autogen\\"
SPRITE_SIZE = 288 # Each sprite is 288x288 pixels
SPRITE_SIZE = 96 # Size of each sprite in the spritesheet
COLUMNS = 10 # Number of columns in the spritesheet
SHEET_WIDTH = SPRITE_SIZE * COLUMNS # 2880 pixels wide spritesheet
@@ -32,6 +32,9 @@ class AutogenExtracter < PIFSpriteExtracter
return "#{SPRITESHEET_FOLDER_PATH}#{head_id}.png"
end
def get_resize_scale
return 3
end
#
# # Check cache before loading from disk
# sprite_bitmap = @@spritesheet_cache.fetch(pif_sprite) do

View File

@@ -7,8 +7,7 @@ class BaseSpriteExtracter < PIFSpriteExtracter
end
SPRITESHEET_FOLDER_PATH = "Graphics/CustomBattlers/spritesheets/spritesheets_base/"
SPRITE_SIZE = 288 # Original sprite size
SCALED_SIZE = 288 # Scaled sprite size
SPRITE_SIZE = 96 # Original sprite size
NB_COLUMNS_BASESPRITES = 10
SHEET_WIDTH = SPRITE_SIZE * NB_COLUMNS_BASESPRITES # 2880 pixels wide spritesheet
def load_bitmap_from_spritesheet(pif_sprite)
@@ -55,4 +54,8 @@ class BaseSpriteExtracter < PIFSpriteExtracter
return !$updated_spritesheets.include?(spritesheet_file)
end
def get_resize_scale
return 3
end
end

View File

@@ -6,8 +6,7 @@ class CustomSpriteExtracter < PIFSpriteExtracter
end
SPRITESHEET_FOLDER_PATH = "Graphics/CustomBattlers/spritesheets/spritesheets_custom/"
SPRITE_SIZE = 288 # Original sprite size
SCALED_SIZE = 288 # Scaled sprite size
SPRITE_SIZE = 96 # Original sprite size
SHEET_WIDTH = SPRITE_SIZE * COLUMNS # 2880 pixels wide spritesheet
def load_bitmap_from_spritesheet(pif_sprite)
@@ -60,6 +59,11 @@ class CustomSpriteExtracter < PIFSpriteExtracter
load_sprite(PIFSprite.new(:CUSTOM,head_id,body_id,alt_letter))
end
def get_resize_scale
return 3
end
#
# def extract_bitmap_to_file(head_id, body_id, alt_letter, folder)
# # Create the directory if it doesn't exist