Class: Pixelart::Background::Image

Inherits:
Image
  • Object
show all
Defined in:
lib/backgrounds/image.rb

Class Method Summary collapse

Methods inherited from Image

#background

Class Method Details

.do_generate(img, value, sheet:) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/backgrounds/image.rb', line 47

def self.do_generate( img, value, sheet: )
  if value.is_a?( String )
       key = Pixelart::Spritesheet.normalize_key( value )
      if ['ua','ukraine',
          'saveukraine', 'standwithukraine',
          'glorytoukraine'].include?( key )
         img.ukraine
      elsif ['pride','rainbow'].include?( key )
         img.pride
      elsif sheet && pattern=sheet.find_by( name: value, warn: false ) ## try some built-in background patterns

         img.compose!( pattern )
         img
      else  ### assume (try) color

        img.compose!( Image.new( img.width, img.height, value ) )
        img
      end
  elsif value.is_a?( Pixelart::Image )
    img.compose!( value )
    img
  else ###  assume integer  (assert) - why? why not

    img.compose!( Image.new( img.width, img.height, value ) )
    img
  end
end

.do_parse(img, *values, sheet:) ⇒ Object

todo - what syntax to use for stripe/stripes ??

                       or for gradient/gradients ??
stripe( color1 color2  )  ??
gradient( color1 color2 )


33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/backgrounds/image.rb', line 33

def self.do_parse( img, *values, sheet:  )
    head = values[0]
    more = values[1..-1]

    while head do
       img = do_generate( img, head, sheet: sheet )

       head = more[0]
       more = more[1..-1]
    end
    img
end

.generate(*values, width:, height:) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/backgrounds/image.rb', line 16

def self.generate( *values,
                     width:,
                     height: )

     ## check if spritesheet w/ patterns is available for width x height (eg.24x24, 32x32, etc.)

     sheet = SPRITESHEETS[ "#{width}x#{height}" ]

     img = new( width, height )
     img = do_parse( img, *values, sheet: sheet )
     img
end