diff --git a/objects/canny_cat.gd b/objects/canny_cat.gd index a4183ef..32703c5 100644 --- a/objects/canny_cat.gd +++ b/objects/canny_cat.gd @@ -1,18 +1,19 @@ class_name Player extends CharacterBody3D - -@export var power_scale: float -@export var power_sensitivity: float -@export var power_threshold: float - +@export_group("Visuals") @export var goal_animation_time: float = 1.0 +@export var charge_gradient: Gradient +@export var power_line_material: StandardMaterial3D @export_group("Movement") @export var gravity: float @export var friction: float @export var friction_coef: float @export var friction_pow: float +@export var power_scale: float +@export var power_sensitivity: float +@export var power_threshold: float @export var stop_threshold: float @export_group("Camera", "camera_") @@ -83,7 +84,8 @@ func _update_charge(_delta: float) -> void: power_indicator.scale.z = power var camera_z = get_viewport().get_camera_3d().global_transform.basis.z camera_z.y = 0.0 - power_indicator.look_at(power_indicator.global_position + camera_z, Vector3.UP, true) + power_indicator.look_at(power_indicator.global_position + camera_z) + power_line_material.albedo_color = charge_gradient.sample(power) func _end_charge() -> void: charging_power = false diff --git a/objects/canny_cat.tscn b/objects/canny_cat.tscn index 0a89229..e4649a7 100644 --- a/objects/canny_cat.tscn +++ b/objects/canny_cat.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://cybm74xwbsivx"] +[gd_scene load_steps=15 format=3 uid="uid://cybm74xwbsivx"] [ext_resource type="Texture2D" uid="uid://3i17aqnrspma" path="res://assets/textures/player/canny.png" id="1_cp4br"] [ext_resource type="Script" path="res://objects/canny_cat.gd" id="1_twfq8"] @@ -9,13 +9,19 @@ [ext_resource type="Script" path="res://addons/godot_state_charts/transition.gd" id="7_epv8h"] [ext_resource type="Script" path="res://addons/godot_state_charts/expression_guard.gd" id="8_d5slg"] -[sub_resource type="SphereShape3D" id="SphereShape3D_4o01j"] -radius = 0.45 +[sub_resource type="Gradient" id="Gradient_u5ds4"] +interpolation_mode = 2 +offsets = PackedFloat32Array(0.2, 0.2, 0.433673, 0.642857, 0.826531, 1) +colors = PackedColorArray(0.501961, 0, 0, 1, 0.5, 0.6, 1, 1, 0.5, 1, 0.566667, 1, 0.925, 1, 0.5, 1, 1, 0.741667, 0.5, 1, 1, 0.5, 0.5, 1) [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2xpb7"] +resource_local_to_scene = true shading_mode = 0 albedo_color = Color(0.916968, 0.113727, 0, 1) +[sub_resource type="SphereShape3D" id="SphereShape3D_4o01j"] +radius = 0.45 + [sub_resource type="CylinderMesh" id="CylinderMesh_b16dl"] top_radius = 0.05 bottom_radius = 0.05 @@ -41,13 +47,15 @@ axis_lock_angular_x = true axis_lock_angular_y = true axis_lock_angular_z = true script = ExtResource("1_twfq8") -power_scale = 20.0 -power_sensitivity = 0.01 -power_threshold = 0.2 +charge_gradient = SubResource("Gradient_u5ds4") +power_line_material = SubResource("StandardMaterial3D_2xpb7") gravity = 10.0 friction = 10.0 friction_coef = 0.01 friction_pow = 60.0 +power_scale = 20.0 +power_sensitivity = 0.01 +power_threshold = 0.2 stop_threshold = 0.1 camera_low_angle = 0.349066 camera_high_angle = 1.0472 @@ -82,7 +90,7 @@ texture = ExtResource("2_fwt6m") [node name="PowerIndicator" type="Node3D" parent="."] visible = false -[node name="Line" type="MeshInstance3D" parent="PowerIndicator"] +[node name="PowerLine" type="MeshInstance3D" parent="PowerIndicator"] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 2) material_override = SubResource("StandardMaterial3D_2xpb7") cast_shadow = 0