@@ -35,35 +35,73 @@ func drawIcon(size: Int) throws -> Data {
3535 image. lockFocus ( )
3636
3737 let rect = NSRect ( origin: . zero, size: imageSize)
38- NSColor ( red : 0.07 , green : 0.22 , blue : 0.19 , alpha : 1 ) . setFill ( )
38+ NSColor . black . setFill ( )
3939 NSBezierPath ( roundedRect: rect, xRadius: CGFloat ( size) * 0.22 , yRadius: CGFloat ( size) * 0.22 ) . fill ( )
4040
41- let horizon = NSBezierPath ( )
42- horizon. move ( to: NSPoint ( x: CGFloat ( size) * 0.14 , y: CGFloat ( size) * 0.60 ) )
43- horizon. line ( to: NSPoint ( x: CGFloat ( size) * 0.86 , y: CGFloat ( size) * 0.60 ) )
44- horizon. lineWidth = max ( 2 , CGFloat ( size) * 0.035 )
45- NSColor ( red: 0.86 , green: 0.91 , blue: 0.87 , alpha: 1 ) . setStroke ( )
46- horizon. stroke ( )
47-
48- let road = NSBezierPath ( )
49- road. move ( to: NSPoint ( x: CGFloat ( size) * 0.46 , y: CGFloat ( size) * 0.16 ) )
50- road. curve (
51- to: NSPoint ( x: CGFloat ( size) * 0.58 , y: CGFloat ( size) * 0.82 ) ,
52- controlPoint1: NSPoint ( x: CGFloat ( size) * 0.34 , y: CGFloat ( size) * 0.36 ) ,
53- controlPoint2: NSPoint ( x: CGFloat ( size) * 0.72 , y: CGFloat ( size) * 0.55 )
41+ let globeRect = NSRect (
42+ x: CGFloat ( size) * 0.18 ,
43+ y: CGFloat ( size) * 0.18 ,
44+ width: CGFloat ( size) * 0.64 ,
45+ height: CGFloat ( size) * 0.64
5446 )
55- road. lineWidth = max ( 5 , CGFloat ( size) * 0.09 )
56- NSColor ( red: 0.96 , green: 0.70 , blue: 0.31 , alpha: 1 ) . setStroke ( )
57- road. stroke ( )
58-
59- let pin = NSBezierPath ( ovalIn: NSRect (
60- x: CGFloat ( size) * 0.60 ,
61- y: CGFloat ( size) * 0.62 ,
62- width: CGFloat ( size) * 0.16 ,
63- height: CGFloat ( size) * 0.16
64- ) )
65- NSColor . white. setFill ( )
66- pin. fill ( )
47+ let globe = NSBezierPath ( ovalIn: globeRect)
48+ NSColor ( red: 0.10 , green: 0.42 , blue: 0.88 , alpha: 1 ) . setFill ( )
49+ globe. fill ( )
50+
51+ NSColor ( red: 0.23 , green: 0.77 , blue: 0.48 , alpha: 1 ) . setFill ( )
52+
53+ let leftLand = NSBezierPath ( )
54+ leftLand. move ( to: NSPoint ( x: CGFloat ( size) * 0.32 , y: CGFloat ( size) * 0.62 ) )
55+ leftLand. curve (
56+ to: NSPoint ( x: CGFloat ( size) * 0.43 , y: CGFloat ( size) * 0.42 ) ,
57+ controlPoint1: NSPoint ( x: CGFloat ( size) * 0.23 , y: CGFloat ( size) * 0.56 ) ,
58+ controlPoint2: NSPoint ( x: CGFloat ( size) * 0.30 , y: CGFloat ( size) * 0.45 )
59+ )
60+ leftLand. curve (
61+ to: NSPoint ( x: CGFloat ( size) * 0.47 , y: CGFloat ( size) * 0.68 ) ,
62+ controlPoint1: NSPoint ( x: CGFloat ( size) * 0.55 , y: CGFloat ( size) * 0.47 ) ,
63+ controlPoint2: NSPoint ( x: CGFloat ( size) * 0.55 , y: CGFloat ( size) * 0.63 )
64+ )
65+ leftLand. curve (
66+ to: NSPoint ( x: CGFloat ( size) * 0.32 , y: CGFloat ( size) * 0.62 ) ,
67+ controlPoint1: NSPoint ( x: CGFloat ( size) * 0.42 , y: CGFloat ( size) * 0.72 ) ,
68+ controlPoint2: NSPoint ( x: CGFloat ( size) * 0.36 , y: CGFloat ( size) * 0.70 )
69+ )
70+ leftLand. fill ( )
71+
72+ let rightLand = NSBezierPath ( )
73+ rightLand. move ( to: NSPoint ( x: CGFloat ( size) * 0.61 , y: CGFloat ( size) * 0.70 ) )
74+ rightLand. curve (
75+ to: NSPoint ( x: CGFloat ( size) * 0.72 , y: CGFloat ( size) * 0.52 ) ,
76+ controlPoint1: NSPoint ( x: CGFloat ( size) * 0.72 , y: CGFloat ( size) * 0.69 ) ,
77+ controlPoint2: NSPoint ( x: CGFloat ( size) * 0.78 , y: CGFloat ( size) * 0.60 )
78+ )
79+ rightLand. curve (
80+ to: NSPoint ( x: CGFloat ( size) * 0.57 , y: CGFloat ( size) * 0.33 ) ,
81+ controlPoint1: NSPoint ( x: CGFloat ( size) * 0.66 , y: CGFloat ( size) * 0.44 ) ,
82+ controlPoint2: NSPoint ( x: CGFloat ( size) * 0.66 , y: CGFloat ( size) * 0.35 )
83+ )
84+ rightLand. curve (
85+ to: NSPoint ( x: CGFloat ( size) * 0.61 , y: CGFloat ( size) * 0.70 ) ,
86+ controlPoint1: NSPoint ( x: CGFloat ( size) * 0.49 , y: CGFloat ( size) * 0.40 ) ,
87+ controlPoint2: NSPoint ( x: CGFloat ( size) * 0.51 , y: CGFloat ( size) * 0.63 )
88+ )
89+ rightLand. fill ( )
90+
91+ globe. addClip ( )
92+ NSColor . white. withAlphaComponent ( 0.22 ) . setStroke ( )
93+ for ratio in [ 0.36 , 0.50 , 0.64 ] {
94+ let y = CGFloat ( size) * ratio
95+ let line = NSBezierPath ( )
96+ line. move ( to: NSPoint ( x: globeRect. minX + CGFloat( size) * 0.05 , y: y) )
97+ line. line ( to: NSPoint ( x: globeRect. maxX - CGFloat( size) * 0.05 , y: y) )
98+ line. lineWidth = max ( 1 , CGFloat ( size) * 0.012 )
99+ line. stroke ( )
100+ }
101+
102+ NSColor . white. withAlphaComponent ( 0.30 ) . setStroke ( )
103+ globe. lineWidth = max ( 2 , CGFloat ( size) * 0.025 )
104+ globe. stroke ( )
67105
68106 image. unlockFocus ( )
69107
@@ -99,4 +137,3 @@ if process.terminationStatus != 0 {
99137 NSLocalizedDescriptionKey: " iconutil failed. "
100138 ] )
101139}
102-
0 commit comments