barbershop 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 04dfa931a2cf7ed29b4b6660d8e201a902fcdebe5927f700737a12bc2a8a6906
4
- data.tar.gz: aa55a1e1e2e240a1e6bc500929fbeb9ce77b93d2a6b89e4cc5e765ae1ad55390
3
+ metadata.gz: 4e4c7cf0e3654ce629ee2e53ac955fcdc1e413a53364552841f8ff7ca4cda6ed
4
+ data.tar.gz: a00b8c25d80ae8713e84571c5a53277ded4958c5bccb4957ad190dd2c409cdd4
5
5
  SHA512:
6
- metadata.gz: aad854331a700ff8f93922bfbe0cee1fd14bf361dadcef52c48d071dec011fd192c25d86266d7e465169ca95b0163851a141df0b6e69fa104f3e844f1d33fed4
7
- data.tar.gz: 3c8fb11e9510285b458603fac4e3ce2ae61606147d099b79b07f02cfceef9dd62e1d99ebf0882cc83be1628eeaacc876c76c23d7bc6a283df42b44fa4be99c86
6
+ metadata.gz: d3740540399b33cdc2ec4304c05b092667d919bc3ddad6a6802239b4fa48a45dbc89ecf269c56f413d7c398971b2239584d74f93d5cc0e314d193d0713598e30
7
+ data.tar.gz: 288116a4f8571f7374d8bd39617722db2b46b147a02229d753e0f246de9b3f8179b00ccb0e1057cf0e8d73eb094b2e02ba4ffa7e216cdc6708089058efff60bc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,4 @@
1
+ ### 0.1.0
1
2
  ### 0.0.1 / 2023-08-26
2
3
 
3
4
  * Everything is new. First release
data/Rakefile CHANGED
@@ -26,8 +26,7 @@ Hoe.spec 'barbershop' do
26
26
  self.history_file = 'CHANGELOG.md'
27
27
 
28
28
  self.extra_deps = [
29
- ['pixelart'],
30
- ['spritesheet'],
29
+ ['punkmaker'],
31
30
  ]
32
31
 
33
32
  self.licenses = ['Public Domain']
@@ -2,8 +2,8 @@ module Pixelart
2
2
  module Module
3
3
  module Barbershop
4
4
  MAJOR = 0
5
- MINOR = 0
6
- PATCH = 1
5
+ MINOR = 1
6
+ PATCH = 0
7
7
  VERSION = [MAJOR,MINOR,PATCH].join('.')
8
8
 
9
9
  def self.version
data/lib/barbershop.rb CHANGED
@@ -1,5 +1,4 @@
1
- require 'pixelart'
2
- require 'spritesheet'
1
+ require 'punkmaker'
3
2
 
4
3
 
5
4
  # our code
@@ -9,105 +8,21 @@ require_relative 'barbershop/version' # let version go first
9
8
 
10
9
  module Barbershop
11
10
  module Hair
12
- def self.sheet
13
- @sheet ||= Pixelart::Spritesheet.read(
14
- "#{Pixelart::Module::Barbershop.root}/config/spritesheet-hair.png",
15
- "#{Pixelart::Module::Barbershop.root}/config/spritesheet-hair.csv",
16
- width: 24,
17
- height: 24 )
18
- end
19
- def self.find_by( name: ) sheet.find_by( name: name ); end
20
-
21
- def self.colors
22
- @colors ||= begin
23
- {
24
- 'black' => '000000',
25
-
26
- 'brown' => '51360c', # (darker) brown
27
- 'brunette' => 'a66e2c', # lighter brown
28
-
29
- 'orange' => 'e65700',
30
- 'red' => 'e22626',
31
- 'pink' => 'ff8ebe',
32
- 'purple' => '710cc7',
33
-
34
- 'green' => '28b143',
35
-
36
- 'blonde' => 'fff68e',
37
- 'silver' => 'e0e0e0',
38
- 'white' => 'FFFFFF',
39
- }.reduce( {} ) do |h, (name, color_hex)|
40
- h[ name ] = Color.from_hex( color_hex )
41
- h
42
- end
43
- end
44
- @colors
11
+ def self.maker
12
+ @maker ||= Punk::Hair::Maker.read( "#{Pixelart::Module::Barbershop.root}/config/spritesheet-hair.png",
13
+ "#{Pixelart::Module::Barbershop.root}/config/spritesheet-hair.csv",
14
+ width: 24, height: 24,
15
+ colors: Punk::Hair.colors )
45
16
  end
46
-
47
- def self.colorize( hair, color: )
48
- h,s,v = Color.to_hsv( color, include_alpha: false )
49
- h = h % 360 ## make sure h(ue) is always positive!!!
50
- puts " #{[h,s,v].inspect}"
51
-
52
- # lighter - #2a2aff / rgb( 42 42 255) - hsl(240° 100% 58%) - hsv(240° 84% 100%)
53
- # - used in hair( frumpy, f/pigtails3, f/straight3, f/wild4, f/wild5 )
54
-
55
- # lightest - #5454ff / rgb( 84 84 255) - hsl(240° 100% 66%) - hsv(240° 67% 100%)
56
- # - used in hair(mohawk thin)
57
-
58
- # darker - #0000dd / rgb( 0 0 221) - hsl(240° 100% 43%) - hsv(240° 100% 87%)
59
- # - used in hair(mohawk)
60
-
61
- ## todo/fix: make lighter/darker formula more "robust"/ better!!!
62
- if color == 0x000000ff # black
63
- # hsv( 0° 0% 0%)
64
- lighter = Color.from_hsv( h, 0.0, 0.16 )
65
- lightest = Color.from_hsv( h, 0.0, 0.33 )
66
- darker = Color.from_hsv( h, 0.0, 0.0 ) ## darker than black not possible ;-)
67
- elsif color == 0xe0e0e0ff # silver
68
- # hsv( 0° 0% 88%)
69
- lighter = Color.from_hsv( h, 0.0, 1.0 ) # white
70
- lightest = Color.from_hsv( h, 0.0, 1.0 ) # white
71
- darker = Color.from_hsv( h, 0.0, [0.0, v-0.13].max )
72
- elsif color == 0xffffffff # white
73
- # hsv( 0° 0% 100%)
74
- lighter = Color.from_hsv( h, 0.0, [0.0, v-0.11].max ) # note: make darker
75
- lightest = Color.from_hsv( h, 0.0, 1.0 )
76
- darker = Color.from_hsv( h, 0.0, [0.0, v-0.16].max )
77
- else
78
- lighter = Color.from_hsv( h, [0.0, s-0.16].max, v )
79
- lightest = Color.from_hsv( h, [0.0, s-0.33].max, v )
80
- darker = Color.from_hsv( h, s, [0.0, v-0.13].max )
81
- end
82
-
83
- hair.change_colors( {
84
- '0000ffff' => color,
85
- '2a2affff' => lighter,
86
- '5454ffff' => lightest,
87
- '0000ddff' => darker,
88
- })
89
- end # method self.colorize
90
-
17
+ def self.sheet() maker.sheet; end
18
+ def self.colors() maker.colors; end
91
19
 
92
- def self.make( style, color: 'black' )
93
- ## pass-through shavedhead (no colors - alpha only) - why? why not?
94
- hair = sheet.find_by( name: style )
95
- if hair.nil?
96
- puts "!! ERROR - unknow hair style >#{style}<; sorry"
97
- exit 1
98
- end
99
-
100
- color_key = color.downcase.gsub(' ','')
101
- rgba = colors[ color_key ]
102
- if rgba.nil?
103
- puts "!! ERROR - unknow hair color >#{style}<; sorry"
104
- exit 1
105
- end
106
-
107
- colorize( hair, color: rgba )
108
- end
109
-
20
+ def self.make( style, color: 'black' )
21
+ maker.make( style, color: color )
22
+ end
110
23
 
24
+ ## "low-level" convenience helper/wrapper/forwarder
25
+ def self.colorize( hair, color: ) Punk::Hair.colorize( hair, color: color ); end
111
26
  end # module Hair
112
27
  end # module Barbershop
113
28
 
metadata CHANGED
@@ -1,31 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barbershop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-26 00:00:00.000000000 Z
11
+ date: 2023-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: pixelart
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: spritesheet
14
+ name: punkmaker
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ">="