| 
									
										
										
										
											2024-03-05 09:59:55 -06:00
										 |  |  | import struct | 
					
						
							| 
									
										
										
										
											2024-08-31 06:15:00 -05:00
										 |  |  | from .options import KirbyFlavorPreset, GooeyFlavorPreset | 
					
						
							|  |  |  | from typing import TYPE_CHECKING, Optional, Dict, List, Tuple | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if TYPE_CHECKING: | 
					
						
							|  |  |  |     from . import KDL3World | 
					
						
							| 
									
										
										
										
											2024-03-05 09:59:55 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | kirby_flavor_presets = { | 
					
						
							|  |  |  |     1: { | 
					
						
							|  |  |  |       "1": "B50029", | 
					
						
							|  |  |  |       "2": "FF91C6", | 
					
						
							|  |  |  |       "3": "B0123B", | 
					
						
							|  |  |  |       "4": "630F0F", | 
					
						
							|  |  |  |       "5": "D60052", | 
					
						
							|  |  |  |       "6": "DE4873", | 
					
						
							|  |  |  |       "7": "D07880", | 
					
						
							|  |  |  |       "8": "000000", | 
					
						
							|  |  |  |       "9": "F770A5", | 
					
						
							|  |  |  |       "10": "E01784", | 
					
						
							|  |  |  |       "11": "CA4C74", | 
					
						
							|  |  |  |       "12": "A7443F", | 
					
						
							|  |  |  |       "13": "FF1784", | 
					
						
							|  |  |  |       "14": "FFA1DE", | 
					
						
							|  |  |  |       "15": "B03830", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     2: { | 
					
						
							|  |  |  |       "1": "C70057", | 
					
						
							|  |  |  |       "2": "FF3554", | 
					
						
							|  |  |  |       "3": "AA0040", | 
					
						
							|  |  |  |       "4": "C02D47", | 
					
						
							|  |  |  |       "5": "E02068", | 
					
						
							|  |  |  |       "6": "C2183F", | 
					
						
							|  |  |  |       "7": "D03F80", | 
					
						
							|  |  |  |       "8": "872939", | 
					
						
							|  |  |  |       "9": "E82B47", | 
					
						
							|  |  |  |       "10": "E80067", | 
					
						
							|  |  |  |       "11": "D52F40", | 
					
						
							|  |  |  |       "12": "9F1C33", | 
					
						
							|  |  |  |       "13": "FD187F", | 
					
						
							|  |  |  |       "14": "F85068", | 
					
						
							|  |  |  |       "15": "D2386F", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     3: { | 
					
						
							|  |  |  |         "1": "5858e2", | 
					
						
							|  |  |  |         "2": "e6e6fa", | 
					
						
							|  |  |  |         "3": "bcbcf2", | 
					
						
							|  |  |  |         "4": "8484e6", | 
					
						
							|  |  |  |         "5": "2929ec", | 
					
						
							|  |  |  |         "6": "b5b5f0", | 
					
						
							|  |  |  |         "7": "847bd6", | 
					
						
							|  |  |  |         "8": "3232d6", | 
					
						
							|  |  |  |         "9": "d6d6ef", | 
					
						
							|  |  |  |         "10": "4a52ef", | 
					
						
							|  |  |  |         "11": "c6c6e6", | 
					
						
							|  |  |  |         "12": "4343ad", | 
					
						
							|  |  |  |         "13": "6767ff", | 
					
						
							|  |  |  |         "14": "f6f6fd", | 
					
						
							|  |  |  |         "15": "3139b6", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     4: { | 
					
						
							|  |  |  |         "1": "B01810", | 
					
						
							|  |  |  |         "2": "F0E08D", | 
					
						
							|  |  |  |         "3": "C8A060", | 
					
						
							|  |  |  |         "4": "A87043", | 
					
						
							|  |  |  |         "5": "E03700", | 
					
						
							|  |  |  |         "6": "EFC063", | 
					
						
							|  |  |  |         "7": "D07818", | 
					
						
							|  |  |  |         "8": "A8501C", | 
					
						
							|  |  |  |         "9": "E8D070", | 
					
						
							|  |  |  |         "10": "E2501E", | 
					
						
							|  |  |  |         "11": "E8C55C", | 
					
						
							|  |  |  |         "12": "B08833", | 
					
						
							|  |  |  |         "13": "E8783B", | 
					
						
							|  |  |  |         "14": "F8F8A5", | 
					
						
							|  |  |  |         "15": "B03800", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     5: { | 
					
						
							|  |  |  |         "1": "9F4410", | 
					
						
							|  |  |  |         "2": "88F27B", | 
					
						
							|  |  |  |         "3": "57A044", | 
					
						
							|  |  |  |         "4": "227029", | 
					
						
							|  |  |  |         "5": "C75418", | 
					
						
							|  |  |  |         "6": "57BA23", | 
					
						
							|  |  |  |         "7": "1C6B00", | 
					
						
							|  |  |  |         "8": "2D6823", | 
					
						
							|  |  |  |         "9": "3FD744", | 
					
						
							|  |  |  |         "10": "E06C16", | 
					
						
							|  |  |  |         "11": "54C053", | 
					
						
							|  |  |  |         "12": "1A541E", | 
					
						
							|  |  |  |         "13": "F06B10", | 
					
						
							|  |  |  |         "14": "98F89A", | 
					
						
							|  |  |  |         "15": "B05830", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     6: { | 
					
						
							|  |  |  |         "1": "7C1060", | 
					
						
							|  |  |  |         "2": "CA8AE8", | 
					
						
							|  |  |  |         "3": "8250A5", | 
					
						
							|  |  |  |         "4": "604B7B", | 
					
						
							|  |  |  |         "5": "A52068", | 
					
						
							|  |  |  |         "6": "8D64B8", | 
					
						
							|  |  |  |         "7": "B73B80", | 
					
						
							|  |  |  |         "8": "672D9A", | 
					
						
							|  |  |  |         "9": "BA82D5", | 
					
						
							|  |  |  |         "10": "B55098", | 
					
						
							|  |  |  |         "11": "9F5CCF", | 
					
						
							|  |  |  |         "12": "632B74", | 
					
						
							|  |  |  |         "13": "CF78B5", | 
					
						
							|  |  |  |         "14": "DA98F8", | 
					
						
							|  |  |  |         "15": "8D3863", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     7: { | 
					
						
							|  |  |  |         "1": "6F1410", | 
					
						
							|  |  |  |         "2": "C2735C", | 
					
						
							|  |  |  |         "3": "5C351C", | 
					
						
							|  |  |  |         "4": "875440", | 
					
						
							|  |  |  |         "5": "9F2F0C", | 
					
						
							|  |  |  |         "6": "874C3B", | 
					
						
							|  |  |  |         "7": "88534C", | 
					
						
							|  |  |  |         "8": "4C1E00", | 
					
						
							|  |  |  |         "9": "B06458", | 
					
						
							|  |  |  |         "10": "921C16", | 
					
						
							|  |  |  |         "11": "9F5C54", | 
					
						
							|  |  |  |         "12": "5B3125", | 
					
						
							|  |  |  |         "13": "C01A14", | 
					
						
							|  |  |  |         "14": "CF785B", | 
					
						
							|  |  |  |         "15": "6B3125", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     8: { | 
					
						
							|  |  |  |         "1": "a6a6a6", | 
					
						
							|  |  |  |         "2": "e6e6e6", | 
					
						
							|  |  |  |         "3": "bcbcbc", | 
					
						
							|  |  |  |         "4": "848484", | 
					
						
							|  |  |  |         "5": "909090", | 
					
						
							|  |  |  |         "6": "b5b5b5", | 
					
						
							|  |  |  |         "7": "848484", | 
					
						
							|  |  |  |         "8": "646464", | 
					
						
							|  |  |  |         "9": "d6d6d6", | 
					
						
							|  |  |  |         "10": "525252", | 
					
						
							|  |  |  |         "11": "c6c6c6", | 
					
						
							|  |  |  |         "12": "737373", | 
					
						
							|  |  |  |         "13": "949494", | 
					
						
							|  |  |  |         "14": "f6f6f6", | 
					
						
							|  |  |  |         "15": "545454", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     9: { | 
					
						
							|  |  |  |         "1": "400000", | 
					
						
							|  |  |  |         "2": "6B6B6B", | 
					
						
							|  |  |  |         "3": "2B2B2B", | 
					
						
							|  |  |  |         "4": "181818", | 
					
						
							|  |  |  |         "5": "640000", | 
					
						
							|  |  |  |         "6": "3D3D3D", | 
					
						
							|  |  |  |         "7": "878787", | 
					
						
							|  |  |  |         "8": "020202", | 
					
						
							|  |  |  |         "9": "606060", | 
					
						
							|  |  |  |         "10": "980000", | 
					
						
							|  |  |  |         "11": "505050", | 
					
						
							|  |  |  |         "12": "474747", | 
					
						
							|  |  |  |         "13": "C80000", | 
					
						
							|  |  |  |         "14": "808080", | 
					
						
							|  |  |  |         "15": "AF0000", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     10: { | 
					
						
							|  |  |  |         "1": "2B4B10", | 
					
						
							|  |  |  |         "2": "EF8A9D", | 
					
						
							|  |  |  |         "3": "C84F6B", | 
					
						
							|  |  |  |         "4": "B74F54", | 
					
						
							|  |  |  |         "5": "126018", | 
					
						
							|  |  |  |         "6": "D85F6F", | 
					
						
							|  |  |  |         "7": "D06870", | 
					
						
							|  |  |  |         "8": "A24858", | 
					
						
							|  |  |  |         "9": "E77B8D", | 
					
						
							|  |  |  |         "10": "168025", | 
					
						
							|  |  |  |         "11": "DF5C68", | 
					
						
							|  |  |  |         "12": "9D4353", | 
					
						
							|  |  |  |         "13": "48953F", | 
					
						
							|  |  |  |         "14": "F897AD", | 
					
						
							|  |  |  |         "15": "B03830", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     11: { | 
					
						
							|  |  |  |         "1": "7B290C", | 
					
						
							|  |  |  |         "2": "FF9A00", | 
					
						
							|  |  |  |         "3": "B05C1C", | 
					
						
							|  |  |  |         "4": "8F3F0E", | 
					
						
							|  |  |  |         "5": "D23B0C", | 
					
						
							|  |  |  |         "6": "E08200", | 
					
						
							|  |  |  |         "7": "D05800", | 
					
						
							|  |  |  |         "8": "8A2B16", | 
					
						
							|  |  |  |         "9": "EF970A", | 
					
						
							|  |  |  |         "10": "E24800", | 
					
						
							|  |  |  |         "11": "E58F00", | 
					
						
							|  |  |  |         "12": "A03700", | 
					
						
							|  |  |  |         "13": "ED3B00", | 
					
						
							|  |  |  |         "14": "FFAF27", | 
					
						
							|  |  |  |         "15": "A84700", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     12: { | 
					
						
							|  |  |  |         "1": "AFA810", | 
					
						
							|  |  |  |         "2": "4FF29D", | 
					
						
							|  |  |  |         "3": "2BA04C", | 
					
						
							|  |  |  |         "4": "007043", | 
					
						
							|  |  |  |         "5": "C7C218", | 
					
						
							|  |  |  |         "6": "33BA5F", | 
					
						
							|  |  |  |         "7": "006B40", | 
					
						
							|  |  |  |         "8": "2D6823", | 
					
						
							|  |  |  |         "9": "1CD773", | 
					
						
							|  |  |  |         "10": "E0CF16", | 
					
						
							|  |  |  |         "11": "2DC06C", | 
					
						
							|  |  |  |         "12": "00543F", | 
					
						
							|  |  |  |         "13": "F0F010", | 
					
						
							|  |  |  |         "14": "43F8B2", | 
					
						
							|  |  |  |         "15": "B0A230", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     13: { | 
					
						
							|  |  |  |         "1": "7C73B0", | 
					
						
							|  |  |  |         "2": "CACAE7", | 
					
						
							|  |  |  |         "3": "7B7BA8", | 
					
						
							|  |  |  |         "4": "5F5FA7", | 
					
						
							|  |  |  |         "5": "B57EDC", | 
					
						
							|  |  |  |         "6": "8585C5", | 
					
						
							|  |  |  |         "7": "5B5B82", | 
					
						
							|  |  |  |         "8": "474796", | 
					
						
							|  |  |  |         "9": "B2B2D8", | 
					
						
							|  |  |  |         "10": "B790EF", | 
					
						
							|  |  |  |         "11": "9898C2", | 
					
						
							|  |  |  |         "12": "6B6BB7", | 
					
						
							|  |  |  |         "13": "CDADFA", | 
					
						
							|  |  |  |         "14": "E6E6FA", | 
					
						
							|  |  |  |         "15": "976FBD", | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2024-08-31 06:15:00 -05:00
										 |  |  |     14: { | 
					
						
							|  |  |  |       "1": "373B3E", | 
					
						
							|  |  |  |       "2": "98d5d3", | 
					
						
							|  |  |  |       "3": "1aa5ab", | 
					
						
							|  |  |  |       "4": "168f95", | 
					
						
							|  |  |  |       "5": "4f5559", | 
					
						
							|  |  |  |       "6": "1dbac2", | 
					
						
							|  |  |  |       "7": "137a7f", | 
					
						
							|  |  |  |       "8": "093a3c", | 
					
						
							|  |  |  |       "9": "86cecb", | 
					
						
							|  |  |  |       "10": "a0afbc", | 
					
						
							|  |  |  |       "11": "62bfbb", | 
					
						
							|  |  |  |       "12": "50b8b4", | 
					
						
							|  |  |  |       "13": "bec8d1", | 
					
						
							|  |  |  |       "14": "bce4e2", | 
					
						
							|  |  |  |       "15": "91a2b1", | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2024-03-05 09:59:55 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | gooey_flavor_presets = { | 
					
						
							|  |  |  |     1: { | 
					
						
							|  |  |  |         "1": "CD539D", | 
					
						
							|  |  |  |         "2": "D270AD", | 
					
						
							|  |  |  |         "3": "F27CBF", | 
					
						
							|  |  |  |         "4": "FF91C6", | 
					
						
							|  |  |  |         "5": "FFA1DE", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     2: { | 
					
						
							|  |  |  |         "1": "161600", | 
					
						
							|  |  |  |         "2": "592910", | 
					
						
							|  |  |  |         "3": "5A3118", | 
					
						
							|  |  |  |         "4": "AB3918", | 
					
						
							|  |  |  |         "5": "EB3918", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     3: { | 
					
						
							|  |  |  |         "1": "001616", | 
					
						
							|  |  |  |         "2": "102959", | 
					
						
							|  |  |  |         "3": "18315A", | 
					
						
							|  |  |  |         "4": "1839AB", | 
					
						
							|  |  |  |         "5": "1839EB", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     4: { | 
					
						
							|  |  |  |         "1": "C8A031", | 
					
						
							|  |  |  |         "2": "C5BD38", | 
					
						
							|  |  |  |         "3": "D2CD48", | 
					
						
							|  |  |  |         "4": "E2E040", | 
					
						
							|  |  |  |         "5": "EAE2A0", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     5: { | 
					
						
							|  |  |  |         "1": "54A208", | 
					
						
							|  |  |  |         "2": "5CB021", | 
					
						
							|  |  |  |         "3": "6CB206", | 
					
						
							|  |  |  |         "4": "8AC54C", | 
					
						
							|  |  |  |         "5": "8DD554", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     6: { | 
					
						
							|  |  |  |         "1": "3D083D", | 
					
						
							|  |  |  |         "2": "4B024B", | 
					
						
							|  |  |  |         "3": "4C104C", | 
					
						
							|  |  |  |         "4": "5F0A5F", | 
					
						
							|  |  |  |         "5": "9F1D9F", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     7: { | 
					
						
							|  |  |  |         "1": "270C08", | 
					
						
							|  |  |  |         "2": "481C10", | 
					
						
							|  |  |  |         "3": "581E10", | 
					
						
							|  |  |  |         "4": "5B2712", | 
					
						
							|  |  |  |         "5": "743316", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     8: { | 
					
						
							|  |  |  |         "1": "7F7F7F", | 
					
						
							|  |  |  |         "2": "909090", | 
					
						
							|  |  |  |         "3": "9D9D9D", | 
					
						
							|  |  |  |         "4": "BFBFBF", | 
					
						
							|  |  |  |         "5": "D2D2D2", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     9: { | 
					
						
							|  |  |  |         "1": "141414", | 
					
						
							|  |  |  |         "2": "2D2D2D", | 
					
						
							|  |  |  |         "3": "404040", | 
					
						
							|  |  |  |         "4": "585858", | 
					
						
							|  |  |  |         "5": "7F7F7F", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     10: { | 
					
						
							|  |  |  |         "1": "954353", | 
					
						
							|  |  |  |         "2": "AF4F68", | 
					
						
							|  |  |  |         "3": "CD6073", | 
					
						
							|  |  |  |         "4": "E06774", | 
					
						
							|  |  |  |         "5": "E587A2", | 
					
						
							|  |  |  |         "6": "17AF10", | 
					
						
							|  |  |  |         "7": "4FE748", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     11: { | 
					
						
							|  |  |  |         "1": "CF4700", | 
					
						
							|  |  |  |         "2": "D85C08", | 
					
						
							|  |  |  |         "3": "E26C04", | 
					
						
							|  |  |  |         "4": "EA7B16", | 
					
						
							|  |  |  |         "5": "EF8506", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     12: { | 
					
						
							|  |  |  |         "1": "1C4708", | 
					
						
							|  |  |  |         "2": "105B1C", | 
					
						
							|  |  |  |         "3": "186827", | 
					
						
							|  |  |  |         "4": "187C3B", | 
					
						
							|  |  |  |         "5": "188831", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     13: { | 
					
						
							|  |  |  |         "1": "501E70", | 
					
						
							|  |  |  |         "2": "673B87", | 
					
						
							|  |  |  |         "3": "7848A7", | 
					
						
							|  |  |  |         "4": "9067C7", | 
					
						
							|  |  |  |         "5": "B57EDC", | 
					
						
							|  |  |  |         "6": "B51810", | 
					
						
							|  |  |  |         "7": "EF524A", | 
					
						
							|  |  |  |         "8": "D6C6C6", | 
					
						
							|  |  |  |         "9": "FFFFFF", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | kirby_target_palettes = { | 
					
						
							|  |  |  |     0x64646: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 1), | 
					
						
							|  |  |  |     0x64846: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 1), | 
					
						
							|  |  |  |     0x1E007E: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 1), | 
					
						
							|  |  |  |     0x1E009C: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 0.5), | 
					
						
							|  |  |  |     0x1E00F6: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 1), | 
					
						
							|  |  |  |     0x1E0114: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 0.5), | 
					
						
							|  |  |  |     0x1E0216: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 1), | 
					
						
							|  |  |  |     0x1E0234: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 0.5), | 
					
						
							|  |  |  |     0x1E0486: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 1), | 
					
						
							|  |  |  |     0x1E04A4: (["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"], 0, 0.5), | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | gooey_target_palettes = { | 
					
						
							|  |  |  |     0x604C2: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1), | 
					
						
							|  |  |  |     0x64592: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1), | 
					
						
							|  |  |  |     0x64692: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1), | 
					
						
							|  |  |  |     0x64892: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1), | 
					
						
							|  |  |  |     0x1E02CA: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1), | 
					
						
							|  |  |  |     0x1E0342: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1), | 
					
						
							|  |  |  |     0x1E05A6: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1), | 
					
						
							|  |  |  |     0x1E05B8: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 0.5), | 
					
						
							|  |  |  |     0x1E0636: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1), | 
					
						
							|  |  |  |     0x1E065A: (["1", "2", "3", "4", "5", "6", "7", "8", "9"], 0, 1.5), | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-31 06:15:00 -05:00
										 |  |  | def get_kirby_palette(world: "KDL3World") -> Optional[Dict[str, str]]: | 
					
						
							| 
									
										
										
										
											2024-03-05 09:59:55 -06:00
										 |  |  |     palette = world.options.kirby_flavor_preset.value | 
					
						
							|  |  |  |     if palette == KirbyFlavorPreset.option_custom: | 
					
						
							|  |  |  |         return world.options.kirby_flavor.value | 
					
						
							|  |  |  |     return kirby_flavor_presets.get(palette, None) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-31 06:15:00 -05:00
										 |  |  | def get_gooey_palette(world: "KDL3World") -> Optional[Dict[str, str]]: | 
					
						
							| 
									
										
										
										
											2024-03-05 09:59:55 -06:00
										 |  |  |     palette = world.options.gooey_flavor_preset.value | 
					
						
							|  |  |  |     if palette == GooeyFlavorPreset.option_custom: | 
					
						
							|  |  |  |         return world.options.gooey_flavor.value | 
					
						
							|  |  |  |     return gooey_flavor_presets.get(palette, None) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-31 06:15:00 -05:00
										 |  |  | def rgb888_to_bgr555(red: int, green: int, blue: int) -> bytes: | 
					
						
							| 
									
										
										
										
											2024-03-05 09:59:55 -06:00
										 |  |  |     red = red >> 3 | 
					
						
							|  |  |  |     green = green >> 3 | 
					
						
							|  |  |  |     blue = blue >> 3 | 
					
						
							|  |  |  |     outcol = (blue << 10) + (green << 5) + red | 
					
						
							|  |  |  |     return struct.pack("H", outcol) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-31 06:15:00 -05:00
										 |  |  | def get_palette_bytes(palette: Dict[str, str], target: List[str], offset: int, factor: float) -> bytes: | 
					
						
							| 
									
										
										
										
											2024-03-05 09:59:55 -06:00
										 |  |  |     output_data = bytearray() | 
					
						
							|  |  |  |     for color in target: | 
					
						
							|  |  |  |         hexcol = palette[color] | 
					
						
							|  |  |  |         if hexcol.startswith("#"): | 
					
						
							|  |  |  |             hexcol = hexcol.replace("#", "") | 
					
						
							|  |  |  |         colint = int(hexcol, 16) | 
					
						
							| 
									
										
										
										
											2024-08-31 06:15:00 -05:00
										 |  |  |         col: Tuple[int, ...] = ((colint & 0xFF0000) >> 16, (colint & 0xFF00) >> 8, colint & 0xFF) | 
					
						
							| 
									
										
										
										
											2024-03-05 09:59:55 -06:00
										 |  |  |         col = tuple(int(int(factor*x) + offset) for x in col) | 
					
						
							|  |  |  |         byte_data = rgb888_to_bgr555(col[0], col[1], col[2]) | 
					
						
							|  |  |  |         output_data.extend(bytearray(byte_data)) | 
					
						
							| 
									
										
										
										
											2024-08-31 06:15:00 -05:00
										 |  |  |     return bytes(output_data) |