Use spritesheets of 96x96 sprites
@@ -104,6 +104,9 @@ module Settings
|
|||||||
BASE_POKEMON_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_base/"
|
BASE_POKEMON_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_base/"
|
||||||
CUSTOM_FUSIONS_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_custom/"
|
CUSTOM_FUSIONS_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_custom/"
|
||||||
|
|
||||||
|
BASE_POKEMON_SPRITESHEET_TRUE_SIZE_URL = "https://infinitefusion.net/spritesheets_truesize/spritesheets_base/"
|
||||||
|
CUSTOM_FUSIONS_SPRITESHEET_TRUE_SIZE_URL = "https://infinitefusion.net/spritesheets_truesize/spritesheets_custom/"
|
||||||
|
|
||||||
RIVAL_STARTER_PLACEHOLDER_SPECIES = :MEW #(MEW)
|
RIVAL_STARTER_PLACEHOLDER_SPECIES = :MEW #(MEW)
|
||||||
VAR_1_PLACEHOLDER_SPECIES = :DIALGA
|
VAR_1_PLACEHOLDER_SPECIES = :DIALGA
|
||||||
VAR_2_PLACEHOLDER_SPECIES = :PALKIA
|
VAR_2_PLACEHOLDER_SPECIES = :PALKIA
|
||||||
|
|||||||
@@ -2,6 +2,11 @@ class PIFSpriteExtracter
|
|||||||
COLUMNS = 20 # Number of columns in the spritesheet
|
COLUMNS = 20 # Number of columns in the spritesheet
|
||||||
@@spritesheet_cache = SpritesBitmapCache.new
|
@@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)
|
def load_sprite(pif_sprite,download_allowed=true)
|
||||||
begin
|
begin
|
||||||
start_time = Time.now
|
start_time = Time.now
|
||||||
@@ -19,6 +24,7 @@ class PIFSpriteExtracter
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
sprite_bitmap = AnimatedBitmap.from_bitmap(bitmap)
|
sprite_bitmap = AnimatedBitmap.from_bitmap(bitmap)
|
||||||
|
sprite_bitmap.scale_bitmap(get_resize_scale())
|
||||||
end_time = Time.now
|
end_time = Time.now
|
||||||
source = loaded_from_spritesheet ? :"spritesheet" : "cache"
|
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"
|
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"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
class AutogenExtracter < PIFSpriteExtracter
|
class AutogenExtracter < PIFSpriteExtracter
|
||||||
SPRITESHEET_FOLDER_PATH = "Graphics\\Battlers\\spritesheets_autogen\\"
|
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
|
COLUMNS = 10 # Number of columns in the spritesheet
|
||||||
SHEET_WIDTH = SPRITE_SIZE * COLUMNS # 2880 pixels wide spritesheet
|
SHEET_WIDTH = SPRITE_SIZE * COLUMNS # 2880 pixels wide spritesheet
|
||||||
|
|
||||||
@@ -32,6 +32,9 @@ class AutogenExtracter < PIFSpriteExtracter
|
|||||||
return "#{SPRITESHEET_FOLDER_PATH}#{head_id}.png"
|
return "#{SPRITESHEET_FOLDER_PATH}#{head_id}.png"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_resize_scale
|
||||||
|
return 3
|
||||||
|
end
|
||||||
#
|
#
|
||||||
# # Check cache before loading from disk
|
# # Check cache before loading from disk
|
||||||
# sprite_bitmap = @@spritesheet_cache.fetch(pif_sprite) do
|
# sprite_bitmap = @@spritesheet_cache.fetch(pif_sprite) do
|
||||||
|
|||||||
@@ -7,8 +7,7 @@ class BaseSpriteExtracter < PIFSpriteExtracter
|
|||||||
end
|
end
|
||||||
|
|
||||||
SPRITESHEET_FOLDER_PATH = "Graphics/CustomBattlers/spritesheets/spritesheets_base/"
|
SPRITESHEET_FOLDER_PATH = "Graphics/CustomBattlers/spritesheets/spritesheets_base/"
|
||||||
SPRITE_SIZE = 288 # Original sprite size
|
SPRITE_SIZE = 96 # Original sprite size
|
||||||
SCALED_SIZE = 288 # Scaled sprite size
|
|
||||||
NB_COLUMNS_BASESPRITES = 10
|
NB_COLUMNS_BASESPRITES = 10
|
||||||
SHEET_WIDTH = SPRITE_SIZE * NB_COLUMNS_BASESPRITES # 2880 pixels wide spritesheet
|
SHEET_WIDTH = SPRITE_SIZE * NB_COLUMNS_BASESPRITES # 2880 pixels wide spritesheet
|
||||||
def load_bitmap_from_spritesheet(pif_sprite)
|
def load_bitmap_from_spritesheet(pif_sprite)
|
||||||
@@ -55,4 +54,8 @@ class BaseSpriteExtracter < PIFSpriteExtracter
|
|||||||
|
|
||||||
return !$updated_spritesheets.include?(spritesheet_file)
|
return !$updated_spritesheets.include?(spritesheet_file)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_resize_scale
|
||||||
|
return 3
|
||||||
|
end
|
||||||
end
|
end
|
||||||
@@ -6,8 +6,7 @@ class CustomSpriteExtracter < PIFSpriteExtracter
|
|||||||
end
|
end
|
||||||
|
|
||||||
SPRITESHEET_FOLDER_PATH = "Graphics/CustomBattlers/spritesheets/spritesheets_custom/"
|
SPRITESHEET_FOLDER_PATH = "Graphics/CustomBattlers/spritesheets/spritesheets_custom/"
|
||||||
SPRITE_SIZE = 288 # Original sprite size
|
SPRITE_SIZE = 96 # Original sprite size
|
||||||
SCALED_SIZE = 288 # Scaled sprite size
|
|
||||||
SHEET_WIDTH = SPRITE_SIZE * COLUMNS # 2880 pixels wide spritesheet
|
SHEET_WIDTH = SPRITE_SIZE * COLUMNS # 2880 pixels wide spritesheet
|
||||||
|
|
||||||
def load_bitmap_from_spritesheet(pif_sprite)
|
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))
|
load_sprite(PIFSprite.new(:CUSTOM,head_id,body_id,alt_letter))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def get_resize_scale
|
||||||
|
return 3
|
||||||
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
# def extract_bitmap_to_file(head_id, body_id, alt_letter, folder)
|
# def extract_bitmap_to_file(head_id, body_id, alt_letter, folder)
|
||||||
# # Create the directory if it doesn't exist
|
# # Create the directory if it doesn't exist
|
||||||
|
|||||||
@@ -91,9 +91,9 @@ def download_spritesheet(pif_sprite, dest)
|
|||||||
when :AUTOGEN
|
when :AUTOGEN
|
||||||
return
|
return
|
||||||
when :CUSTOM
|
when :CUSTOM
|
||||||
url = Settings::CUSTOM_FUSIONS_SPRITESHEET_URL + "#{pif_sprite.head_id}/#{pif_sprite.head_id}#{pif_sprite.alt_letter}.png"
|
url = Settings::CUSTOM_FUSIONS_SPRITESHEET_TRUE_SIZE_URL + "#{pif_sprite.head_id}/#{pif_sprite.head_id}#{pif_sprite.alt_letter}.png"
|
||||||
when :BASE
|
when :BASE
|
||||||
url = Settings::BASE_POKEMON_SPRITESHEET_URL + "#{pif_sprite.head_id}.png"
|
url = Settings::BASE_POKEMON_SPRITESHEET_TRUE_SIZE_URL + "#{pif_sprite.head_id}.png"
|
||||||
end
|
end
|
||||||
folder = File.dirname(dest)
|
folder = File.dirname(dest)
|
||||||
ensure_folder_exists(folder)
|
ensure_folder_exists(folder)
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ module Settings
|
|||||||
BASE_POKEMON_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_base/"
|
BASE_POKEMON_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_base/"
|
||||||
CUSTOM_FUSIONS_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_custom/"
|
CUSTOM_FUSIONS_SPRITESHEET_URL = "https://infinitefusion.net/spritesheets/spritesheets_custom/"
|
||||||
|
|
||||||
|
BASE_POKEMON_SPRITESHEET_RESIZED_URL = "https://infinitefusion.net/spritesheets_resized/spritesheets_base/"
|
||||||
|
CUSTOM_FUSIONS_SPRITESHEET_RESIZED_URL = "https://infinitefusion.net/spritesheets_resized/spritesheets_custom/"
|
||||||
|
|
||||||
CUSTOMSPRITES_RATE_MAX_NB_REQUESTS = 5 #Nb. requests allowed in each time window
|
CUSTOMSPRITES_RATE_MAX_NB_REQUESTS = 5 #Nb. requests allowed in each time window
|
||||||
CUSTOMSPRITES_ENTRIES_RATE_TIME_WINDOW = 120 # In seconds
|
CUSTOMSPRITES_ENTRIES_RATE_TIME_WINDOW = 120 # In seconds
|
||||||
MAX_NB_SPRITES_TO_DOWNLOAD_AT_ONCE =5
|
MAX_NB_SPRITES_TO_DOWNLOAD_AT_ONCE =5
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 919 KiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 917 KiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 918 KiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 946 KiB |
|
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 980 KiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 3.0 MiB After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 3.5 MiB After Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 844 KiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 882 KiB |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 3.6 MiB After Width: | Height: | Size: 2.4 MiB |
|
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 2.1 MiB |
|
Before Width: | Height: | Size: 3.7 MiB After Width: | Height: | Size: 2.4 MiB |
|
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 2.6 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 3.0 MiB After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1010 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1022 KiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 994 KiB |
|
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 986 KiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 3.5 MiB After Width: | Height: | Size: 2.3 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 829 KiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 918 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 858 KiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1022 KiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 2.4 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1022 KiB |