TheBird

colors.py

2.1 kB · python · 61 lines

1from mrlypy.core.colors import Color2from mrlypy.core.state import randint, sample, shuffle3from mrlypy.paint.colors import get_color4from mrlypy.paint.enums import Ink5from typing import List, Tuple6from models import Task78# PRIMARIES910PRIMARIES = {11    Ink.BLACK: get_color(Ink.BLACK),12    Ink.WHITE: get_color(Ink.WHITE),13}1415# SECONDARIES1617SECONDARIES = {18    Ink.RED: get_color(Ink.RED),19    Ink.ORANGE: get_color(Ink.ORANGE),20    Ink.YELLOW: get_color(Ink.YELLOW),21    Ink.GREEN: get_color(Ink.GREEN),22    Ink.MINT: get_color(Ink.MINT),23    Ink.TEAL: get_color(Ink.TEAL),24    Ink.CYAN: get_color(Ink.CYAN),25    Ink.BLUE: get_color(Ink.BLUE),26    Ink.INDIGO: get_color(Ink.INDIGO),27    Ink.PURPLE: get_color(Ink.PURPLE),28    Ink.PINK: get_color(Ink.PINK),29    Ink.BROWN: get_color(Ink.BROWN),30    Ink.GRAY: get_color(Ink.GRAY),31}3233# FRAMES3435def create_frames_colors(task: Task, k: int) -> Tuple[Color, List[Color]]:36    print(f"Creating frames colors for variation: {task.key}")37    primary = PRIMARIES[task.primary]38    if not task.is_simple():39        k = randint(2, len(SECONDARIES))40    print(f"Secondary count: {k}")41    secondary_inks = sample(list(SECONDARIES.keys()), k)42    if task.secondary not in secondary_inks:43        secondary_inks.pop()44        secondary_inks.append(task.secondary)45        shuffle(secondary_inks)46    print(f"Secondary inks: {[ink.value for ink in secondary_inks]}")47    secondary = [SECONDARIES[ink] for ink in secondary_inks]48    return primary, secondary4950# HEATMAP5152def create_heatmap_colors(task: Task) -> Tuple[Color, List[Color]]:53    print(f"Creating heatmap colors for variation: {task.key}")54    primary = PRIMARIES[task.primary]55    secondary = SECONDARIES[task.secondary]56    if primary == PRIMARIES[Ink.WHITE]:57        print(f"Heatmap colors: {task.primary.value}, {task.secondary.value}, {Ink.BLACK.value}")58        return primary, [secondary, PRIMARIES[Ink.BLACK]]59    if primary == PRIMARIES[Ink.BLACK]:60        print(f"Heatmap colors: {task.primary.value}, {task.secondary.value}, {Ink.WHITE.value}")61        return primary, [secondary, PRIMARIES[Ink.WHITE]]