punks 0.3.1 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/punks/punks.rb CHANGED
@@ -1,15 +1,45 @@
1
1
 
2
-
3
2
  module Punk
4
3
 
4
+ class Spritesheet
5
+ def self.builtin
6
+ @builtin ||= SpritesheetEx.read( "#{Pixelart::Module::Punks.root}/config/punks-24x24.png",
7
+ "#{Pixelart::Module::Punks.root}/config/punks-24x24.csv",
8
+ width: 24,
9
+ height: 24 )
10
+ end
11
+
12
+ ## note: for now class used for "namespace" only
13
+ def self.find_by( name:, gender: nil, size: nil, warn: true ) ## return archetype/attribute image by name
14
+ # note: pass along name as q (query string)
15
+ builtin.find_by( name: name,
16
+ gender: gender,
17
+ size: size,
18
+ warn: warn )
19
+ end
20
+ def self.find( name, gender: nil, size: nil ) ## return archetype/attribute image by name
21
+ puts "!!! [WARN] deprecated method call Punk::Spritesheet.find use find_by( name: ) !!!!"
22
+ builtin.find_by( name: name,
23
+ gender: gender,
24
+ size: size )
25
+ end
26
+ ## helpers
27
+ def self.normalize_key( str ) Pixelart::SpritesheetEx.normalize_key( str ); end
28
+ end # class Spritesheet
29
+
30
+
31
+ ## add convenience (alternate spelling) alias - why? why not?
32
+ SpriteSheet = Spritesheet
33
+ Sheet = Spritesheet
34
+ Sprite = Spritesheet
35
+
36
+
37
+
5
38
  class Image < Pixelart::Image
6
39
  def self.generator
7
- ### todo/fix: break out/ split off spritesheet from generator!!!!
8
- @generator ||= Generator.new( "#{Pixelart::Module::Punks.root}/config/punks-24x24.png",
9
- "#{Pixelart::Module::Punks.root}/config/punks-24x24.csv", image_class: Image )
40
+ @generator ||= GeneratorEx.use( Sheet.builtin, image_class: Image )
10
41
  end
11
42
 
12
-
13
43
  def self.generate( *values, style: nil, patch: nil )
14
44
 
15
45
  if values[0].is_a?( String )
@@ -31,7 +61,7 @@ module Punk
31
61
  ## Eyes => Eyes B&W
32
62
  ## Smile => Smile B&W
33
63
  ## ....
34
- archetype_key = Generator.normalize_key( values[0] )
64
+ archetype_key = Sheet.normalize_key( values[0] )
35
65
  if archetype_key.end_with?( 'bw' ) || ## e.g. B&W
36
66
  archetype_key.end_with?( '1bit') ## e.g. 1-Bit or 1Bit
37
67
 
@@ -39,7 +69,7 @@ module Punk
39
69
  if attribute.is_a?( Pixelart::Image )
40
70
  attribute
41
71
  else
42
- attribute_key = Generator.normalize_key( attribute )
72
+ attribute_key = Sheet.normalize_key( attribute )
43
73
  if ['wildhair'].include?( attribute_key ) ## pass through known b&w attributes by "default"
44
74
  attribute
45
75
  elsif attribute_key.index( "black" )
@@ -73,7 +103,7 @@ module Punk
73
103
  if attribute.is_a?( Pixelart::Image )
74
104
  attribute
75
105
  else
76
- attribute_key = Generator.normalize_key( attribute )
106
+ attribute_key = Sheet.normalize_key( attribute )
77
107
 
78
108
  if attribute_key == 'smile' || attribute_key == 'frown'
79
109
  attribute += if archetype_key.index( 'zombiefemale' ) then ' Zombie'
@@ -96,28 +126,6 @@ module Punk
96
126
  generator.generate( *values, style: style, patch: patch )
97
127
  end # method Image.generate
98
128
  end # class Image
99
-
100
-
101
-
102
- class Spritesheet
103
- def self.builtin
104
- ## for now get spritesheet via generator
105
- Image.generator
106
- end
107
- ## note: for now class used for "namespace" only
108
- def self.find_by( name:, gender: nil, size: nil ) ## return archetype/attribute image by name
109
- # note: pass along name as q (query string)
110
- builtin.find( name,
111
- gender: gender,
112
- size: size )
113
- end
114
- end # class Spritesheet
115
- ## add convenience (alternate spelling) alias - why? why not?
116
- SpriteSheet = Spritesheet
117
- Sheet = Spritesheet
118
- Sprite = Spritesheet
119
129
  end # module Punk
120
130
 
121
131
 
122
-
123
-
data/lib/punks/version.rb CHANGED
@@ -5,7 +5,7 @@ module Punks
5
5
 
6
6
  MAJOR = 0
7
7
  MINOR = 3
8
- PATCH = 1
8
+ PATCH = 4
9
9
  VERSION = [MAJOR,MINOR,PATCH].join('.')
10
10
 
11
11
  def self.version
data/lib/punks.rb CHANGED
@@ -7,7 +7,9 @@ require 'artfactory/base'
7
7
  ## our own code
8
8
  require 'punks/version' # note: let version always go first
9
9
 
10
- require 'punks/generator'
10
+
11
+ require 'punks/pixelart/spritesheet'
12
+ require 'punks/pixelart/generator'
11
13
 
12
14
 
13
15
  ## --- 24x24 series
@@ -18,7 +20,9 @@ require 'punks/philips'
18
20
  require 'punks/saudis'
19
21
  ## --- 32x32 series
20
22
  require 'punks/punks_xl'
21
-
23
+ require 'punks/bodies_32'
24
+ ## --- 40x40 series
25
+ require 'punks/bodies_40'
22
26
 
23
27
 
24
28
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: punks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-12 00:00:00.000000000 Z
11
+ date: 2022-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pixelart
@@ -87,8 +87,9 @@ dependencies:
87
87
  - !ruby/object:Gem::Version
88
88
  version: '3.23'
89
89
  description: punks - generate your own 24×24 (or 32×32) punk, phunk, philip, marilyn,
90
- saudi/sheik 'n' more (pixel) avatar / character images (off chain) from text attributes
91
- (via built-in spritesheet); incl. 2x/4x/8x zoom for bigger sizes and more
90
+ saudi/sheik, man in black, hottie 'n' more (pixel) avatar / character images (off
91
+ chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom for
92
+ bigger sizes and more
92
93
  email: wwwmake@googlegroups.com
93
94
  executables: []
94
95
  extensions: []
@@ -104,15 +105,20 @@ files:
104
105
  - config/philip-24x24.png
105
106
  - config/punks-24x24.csv
106
107
  - config/punks-24x24.png
108
+ - config/punks-32x32.csv
109
+ - config/punks-32x32.png
107
110
  - config/punks_xl-32x32.csv
108
111
  - config/punks_xl-32x32.png
109
112
  - config/saudis-24x24.csv
110
113
  - config/saudis-24x24.png
111
114
  - lib/punks.rb
112
- - lib/punks/generator.rb
115
+ - lib/punks/bodies_32.rb
116
+ - lib/punks/bodies_40.rb
113
117
  - lib/punks/marilyns.rb
114
118
  - lib/punks/philips.rb
115
119
  - lib/punks/phunks.rb
120
+ - lib/punks/pixelart/generator.rb
121
+ - lib/punks/pixelart/spritesheet.rb
116
122
  - lib/punks/punks.rb
117
123
  - lib/punks/punks_xl.rb
118
124
  - lib/punks/saudis.rb
@@ -142,6 +148,7 @@ rubygems_version: 3.3.7
142
148
  signing_key:
143
149
  specification_version: 4
144
150
  summary: punks - generate your own 24×24 (or 32×32) punk, phunk, philip, marilyn,
145
- saudi/sheik 'n' more (pixel) avatar / character images (off chain) from text attributes
146
- (via built-in spritesheet); incl. 2x/4x/8x zoom for bigger sizes and more
151
+ saudi/sheik, man in black, hottie 'n' more (pixel) avatar / character images (off
152
+ chain) from text attributes (via built-in spritesheet); incl. 2x/4x/8x zoom for
153
+ bigger sizes and more
147
154
  test_files: []