Improved avatar handling, fixed import/install button text sizes, fixed typo ERRNO-> Errno, ocra[n] packaging adjustments

This commit is contained in:
2024-03-01 22:39:18 -06:00
parent f2dd844181
commit 84051103fc
6 changed files with 30 additions and 13 deletions

View File

@@ -12,7 +12,11 @@ gem "websocket-client-simple"
gem "win32-process", platforms: [:x64_mingw, :mingw]
gem "win32-security", platforms: [:x64_mingw, :mingw]
# Packaging on 3.3.0 is... painful. Using 3.2.0 for now.
# bundler 2.5.x doesn't seem to play nice with ocra[n]
# use `bundle _x.y.z_ COMMAND` to use this one...
# group :windows_packaging do
# gem "bundler", "~>2.4.3"
# gem "rake"
# gem "releasy"
# gem "releasy", github: "cyberarm/releasy"
# end

View File

@@ -11,7 +11,7 @@ GEM
rake (>= 12.0.0, < 14.0.0)
event_emitter (0.2.6)
excon (0.109.0)
ffi (1.16.3)
ffi (1.16.3-x64-mingw-ucrt)
ffi-win32-extensions (1.0.4)
ffi
gosu (1.4.6)
@@ -36,8 +36,6 @@ GEM
PLATFORMS
x64-mingw-ucrt
x64-mingw32
x86_64-linux
DEPENDENCIES
base64
@@ -53,4 +51,4 @@ DEPENDENCIES
win32-security
BUNDLED WITH
2.5.3
2.4.3

View File

@@ -11,13 +11,13 @@ Releasy::Project.new do
version W3DHub::VERSION
executable "w3d_hub_linux_launcher.rb"
files ["lib/**/*.*", "locales/*", "media/**/**", "data/.gitkeep", "data/cache/.gitkeep"]
exclude_encoding # Applications that don't use advanced encoding (e.g. Japanese characters) can save build size with this.
files ["lib/**/*.*", "locales/*", "media/**/**", "data/.gitkeep", "data/cache/.gitkeep", "data/logs/.gitkeep"]
# exclude_encoding # Applications that don't use advanced encoding (e.g. Japanese characters) can save build size with this.
verbose
add_build :windows_folder do
icon "media/icons/app.ico"
executable_type :console # Assuming you don't want it to run with a console window.
executable_type :windows # :console # Assuming you don't want it to run with a console window.
add_package :exe # Windows self-extracting archive.
end
end

View File

@@ -61,7 +61,7 @@ class W3DHub
status = execute_task
rescue FailFast
# no-op
rescue StandardError, ERRNO::EACCES => e
rescue StandardError, Errno::EACCES => e
status = false
@task_failure_reason = e.message[0..512]
@@ -700,7 +700,7 @@ class W3DHub
File.open("#{path}/#{safe_file_name}", "wb") do |f|
i = entry.get_input_stream
while (chunk = i.read(32_000_000)) # Read up to ~32 MB per chunk
f.write chunk
end

View File

@@ -205,14 +205,14 @@ class W3DHub
installing = Store.application_manager.task?(:installer, game.id, channel.id)
unless game.id == "ren"
button "<b>#{I18n.t(:"interface.install")}</b>", fill: true, margin_right: 8, text_size: 32, enabled: !installing do |button|
button "<b>#{I18n.t(:"interface.install")}</b>", fill: true, margin_right: 8, text_size: 30, enabled: !installing do |button|
button.enabled = false
@import_button.enabled = false
Store.application_manager.install(game.id, channel.id)
end
end
@import_button = button "<b>#{I18n.t(:"interface.import")}</b>", fill: true, margin_left: 8, text_size: 32, enabled: !installing do
@import_button = button "<b>#{I18n.t(:"interface.import")}</b>", fill: true, margin_left: 8, text_size: 30, enabled: !installing do
Store.application_manager.import(game.id, channel.id)
end
end

View File

@@ -108,7 +108,22 @@ class W3DHub
mask_image = get_image("#{GAME_ROOT_PATH}/media/textures/circle_mask.png")
composite_image = Gosu.render(256, 256) do
avatar_image.draw(0, 0, 0)
scale = 1.0
if avatar_image.width > avatar_image.height
# avatar image is wider than tall, use `height` for scaling to ensure we fill the canvas
scale = 256.0 / avatar_image.height
elsif avatar_image.width < avatar_image.height
# avatar image is taller than wide, use `width` for scaling to ensure we fill the canvas
scale = 256.0 / avatar_image.width
else
# avatar image is square, use width for scale to ensure we fit to the canvas
scale = 256.0 / avatar_image.width
end
# Position image center in middle of composite
avatar_image.draw_rot(128, 128, 0, 0, 0.5, 0.5, scale, scale)
# Render mask image with mode :multiply so we get a clean circle cutout of the scaled avatar image
mask_image.draw(0, 0, 1, 1, 1, 0xff_ffffff, :multiply)
end