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]]