From 732dc2c957d2c857ce6e228f60973cf19f688cfa Mon Sep 17 00:00:00 2001 From: cyberarm Date: Tue, 5 Jan 2021 20:39:13 -0600 Subject: [PATCH] Fixed new label dsl methods requiring options to be provided, upgraded Image to accept either a path or an image and to enable replacing image using #value= --- lib/cyberarm_engine/ui/dsl.rb | 2 +- lib/cyberarm_engine/ui/elements/image.rb | 21 ++++++++++++++++++--- lib/cyberarm_engine/ui/theme.rb | 1 + 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/cyberarm_engine/ui/dsl.rb b/lib/cyberarm_engine/ui/dsl.rb index 114f10f..10014f0 100644 --- a/lib/cyberarm_engine/ui/dsl.rb +++ b/lib/cyberarm_engine/ui/dsl.rb @@ -25,7 +25,7 @@ module CyberarmEngine "Para", "Inscription" ].each do |const| - define_method(:"#{const.downcase}") do |text, options, &block| + define_method(:"#{const.downcase}") do |text, options = {}, &block| options[:parent] = element_parent options[:theme] = current_theme diff --git a/lib/cyberarm_engine/ui/elements/image.rb b/lib/cyberarm_engine/ui/elements/image.rb index 9e42111..24a9ffd 100644 --- a/lib/cyberarm_engine/ui/elements/image.rb +++ b/lib/cyberarm_engine/ui/elements/image.rb @@ -1,11 +1,13 @@ module CyberarmEngine class Element class Image < Element - def initialize(path, options = {}, block = nil) + def initialize(path_or_image, options = {}, block = nil) super(options, block) - @path = path + @path = path_or_image if path_or_image.is_a?(String) + + @image = Gosu::Image.new(path_or_image, retro: @options[:retro], tileable: @options[:tileable]) if @path + @image = path_or_image unless @path - @image = Gosu::Image.new(path, retro: @options[:image_retro]) @scale_x = 1 @scale_y = 1 end @@ -48,6 +50,19 @@ module CyberarmEngine end def value + @image + end + + def value=(path_or_image, retro: false, tileable: false) + @path = path_or_image if path_or_image.is_a?(String) + + @image = Gosu::Image.new(path_or_image, retro: retro, tileable: tileable) if @path + @image = path_or_image unless @path + + recalculate + end + + def path @path end end diff --git a/lib/cyberarm_engine/ui/theme.rb b/lib/cyberarm_engine/ui/theme.rb index 9531066..a465ac3 100644 --- a/lib/cyberarm_engine/ui/theme.rb +++ b/lib/cyberarm_engine/ui/theme.rb @@ -103,6 +103,7 @@ module CyberarmEngine Image: { # < Element color: Gosu::Color::WHITE, + tileable: false, retro: false },