import time
import board

import digitalio

import LEDMatrix
import MatrixLettersH5 as letters

import Container
import LEDObject

time.sleep(0.1)

onBoardLed = digitalio.DigitalInOut(board.LED)
onBoardLed.direction = digitalio.Direction.OUTPUT
onBoardLed.value = True

led_matrix = LEDMatrix.LEDMatrix(board.GP0, 30, 5)

led_matrix.fill((0, 100, 0))
led_matrix.show()
print("init1")
time.sleep(0.1)

led_matrix.fill((0, 0, 0))
led_matrix.show()
print("init2")
time.sleep(0.1)

# text = [letters.I(), letters.C(), letters.E()]
# caret = 0
#
# for letter in text:
#     letter_width = letters.width(letter)
#
#     letter_moved = letters.offset(letter, caret, 0)
#     letter_colored = [(x, y, (255, 0, 0)) for (x, y) in letter_moved]
#     led_matrix.set_pixels(letter_colored)
#     led_matrix.show()
#     caret += letter_width + 1
#     time.sleep(1)

# for letter in letters.ALPHABET:
#     displayLetter = LEDObject.LEDObject(letter())
#     displayLetter.x = 2
#
#     pixelCount = displayLetter.get_pixel_count()
#     progress = 0
#
#     while (progress < pixelCount):
#         displayLetter.set_pixel(progress, (255, 0, 0))
#         led_matrix.set_pixels(displayLetter.get_pixels())
#         led_matrix.show()
#         progress += 1
#         time.sleep(0.1)
#
#     time.sleep(1)
#     progress = 0
#
#     while (progress < pixelCount):
#         displayLetter.set_pixel(progress, (0, 0, 0))
#         led_matrix.set_pixels(displayLetter.get_pixels())
#         led_matrix.show()
#         progress += 1
#         time.sleep(0.1)
#
#     time.sleep(1)

container = Container.Container()
displayA = LEDObject.LEDObject(letters.A())
displayB = LEDObject.LEDObject(letters.B())
displayC = LEDObject.LEDObject(letters.C())

# displayLetters = [displayA, displayB, displayC]
# write HALLO ICEFLOWER :D
displayLetters = [
    LEDObject.LEDObject(letters.H()),
    LEDObject.LEDObject(letters.A()),
    LEDObject.LEDObject(letters.L()),
    LEDObject.LEDObject(letters.L()),
    LEDObject.LEDObject(letters.O()),

    LEDObject.LEDObject(letters.SPACE()),

    LEDObject.LEDObject(letters.I()),
    LEDObject.LEDObject(letters.C()),
    LEDObject.LEDObject(letters.E()),
    LEDObject.LEDObject(letters.F()),
    LEDObject.LEDObject(letters.L()),
    LEDObject.LEDObject(letters.O()),
    LEDObject.LEDObject(letters.W()),
    LEDObject.LEDObject(letters.E()),
    LEDObject.LEDObject(letters.R()),

    LEDObject.LEDObject(letters.SPACE()),

    LEDObject.LEDObject(letters.COLON()),
    LEDObject.LEDObject(letters.D())
]


curX = 2
for displayLetter in displayLetters:
    displayLetter.fill((0, 0, 255))
    displayLetter.x = curX
    curX += displayLetter.width + 1

    container.addChild(displayLetter)

containerWidth = container.getWidth()

direction = -1

container.x = 20

while True:
    if container.x < -(containerWidth - 15):
        direction = 1
    elif container.x > 10:
        direction = -1

    led_matrix.fill((0, 0, 0))
    led_matrix.set_pixels(container.get_pixels())
    led_matrix.show()

    container.x += direction

    time.sleep(0.05)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT
pico:GP0
pico:GP1
pico:GND.1
pico:GP2
pico:GP3
pico:GP4
pico:GP5
pico:GND.2
pico:GP6
pico:GP7
pico:GP8
pico:GP9
pico:GND.3
pico:GP10
pico:GP11
pico:GP12
pico:GP13
pico:GND.4
pico:GP14
pico:GP15
pico:GP16
pico:GP17
pico:GND.5
pico:GP18
pico:GP19
pico:GP20
pico:GP21
pico:GND.6
pico:GP22
pico:RUN
pico:GP26
pico:GP27
pico:GND.7
pico:GP28
pico:ADC_VREF
pico:3V3
pico:3V3_EN
pico:GND.8
pico:VSYS
pico:VBUS
neopixels:GND
neopixels:VCC
neopixels:DIN
neopixels:DOUT