add some images
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/angry.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/asleep.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/confused.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/fabulous.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/happy.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/heart.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/meh.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/sad.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/silly.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/smallheart.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								docs/static/blocks/iconnames/surprised.PNG
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.7 KiB  | 
@@ -55,6 +55,17 @@
 | 
			
		||||
  "Gesture.TiltLeft|block": "tilt left",
 | 
			
		||||
  "Gesture.TiltRight": "Raised when the screen is pointing right",
 | 
			
		||||
  "Gesture.TiltRight|block": "tilt right",
 | 
			
		||||
  "IconNames.Angry|block": "angry",
 | 
			
		||||
  "IconNames.Asleep|block": "asleep",
 | 
			
		||||
  "IconNames.Confused|block": "confused",
 | 
			
		||||
  "IconNames.Fabulous|block": "fabulous",
 | 
			
		||||
  "IconNames.Happy|block": "happy",
 | 
			
		||||
  "IconNames.Heart|block": "heart",
 | 
			
		||||
  "IconNames.Meh|block": "meh",
 | 
			
		||||
  "IconNames.Sad|block": "sad",
 | 
			
		||||
  "IconNames.Silly|block": "silly",
 | 
			
		||||
  "IconNames.SmallHeart|block": "smallheart",
 | 
			
		||||
  "IconNames.Surprised|block": "surprised",
 | 
			
		||||
  "LedSpriteProperty.Blink|block": "blink",
 | 
			
		||||
  "LedSpriteProperty.Brightness|block": "brightness",
 | 
			
		||||
  "LedSpriteProperty.Direction|block": "direction",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										679
									
								
								libs/core/icons.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,679 @@
 | 
			
		||||
// this doesn't work//% block=happy enumval=0 blockImage=1
 | 
			
		||||
 | 
			
		||||
enum IconNames {
 | 
			
		||||
    //% enumval=0 block="heart" blockImage=1
 | 
			
		||||
    Heart = 0,
 | 
			
		||||
    //% enumval=1 block="smallheart" blockImage=1
 | 
			
		||||
    SmallHeart,
 | 
			
		||||
    //% enumval=2 block="happy" blockImage=1
 | 
			
		||||
    Happy,
 | 
			
		||||
    //% enumval=3 block="sad" blockImage=1
 | 
			
		||||
    Sad,
 | 
			
		||||
    //% enumval=4 block="confused" blockImage=1
 | 
			
		||||
    Confused,
 | 
			
		||||
    //% enumval=5 block="angry" blockImage=1
 | 
			
		||||
    Angry,
 | 
			
		||||
    //% enumval=6 block="asleep" blockImage=1
 | 
			
		||||
    Asleep,
 | 
			
		||||
    //% enumval=7 block="surprised" blockImage=1
 | 
			
		||||
    Surprised,
 | 
			
		||||
    //% enumval=8 block="silly" blockImage=1
 | 
			
		||||
    Silly,
 | 
			
		||||
    //% enumval=5 block="fabulous" blockImage=1
 | 
			
		||||
    Fabulous,
 | 
			
		||||
    //% enumval=5 block="meh" blockImage=1
 | 
			
		||||
    Meh,
 | 
			
		||||
 | 
			
		||||
    Yes,
 | 
			
		||||
    No,
 | 
			
		||||
 | 
			
		||||
    TShirt,
 | 
			
		||||
    Rollerskate,
 | 
			
		||||
    Duck,
 | 
			
		||||
    House,
 | 
			
		||||
    Tortoise,
 | 
			
		||||
    Butterfly,
 | 
			
		||||
    StickFigure,
 | 
			
		||||
    Ghost,
 | 
			
		||||
    Sword,
 | 
			
		||||
    Giraffe,
 | 
			
		||||
    Skull,
 | 
			
		||||
    Umbrella,
 | 
			
		||||
    Snake,
 | 
			
		||||
 | 
			
		||||
    Triangle,
 | 
			
		||||
    LeftTriangle,
 | 
			
		||||
    Chessboard,
 | 
			
		||||
    Diamond,
 | 
			
		||||
    SmallDiamond,
 | 
			
		||||
    Square,
 | 
			
		||||
    SmallSquare,
 | 
			
		||||
 | 
			
		||||
    Rabbit,
 | 
			
		||||
    Cow,
 | 
			
		||||
    QuarterNote,
 | 
			
		||||
    EigthNote,
 | 
			
		||||
    Pitchfork,
 | 
			
		||||
    Pacman,
 | 
			
		||||
    Target
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
enum ArrowNames {
 | 
			
		||||
    North = 0,
 | 
			
		||||
    NorthEast,
 | 
			
		||||
    East,
 | 
			
		||||
    SouthEast,
 | 
			
		||||
    South,
 | 
			
		||||
    SouthWest,
 | 
			
		||||
    West,
 | 
			
		||||
    NorthWest,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
enum HourNames {
 | 
			
		||||
    Hour12 = 0,
 | 
			
		||||
    Hour1,
 | 
			
		||||
    Hour2,
 | 
			
		||||
    Hour3,
 | 
			
		||||
    Hour4,
 | 
			
		||||
    Hour5,
 | 
			
		||||
    Hour6,
 | 
			
		||||
    Hour7,
 | 
			
		||||
    Hour8,
 | 
			
		||||
    Hour9,
 | 
			
		||||
    Hour10,
 | 
			
		||||
    Hour11
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
namespace basic {
 | 
			
		||||
 | 
			
		||||
    //% weight=50
 | 
			
		||||
    //% blockId=basic_show_arrow block="show arrow %i=device_arrow"
 | 
			
		||||
    export function showArrow(i: number) {
 | 
			
		||||
        let res = images.arrowImage(i)
 | 
			
		||||
        res.showImage(0)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //% weight=50
 | 
			
		||||
    //% blockId=basic_show_hour block="show hour %i=device_hour"
 | 
			
		||||
    export function showHour(i: number) {
 | 
			
		||||
        let res = images.hourImage(i)
 | 
			
		||||
        res.showImage(0)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //% weight=90
 | 
			
		||||
    //% blockId=basic_show_icon block="show icon %i"
 | 
			
		||||
    export function showIcon(i: IconNames) {
 | 
			
		||||
        let res = images.iconImage(i)
 | 
			
		||||
        res.showImage(0)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
namespace images {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const heart = `
 | 
			
		||||
. # . # .
 | 
			
		||||
# # # # #
 | 
			
		||||
# # # # #
 | 
			
		||||
. # # # .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const small_heart = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. # . # .
 | 
			
		||||
. # # # .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    //faces
 | 
			
		||||
 | 
			
		||||
    const happy_face = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. # . # .
 | 
			
		||||
. . . . .
 | 
			
		||||
# . . . #
 | 
			
		||||
. # # # .`
 | 
			
		||||
 | 
			
		||||
    const sad_face = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. # . # .
 | 
			
		||||
. . . . .
 | 
			
		||||
. # # # .
 | 
			
		||||
# . . . #`
 | 
			
		||||
 | 
			
		||||
    const confused_face = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. # . # .
 | 
			
		||||
. . . . .
 | 
			
		||||
. # . # .
 | 
			
		||||
# . # . #`
 | 
			
		||||
 | 
			
		||||
    const angry_face = `
 | 
			
		||||
# . . . #
 | 
			
		||||
. # . # .
 | 
			
		||||
. . . . .
 | 
			
		||||
# # # # #
 | 
			
		||||
# . # . #`
 | 
			
		||||
 | 
			
		||||
    const asleep_face = `
 | 
			
		||||
. . . . .
 | 
			
		||||
# # . # #
 | 
			
		||||
. . . . .
 | 
			
		||||
. # # # .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const surprised_face = `
 | 
			
		||||
. # . # .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . # .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const silly_face = `
 | 
			
		||||
# . . . #
 | 
			
		||||
. . . . .
 | 
			
		||||
# # # # #
 | 
			
		||||
. . . # #
 | 
			
		||||
. . . # #`
 | 
			
		||||
 | 
			
		||||
    const fabulous_face = `
 | 
			
		||||
# # # # #
 | 
			
		||||
# # . # #
 | 
			
		||||
. . . . .
 | 
			
		||||
. # . # .
 | 
			
		||||
. # # # .`
 | 
			
		||||
 | 
			
		||||
    const meh_face = `
 | 
			
		||||
# # . # #
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . # .
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . . .`
 | 
			
		||||
 | 
			
		||||
    const yes = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . #
 | 
			
		||||
. . . # .
 | 
			
		||||
# . # . .
 | 
			
		||||
. # . . .`
 | 
			
		||||
 | 
			
		||||
    const no = `
 | 
			
		||||
# . . . #
 | 
			
		||||
. # . # .
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . # .
 | 
			
		||||
# . . . #`
 | 
			
		||||
 | 
			
		||||
    // clock hands
 | 
			
		||||
 | 
			
		||||
    const hour12 = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const hour1 = `
 | 
			
		||||
. . . # .
 | 
			
		||||
. . . # .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const hour2 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . # #
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const hour3 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # # #
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const hour4 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . # #
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const hour5 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . # .
 | 
			
		||||
. . . # .`
 | 
			
		||||
 | 
			
		||||
    const hour6 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    const hour7 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . . .
 | 
			
		||||
. # . . .`
 | 
			
		||||
 | 
			
		||||
    const hour8 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
# # . . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const hour9 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .
 | 
			
		||||
# # # . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const hour10 = `
 | 
			
		||||
. . . . .
 | 
			
		||||
# # . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const hour11 = `
 | 
			
		||||
. # . . .
 | 
			
		||||
. # . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    // compass directions
 | 
			
		||||
 | 
			
		||||
    const arrow_n = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. # # # .
 | 
			
		||||
# . # . #
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const arrow_ne = `
 | 
			
		||||
. . # # #
 | 
			
		||||
. . . # #
 | 
			
		||||
. . # . #
 | 
			
		||||
. # . . .
 | 
			
		||||
# . . . .`
 | 
			
		||||
 | 
			
		||||
    const arrow_e = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . # .
 | 
			
		||||
# # # # #
 | 
			
		||||
. . . # .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const arrow_se = `
 | 
			
		||||
# . . . .
 | 
			
		||||
. # . . .
 | 
			
		||||
. . # . #
 | 
			
		||||
. . . # #
 | 
			
		||||
. . # # #`
 | 
			
		||||
 | 
			
		||||
    const arrow_s = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .
 | 
			
		||||
# . # . #
 | 
			
		||||
. # # # .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const arrow_sw = `
 | 
			
		||||
. . . . #
 | 
			
		||||
. . . # .
 | 
			
		||||
# . # . .
 | 
			
		||||
# # . . .
 | 
			
		||||
# # # . .`
 | 
			
		||||
 | 
			
		||||
    const arrow_w = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . . .
 | 
			
		||||
# # # # #
 | 
			
		||||
. # . . .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const arrow_nw = `
 | 
			
		||||
# # # . .
 | 
			
		||||
# # . . .
 | 
			
		||||
# . # . .
 | 
			
		||||
. . . # .
 | 
			
		||||
. . . . #`
 | 
			
		||||
 | 
			
		||||
    // geometry
 | 
			
		||||
 | 
			
		||||
    const triangle = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . # .
 | 
			
		||||
# # # # #
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const left_triangle = `
 | 
			
		||||
# . . . .
 | 
			
		||||
# # . . .
 | 
			
		||||
# . # . .
 | 
			
		||||
# . . # .
 | 
			
		||||
# # # # #`
 | 
			
		||||
 | 
			
		||||
    const chessboard = `
 | 
			
		||||
. # . # .
 | 
			
		||||
# . # . #
 | 
			
		||||
. # . # .
 | 
			
		||||
# . # . #
 | 
			
		||||
. # . # .`
 | 
			
		||||
 | 
			
		||||
    const diamond = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . # .
 | 
			
		||||
# . . . #
 | 
			
		||||
. # . # .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const small_diamond = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . # .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const square = `
 | 
			
		||||
# # # # #
 | 
			
		||||
# . . . #
 | 
			
		||||
# . . . #
 | 
			
		||||
# . . . #
 | 
			
		||||
# # # # #`
 | 
			
		||||
 | 
			
		||||
    const small_square = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. # # # .
 | 
			
		||||
. # . # .
 | 
			
		||||
. # # # .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    // The following images were designed by Abbie Brooks.
 | 
			
		||||
 | 
			
		||||
    const tshirt = `
 | 
			
		||||
# # . # #
 | 
			
		||||
# # # # #
 | 
			
		||||
. # # # .
 | 
			
		||||
. # # # .
 | 
			
		||||
. # # # .`
 | 
			
		||||
 | 
			
		||||
    const rollerskate = `
 | 
			
		||||
. . . # #
 | 
			
		||||
. . . # #
 | 
			
		||||
# # # # #
 | 
			
		||||
# # # # #
 | 
			
		||||
. # . # .`
 | 
			
		||||
 | 
			
		||||
    const duck = `
 | 
			
		||||
. # # . .
 | 
			
		||||
# # # . .
 | 
			
		||||
. # # # #
 | 
			
		||||
. # # # .
 | 
			
		||||
. .. . .`
 | 
			
		||||
 | 
			
		||||
    const house = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. # # # .
 | 
			
		||||
# # # # #
 | 
			
		||||
. # # # .
 | 
			
		||||
. # . # .`
 | 
			
		||||
 | 
			
		||||
    const tortoise = `
 | 
			
		||||
. . . . .
 | 
			
		||||
. # # # .
 | 
			
		||||
# # # # #
 | 
			
		||||
. # . # .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
    const butterfly = `
 | 
			
		||||
# # . # #
 | 
			
		||||
# # # # #
 | 
			
		||||
. . # . .
 | 
			
		||||
# # # # #
 | 
			
		||||
# # . # #`
 | 
			
		||||
 | 
			
		||||
    const stick_figure = `
 | 
			
		||||
. . # . .
 | 
			
		||||
# # # # #
 | 
			
		||||
. . # . .
 | 
			
		||||
. # . # .
 | 
			
		||||
# . . . #`
 | 
			
		||||
 | 
			
		||||
    const ghost = `
 | 
			
		||||
. # # # .
 | 
			
		||||
# . # . #
 | 
			
		||||
# # # # #
 | 
			
		||||
# # # # #
 | 
			
		||||
# . # . #`
 | 
			
		||||
 | 
			
		||||
    const sword = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. # # # .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const giraffe = `
 | 
			
		||||
# # . . .
 | 
			
		||||
. # . . .
 | 
			
		||||
. # . . .
 | 
			
		||||
. # # # .
 | 
			
		||||
. # . # .`
 | 
			
		||||
 | 
			
		||||
    const skull = `
 | 
			
		||||
. # # # .
 | 
			
		||||
# . # . #
 | 
			
		||||
# # # # #
 | 
			
		||||
. # # # .
 | 
			
		||||
. # # # .`
 | 
			
		||||
 | 
			
		||||
    const umbrella = `
 | 
			
		||||
. # # # .
 | 
			
		||||
# # # # #
 | 
			
		||||
. . # . .
 | 
			
		||||
# . # . .
 | 
			
		||||
# # # . .`
 | 
			
		||||
 | 
			
		||||
    const snake = `
 | 
			
		||||
# # . . .
 | 
			
		||||
# # . # #
 | 
			
		||||
. # . # .
 | 
			
		||||
. # # # .
 | 
			
		||||
. . . . .`
 | 
			
		||||
 | 
			
		||||
// animals    
 | 
			
		||||
 | 
			
		||||
    const rabbit = `
 | 
			
		||||
# . # . .
 | 
			
		||||
# . # . .
 | 
			
		||||
# # # # .
 | 
			
		||||
# # . # .
 | 
			
		||||
# # # # .`
 | 
			
		||||
 | 
			
		||||
    const cow = `
 | 
			
		||||
# . . . #
 | 
			
		||||
# . . . #
 | 
			
		||||
# # # # #
 | 
			
		||||
. # # # .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
// musical notes
 | 
			
		||||
 | 
			
		||||
    const quarter_note = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .
 | 
			
		||||
# # # . .
 | 
			
		||||
# # # . .`
 | 
			
		||||
 | 
			
		||||
    const eigth_note = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # # .
 | 
			
		||||
. . # . #
 | 
			
		||||
# # # . .
 | 
			
		||||
# # # . .`
 | 
			
		||||
 | 
			
		||||
// other icons
 | 
			
		||||
 | 
			
		||||
    const pitchfork = `
 | 
			
		||||
# . # . #
 | 
			
		||||
# . # . #
 | 
			
		||||
# # # # #
 | 
			
		||||
. . # . .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    const pacman = `
 | 
			
		||||
. # # # #
 | 
			
		||||
# # # # .
 | 
			
		||||
# # # . .
 | 
			
		||||
# # # # .
 | 
			
		||||
. # # # #`
 | 
			
		||||
 | 
			
		||||
    const target = `
 | 
			
		||||
. . # . .
 | 
			
		||||
. # # # .
 | 
			
		||||
# # . # #
 | 
			
		||||
. # # # .
 | 
			
		||||
. . # . .`
 | 
			
		||||
 | 
			
		||||
    //% weight=50
 | 
			
		||||
    //% blockId=device_arrow block="%arrow"
 | 
			
		||||
    //% shim=TD_ID
 | 
			
		||||
    export function arrowNumber(arrow: ArrowNames): number {
 | 
			
		||||
        return arrow;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //% weight=50
 | 
			
		||||
    //% blockId=device_hour block="%hour"
 | 
			
		||||
    //% shim=TD_ID
 | 
			
		||||
    export function hourNumber(hour: HourNames): number {
 | 
			
		||||
        return hour;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //% weight=50
 | 
			
		||||
    //% blockId=builtin_arrow_image block="arrow image %i=device_arrow"
 | 
			
		||||
    export function arrowImage(i: ArrowNames): Image {
 | 
			
		||||
        let res = images.createImage(`
 | 
			
		||||
            . . . . .
 | 
			
		||||
            . . . . .
 | 
			
		||||
            . . . . .
 | 
			
		||||
            . . . . .
 | 
			
		||||
            . . . . .
 | 
			
		||||
            `)
 | 
			
		||||
        switch (i) {
 | 
			
		||||
            case ArrowNames.North: return set(res, arrow_n)
 | 
			
		||||
            case ArrowNames.NorthEast: return set(res, arrow_ne)
 | 
			
		||||
            case ArrowNames.East: return set(res, arrow_e)
 | 
			
		||||
            case ArrowNames.SouthEast: return set(res, arrow_se)
 | 
			
		||||
            case ArrowNames.South: return set(res, arrow_s)
 | 
			
		||||
            case ArrowNames.SouthWest: return set(res, arrow_sw)
 | 
			
		||||
            case ArrowNames.West: return set(res, arrow_w)
 | 
			
		||||
            case ArrowNames.NorthWest: return set(res, arrow_nw)
 | 
			
		||||
        }
 | 
			
		||||
        return res;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //% weight=50
 | 
			
		||||
    //% blockId=builtin_hour_image block="hour image %i=device_hour"
 | 
			
		||||
    export function hourImage(i: HourNames): Image {
 | 
			
		||||
        let res = images.createImage(`
 | 
			
		||||
            . . . . .
 | 
			
		||||
            . . . . .
 | 
			
		||||
            . . . . .
 | 
			
		||||
            . . . . .
 | 
			
		||||
            . . . . .
 | 
			
		||||
            `)
 | 
			
		||||
        switch (i) {
 | 
			
		||||
            case HourNames.Hour12: return set(res, hour12)
 | 
			
		||||
            case HourNames.Hour1: return set(res, hour1)
 | 
			
		||||
            case HourNames.Hour2: return set(res, hour2)
 | 
			
		||||
            case HourNames.Hour3: return set(res, hour3)
 | 
			
		||||
            case HourNames.Hour4: return set(res, hour4)
 | 
			
		||||
            case HourNames.Hour5: return set(res, hour5)
 | 
			
		||||
            case HourNames.Hour6: return set(res, hour6)
 | 
			
		||||
            case HourNames.Hour7: return set(res, hour7)
 | 
			
		||||
            case HourNames.Hour8: return set(res, hour8)
 | 
			
		||||
            case HourNames.Hour9: return set(res, hour9)
 | 
			
		||||
            case HourNames.Hour10: return set(res, hour10)
 | 
			
		||||
            case HourNames.Hour11: return set(res, hour11)
 | 
			
		||||
        }
 | 
			
		||||
        return res;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //% weight=50
 | 
			
		||||
    //% blockId=builtin_image block="icon %i"
 | 
			
		||||
    export function iconImage(i: IconNames): Image {
 | 
			
		||||
        let res = images.createImage(`
 | 
			
		||||
                . . . . .
 | 
			
		||||
                . . . . .
 | 
			
		||||
                . . # . .
 | 
			
		||||
                . . . . .
 | 
			
		||||
                . . . . .
 | 
			
		||||
                `)
 | 
			
		||||
        switch (i) {
 | 
			
		||||
            case IconNames.Heart: return set(res, heart)
 | 
			
		||||
            case IconNames.SmallHeart: return set(res, small_heart)
 | 
			
		||||
 | 
			
		||||
            case IconNames.Yes: return set(res, yes)
 | 
			
		||||
            case IconNames.No: return set(res, no)
 | 
			
		||||
 | 
			
		||||
            case IconNames.Happy: return set(res, happy_face)
 | 
			
		||||
            case IconNames.Sad: return set(res, sad_face)
 | 
			
		||||
            case IconNames.Confused: return set(res, confused_face)
 | 
			
		||||
            case IconNames.Angry: return set(res, angry_face)
 | 
			
		||||
            case IconNames.Asleep: return set(res, asleep_face)
 | 
			
		||||
            case IconNames.Surprised: return set(res, surprised_face)
 | 
			
		||||
            case IconNames.Silly: return set(res, silly_face)
 | 
			
		||||
            case IconNames.Fabulous: return set(res, fabulous_face)
 | 
			
		||||
            case IconNames.Meh: return set(res, meh_face)
 | 
			
		||||
 | 
			
		||||
            case IconNames.TShirt: return set(res, tshirt)
 | 
			
		||||
            case IconNames.Rollerskate: return set(res, rollerskate)
 | 
			
		||||
            case IconNames.Duck: return set(res, duck)
 | 
			
		||||
            case IconNames.House: return set(res, house)
 | 
			
		||||
            case IconNames.Tortoise: return set(res, tortoise)
 | 
			
		||||
            case IconNames.Butterfly: return set(res, butterfly)
 | 
			
		||||
            case IconNames.StickFigure: return set(res, stick_figure)
 | 
			
		||||
            case IconNames.Ghost: return set(res, ghost)
 | 
			
		||||
            case IconNames.Sword: return set(res, sword)
 | 
			
		||||
            case IconNames.Giraffe: return set(res, giraffe)
 | 
			
		||||
            case IconNames.Skull: return set(res, skull)
 | 
			
		||||
            case IconNames.Umbrella: return set(res, umbrella)
 | 
			
		||||
            case IconNames.Snake: return set(res, snake)
 | 
			
		||||
 | 
			
		||||
            case IconNames.Rabbit: return set(res, rabbit)
 | 
			
		||||
            case IconNames.Cow: return set(res, cow)
 | 
			
		||||
            case IconNames.QuarterNote: return set(res, quarter_note)
 | 
			
		||||
            case IconNames.EigthNote: return set(res, eigth_note)
 | 
			
		||||
            case IconNames.Pitchfork: return set(res, pitchfork)
 | 
			
		||||
            case IconNames.Pacman: return set(res, pacman)
 | 
			
		||||
            case IconNames.Target: return set(res, target)
 | 
			
		||||
        }
 | 
			
		||||
        return res;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function set(res: Image, s: string) {
 | 
			
		||||
        let j = 0;
 | 
			
		||||
        for (let x of s) {
 | 
			
		||||
            if (x == "." || x == "#") {
 | 
			
		||||
                res.setPixel(j % 5, j / 5, x == "#")
 | 
			
		||||
                j++
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return res
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -17,6 +17,7 @@
 | 
			
		||||
        "helpers.ts",
 | 
			
		||||
        "images.cpp",
 | 
			
		||||
        "basic.cpp",
 | 
			
		||||
        "icons.ts",
 | 
			
		||||
        "input.cpp",
 | 
			
		||||
        "input.ts",
 | 
			
		||||
        "control.ts",
 | 
			
		||||
 
 | 
			
		||||