diff --git a/scenes/game_elements/characters/components/character_randomizer.gd b/scenes/game_elements/characters/components/character_randomizer.gd index c91652065..e9a34dfee 100644 --- a/scenes/game_elements/characters/components/character_randomizer.gd +++ b/scenes/game_elements/characters/components/character_randomizer.gd @@ -20,23 +20,32 @@ extends CharacterBody2D ## Also can look at sides. Defaults to look at left, and scales everything by -1 to look ## at right. +const CEL_SHADING_RECOLOR_MATERIAL = preload("uid://b7kf0suo0sc7k") + ## The random seed of this character. Setting another character to the same seed ## will make them identical. Setting it to zero will reset the skin color. @export var character_seed: int +## The recoloring behavior to use in all sprites. +@export var cel_shading_recolor: CelShadingRecolor + ## Where is the character facing. Relative to the character. @export var look_at_side: Enums.LookAtSide = Enums.LookAtSide.LEFT: set = _set_look_at_side +## The shader material that will be set to all the sprites, the parts that conform the character. +## If none, a duplicate of the corresponding material will be set. +@export var shader_material: ShaderMaterial + +## Click this button to update the randomization according to the [member character_seed]. +@export_tool_button("Update") var update_button: Callable = apply_character_randomizations + ## Click this button to create a random character. @export_tool_button("Randomize") var randomize_character_button: Callable = randomize_character ## The inner AnimatedSprite2D nodes. var animated_sprites: Array[AnimatedSprite2D] = [] -## The inner nodes that recolor the character skin. -var skin_recolor_nodes: Array[CelShadingRecolor] = [] - ## The inner nodes that randomize sprites textures. var random_texture_nodes: Array[RandomTextureSpriteBehavior] = [] @@ -54,13 +63,8 @@ var _previous_look_at_side: Enums.LookAtSide = Enums.LookAtSide.UNSPECIFIED func apply_character_randomizations() -> void: _random_number_generator.seed = character_seed - if skin_recolor_nodes: - var new_skin_medium_color: Color - skin_recolor_nodes[-1].set_random_skin_color(_random_number_generator) - new_skin_medium_color = skin_recolor_nodes[-1].medium_color - for n in skin_recolor_nodes: - n.automatic_shades = true - n.medium_color = new_skin_medium_color + if cel_shading_recolor: + cel_shading_recolor.randomize(_random_number_generator) for n in random_texture_nodes: n.randomize_texture(_random_number_generator) @@ -86,6 +90,14 @@ func randomize_character() -> void: func _ready() -> void: _setup_nodes() + if not shader_material: + shader_material = (CEL_SHADING_RECOLOR_MATERIAL as ShaderMaterial).duplicate() + + for node in animated_sprites: + node.material = shader_material + + cel_shading_recolor.shader_material = shader_material + if character_seed: apply_character_randomizations() @@ -109,15 +121,12 @@ func _traverse(node: Node) -> void: animated_sprites.append(node) for child in node.get_children(): _traverse(child) - elif node is CelShadingRecolor: - skin_recolor_nodes.append(node) elif node is RandomTextureSpriteBehavior: random_texture_nodes.append(node) func _setup_nodes() -> void: animated_sprites = [] - skin_recolor_nodes = [] random_texture_nodes = [] for child in get_children(): _traverse(child) diff --git a/scenes/game_elements/characters/components/character_randomizer_test.tscn b/scenes/game_elements/characters/components/character_randomizer_test.tscn index 300b78f32..119cbf7f6 100644 --- a/scenes/game_elements/characters/components/character_randomizer_test.tscn +++ b/scenes/game_elements/characters/components/character_randomizer_test.tscn @@ -3,106 +3,87 @@ [ext_resource type="TileSet" uid="uid://b8qnr0owsbhhn" path="res://tiles/exterior_floors.tres" id="1_ea78s"] [ext_resource type="PackedScene" uid="uid://dgrrudegturnw" path="res://scenes/game_elements/characters/npcs/townie.tscn" id="2_2g5xe"] [ext_resource type="Script" uid="uid://du8wfijr35r35" path="res://scenes/game_elements/props/interact_area/interact_area.gd" id="3_p47ir"] +[ext_resource type="Shader" uid="uid://bs1yj5q1vidgx" path="res://scenes/game_elements/components/cel_shading_recolor.gdshader" id="3_qr3fq"] [ext_resource type="Script" uid="uid://edcifob4jc4s" path="res://scenes/game_logic/talk_behavior.gd" id="4_qr3fq"] [ext_resource type="PackedScene" uid="uid://iu2q66clupc6" path="res://scenes/game_elements/characters/player/player.tscn" id="5_jsubs"] -[ext_resource type="Texture2D" uid="uid://y3xp5d8timm0" path="res://scenes/game_elements/characters/npcs/components/townie-idle-legs_002.dy_-6.png" id="6_bonk8"] [ext_resource type="SpriteFrames" uid="uid://07di3updrwh0" path="res://scenes/game_elements/characters/components/sprite_frames/storyweaver_purple.tres" id="6_hfrhi"] -[ext_resource type="Texture2D" uid="uid://0t1eptqlcb8t" path="res://scenes/game_elements/characters/npcs/components/townie-idle-body_001.png" id="7_22pcm"] -[ext_resource type="Texture2D" uid="uid://w2tqld60v18p" path="res://scenes/game_elements/characters/npcs/components/townie-idle-legs_001.png" id="7_ny4dp"] -[ext_resource type="Texture2D" uid="uid://cuwh4nnfg4t3t" path="res://scenes/game_elements/characters/npcs/components/townie-walk-legs_001.png" id="8_e0ffc"] +[ext_resource type="Texture2D" uid="uid://w2tqld60v18p" path="res://scenes/game_elements/characters/npcs/components/townie-idle-legs_001.png" id="7_7qyur"] +[ext_resource type="Texture2D" uid="uid://cuwh4nnfg4t3t" path="res://scenes/game_elements/characters/npcs/components/townie-walk-legs_001.png" id="8_fe8ke"] [ext_resource type="Resource" uid="uid://n5gf3o4mmxlu" path="res://scenes/game_elements/characters/components/character_randomizer_test.dialogue" id="8_qr3fq"] -[ext_resource type="Texture2D" uid="uid://csxn66qqmfcqu" path="res://scenes/game_elements/characters/npcs/components/townie-idle-head_004.png" id="8_tokus"] -[ext_resource type="Texture2D" uid="uid://bxmhj36273qdl" path="res://scenes/game_elements/characters/npcs/components/townie-walk-legs_002.dy_-6.png" id="9_04pia"] -[ext_resource type="Texture2D" uid="uid://bucvumn3fkygf" path="res://scenes/game_elements/characters/npcs/components/townie-idle-hair_001.png" id="9_htwo5"] -[ext_resource type="Texture2D" uid="uid://dlvcbntsncg18" path="res://scenes/game_elements/characters/npcs/components/townie-idle-body_002.png" id="11_1uba5"] -[ext_resource type="Texture2D" uid="uid://iq21xkckyvi1" path="res://scenes/game_elements/characters/npcs/components/townie-idle-body_003.dx_-4.dy_-16.png" id="12_n5uef"] -[ext_resource type="Texture2D" uid="uid://b5o2dw3xj2uus" path="res://scenes/game_elements/characters/npcs/components/townie-idle-head_002.png" id="14_7wp2w"] -[ext_resource type="Texture2D" uid="uid://bfothmxms5oo7" path="res://scenes/game_elements/characters/npcs/components/townie-idle-head_003.png" id="15_7qyur"] -[ext_resource type="Texture2D" uid="uid://iqvjulny3uri" path="res://scenes/game_elements/characters/npcs/components/townie-idle-hair_003.png" id="17_fe8ke"] -[ext_resource type="Texture2D" uid="uid://bjmcvluico8dg" path="res://scenes/game_elements/characters/npcs/components/townie-idle-hair_005.png" id="18_ahibj"] +[ext_resource type="Texture2D" uid="uid://y3xp5d8timm0" path="res://scenes/game_elements/characters/npcs/components/townie-idle-legs_002.dy_-6.png" id="9_ahibj"] +[ext_resource type="Texture2D" uid="uid://bxmhj36273qdl" path="res://scenes/game_elements/characters/npcs/components/townie-walk-legs_002.dy_-6.png" id="10_05rux"] +[ext_resource type="Texture2D" uid="uid://daymgmvarx2ew" path="res://scenes/game_elements/characters/npcs/components/townie-idle-legs_003.dy_-12.png" id="11_ue7og"] +[ext_resource type="Texture2D" uid="uid://47367qxj6u04" path="res://scenes/game_elements/characters/npcs/components/townie-walk-legs_003.dy_-12.png" id="12_aqb5i"] +[ext_resource type="Texture2D" uid="uid://0t1eptqlcb8t" path="res://scenes/game_elements/characters/npcs/components/townie-idle-body_001.png" id="13_fj012"] +[ext_resource type="Texture2D" uid="uid://dlvcbntsncg18" path="res://scenes/game_elements/characters/npcs/components/townie-idle-body_002.png" id="14_3lql5"] +[ext_resource type="Texture2D" uid="uid://iq21xkckyvi1" path="res://scenes/game_elements/characters/npcs/components/townie-idle-body_003.dx_-4.dy_-16.png" id="15_ft3li"] +[ext_resource type="Texture2D" uid="uid://csxn66qqmfcqu" path="res://scenes/game_elements/characters/npcs/components/townie-idle-head_004.png" id="16_txqd1"] +[ext_resource type="Texture2D" uid="uid://dktchu38pxnxl" path="res://scenes/game_elements/characters/npcs/components/townie-idle-head_001.png" id="17_7xna1"] +[ext_resource type="Texture2D" uid="uid://b5o2dw3xj2uus" path="res://scenes/game_elements/characters/npcs/components/townie-idle-head_002.png" id="18_y1u7u"] +[ext_resource type="Texture2D" uid="uid://bfothmxms5oo7" path="res://scenes/game_elements/characters/npcs/components/townie-idle-head_003.png" id="19_6bjll"] [ext_resource type="Script" uid="uid://cwoclmik3db2" path="res://scenes/game_logic/walk_behaviors/follow_walk_behavior.gd" id="19_e0ffc"] +[ext_resource type="Texture2D" uid="uid://bucvumn3fkygf" path="res://scenes/game_elements/characters/npcs/components/townie-idle-hair_001.png" id="20_ykhe4"] +[ext_resource type="Texture2D" uid="uid://b4y4gg7xukeeg" path="res://scenes/game_elements/characters/npcs/components/townie-idle-hair_002.png" id="21_oyy7n"] +[ext_resource type="Texture2D" uid="uid://iqvjulny3uri" path="res://scenes/game_elements/characters/npcs/components/townie-idle-hair_003.png" id="22_mdvm3"] +[ext_resource type="Texture2D" uid="uid://bjmcvluico8dg" path="res://scenes/game_elements/characters/npcs/components/townie-idle-hair_005.png" id="23_cecqh"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bonk8"] +shader = ExtResource("3_qr3fq") +shader_parameter/color_count = 12 +shader_parameter/key_colors = PackedInt32Array(255, 255, 160, 255, 255, 0, 160, 160, 0, 46, 46, 0, 198, 129, 59, 175, 93, 35, 123, 61, 18, 46, 0, 0, 160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.8464, 0.6768, 0.724, 0.808, 0.596, 0.655, 0.64640003, 0.47680002, 0.524, 0.08627451, 0.10980392, 0.18039216, 0.8176, 0.45999998, 0.4192, 0.772, 0.325, 0.274, 0.6176, 0.26, 0.2192, 0.08627451, 0.10980392, 0.18039216, 0.21920002, 0.388, 0.7584, 0.024, 0.235, 0.698, 0.0192, 0.18800001, 0.55840003, 0.08627451, 0.10980392, 0.18039216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) [sub_resource type="RectangleShape2D" id="RectangleShape2D_22pcm"] size = Vector2(52, 50) -[sub_resource type="AtlasTexture" id="AtlasTexture_jsa2b"] -atlas = ExtResource("6_bonk8") -region = Rect2(0, 0, 96, 96) - -[sub_resource type="AtlasTexture" id="AtlasTexture_kpq1x"] -atlas = ExtResource("6_bonk8") -region = Rect2(96, 0, 96, 96) - -[sub_resource type="AtlasTexture" id="AtlasTexture_y666u"] -atlas = ExtResource("6_bonk8") -region = Rect2(192, 0, 96, 96) - -[sub_resource type="AtlasTexture" id="AtlasTexture_l7t43"] -atlas = ExtResource("6_bonk8") -region = Rect2(96, 0, 96, 96) - -[sub_resource type="SpriteFrames" id="SpriteFrames_04pia"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_l0yqg"] resource_local_to_scene = true -animations = [{ -"frames": [{ -"duration": 10.0, -"texture": SubResource("AtlasTexture_jsa2b") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_kpq1x") -}, { -"duration": 8.0, -"texture": SubResource("AtlasTexture_y666u") -}, { -"duration": 1.0, -"texture": SubResource("AtlasTexture_l7t43") -}], -"loop": true, -"name": &"idle", -"speed": 10.0 -}] +shader = ExtResource("3_qr3fq") +shader_parameter/color_count = 12 +shader_parameter/key_colors = PackedInt32Array(255, 255, 160, 255, 255, 0, 160, 160, 0, 46, 46, 0, 198, 129, 59, 175, 93, 35, 123, 61, 18, 46, 0, 0, 160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.5354733, 0.79311466, 1, 0.32494864, 0.7132246, 0.99999994, 0, 0.5954574, 0.9151287, 0.08627451, 0.10980392, 0.18039216, 0.2528, 0.2512, 0.2896, 0.066, 0.064, 0.112, 0.0528, 0.051200002, 0.089600004, 0.21176471, 0.2627451, 0.3372549, 0.844, 0.7408, 0.5688, 0.805, 0.676, 0.461, 0.644, 0.54080003, 0.3688, 0.08627451, 0.10980392, 0.18039216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) [sub_resource type="AtlasTexture" id="AtlasTexture_covlx"] -atlas = ExtResource("7_ny4dp") +atlas = ExtResource("7_7qyur") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_r7g0f"] -atlas = ExtResource("7_ny4dp") +atlas = ExtResource("7_7qyur") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_wocpn"] -atlas = ExtResource("7_ny4dp") +atlas = ExtResource("7_7qyur") region = Rect2(192, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_xcd2m"] -atlas = ExtResource("7_ny4dp") +atlas = ExtResource("7_7qyur") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_282bi"] -atlas = ExtResource("8_e0ffc") +atlas = ExtResource("8_fe8ke") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_4v8h1"] -atlas = ExtResource("8_e0ffc") +atlas = ExtResource("8_fe8ke") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_rfti1"] -atlas = ExtResource("8_e0ffc") +atlas = ExtResource("8_fe8ke") region = Rect2(192, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_esail"] -atlas = ExtResource("8_e0ffc") +atlas = ExtResource("8_fe8ke") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_6pxfc"] -atlas = ExtResource("8_e0ffc") +atlas = ExtResource("8_fe8ke") region = Rect2(192, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_tpolt"] -atlas = ExtResource("8_e0ffc") +atlas = ExtResource("8_fe8ke") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_1uba5"] +[sub_resource type="SpriteFrames" id="SpriteFrames_dxgbc"] resource_local_to_scene = true animations = [{ "frames": [{ @@ -147,30 +128,30 @@ animations = [{ }] [sub_resource type="AtlasTexture" id="AtlasTexture_s8pun"] -atlas = ExtResource("6_bonk8") +atlas = ExtResource("9_ahibj") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_eloka"] -atlas = ExtResource("6_bonk8") +atlas = ExtResource("9_ahibj") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_64pgd"] -atlas = ExtResource("6_bonk8") +atlas = ExtResource("9_ahibj") region = Rect2(192, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_8xc61"] -atlas = ExtResource("9_04pia") +atlas = ExtResource("10_05rux") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_2la7u"] -atlas = ExtResource("9_04pia") +atlas = ExtResource("10_05rux") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_bwuq8"] -atlas = ExtResource("9_04pia") +atlas = ExtResource("10_05rux") region = Rect2(192, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_n5uef"] +[sub_resource type="SpriteFrames" id="SpriteFrames_26jv7"] resource_local_to_scene = true animations = [{ "frames": [{ @@ -214,37 +195,105 @@ animations = [{ "speed": 10.0 }] -[sub_resource type="AtlasTexture" id="AtlasTexture_ny4dp"] -atlas = ExtResource("7_22pcm") +[sub_resource type="AtlasTexture" id="AtlasTexture_tynsv"] +atlas = ExtResource("11_ue7og") region = Rect2(0, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_e0ffc"] -atlas = ExtResource("7_22pcm") +[sub_resource type="AtlasTexture" id="AtlasTexture_mt4vo"] +atlas = ExtResource("11_ue7og") region = Rect2(96, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_04pia"] -atlas = ExtResource("7_22pcm") +[sub_resource type="AtlasTexture" id="AtlasTexture_6rb10"] +atlas = ExtResource("11_ue7og") region = Rect2(192, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_1uba5"] -atlas = ExtResource("7_22pcm") +[sub_resource type="AtlasTexture" id="AtlasTexture_5ek1g"] +atlas = ExtResource("12_aqb5i") +region = Rect2(0, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_d3tqp"] +atlas = ExtResource("12_aqb5i") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_7wp2w"] +[sub_resource type="AtlasTexture" id="AtlasTexture_w6nvb"] +atlas = ExtResource("12_aqb5i") +region = Rect2(192, 0, 96, 96) + +[sub_resource type="SpriteFrames" id="SpriteFrames_6mjbn"] resource_local_to_scene = true animations = [{ "frames": [{ "duration": 10.0, -"texture": SubResource("AtlasTexture_ny4dp") +"texture": SubResource("AtlasTexture_tynsv") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_e0ffc") +"texture": SubResource("AtlasTexture_mt4vo") }, { "duration": 8.0, -"texture": SubResource("AtlasTexture_04pia") +"texture": SubResource("AtlasTexture_6rb10") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_1uba5") +"texture": SubResource("AtlasTexture_mt4vo") +}], +"loop": true, +"name": &"idle", +"speed": 10.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_5ek1g") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_d3tqp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_w6nvb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5ek1g") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_w6nvb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_d3tqp") +}], +"loop": true, +"name": &"walk", +"speed": 10.0 +}] + +[sub_resource type="AtlasTexture" id="AtlasTexture_beu7u"] +atlas = ExtResource("13_fj012") +region = Rect2(0, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_m2wva"] +atlas = ExtResource("13_fj012") +region = Rect2(96, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u5ew7"] +atlas = ExtResource("13_fj012") +region = Rect2(192, 0, 96, 96) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1in01"] +atlas = ExtResource("13_fj012") +region = Rect2(96, 0, 96, 96) + +[sub_resource type="SpriteFrames" id="SpriteFrames_p74n1"] +resource_local_to_scene = true +animations = [{ +"frames": [{ +"duration": 10.0, +"texture": SubResource("AtlasTexture_beu7u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_m2wva") +}, { +"duration": 8.0, +"texture": SubResource("AtlasTexture_u5ew7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1in01") }], "loop": true, "name": &"idle", @@ -252,18 +301,18 @@ animations = [{ }] [sub_resource type="AtlasTexture" id="AtlasTexture_kbgar"] -atlas = ExtResource("11_1uba5") +atlas = ExtResource("14_3lql5") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_w7k6m"] -atlas = ExtResource("11_1uba5") +atlas = ExtResource("14_3lql5") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_6o5o0"] -atlas = ExtResource("11_1uba5") +atlas = ExtResource("14_3lql5") region = Rect2(192, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_7qyur"] +[sub_resource type="SpriteFrames" id="SpriteFrames_0xap0"] resource_local_to_scene = true animations = [{ "frames": [{ @@ -285,18 +334,18 @@ animations = [{ }] [sub_resource type="AtlasTexture" id="AtlasTexture_j5tt8"] -atlas = ExtResource("12_n5uef") +atlas = ExtResource("15_ft3li") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_x6g6d"] -atlas = ExtResource("12_n5uef") +atlas = ExtResource("15_ft3li") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_f0hoi"] -atlas = ExtResource("12_n5uef") +atlas = ExtResource("15_ft3li") region = Rect2(192, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_fe8ke"] +[sub_resource type="SpriteFrames" id="SpriteFrames_4ol28"] resource_local_to_scene = true animations = [{ "frames": [{ @@ -317,148 +366,148 @@ animations = [{ "speed": 10.0 }] -[sub_resource type="AtlasTexture" id="AtlasTexture_7wp2w"] -atlas = ExtResource("8_tokus") +[sub_resource type="AtlasTexture" id="AtlasTexture_6mf2i"] +atlas = ExtResource("16_txqd1") region = Rect2(0, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_7qyur"] -atlas = ExtResource("8_tokus") +[sub_resource type="AtlasTexture" id="AtlasTexture_it16u"] +atlas = ExtResource("16_txqd1") region = Rect2(96, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_fe8ke"] -atlas = ExtResource("8_tokus") +[sub_resource type="AtlasTexture" id="AtlasTexture_wjc0t"] +atlas = ExtResource("16_txqd1") region = Rect2(192, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_ahibj"] -atlas = ExtResource("8_tokus") +[sub_resource type="AtlasTexture" id="AtlasTexture_wvpu8"] +atlas = ExtResource("16_txqd1") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_ahibj"] +[sub_resource type="SpriteFrames" id="SpriteFrames_ip1y6"] resource_local_to_scene = true animations = [{ "frames": [{ "duration": 10.0, -"texture": SubResource("AtlasTexture_7wp2w") +"texture": SubResource("AtlasTexture_6mf2i") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_7qyur") +"texture": SubResource("AtlasTexture_it16u") }, { "duration": 8.0, -"texture": SubResource("AtlasTexture_fe8ke") +"texture": SubResource("AtlasTexture_wjc0t") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ahibj") +"texture": SubResource("AtlasTexture_wvpu8") }], "loop": true, "name": &"idle", "speed": 10.0 }] -[sub_resource type="AtlasTexture" id="AtlasTexture_872h8"] -atlas = ExtResource("14_7wp2w") +[sub_resource type="AtlasTexture" id="AtlasTexture_8swe7"] +atlas = ExtResource("17_7xna1") region = Rect2(0, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_apej3"] -atlas = ExtResource("14_7wp2w") +[sub_resource type="AtlasTexture" id="AtlasTexture_l3irc"] +atlas = ExtResource("17_7xna1") region = Rect2(96, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_lkn5k"] -atlas = ExtResource("14_7wp2w") +[sub_resource type="AtlasTexture" id="AtlasTexture_eereg"] +atlas = ExtResource("17_7xna1") region = Rect2(192, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_r4mdc"] -atlas = ExtResource("14_7wp2w") +[sub_resource type="AtlasTexture" id="AtlasTexture_qc4c2"] +atlas = ExtResource("17_7xna1") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_05rux"] +[sub_resource type="SpriteFrames" id="SpriteFrames_of7d1"] resource_local_to_scene = true animations = [{ "frames": [{ "duration": 10.0, -"texture": SubResource("AtlasTexture_872h8") +"texture": SubResource("AtlasTexture_8swe7") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_apej3") +"texture": SubResource("AtlasTexture_l3irc") }, { "duration": 8.0, -"texture": SubResource("AtlasTexture_lkn5k") +"texture": SubResource("AtlasTexture_eereg") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_r4mdc") +"texture": SubResource("AtlasTexture_qc4c2") }], "loop": true, "name": &"idle", "speed": 10.0 }] -[sub_resource type="AtlasTexture" id="AtlasTexture_gg1dw"] -atlas = ExtResource("15_7qyur") +[sub_resource type="AtlasTexture" id="AtlasTexture_872h8"] +atlas = ExtResource("18_y1u7u") region = Rect2(0, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_tu1my"] -atlas = ExtResource("15_7qyur") +[sub_resource type="AtlasTexture" id="AtlasTexture_apej3"] +atlas = ExtResource("18_y1u7u") region = Rect2(96, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_8ql8n"] -atlas = ExtResource("15_7qyur") +[sub_resource type="AtlasTexture" id="AtlasTexture_lkn5k"] +atlas = ExtResource("18_y1u7u") region = Rect2(192, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_ig0ma"] -atlas = ExtResource("15_7qyur") +[sub_resource type="AtlasTexture" id="AtlasTexture_r4mdc"] +atlas = ExtResource("18_y1u7u") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_ue7og"] +[sub_resource type="SpriteFrames" id="SpriteFrames_vjnia"] resource_local_to_scene = true animations = [{ "frames": [{ "duration": 10.0, -"texture": SubResource("AtlasTexture_gg1dw") +"texture": SubResource("AtlasTexture_872h8") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_tu1my") +"texture": SubResource("AtlasTexture_apej3") }, { "duration": 8.0, -"texture": SubResource("AtlasTexture_8ql8n") +"texture": SubResource("AtlasTexture_lkn5k") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_ig0ma") +"texture": SubResource("AtlasTexture_r4mdc") }], "loop": true, "name": &"idle", "speed": 10.0 }] -[sub_resource type="AtlasTexture" id="AtlasTexture_6mf2i"] -atlas = ExtResource("8_tokus") +[sub_resource type="AtlasTexture" id="AtlasTexture_gg1dw"] +atlas = ExtResource("19_6bjll") region = Rect2(0, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_it16u"] -atlas = ExtResource("8_tokus") +[sub_resource type="AtlasTexture" id="AtlasTexture_tu1my"] +atlas = ExtResource("19_6bjll") region = Rect2(96, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_wjc0t"] -atlas = ExtResource("8_tokus") +[sub_resource type="AtlasTexture" id="AtlasTexture_8ql8n"] +atlas = ExtResource("19_6bjll") region = Rect2(192, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_wvpu8"] -atlas = ExtResource("8_tokus") +[sub_resource type="AtlasTexture" id="AtlasTexture_ig0ma"] +atlas = ExtResource("19_6bjll") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_aqb5i"] +[sub_resource type="SpriteFrames" id="SpriteFrames_qi32a"] resource_local_to_scene = true animations = [{ "frames": [{ "duration": 10.0, -"texture": SubResource("AtlasTexture_6mf2i") +"texture": SubResource("AtlasTexture_gg1dw") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_it16u") +"texture": SubResource("AtlasTexture_tu1my") }, { "duration": 8.0, -"texture": SubResource("AtlasTexture_wjc0t") +"texture": SubResource("AtlasTexture_8ql8n") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_wvpu8") +"texture": SubResource("AtlasTexture_ig0ma") }], "loop": true, "name": &"idle", @@ -466,22 +515,22 @@ animations = [{ }] [sub_resource type="AtlasTexture" id="AtlasTexture_53a43"] -atlas = ExtResource("15_7qyur") +atlas = ExtResource("19_6bjll") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_wv2ve"] -atlas = ExtResource("15_7qyur") +atlas = ExtResource("19_6bjll") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_cmdsg"] -atlas = ExtResource("15_7qyur") +atlas = ExtResource("19_6bjll") region = Rect2(192, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_sh2mb"] -atlas = ExtResource("15_7qyur") +atlas = ExtResource("19_6bjll") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_fj012"] +[sub_resource type="SpriteFrames" id="SpriteFrames_v4nwt"] resource_local_to_scene = true animations = [{ "frames": [{ @@ -502,74 +551,74 @@ animations = [{ "speed": 10.0 }] -[sub_resource type="AtlasTexture" id="AtlasTexture_ue7og"] -atlas = ExtResource("9_htwo5") +[sub_resource type="AtlasTexture" id="AtlasTexture_l5io8"] +atlas = ExtResource("20_ykhe4") region = Rect2(0, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_aqb5i"] -atlas = ExtResource("9_htwo5") +[sub_resource type="AtlasTexture" id="AtlasTexture_aau2b"] +atlas = ExtResource("20_ykhe4") region = Rect2(96, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_fj012"] -atlas = ExtResource("9_htwo5") +[sub_resource type="AtlasTexture" id="AtlasTexture_f136i"] +atlas = ExtResource("20_ykhe4") region = Rect2(192, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_3lql5"] -atlas = ExtResource("9_htwo5") +[sub_resource type="AtlasTexture" id="AtlasTexture_mqc7r"] +atlas = ExtResource("20_ykhe4") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_3lql5"] +[sub_resource type="SpriteFrames" id="SpriteFrames_6312x"] resource_local_to_scene = true animations = [{ "frames": [{ "duration": 10.0, -"texture": SubResource("AtlasTexture_ue7og") +"texture": SubResource("AtlasTexture_l5io8") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_aqb5i") +"texture": SubResource("AtlasTexture_aau2b") }, { "duration": 8.0, -"texture": SubResource("AtlasTexture_fj012") +"texture": SubResource("AtlasTexture_f136i") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_3lql5") +"texture": SubResource("AtlasTexture_mqc7r") }], "loop": true, "name": &"idle", "speed": 10.0 }] -[sub_resource type="AtlasTexture" id="AtlasTexture_l5io8"] -atlas = ExtResource("9_htwo5") +[sub_resource type="AtlasTexture" id="AtlasTexture_17egh"] +atlas = ExtResource("21_oyy7n") region = Rect2(0, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_aau2b"] -atlas = ExtResource("9_htwo5") +[sub_resource type="AtlasTexture" id="AtlasTexture_kuuqr"] +atlas = ExtResource("21_oyy7n") region = Rect2(96, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_f136i"] -atlas = ExtResource("9_htwo5") +[sub_resource type="AtlasTexture" id="AtlasTexture_g7sa3"] +atlas = ExtResource("21_oyy7n") region = Rect2(192, 0, 96, 96) -[sub_resource type="AtlasTexture" id="AtlasTexture_mqc7r"] -atlas = ExtResource("9_htwo5") +[sub_resource type="AtlasTexture" id="AtlasTexture_klm8j"] +atlas = ExtResource("21_oyy7n") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_ft3li"] +[sub_resource type="SpriteFrames" id="SpriteFrames_re3e7"] resource_local_to_scene = true animations = [{ "frames": [{ "duration": 10.0, -"texture": SubResource("AtlasTexture_l5io8") +"texture": SubResource("AtlasTexture_17egh") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_aau2b") +"texture": SubResource("AtlasTexture_kuuqr") }, { "duration": 8.0, -"texture": SubResource("AtlasTexture_f136i") +"texture": SubResource("AtlasTexture_g7sa3") }, { "duration": 1.0, -"texture": SubResource("AtlasTexture_mqc7r") +"texture": SubResource("AtlasTexture_klm8j") }], "loop": true, "name": &"idle", @@ -577,22 +626,22 @@ animations = [{ }] [sub_resource type="AtlasTexture" id="AtlasTexture_6vcs2"] -atlas = ExtResource("17_fe8ke") +atlas = ExtResource("22_mdvm3") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_wrrba"] -atlas = ExtResource("17_fe8ke") +atlas = ExtResource("22_mdvm3") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_1x45m"] -atlas = ExtResource("17_fe8ke") +atlas = ExtResource("22_mdvm3") region = Rect2(192, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_hbppq"] -atlas = ExtResource("17_fe8ke") +atlas = ExtResource("22_mdvm3") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_txqd1"] +[sub_resource type="SpriteFrames" id="SpriteFrames_8f63u"] resource_local_to_scene = true animations = [{ "frames": [{ @@ -614,22 +663,22 @@ animations = [{ }] [sub_resource type="AtlasTexture" id="AtlasTexture_gmxsa"] -atlas = ExtResource("17_fe8ke") +atlas = ExtResource("22_mdvm3") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_jom5l"] -atlas = ExtResource("17_fe8ke") +atlas = ExtResource("22_mdvm3") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_ea5su"] -atlas = ExtResource("17_fe8ke") +atlas = ExtResource("22_mdvm3") region = Rect2(192, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_cl2ru"] -atlas = ExtResource("17_fe8ke") +atlas = ExtResource("22_mdvm3") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_7xna1"] +[sub_resource type="SpriteFrames" id="SpriteFrames_c2ltw"] resource_local_to_scene = true animations = [{ "frames": [{ @@ -651,22 +700,22 @@ animations = [{ }] [sub_resource type="AtlasTexture" id="AtlasTexture_d7rc0"] -atlas = ExtResource("18_ahibj") +atlas = ExtResource("23_cecqh") region = Rect2(0, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_73nf8"] -atlas = ExtResource("18_ahibj") +atlas = ExtResource("23_cecqh") region = Rect2(96, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_nwhgr"] -atlas = ExtResource("18_ahibj") +atlas = ExtResource("23_cecqh") region = Rect2(192, 0, 96, 96) [sub_resource type="AtlasTexture" id="AtlasTexture_3x38k"] -atlas = ExtResource("18_ahibj") +atlas = ExtResource("23_cecqh") region = Rect2(96, 0, 96, 96) -[sub_resource type="SpriteFrames" id="SpriteFrames_y1u7u"] +[sub_resource type="SpriteFrames" id="SpriteFrames_krffm"] resource_local_to_scene = true animations = [{ "frames": [{ @@ -687,6 +736,21 @@ animations = [{ "speed": 10.0 }] +[sub_resource type="ColorPalette" id="ColorPalette_qfp1q"] +colors = PackedColorArray(0.5354733, 0.79311466, 1, 1, 0.32494864, 0.7132246, 0.99999994, 1, 0, 0.5954574, 0.9151287, 1, 0.08627451, 0.10980392, 0.18039216, 1, 0.2528, 0.2512, 0.2896, 1, 0.066, 0.064, 0.112, 1, 0.0528, 0.051200002, 0.089600004, 1, 0.21176471, 0.2627451, 0.3372549, 1, 0.844, 0.7408, 0.5688, 1, 0.805, 0.676, 0.461, 1, 0.644, 0.54080003, 0.3688, 1, 0.08627451, 0.10980392, 0.18039216, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_tokus"] +shader = ExtResource("3_qr3fq") +shader_parameter/color_count = 12 +shader_parameter/key_colors = PackedInt32Array(255, 255, 160, 255, 255, 0, 160, 160, 0, 46, 46, 0, 198, 129, 59, 175, 93, 35, 123, 61, 18, 46, 0, 0, 160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.6768, 0.5856, 0.45999998, 0.596, 0.482, 0.325, 0.47680002, 0.3856, 0.26, 0.08627451, 0.10980392, 0.18039216, 0.9184, 0.9384, 0.94879997, 0.898, 0.923, 0.936, 0.7184, 0.7384, 0.7488, 0.08627451, 0.10980392, 0.18039216, 0.844, 0.7408, 0.5688, 0.805, 0.676, 0.461, 0.644, 0.54080003, 0.3688, 0.08627451, 0.10980392, 0.18039216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_htwo5"] +shader = ExtResource("3_qr3fq") +shader_parameter/color_count = 12 +shader_parameter/key_colors = PackedInt32Array(255, 255, 160, 255, 255, 0, 160, 160, 0, 46, 46, 0, 198, 129, 59, 175, 93, 35, 123, 61, 18, 46, 0, 0, 160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.8776, 0.72080004, 0.6112, 0.847, 0.651, 0.514, 0.6776, 0.52080005, 0.41120002, 0.08627451, 0.10980392, 0.18039216, 0.7032, 0.5248, 0.33200002, 0.629, 0.406, 0.165, 0.5032, 0.32479998, 0.13200001, 0.08627451, 0.10980392, 0.18039216, 0.844, 0.7408, 0.5688, 0.805, 0.676, 0.461, 0.644, 0.54080003, 0.3688, 0.08627451, 0.10980392, 0.18039216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + [node name="CharacterRandomizerTest" type="Node2D" unique_id=136000252] [node name="TileMapLayers" type="Node2D" parent="." unique_id=1483527644] @@ -705,6 +769,7 @@ y_sort_enabled = true [node name="Townie" parent="OnTheGround" unique_id=632242166 instance=ExtResource("2_2g5xe")] position = Vector2(225, 152) character_seed = 138976455 +shader_material = SubResource("ShaderMaterial_bonk8") [node name="InteractArea" type="Area2D" parent="OnTheGround/Townie" unique_id=713209077] collision_layer = 32 @@ -729,47 +794,40 @@ autostart = true [node name="Townie2" parent="OnTheGround" unique_id=645401180 instance=ExtResource("2_2g5xe")] position = Vector2(415, 233) +shader_material = SubResource("ShaderMaterial_l0yqg") [node name="AnimatedSprite2DLegs" parent="OnTheGround/Townie2" index="1" unique_id=385222684] -sprite_frames = SubResource("SpriteFrames_04pia") +material = SubResource("ShaderMaterial_l0yqg") +sprite_frames = SubResource("SpriteFrames_dxgbc") [node name="RandomTextureSpriteBehavior" parent="OnTheGround/Townie2/AnimatedSprite2DLegs" index="0" unique_id=471097323] -sprite_frames = Array[SpriteFrames]([SubResource("SpriteFrames_1uba5"), SubResource("SpriteFrames_n5uef"), SubResource("SpriteFrames_04pia")]) +sprite_frames = Array[SpriteFrames]([SubResource("SpriteFrames_dxgbc"), SubResource("SpriteFrames_26jv7"), SubResource("SpriteFrames_6mjbn")]) [node name="AnimatedSprite2DBody" parent="OnTheGround/Townie2/AnimatedSprite2DLegs" index="2" unique_id=2098127821] -instance_shader_parameters/shade_high_new = Color(0.21403402, 0.75751436, 0.9589514, 1) -instance_shader_parameters/shade_low_new = Color(0.014034003, 0.55751437, 0.7589514, 1) -instance_shader_parameters/shade_medium_new = Color(0.017542504, 0.6968929, 0.9486893, 1) +material = SubResource("ShaderMaterial_l0yqg") position = Vector2(0, 0) -sprite_frames = SubResource("SpriteFrames_7wp2w") - -[node name="CelShadingRecolor" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody" index="0" unique_id=1327679537] -medium_color = Color(0.017542504, 0.6968929, 0.9486893, 1) -high_color = Color(0.21403402, 0.75751436, 0.9589514, 1) -low_color = Color(0.014034003, 0.55751437, 0.7589514, 1) +sprite_frames = SubResource("SpriteFrames_p74n1") -[node name="RandomTextureSpriteBehavior" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody" index="1" unique_id=1733667753] -sprite_frames = Array[SpriteFrames]([SubResource("SpriteFrames_7wp2w"), SubResource("SpriteFrames_7qyur"), SubResource("SpriteFrames_fe8ke")]) +[node name="RandomTextureSpriteBehavior" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody" index="0" unique_id=1733667753] +sprite_frames = Array[SpriteFrames]([SubResource("SpriteFrames_p74n1"), SubResource("SpriteFrames_0xap0"), SubResource("SpriteFrames_4ol28")]) -[node name="AnimatedSprite2DHead" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody" index="3" unique_id=421503015] -instance_shader_parameters/shade_high_new = Color(0.21403402, 0.75751436, 0.9589514, 1) -instance_shader_parameters/shade_low_new = Color(0.014034003, 0.55751437, 0.7589514, 1) -instance_shader_parameters/shade_medium_new = Color(0.017542504, 0.6968929, 0.9486893, 1) -sprite_frames = SubResource("SpriteFrames_ahibj") +[node name="AnimatedSprite2DHead" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody" index="2" unique_id=421503015] +material = SubResource("ShaderMaterial_l0yqg") +sprite_frames = SubResource("SpriteFrames_ip1y6") -[node name="CelShadingRecolor" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" index="0" unique_id=2000765677] -medium_color = Color(0.017542504, 0.6968929, 0.9486893, 1) -high_color = Color(0.21403402, 0.75751436, 0.9589514, 1) -low_color = Color(0.014034003, 0.55751437, 0.7589514, 1) +[node name="RandomTextureSpriteBehavior" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" index="0" unique_id=592927150] +sprite_frames = Array[SpriteFrames]([SubResource("SpriteFrames_of7d1"), SubResource("SpriteFrames_vjnia"), SubResource("SpriteFrames_qi32a"), SubResource("SpriteFrames_ip1y6"), SubResource("SpriteFrames_v4nwt")]) -[node name="RandomTextureSpriteBehavior" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" index="1" unique_id=592927150] -sprite_frames = Array[SpriteFrames]([SubResource("SpriteFrames_ahibj"), SubResource("SpriteFrames_05rux"), SubResource("SpriteFrames_ue7og"), SubResource("SpriteFrames_aqb5i"), SubResource("SpriteFrames_fj012")]) - -[node name="AnimatedSprite2DHair" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" index="3" unique_id=2123781958] -sprite_frames = SubResource("SpriteFrames_3lql5") +[node name="AnimatedSprite2DHair" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" index="2" unique_id=2123781958] +material = SubResource("ShaderMaterial_l0yqg") +sprite_frames = SubResource("SpriteFrames_6312x") [node name="RandomTextureSpriteBehavior" parent="OnTheGround/Townie2/AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead/AnimatedSprite2DHair" index="0" unique_id=358939124] -sprite_frames = Array[SpriteFrames]([SubResource("SpriteFrames_ft3li"), SubResource("SpriteFrames_3lql5"), SubResource("SpriteFrames_txqd1"), SubResource("SpriteFrames_7xna1"), SubResource("SpriteFrames_y1u7u")]) +sprite_frames = Array[SpriteFrames]([SubResource("SpriteFrames_6312x"), SubResource("SpriteFrames_re3e7"), SubResource("SpriteFrames_8f63u"), SubResource("SpriteFrames_c2ltw"), SubResource("SpriteFrames_krffm")]) + +[node name="CelShadingRecolor" parent="OnTheGround/Townie2" index="2" unique_id=1327679537] +shader_material = SubResource("ShaderMaterial_l0yqg") +new_colors_palette = SubResource("ColorPalette_qfp1q") [node name="InteractArea" type="Area2D" parent="OnTheGround/Townie2" unique_id=1760778420] collision_layer = 32 @@ -790,7 +848,9 @@ interact_area = NodePath("../InteractArea") [node name="Townie3" parent="OnTheGround" unique_id=1154886998 instance=ExtResource("2_2g5xe")] position = Vector2(481, 101) +motion_mode = 1 character_seed = 2207560013 +shader_material = SubResource("ShaderMaterial_tokus") [node name="FollowWalkBehavior" type="Node2D" parent="OnTheGround/Townie3" unique_id=1949852425 node_paths=PackedStringArray("target", "character")] script = ExtResource("19_e0ffc") @@ -804,6 +864,7 @@ position = Vector2(523, 130) scale = Vector2(-1, 1) character_seed = 1246173203 look_at_side = 1 +shader_material = SubResource("ShaderMaterial_htwo5") [node name="InteractArea" type="Area2D" parent="OnTheGround/Townie4" unique_id=785629688] collision_layer = 32 diff --git a/scenes/game_elements/characters/npcs/components/skin_tones_test.tscn b/scenes/game_elements/characters/npcs/components/skin_tones_test.tscn index b418f89a9..9e5716c90 100644 --- a/scenes/game_elements/characters/npcs/components/skin_tones_test.tscn +++ b/scenes/game_elements/characters/npcs/components/skin_tones_test.tscn @@ -1,11 +1,17 @@ [gd_scene format=4 uid="uid://rgy4lqdylwyj"] +[ext_resource type="Shader" uid="uid://bs1yj5q1vidgx" path="res://scenes/game_elements/components/cel_shading_recolor.gdshader" id="2_mtxp3"] [ext_resource type="TileSet" uid="uid://b8qnr0owsbhhn" path="res://tiles/exterior_floors.tres" id="3_16rk4"] -[ext_resource type="Material" uid="uid://b7kf0suo0sc7k" path="res://scenes/game_elements/components/cel_shading_recolor_material.tres" id="5_sygj5"] [ext_resource type="Texture2D" uid="uid://8x2wkfw4cgnf" path="res://scenes/game_elements/characters/npcs/components/skin_tones_test.png" id="6_sygj5"] [ext_resource type="Script" uid="uid://c0a7xf5qx8p4y" path="res://scenes/game_elements/components/cel_shading_recolor.gd" id="7_jhyvc"] [ext_resource type="Script" uid="uid://cms2wqtbxjl1h" path="res://scenes/game_logic/sprite_behaviors/random_frame_sprite_behavior.gd" id="7_sygj5"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_vn1co"] +shader = ExtResource("2_mtxp3") +shader_parameter/color_count = 4 +shader_parameter/key_colors = PackedInt32Array(160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.78639996, 0.5736, 0.6048, 0.733, 0.467, 0.506, 0.5864, 0.3736, 0.4048, 0.08627451, 0.10980392, 0.18039216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + [sub_resource type="AtlasTexture" id="AtlasTexture_84243"] atlas = ExtResource("6_sygj5") region = Rect2(0, 0, 96, 96) @@ -60,6 +66,48 @@ animations = [{ "speed": 10.0 }] +[sub_resource type="ColorPalette" id="ColorPalette_vn1co"] +colors = PackedColorArray(0.627451, 1, 0.627451, 1, 0, 1, 0, 1, 0, 0.627451, 0, 1, 0, 0.18039216, 0, 1) + +[sub_resource type="ColorPalette" id="ColorPalette_t3p67"] +colors = PackedColorArray(0.78639996, 0.5736, 0.6048, 1, 0.733, 0.467, 0.506, 1, 0.5864, 0.3736, 0.4048, 1, 0.08627451, 0.10980392, 0.18039216, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_mtxp3"] +shader = ExtResource("2_mtxp3") +shader_parameter/color_count = 4 +shader_parameter/key_colors = PackedInt32Array(160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.9088, 0.87119997, 0.8528, 0.886, 0.839, 0.816, 0.7088, 0.6712, 0.6528, 0.08627451, 0.10980392, 0.18039216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + +[sub_resource type="ColorPalette" id="ColorPalette_ljqkd"] +colors = PackedColorArray(0.9088, 0.87119997, 0.8528, 1, 0.886, 0.839, 0.816, 1, 0.7088, 0.6712, 0.6528, 1, 0.08627451, 0.10980392, 0.18039216, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_8gfdk"] +shader = ExtResource("2_mtxp3") +shader_parameter/color_count = 4 +shader_parameter/key_colors = PackedInt32Array(160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.4256, 0.31599998, 0.4008, 0.282, 0.145, 0.251, 0.2256, 0.116, 0.20079999, 0.21176471, 0.2627451, 0.3372549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + +[sub_resource type="ColorPalette" id="ColorPalette_cp3vn"] +colors = PackedColorArray(0.4256, 0.31599998, 0.4008, 1, 0.282, 0.145, 0.251, 1, 0.2256, 0.116, 0.20079999, 1, 0.21176471, 0.2627451, 0.3372549, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_4m76u"] +shader = ExtResource("2_mtxp3") +shader_parameter/color_count = 4 +shader_parameter/key_colors = PackedInt32Array(160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.94640005, 0.8592, 0.72080004, 0.933, 0.824, 0.651, 0.74640006, 0.6592, 0.52080005, 0.08627451, 0.10980392, 0.18039216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + +[sub_resource type="ColorPalette" id="ColorPalette_a122a"] +colors = PackedColorArray(0.94640005, 0.8592, 0.72080004, 1, 0.933, 0.824, 0.651, 1, 0.74640006, 0.6592, 0.52080005, 1, 0.08627451, 0.10980392, 0.18039216, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_hrt2p"] +shader = ExtResource("2_mtxp3") +shader_parameter/color_count = 4 +shader_parameter/key_colors = PackedInt32Array(160, 255, 160, 0, 255, 0, 0, 160, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0.6768, 0.5856, 0.45999998, 0.596, 0.482, 0.325, 0.47680002, 0.3856, 0.26, 0.08627451, 0.10980392, 0.18039216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + +[sub_resource type="ColorPalette" id="ColorPalette_mtxp3"] +colors = PackedColorArray(0.6768, 0.5856, 0.45999998, 1, 0.596, 0.482, 0.325, 1, 0.47680002, 0.3856, 0.26, 1, 0.08627451, 0.10980392, 0.18039216, 1) + [node name="SkinTonesTest" type="Node2D" unique_id=286988060] [node name="TileMapLayers" type="Node2D" parent="." unique_id=1008882753] @@ -79,10 +127,7 @@ y_sort_enabled = true editor_description = "This node has a material with a shader applied. The shader allows to remap 3 key colors, which are shades of green, to any color." -material = ExtResource("5_sygj5") -instance_shader_parameters/shade_high_new = Color(0.91999996, 0.91999996, 0.2, 1) -instance_shader_parameters/shade_low_new = Color(0.71999997, 0.71999997, 0, 1) -instance_shader_parameters/shade_medium_new = Color(0.9, 0.9, 0, 1) +material = SubResource("ShaderMaterial_vn1co") position = Vector2(311, 205) sprite_frames = SubResource("SpriteFrames_5p6wf") animation = &"idle" @@ -91,13 +136,14 @@ autoplay = "idle" [node name="CelShadingRecolor" type="Node" parent="OnTheGround/AnimatedSprite2D" unique_id=198302488 node_paths=PackedStringArray("node_to_recolor")] editor_description = "This behavior node adds a bit of logic to the shader: -It can derive the high and low colors automatically. +It knows a list of skin, hair and body colors. It provides a button to pick them randomly. -And it knows a list of skin colors. It provides a button to pick a skin color randomly." +It converts the key colors and new colors palettes to shader parameters." script = ExtResource("7_jhyvc") +shader_material = SubResource("ShaderMaterial_vn1co") node_to_recolor = NodePath("..") -high_color = Color(0.91999996, 0.91999996, 0.2, 1) -low_color = Color(0.71999997, 0.71999997, 0, 1) +key_colors_palette = SubResource("ColorPalette_vn1co") +new_colors_palette = SubResource("ColorPalette_t3p67") metadata/_custom_type_script = "uid://c0a7xf5qx8p4y" [node name="RandomFrameSpriteBehavior" type="Node2D" parent="OnTheGround/AnimatedSprite2D" unique_id=1355048455 node_paths=PackedStringArray("sprite")] @@ -107,10 +153,7 @@ sprite = NodePath("..") metadata/_custom_type_script = "uid://cms2wqtbxjl1h" [node name="AnimatedSprite2D2" type="AnimatedSprite2D" parent="OnTheGround" unique_id=1813794485] -material = ExtResource("5_sygj5") -instance_shader_parameters/shade_high_new = Color(0.9056, 0.7616, 0.7928, 1) -instance_shader_parameters/shade_low_new = Color(0.7056, 0.5616, 0.5928, 1) -instance_shader_parameters/shade_medium_new = Color(0.882, 0.702, 0.741, 1) +material = SubResource("ShaderMaterial_mtxp3") position = Vector2(318, 137) sprite_frames = SubResource("SpriteFrames_5p6wf") animation = &"idle" @@ -118,10 +161,10 @@ autoplay = "idle" [node name="CelShadingRecolor" type="Node" parent="OnTheGround/AnimatedSprite2D2" unique_id=46950788 node_paths=PackedStringArray("node_to_recolor")] script = ExtResource("7_jhyvc") +shader_material = SubResource("ShaderMaterial_mtxp3") node_to_recolor = NodePath("..") -medium_color = Color(0.882, 0.702, 0.741, 1) -high_color = Color(0.9056, 0.7616, 0.7928, 1) -low_color = Color(0.7056, 0.5616, 0.5928, 1) +key_colors_palette = SubResource("ColorPalette_vn1co") +new_colors_palette = SubResource("ColorPalette_ljqkd") metadata/_custom_type_script = "uid://c0a7xf5qx8p4y" [node name="RandomFrameSpriteBehavior" type="Node2D" parent="OnTheGround/AnimatedSprite2D2" unique_id=1241605064 node_paths=PackedStringArray("sprite")] @@ -131,10 +174,7 @@ sprite = NodePath("..") metadata/_custom_type_script = "uid://cms2wqtbxjl1h" [node name="AnimatedSprite2D3" type="AnimatedSprite2D" parent="OnTheGround" unique_id=1927981161] -material = ExtResource("5_sygj5") -instance_shader_parameters/shade_high_new = Color(0.7488, 0.64239997, 0.49839997, 1) -instance_shader_parameters/shade_low_new = Color(0.5488, 0.44239998, 0.2984, 1) -instance_shader_parameters/shade_medium_new = Color(0.686, 0.553, 0.373, 1) +material = SubResource("ShaderMaterial_8gfdk") position = Vector2(371, 147) sprite_frames = SubResource("SpriteFrames_5p6wf") animation = &"idle" @@ -144,10 +184,10 @@ flip_h = true [node name="CelShadingRecolor" type="Node" parent="OnTheGround/AnimatedSprite2D3" unique_id=964092022 node_paths=PackedStringArray("node_to_recolor")] script = ExtResource("7_jhyvc") +shader_material = SubResource("ShaderMaterial_8gfdk") node_to_recolor = NodePath("..") -medium_color = Color(0.686, 0.553, 0.373, 1) -high_color = Color(0.7488, 0.64239997, 0.49839997, 1) -low_color = Color(0.5488, 0.44239998, 0.2984, 1) +key_colors_palette = SubResource("ColorPalette_vn1co") +new_colors_palette = SubResource("ColorPalette_cp3vn") metadata/_custom_type_script = "uid://c0a7xf5qx8p4y" [node name="RandomFrameSpriteBehavior" type="Node2D" parent="OnTheGround/AnimatedSprite2D3" unique_id=1742149834 node_paths=PackedStringArray("sprite")] @@ -157,10 +197,7 @@ sprite = NodePath("../../AnimatedSprite2D2") metadata/_custom_type_script = "uid://cms2wqtbxjl1h" [node name="AnimatedSprite2D4" type="AnimatedSprite2D" parent="OnTheGround" unique_id=1731923129] -material = ExtResource("5_sygj5") -instance_shader_parameters/shade_high_new = Color(0.8776, 0.72080004, 0.6112, 1) -instance_shader_parameters/shade_low_new = Color(0.6776, 0.52080005, 0.41120002, 1) -instance_shader_parameters/shade_medium_new = Color(0.847, 0.651, 0.514, 1) +material = SubResource("ShaderMaterial_4m76u") position = Vector2(390, 176) sprite_frames = SubResource("SpriteFrames_5p6wf") animation = &"idle" @@ -170,10 +207,10 @@ flip_h = true [node name="CelShadingRecolor" type="Node" parent="OnTheGround/AnimatedSprite2D4" unique_id=1030463016 node_paths=PackedStringArray("node_to_recolor")] script = ExtResource("7_jhyvc") +shader_material = SubResource("ShaderMaterial_4m76u") node_to_recolor = NodePath("..") -medium_color = Color(0.847, 0.651, 0.514, 1) -high_color = Color(0.8776, 0.72080004, 0.6112, 1) -low_color = Color(0.6776, 0.52080005, 0.41120002, 1) +key_colors_palette = SubResource("ColorPalette_vn1co") +new_colors_palette = SubResource("ColorPalette_a122a") metadata/_custom_type_script = "uid://c0a7xf5qx8p4y" [node name="RandomFrameSpriteBehavior" type="Node2D" parent="OnTheGround/AnimatedSprite2D4" unique_id=434595517 node_paths=PackedStringArray("sprite")] @@ -182,29 +219,26 @@ script = ExtResource("7_sygj5") sprite = NodePath("../../AnimatedSprite2D2") metadata/_custom_type_script = "uid://cms2wqtbxjl1h" -[node name="AnimatedSprite2D5" type="AnimatedSprite2D" parent="." unique_id=447592433] -material = ExtResource("5_sygj5") -instance_shader_parameters/shade_high_new = Color(0.5104, 0.3408, 0.4256, 1) -instance_shader_parameters/shade_low_new = Color(0.3104, 0.1408, 0.2256, 1) -instance_shader_parameters/shade_medium_new = Color(0.388, 0.176, 0.282, 1) +[node name="AnimatedSprite2D5" type="AnimatedSprite2D" parent="OnTheGround" unique_id=447592433] +material = SubResource("ShaderMaterial_hrt2p") position = Vector2(268, 149) sprite_frames = SubResource("SpriteFrames_5p6wf") animation = &"idle" autoplay = "idle" frame = 4 -[node name="CelShadingRecolor" type="Node" parent="AnimatedSprite2D5" unique_id=399976614 node_paths=PackedStringArray("node_to_recolor")] +[node name="CelShadingRecolor" type="Node" parent="OnTheGround/AnimatedSprite2D5" unique_id=399976614 node_paths=PackedStringArray("node_to_recolor")] script = ExtResource("7_jhyvc") +shader_material = SubResource("ShaderMaterial_hrt2p") node_to_recolor = NodePath("..") -medium_color = Color(0.388, 0.176, 0.282, 1) -high_color = Color(0.5104, 0.3408, 0.4256, 1) -low_color = Color(0.3104, 0.1408, 0.2256, 1) +key_colors_palette = SubResource("ColorPalette_vn1co") +new_colors_palette = SubResource("ColorPalette_mtxp3") metadata/_custom_type_script = "uid://c0a7xf5qx8p4y" -[node name="RandomFrameSpriteBehavior" type="Node2D" parent="AnimatedSprite2D5" unique_id=174050375 node_paths=PackedStringArray("sprite")] +[node name="RandomFrameSpriteBehavior" type="Node2D" parent="OnTheGround/AnimatedSprite2D5" unique_id=174050375 node_paths=PackedStringArray("sprite")] position = Vector2(-318, -137) script = ExtResource("7_sygj5") -sprite = NodePath("../../OnTheGround/AnimatedSprite2D2") +sprite = NodePath("../../AnimatedSprite2D2") metadata/_custom_type_script = "uid://cms2wqtbxjl1h" [node name="ScreenOverlay" type="CanvasLayer" parent="." unique_id=1967059135] diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-body_001.png b/scenes/game_elements/characters/npcs/components/townie-idle-body_001.png index d7bdba233..c458f38e6 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-body_001.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-body_001.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5e591ceb39a1e86420db16c6f3e36e2d1b2b27e24651112d08e635c72e2b2773 -size 1175 +oid sha256:ac0b0fb2afccceb26b3404c622c78b82416fb3ebc636319fe605b3ea7902ab49 +size 1171 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-body_002.png b/scenes/game_elements/characters/npcs/components/townie-idle-body_002.png index 835aa1a58..d57cfba07 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-body_002.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-body_002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:46da7a0db8d28eb8d979f429115c43ca3fd1ac9a7335165ec5ebbb6a1b08f23c -size 1358 +oid sha256:805aec782b6f89c1c84a8855fd762ab1fed42772d6bb0e6f54d90d50155a3717 +size 1321 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-body_003.dx_-4.dy_-16.png b/scenes/game_elements/characters/npcs/components/townie-idle-body_003.dx_-4.dy_-16.png index f5d73be28..56f44cf84 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-body_003.dx_-4.dy_-16.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-body_003.dx_-4.dy_-16.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1922adb4c157af31db458d33576d1c23f9b8332debe84c70dd49aebba9605e12 -size 1482 +oid sha256:8916620918ff3a3aac0fc16f7cc7ed94dd8f79111a35998de0c2ce3fe4d2d48a +size 1222 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-hair_001.png b/scenes/game_elements/characters/npcs/components/townie-idle-hair_001.png index 8e811b109..8c28abf10 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-hair_001.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-hair_001.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2be9c87a90d810110bb5fb0769c252545dd2c82921492ab6c379b43a4359d776 -size 1189 +oid sha256:620619baf6342265b1c440568861e3a66177b71074304971ff6bb2bec8c889f5 +size 1100 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-hair_002.png b/scenes/game_elements/characters/npcs/components/townie-idle-hair_002.png index b0018e956..7ad9e8732 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-hair_002.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-hair_002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f64d386ec4eb239c19a52f850a2bf8b867f3980abbbbfe4678a36c207afa920a +oid sha256:8f64fd8964331a5c3572dbfaeb64871208d2bcc4c41edea7bda9ba23ada38c74 size 1137 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-hair_003.png b/scenes/game_elements/characters/npcs/components/townie-idle-hair_003.png index 570215563..a423405f5 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-hair_003.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-hair_003.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d0399f1c20b71d5662f27aee7909bcf551de180acc45c6de304de892311e3e3c -size 750 +oid sha256:1f8444ef90c1e300f6c75a8d1038eac265a95095df177f22049eea736048f944 +size 731 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-hair_004.png b/scenes/game_elements/characters/npcs/components/townie-idle-hair_004.png index d52da3a8e..24769b873 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-hair_004.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-hair_004.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:22967ef649cddc5ed131d757e11a4cf2f8e672fc2b00eeb3c2485885382141c4 -size 1565 +oid sha256:78841522c2d9c8c39cf6ecfad9f1c6af1896f1193769c62fb83d28b8ecbc1852 +size 1550 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-hair_005.png b/scenes/game_elements/characters/npcs/components/townie-idle-hair_005.png index 2de5a4beb..6acafd8db 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-hair_005.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-hair_005.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:105f5ac2e0630019214f9531e9b959928cfe1292d8eaa5e0108f6c95e98bb6cd -size 1573 +oid sha256:0071ded1baea5b053e20c9395ce87aa1c794aeff8d93db0858e0ffb79fd16f6d +size 1582 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-head_001.png b/scenes/game_elements/characters/npcs/components/townie-idle-head_001.png index 7de36e174..b544d8ca0 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-head_001.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-head_001.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a20ee579cefd5fec1211dd2fd1532e3863163f5fceb3994611428b8f1c1c7cd7 -size 1054 +oid sha256:3cdc65407c3abff1e8e02f5a5f8bc6e524810a51096f162d47c98686a1dce62f +size 1031 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-head_002.png b/scenes/game_elements/characters/npcs/components/townie-idle-head_002.png index 87600979d..33d3bc580 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-head_002.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-head_002.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eb3f7c644212b5eb1e8ffa1a2449eb129a6c5ae5b0d737ee1a1311110a2bb67c -size 1109 +oid sha256:04b1e44291f21fe760956d3fd38fa2aee4ce7c4ed64ab6566aa28e50c91664de +size 1081 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-head_003.png b/scenes/game_elements/characters/npcs/components/townie-idle-head_003.png index 810a6947e..edaa41af0 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-head_003.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-head_003.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5365bc4f356bf96a1dc8acbd0e95641da69862ab799bac8d5870fbc8c77687bc -size 1161 +oid sha256:e8d1488a92e5b2d5a241dd725dcf0b587ed7568dfa00bbb41abb0ca5c32613ff +size 1164 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-head_004.png b/scenes/game_elements/characters/npcs/components/townie-idle-head_004.png index 5907263fe..96887b79a 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-head_004.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-head_004.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6be5728cc3de2fb1fb66e3b6a2b72b390062005088d0ed6787f7985b5133444c -size 1346 +oid sha256:79aa718a19c6351b0327508483db11a3d73a003363d95f236255ac3f403115e5 +size 1331 diff --git a/scenes/game_elements/characters/npcs/components/townie-idle-head_005.png b/scenes/game_elements/characters/npcs/components/townie-idle-head_005.png index 4da6491d9..af10bc2d7 100644 --- a/scenes/game_elements/characters/npcs/components/townie-idle-head_005.png +++ b/scenes/game_elements/characters/npcs/components/townie-idle-head_005.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ad8c5be7414313453d85cef7876c9f572ae768223995cfcd5e44fc942e8a2948 -size 1369 +oid sha256:946f6dbb915c17b0ecce384b7f38e3694d1747460ebb3428773de61b1d875b2d +size 1312 diff --git a/scenes/game_elements/characters/npcs/components/townie.aseprite b/scenes/game_elements/characters/npcs/components/townie.aseprite index c7ef3484d..689072d5b 100644 --- a/scenes/game_elements/characters/npcs/components/townie.aseprite +++ b/scenes/game_elements/characters/npcs/components/townie.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4149fe91d4b0b3ef8c5abb68d90ae62f524151166782dc4b50f0aa06d56e8c0f -size 20837 +oid sha256:88280a2c7509689f33f47ef0684736a0c6f7e34868d8806ad4d5fa86c9707132 +size 20670 diff --git a/scenes/game_elements/characters/npcs/components/townie_keys_palette.tres b/scenes/game_elements/characters/npcs/components/townie_keys_palette.tres new file mode 100644 index 000000000..742872c92 --- /dev/null +++ b/scenes/game_elements/characters/npcs/components/townie_keys_palette.tres @@ -0,0 +1,4 @@ +[gd_resource type="ColorPalette" format=3 uid="uid://bt0d8ui0rahnd"] + +[resource] +colors = PackedColorArray(1, 1, 0.627451, 1, 1, 1, 0, 1, 0.627451, 0.627451, 0, 1, 0.18039216, 0.18039216, 0, 1, 0.7764706, 0.5058824, 0.23137255, 1, 0.6862745, 0.3647059, 0.13725491, 1, 0.48235294, 0.23921569, 0.07058824, 1, 0.18039216, 0, 0, 1, 0.627451, 1, 0.627451, 1, 0, 1, 0, 1, 0, 0.627451, 0, 1, 0, 0.18039216, 0, 1) diff --git a/scenes/game_elements/characters/npcs/townie.tscn b/scenes/game_elements/characters/npcs/townie.tscn index c16e9828d..b5427c549 100644 --- a/scenes/game_elements/characters/npcs/townie.tscn +++ b/scenes/game_elements/characters/npcs/townie.tscn @@ -4,6 +4,7 @@ [ext_resource type="Script" uid="uid://c0a7xf5qx8p4y" path="res://scenes/game_elements/components/cel_shading_recolor.gd" id="2_nj51j"] [ext_resource type="Script" uid="uid://dl6rgfwdn3qp4" path="res://scenes/game_elements/characters/components/character_randomizer.gd" id="2_xf1o5"] [ext_resource type="SpriteFrames" uid="uid://do4waj3mgr6vw" path="res://scenes/game_elements/characters/components/sprite_frames/townie-legs_003.dy_-12.tres" id="3_4rgc5"] +[ext_resource type="Shader" uid="uid://bs1yj5q1vidgx" path="res://scenes/game_elements/components/cel_shading_recolor.gdshader" id="3_byt3c"] [ext_resource type="Script" uid="uid://boyesrjdix688" path="res://scenes/game_logic/sprite_behaviors/random_texture_sprite_behavior.gd" id="5_8nfuc"] [ext_resource type="SpriteFrames" uid="uid://bygxgwwtt1j6h" path="res://scenes/game_elements/characters/components/sprite_frames/townie-legs_001.tres" id="5_r7ycj"] [ext_resource type="SpriteFrames" uid="uid://ubitgryup0jx" path="res://scenes/game_elements/characters/components/sprite_frames/townie-legs_002.dy_-6.tres" id="6_hbfaq"] @@ -22,22 +23,29 @@ [ext_resource type="SpriteFrames" uid="uid://dnfyg3i87cp17" path="res://scenes/game_elements/characters/components/sprite_frames/townie-hair_005.tres" id="24_hskxo"] [ext_resource type="SpriteFrames" uid="uid://c43yaqne7a2kh" path="res://scenes/game_elements/characters/components/sprite_frames/townie-hair_002.tres" id="33_m1eb2"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_byt3c"] +resource_local_to_scene = true +shader = ExtResource("3_byt3c") +shader_parameter/color_count = 0 +shader_parameter/key_colors = PackedInt32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_qs15o"] -[node name="Townie" type="CharacterBody2D" unique_id=1098678013] +[node name="Townie" type="CharacterBody2D" unique_id=1098678013 node_paths=PackedStringArray("cel_shading_recolor")] material = ExtResource("1_nj51j") -instance_shader_parameters/shade_high_new = Color(0.9056, 0.7616, 0.7928, 1) -instance_shader_parameters/shade_low_new = Color(0.7056, 0.5616, 0.5928, 1) -instance_shader_parameters/shade_medium_new = Color(0.882, 0.702, 0.741, 1) collision_layer = 2 collision_mask = 0 script = ExtResource("2_xf1o5") +cel_shading_recolor = NodePath("CelShadingRecolor") +shader_material = SubResource("ShaderMaterial_byt3c") [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=128596675] rotation = -1.5707964 shape = SubResource("CapsuleShape2D_qs15o") [node name="AnimatedSprite2DLegs" type="AnimatedSprite2D" parent="." unique_id=385222684] +material = SubResource("ShaderMaterial_byt3c") position = Vector2(-3, -31) sprite_frames = ExtResource("3_4rgc5") animation = &"idle" @@ -56,22 +64,12 @@ sprite = NodePath("..") metadata/_custom_type_script = "uid://dy68p7gf07pi3" [node name="AnimatedSprite2DBody" type="AnimatedSprite2D" parent="AnimatedSprite2DLegs" unique_id=2098127821] -material = ExtResource("1_nj51j") -instance_shader_parameters/shade_high_new = Color(0.91999996, 0.91999996, 0.2, 1) -instance_shader_parameters/shade_low_new = Color(0.71999997, 0.71999997, 0, 1) -instance_shader_parameters/shade_medium_new = Color(0.9, 0.9, 0, 1) +material = SubResource("ShaderMaterial_byt3c") position = Vector2(0, -12) sprite_frames = ExtResource("16_5y6le") animation = &"idle" autoplay = "idle" -[node name="CelShadingRecolor" type="Node" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody" unique_id=1327679537 node_paths=PackedStringArray("node_to_recolor")] -script = ExtResource("2_nj51j") -node_to_recolor = NodePath("..") -high_color = Color(0.91999996, 0.91999996, 0.2, 1) -low_color = Color(0.71999997, 0.71999997, 0, 1) -metadata/_custom_type_script = "uid://c0a7xf5qx8p4y" - [node name="RandomTextureSpriteBehavior" type="Node2D" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody" unique_id=1733667753 node_paths=PackedStringArray("sprite")] script = ExtResource("5_8nfuc") sprite_frames = Array[SpriteFrames]([ExtResource("16_5y6le"), ExtResource("11_tidpj"), ExtResource("12_hurny")]) @@ -84,21 +82,11 @@ sprite = NodePath("..") metadata/_custom_type_script = "uid://dy68p7gf07pi3" [node name="AnimatedSprite2DHead" type="AnimatedSprite2D" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody" unique_id=421503015] -material = ExtResource("1_nj51j") -instance_shader_parameters/shade_high_new = Color(0.91999996, 0.91999996, 0.2, 1) -instance_shader_parameters/shade_low_new = Color(0.71999997, 0.71999997, 0, 1) -instance_shader_parameters/shade_medium_new = Color(0.9, 0.9, 0, 1) +material = SubResource("ShaderMaterial_byt3c") sprite_frames = ExtResource("22_8wbfo") animation = &"idle" autoplay = "idle" -[node name="CelShadingRecolor" type="Node" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" unique_id=2000765677 node_paths=PackedStringArray("node_to_recolor")] -script = ExtResource("2_nj51j") -node_to_recolor = NodePath("..") -high_color = Color(0.91999996, 0.91999996, 0.2, 1) -low_color = Color(0.71999997, 0.71999997, 0, 1) -metadata/_custom_type_script = "uid://c0a7xf5qx8p4y" - [node name="RandomTextureSpriteBehavior" type="Node2D" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" unique_id=592927150 node_paths=PackedStringArray("sprite")] script = ExtResource("5_8nfuc") sprite_frames = Array[SpriteFrames]([ExtResource("22_8wbfo"), ExtResource("15_byt3c"), ExtResource("16_kccyr"), ExtResource("17_syy7w"), ExtResource("18_4rgc5")]) @@ -112,6 +100,7 @@ sprite = NodePath("..") metadata/_custom_type_script = "uid://dy68p7gf07pi3" [node name="AnimatedSprite2DHair" type="AnimatedSprite2D" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" unique_id=2123781958] +material = SubResource("ShaderMaterial_byt3c") sprite_frames = ExtResource("33_m1eb2") animation = &"idle" autoplay = "idle" @@ -128,3 +117,8 @@ script = ExtResource("10_syy7w") character = NodePath("../../../../..") sprite = NodePath("..") metadata/_custom_type_script = "uid://dy68p7gf07pi3" + +[node name="CelShadingRecolor" type="Node" parent="." unique_id=1327679537] +script = ExtResource("2_nj51j") +shader_material = SubResource("ShaderMaterial_byt3c") +metadata/_custom_type_script = "uid://c0a7xf5qx8p4y" diff --git a/scenes/game_elements/components/cel_shading_recolor.gd b/scenes/game_elements/components/cel_shading_recolor.gd index 91bff0ad5..812d0c63c 100644 --- a/scenes/game_elements/components/cel_shading_recolor.gd +++ b/scenes/game_elements/components/cel_shading_recolor.gd @@ -11,10 +11,16 @@ extends Node ## But instead of dealing with a full palette, this will recolor 3 shades. ## Which is the style expected in Threadbare. ## [br][br] -## [b]Note:[/b] This behavior will only work if the [member node_to_recolor] has the -## material "cel_shading_recolor_material.tres" applied to it. +## [b]Note:[/b] This behavior will only work if the [member shader_material] is a +## duplicate of "cel_shading_recolor_material.tres". +## [br][br] +## [b]Note:[/b] A node can be set in [member node_to_recolor] as a shortcut to +## use its material directly. ## [br][br] ## One possible use of this is to apply different skin tones to characters. +## [br][br] +## Share the [member shader_material] to apply the same recoloring to multiple +## sprites (multiple parts of the same character, for instance). ## Named skin colors ## [br][br] @@ -71,6 +77,51 @@ const SKIN_COLORS: Dictionary[String, Color] = { "pearl": Color(0.949, 0.867, 0.894, 1.0), } +const HAIR_COLORS: Dictionary[String, Color] = { + "blonde": Color(0.93, 0.852, 0.273, 1.0), + "dark blonde": Color(0.831, 0.698, 0.264, 1.0), + "dark blonde 2": Color(0.813, 0.623, 0.198, 1.0), + "medium brown": Color(0.629, 0.406, 0.165, 1.0), + "dark brown": Color(0.466, 0.322, 0.139, 1.0), + "dark brown 2": Color(0.41, 0.241, 0.116, 1.0), + "black": Color(0.133, 0.194, 0.247, 1.0), + "black 2": Color(0.066, 0.064, 0.112, 1.0), + "auburn": Color(0.598, 0.324, 0.279, 1.0), + "red": Color(0.772, 0.325, 0.274, 1.0), + "gray": Color(0.755, 0.812, 0.842, 1.0), + "white": Color(0.898, 0.923, 0.936, 1.0), +} + +const LINE_COLOR := Color(0x161c2eff) +const LINE_COLOR_LIGHT := Color(0x364356ff) + +const CLOTH_COLORS: Dictionary[String, Color] = { + "magnolia": Color(0.805, 0.676, 0.461, 1.0), + "dusty rose": Color(0.662, 0.41, 0.425, 1.0), + "orange": Color(0.809, 0.322, 0.105, 1.0), + "violet": Color(0.437, 0.279, 0.492, 1.0), + "amaranth purple": Color(0.662, 0.109, 0.446, 1.0), + "red": Color(0.773, 0.109, 0.239, 1.0), + "blue": Color(0.177, 0.341, 0.542, 1.0), + "blue velvet": Color(0.024, 0.235, 0.698, 1.0), + "dark grey": Color(0.281, 0.366, 0.453, 1.0), + "brown": Color("af5d23"), + "green": Color(0.399, 0.546, 0.437, 1.0), + "black": Color(0.018, 0.039, 0.023, 1.0), +} + +const SKIN_PALETTE_INDEX := 0 +const HAIR_PALETTE_INDEX := 4 +const CLOTH_PALETTE_INDEX := 8 + +const TOWNIE_KEYS_PALETTE = preload("uid://bt0d8ui0rahnd") + +## The shader material to modify. +## If [member node_to_recolor] has a material of type [ShaderMaterial], that one will be used. +## [b]Note:[/b] This behavior will only work if this +## material is a duplicate of "cel_shading_recolor_material.tres". +@export var shader_material: ShaderMaterial + ## The node that will be recolored ## [br][br] ## [b]Note:[/b] This behavior will only work if it has the @@ -78,107 +129,151 @@ const SKIN_COLORS: Dictionary[String, Color] = { @export var node_to_recolor: CanvasItem: set = _set_node_to_recolor -## Medium or unshaded color of a 3-colors cel-shading palette -## [br][br] -## Defaults to yellow emoji-like color. -@export var medium_color: Color = Color(0.9, 0.9, 0.0, 1.0): - set = _set_medium_color +## The source or "key" colors to change. +@export var key_colors_palette: ColorPalette = TOWNIE_KEYS_PALETTE -## High or lightened color of a 3-colors cel-shading palette -@export var high_color: Color: - set = _set_high_color +## The output or final colors. Each key color in [member key_colors] will map to a color +## of the same index position in this palette. +@export var new_colors_palette: ColorPalette -## Low or darkened color of a 3-colors cel-shading palette -@export var low_color: Color: - set = _set_low_color +## Click this button to update the colors. +@export_tool_button("Update") var update_button: Callable = colorize -## Whether to the high and low colors from the medium color -@export var automatic_shades: bool = true: - set = _set_automatic_shades +## Click this button to pick random skin, hair and cloth colors. +@export_tool_button("Randomize") var randomize_button: Callable = randomize -## Click this button to pick a random color from a list of known skin colors +## Click this button to pick a random color from a list of known skin colors. @export_tool_button("Random Skin Color") var random_skin_color_button: Callable = set_random_skin_color +## Click this button to pick a random color from a list of known hair colors. +@export_tool_button("Random Hair Color") +var random_hair_color_button: Callable = set_random_hair_color -func _enter_tree() -> void: - if not node_to_recolor and get_parent() is CanvasItem: - node_to_recolor = get_parent() - medium_color = medium_color +## Click this button to pick a random color from a list of known cloth colors. +@export_tool_button("Random Cloth Color") +var random_cloth_color_button: Callable = set_random_cloth_color -func _set_node_to_recolor(new_node_to_recolor: CanvasItem) -> void: - node_to_recolor = new_node_to_recolor - update_configuration_warnings() +func _ready() -> void: colorize() -func _set_medium_color(new_medium_color: Color) -> void: - medium_color = new_medium_color - if automatic_shades: - high_color = medium_color.lightened(0.2) - low_color = medium_color.darkened(0.2) - colorize() +func _set_node_to_recolor(new_node_to_recolor: CanvasItem) -> void: + node_to_recolor = new_node_to_recolor + if not shader_material and node_to_recolor: + shader_material = node_to_recolor.material as ShaderMaterial + update_configuration_warnings() + colorize() -func _set_high_color(new_high_color: Color) -> void: - high_color = new_high_color - if automatic_shades: +## Apply the colors by setting the shader parameters +func colorize() -> void: + if not new_colors_palette: + new_colors_palette = ColorPalette.new() + if not shader_material: return - colorize() + var source: PackedInt32Array + source.resize(768) + var output: PackedVector3Array + output.resize(256) -func _set_low_color(new_low_color: Color) -> void: - low_color = new_low_color - if automatic_shades: - return - colorize() + for i in range(key_colors_palette.colors.size()): + var source_color := key_colors_palette.colors[i] + source[i * 3 + 0] = source_color.r8 + source[i * 3 + 1] = source_color.g8 + source[i * 3 + 2] = source_color.b8 + var color_count := new_colors_palette.colors.size() + for i in range(color_count): + var color := new_colors_palette.colors[i] + output[i] = Vector3(color.r, color.g, color.b) -func _set_automatic_shades(new_automatic_shades: bool) -> void: - automatic_shades = new_automatic_shades - notify_property_list_changed() - if automatic_shades: - medium_color = medium_color + shader_material.set_shader_parameter("color_count", color_count) + shader_material.set_shader_parameter("key_colors", source) + shader_material.set_shader_parameter("new_colors", output) -func _validate_property(property: Dictionary) -> void: - match property["name"]: - "high_color", "low_color": - if automatic_shades: - property.usage |= PROPERTY_USAGE_READ_ONLY +func _change_colors( + in_colors: PackedColorArray, + colors_data: Dictionary[String, Color], + palette_index: int, + rng: RandomNumberGenerator = null +) -> PackedColorArray: + var out_colors := in_colors.duplicate() + if out_colors.size() < palette_index + 4: + out_colors.resize(palette_index + 4) + var random_int: int = rng.randi() if rng else randi() + var index := random_int % colors_data.size() + var medium_color: Color = colors_data.values()[index] + var high_color := medium_color.lightened(0.2) + var low_color := medium_color.darkened(0.2) -## Apply the colors by setting the shader parameters -func colorize() -> void: - if not node_to_recolor: - return - node_to_recolor.set_instance_shader_parameter("shade_medium_new", medium_color) - node_to_recolor.set_instance_shader_parameter("shade_high_new", high_color) - node_to_recolor.set_instance_shader_parameter("shade_low_new", low_color) + out_colors.set(palette_index + 0, high_color) + out_colors.set(palette_index + 1, medium_color) + out_colors.set(palette_index + 2, low_color) + + if low_color.v < 0.3: + out_colors.set(palette_index + 3, LINE_COLOR_LIGHT) #medium_color.lightened(0.7)) + else: + out_colors.set(palette_index + 3, LINE_COLOR) + + return out_colors + + +## Pick random colors for skin, hair and cloth. +func randomize(rng: RandomNumberGenerator = null) -> void: + if not new_colors_palette: + new_colors_palette = ColorPalette.new() + var skin_colors := _change_colors( + new_colors_palette.colors, SKIN_COLORS, SKIN_PALETTE_INDEX, rng + ) + var skin_hair_colors := _change_colors(skin_colors, HAIR_COLORS, HAIR_PALETTE_INDEX, rng) + var skin_hair_cloth_colors := _change_colors( + skin_hair_colors, CLOTH_COLORS, CLOTH_PALETTE_INDEX, rng + ) + new_colors_palette.set_colors(skin_hair_cloth_colors) + colorize() -## Pick a random color from [constant SKIN_COLORS] and automatically set all shades from it. +## Pick a random color from [constant SKIN_COLORS] and automatically set high/low shades from it. func set_random_skin_color(rng: RandomNumberGenerator = null) -> void: - automatic_shades = true - var random_int: int = rng.randi() if rng else randi() - var index := random_int % SKIN_COLORS.size() - medium_color = SKIN_COLORS.values()[index] + var new_colors := _change_colors( + new_colors_palette.colors, SKIN_COLORS, SKIN_PALETTE_INDEX, rng + ) + new_colors_palette.set_colors(new_colors) + colorize() + + +## Pick a random color from [constant HAIR_COLORS] and automatically set high/low shades from it. +func set_random_hair_color(rng: RandomNumberGenerator = null) -> void: + var new_colors := _change_colors( + new_colors_palette.colors, HAIR_COLORS, HAIR_PALETTE_INDEX, rng + ) + new_colors_palette.set_colors(new_colors) + colorize() + + +## Pick a random color from [constant CLOTH_COLORS] and automatically set high/low shades from it. +func set_random_cloth_color(rng: RandomNumberGenerator = null) -> void: + var new_colors := _change_colors( + new_colors_palette.colors, CLOTH_COLORS, CLOTH_PALETTE_INDEX, rng + ) + new_colors_palette.set_colors(new_colors) + colorize() func _get_configuration_warnings() -> PackedStringArray: var warnings: PackedStringArray - if not node_to_recolor: - warnings.append("The Skin Node must be set.") - return warnings - var shader_material: ShaderMaterial = node_to_recolor.material as ShaderMaterial if not shader_material: - warnings.append("The Skin Node material must be a ShaderMaterial.") + warnings.append("The shader material must be set.") return warnings if not shader_material.shader: - warnings.append("The Skin Node material must have a shader.") + warnings.append("The shader material must have a shader.") return warnings - for uniform_name: String in ["shade_medium_new", "shade_high_new", "shade_low_new"]: - if node_to_recolor.get_instance_shader_parameter(uniform_name) == null: - warnings.append("The Node To Recolor must have an instance uniform %s." % uniform_name) + for uniform_name: String in ["color_count", "key_colors", "new_colors"]: + if shader_material.get_shader_parameter(uniform_name) == null: + warnings.append("The material must have an uniform %s." % uniform_name) return warnings diff --git a/scenes/game_elements/components/cel_shading_recolor.gdshader b/scenes/game_elements/components/cel_shading_recolor.gdshader index ccffda0ec..625073c73 100644 --- a/scenes/game_elements/components/cel_shading_recolor.gdshader +++ b/scenes/game_elements/components/cel_shading_recolor.gdshader @@ -1,64 +1,26 @@ /** * Cel shading replacer * - * This shader can replace 3 shades from a sprite that uses the cel-shading technique. - * It is based on this more generic shader: [link]https://github.com/KoBeWi/Godot-Palette-Swap-Shader/blob/master/addons/PaletteSwapShader/SimplePaletteSwap.gdshader[/link] + * This shader replaces each color that appears in the key_colors palette, + * with the one of same index in the new_colors palette. * + * It is copied from: [link]https://github.com/KoBeWi/Godot-Palette-Swap-Shader/blob/master/addons/PaletteSwapShader/SimplePaletteSwap.gdshader[/link] * * SPDX-FileCopyrightText: The Threadbare Authors * SPDX-License-Identifier: MPL-2.0 */ shader_type canvas_item; -// Note: key colors are intentionally vec3 because they don't need alpha channel. -// This is unlike the new colors which are of type vec4. -group_uniforms KeyColors; - -/** - * Key color to replace for medium shade. Defaults to full green. - * [br][br] - * This is set as an ivec3 with values from 0 to 255 for accuracy. - */ -uniform ivec3 shade_medium_key = ivec3(0, 255, 0); - -/** - * Key color to replace for high shade. Defaults to (5/8, 1, 5/8) or RGB(160, 255, 160). - */ -uniform ivec3 shade_high_key = ivec3(160, 255, 160); - -/** - * Key color to replace for low shade. Defaults to (0, 5/8, 0) or RGB(0, 160, 0). - */ -uniform ivec3 shade_low_key = ivec3(0, 160, 0); - -group_uniforms NewColors; - -/** - * The new medium or unshaded color. - * [br][br] - * Defaults to yellow emoji-like color. - */ -instance uniform vec4 shade_medium_new : source_color = vec4(0.89, 0.89, 0, 1); - -/** - * The new high or lightened color. - */ -instance uniform vec4 shade_high_new : source_color = vec4(0.91, 0.91, 0.2, 1); - -/** - * The new low or darkened color. - */ -instance uniform vec4 shade_low_new : source_color = vec4(0.71, 0.71, 0, 1); +uniform int color_count; +uniform ivec3[256] key_colors; +uniform vec3[256] new_colors; void fragment() { ivec3 colori = ivec3(round(COLOR.rgb * 255.0)); - if (colori == shade_medium_key) { - COLOR = shade_medium_new; - } - else if (colori == shade_high_key) { - COLOR = shade_high_new; - } - else if (colori == shade_low_key) { - COLOR = shade_low_new; + for (int i = 0; i < color_count; i++) { + if (colori == key_colors[i]) { + COLOR.rgb = new_colors[i]; + break; + } } } diff --git a/scenes/game_elements/components/cel_shading_recolor_material.tres b/scenes/game_elements/components/cel_shading_recolor_material.tres index 9ab67d34b..888cd2305 100644 --- a/scenes/game_elements/components/cel_shading_recolor_material.tres +++ b/scenes/game_elements/components/cel_shading_recolor_material.tres @@ -4,6 +4,6 @@ [resource] shader = ExtResource("1_n501e") -shader_parameter/shade_medium_key = Vector3i(0, 255, 0) -shader_parameter/shade_high_key = Vector3i(160, 255, 160) -shader_parameter/shade_low_key = Vector3i(0, 160, 0) +shader_parameter/color_count = 0 +shader_parameter/key_colors = PackedInt32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/new_colors = PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)