diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-27 23:55:57 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-27 23:56:00 +0200 |
commit | 9469650dd3102336330e574f1c2b38067c733a5e (patch) | |
tree | 4eb5219c47315ba1dd811ff91e82ff5e7ebd02be /client | |
parent | 1532ae28ba34915aae3f289a6b2f9f86fe5bd144 (diff) | |
download | hurrycurry-9469650dd3102336330e574f1c2b38067c733a5e.tar hurrycurry-9469650dd3102336330e574f1c2b38067c733a5e.tar.bz2 hurrycurry-9469650dd3102336330e574f1c2b38067c733a5e.tar.zst |
character "main" color
Diffstat (limited to 'client')
-rw-r--r-- | client/menu/character.gd | 11 | ||||
-rw-r--r-- | client/menu/hairstyle_preview.gd | 2 | ||||
-rw-r--r-- | client/player/character/character.gd | 30 | ||||
-rw-r--r-- | client/player/character/character.tscn | 8 | ||||
-rw-r--r-- | client/player/player.gd | 2 |
5 files changed, 32 insertions, 21 deletions
diff --git a/client/menu/character.gd b/client/menu/character.gd index 67087b76..dd3bc5cd 100644 --- a/client/menu/character.gd +++ b/client/menu/character.gd @@ -18,7 +18,6 @@ extends Menu @onready var character: Character = $Node3D/Character -@onready var num_hairstyles := character.hairstyles.keys().size() @onready var back_button := $VBoxContainer/bottom_panel/back @onready var map: Map = $Node3D/Map @onready var username_edit = $VBoxContainer/top_panel/a/username @@ -26,7 +25,7 @@ extends Menu func _ready(): super() $VBoxContainer/top_panel/a/username.text = Global.get_profile("username") - character.select_hairstyle(Global.get_profile("character")) + character.set_style(Global.get_profile("character")) init_map() func init_map(): @@ -69,9 +68,9 @@ func _on_back_pressed(): replace_menu("res://menu/main.tscn") func _on_character_back_pressed(): - Global.set_profile("character", (Global.get_profile("character") - 1) % num_hairstyles) - character.select_hairstyle(Global.get_profile("character")) + Global.set_profile("character", max(Global.get_profile("character") - 1, 0)) + character.set_style(Global.get_profile("character")) func _on_character_forward_pressed(): - Global.set_profile("character", (Global.get_profile("character") + 1) % num_hairstyles) - character.select_hairstyle(Global.get_profile("character")) + Global.set_profile("character", max(Global.get_profile("character") + 1, 0)) + character.set_style(Global.get_profile("character")) diff --git a/client/menu/hairstyle_preview.gd b/client/menu/hairstyle_preview.gd index 5a9cce68..08b6aab9 100644 --- a/client/menu/hairstyle_preview.gd +++ b/client/menu/hairstyle_preview.gd @@ -19,7 +19,7 @@ extends VBoxContainer signal selected(character: int) func setup(character: int, group: ButtonGroup): - $HairViewport/Node3D/Character.select_hairstyle(character) + $HairViewport/Node3D/Character.set_style(character) $Select.button_group = group $Select.text = tr("c.setup.uniform.value").format([character + 1]) $Select.pressed.connect(func(): selected.emit(character)) diff --git a/client/player/character/character.gd b/client/player/character/character.gd index b919d27c..d3138c3e 100644 --- a/client/player/character/character.gd +++ b/client/player/character/character.gd @@ -42,11 +42,14 @@ var current_animation := "idle" @onready var tie = $Main/Tie @onready var knife = $Main/HandRight/Knife -@onready var hairstyles := { - "Brown": $Main/HeadDefault/Hair, - "Blond": $Main/HeadDefault/Hair2, - "E. Parsley": $Main/HeadDefault/Hair3 -} +@onready var hairstyles := [$Main/HeadDefault/Hair, $Main/HeadDefault/Hair2, $Main/HeadDefault/Hair3] +var colors = [ + Color(0.204, 0.361, 0.624), + Color(0.568, 0.256, 0.602), + Color(0.575, 0.341, 0.117), + Color(0.3, 0.455, 0.221), + Color(0.101, 0.452, 0.521) +] @onready var head_default: MeshInstance3D = $Main/HeadDefault @onready var head_robot: MeshInstance3D = $Main/HeadRobot @@ -82,17 +85,20 @@ func _process(delta): boosting_particles.emitting = false was_boosting = boosting and walking - -func select_hairstyle(id: int): +func set_style(id: int): if id == 51: return set_robot(true) if id < 0: to_customer() id *= -1 - var hairstyle_count = hairstyles.keys().size() - id = id % hairstyle_count - var target = hairstyles.keys()[id] - for k in hairstyles.keys(): - hairstyles[k].visible = k == target + + var hairstyle = id % hairstyles.size() + @warning_ignore("integer_division") + var color = id / hairstyles.size() % colors.size() + + for h in hairstyles: h.hide() + hairstyles[hairstyle].show() + + $Main.get_active_material(0).albedo_color = colors[color] func to_customer(): main.mesh = CUSTOMER_MAIN_MESH diff --git a/client/player/character/character.tscn b/client/player/character/character.tscn index a7c09c01..aca0658a 100644 --- a/client/player/character/character.tscn +++ b/client/player/character/character.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=27 format=3 uid="uid://b3hhir2fvnunu"] +[gd_scene load_steps=28 format=3 uid="uid://b3hhir2fvnunu"] [ext_resource type="Script" path="res://player/character/character.gd" id="1_12lbh"] [ext_resource type="ArrayMesh" uid="uid://bnmm01yjwultj" path="res://player/character/default/main.res" id="2_uovyg"] @@ -18,6 +18,11 @@ [ext_resource type="AudioStream" uid="uid://1jsqpnk3igj3" path="res://player/sounds/woosh1.ogg" id="14_ikcec"] [ext_resource type="AudioStream" uid="uid://cwme7eatip0jc" path="res://player/sounds/woosh2.ogg" id="15_iv4wu"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7ojaw"] +resource_local_to_scene = true +resource_name = "main" +cull_mode = 2 + [sub_resource type="Animation" id="Animation_tdhvg"] length = 0.001 tracks/0/type = "bezier" @@ -729,6 +734,7 @@ script = ExtResource("1_12lbh") transform = Transform3D(0.33, 0, 0, 0, 0.33, 0, 0, 0, 0.33, 0, 0.33, 0) mesh = ExtResource("2_uovyg") skeleton = NodePath("") +surface_material_override/0 = SubResource("StandardMaterial3D_7ojaw") [node name="HandRight" type="MeshInstance3D" parent="Main"] transform = Transform3D(0.287144, 0.2864, -1.17785e-06, 0.402357, -0.133775, 0.337554, 0.292329, -0.0971941, -0.464603, -1.302, -0.17, 0) diff --git a/client/player/player.gd b/client/player/player.gd index 31a7a337..6ff28e81 100644 --- a/client/player/player.gd +++ b/client/player/player.gd @@ -79,7 +79,7 @@ func _init(_id: int, new_name: String, pos: Vector2, new_character_idx: int, new is_customer = character_idx < 0 func _ready(): - character.select_hairstyle(character_idx) + character.set_style(character_idx) clear_timer.timeout.connect(clear_message) Settings.hook_changed_init("gameplay.usernames", false, update_username_tag) |