diff options
| author | metamuffin <metamuffin@disroot.org> | 2024-07-11 15:27:57 +0200 | 
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2024-07-11 15:27:57 +0200 | 
| commit | 4bdb3e9e7231098cd6537f1e2e82d70579fec159 (patch) | |
| tree | de56f064abd6db9a62e3d3335b324478a3f1cf03 /client | |
| parent | f61c3b437e5d6f3f32ec558576aa656aaa7dae5e (diff) | |
| parent | cc6c04a7d66afc255b2ac63b689eb2a0618ff66b (diff) | |
| download | hurrycurry-4bdb3e9e7231098cd6537f1e2e82d70579fec159.tar hurrycurry-4bdb3e9e7231098cd6537f1e2e82d70579fec159.tar.bz2 hurrycurry-4bdb3e9e7231098cd6537f1e2e82d70579fec159.tar.zst  | |
Merge branch 'master' of https://codeberg.org/hurrycurry/hurrycurry
Diffstat (limited to 'client')
| -rw-r--r-- | client/global.gd | 4 | ||||
| -rw-r--r-- | client/map/tiles/conveyor.gd | 8 | ||||
| -rw-r--r-- | client/map/tiles/conveyor.tscn | 20 | ||||
| -rw-r--r-- | client/map/tiles/conveyor_direction.gdshader | 34 | ||||
| -rw-r--r-- | client/map/tiles/conveyor_direction.tscn | 21 | ||||
| -rw-r--r-- | client/map/tiles/conveyor_model.gd | 15 | ||||
| -rw-r--r-- | client/player/interact_marker.gdshader | 2 | 
7 files changed, 99 insertions, 5 deletions
diff --git a/client/global.gd b/client/global.gd index 691a85c7..39418e2f 100644 --- a/client/global.gd +++ b/client/global.gd @@ -203,10 +203,10 @@ func set_setting(key: String, value):  		return  	settings[key].set_value(value) -func interpolate(current, target, dt): +static func interpolate(current, target, dt):  	return target + (current - target) * exp(-dt) -func interpolate_angle(current, target, dt): +static func interpolate_angle(current, target, dt):  	if abs(target - current) > PI:  		if target < 0:  			target += PI * 2 diff --git a/client/map/tiles/conveyor.gd b/client/map/tiles/conveyor.gd index 93bd4282..d920915c 100644 --- a/client/map/tiles/conveyor.gd +++ b/client/map/tiles/conveyor.gd @@ -16,10 +16,16 @@  class_name Conveyor  extends Floor +var conveyor: ConveyorModel = preload("res://map/tiles/conveyor.tscn").instantiate() +  func _init(rename: String, neighbors: Array):  	super(rename, neighbors) -	var conveyor = preload("res://map/tiles/conveyor.tscn").instantiate()  	base.add_child(conveyor)  static func interact_target() -> Vector3:  	return Vector3(0., .425, 0.) + +func pass_to(tile: Tile): +	super(tile) +	var dir: Vector3 = (tile.position - position) +	conveyor.to_direction(Vector2(dir.x, dir.z).normalized()) diff --git a/client/map/tiles/conveyor.tscn b/client/map/tiles/conveyor.tscn index 3a5d3a83..5e71bcec 100644 --- a/client/map/tiles/conveyor.tscn +++ b/client/map/tiles/conveyor.tscn @@ -1,10 +1,28 @@ -[gd_scene load_steps=2 format=3 uid="uid://df5wbypoqbkf"] +[gd_scene load_steps=6 format=3 uid="uid://df5wbypoqbkf"]  [ext_resource type="ArrayMesh" uid="uid://djet05vuyh6iv" path="res://map/tiles/conveyor.res" id="1_hoctt"] +[ext_resource type="Script" path="res://map/tiles/conveyor_model.gd" id="1_xdf1u"] +[ext_resource type="PackedScene" uid="uid://60wue8ult1bx" path="res://map/tiles/conveyor_direction.tscn" id="2_sf55l"] +[ext_resource type="Shader" path="res://map/tiles/conveyor_direction.gdshader" id="4_8s3rd"] + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bgatf"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("4_8s3rd") +shader_parameter/angle = 0.2 +shader_parameter/frequency = 0.5 +shader_parameter/width = 0.2 +shader_parameter/speed = 1.0 +shader_parameter/alpha_fac = 1.0  [node name="Conveyor" type="Node3D"] +script = ExtResource("1_xdf1u")  [node name="Mesh" type="MeshInstance3D" parent="."]  transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)  mesh = ExtResource("1_hoctt")  skeleton = NodePath("") + +[node name="ConveyorDirection" parent="." instance=ExtResource("2_sf55l")] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.43, 0) +surface_material_override/0 = SubResource("ShaderMaterial_bgatf") diff --git a/client/map/tiles/conveyor_direction.gdshader b/client/map/tiles/conveyor_direction.gdshader new file mode 100644 index 00000000..7b3565e6 --- /dev/null +++ b/client/map/tiles/conveyor_direction.gdshader @@ -0,0 +1,34 @@ +/* +    Hurry Curry! - a game about cooking +    Copyright 2024 nokoe + +    This program is free software: you can redistribute it and/or modify +    it under the terms of the GNU Affero General Public License as published by +    the Free Software Foundation, version 3 of the License only. + +    This program is distributed in the hope that it will be useful, +    but WITHOUT ANY WARRANTY; without even the implied warranty of +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +    GNU Affero General Public License for more details. + +    You should have received a copy of the GNU Affero General Public License +    along with this program.  If not, see <https://www.gnu.org/licenses/>. + +*/ +shader_type spatial; + +uniform float angle = .2; +uniform float frequency = .5; +uniform float width = .2; +uniform float speed = 1.; +uniform float alpha_fac = 1.; + +void fragment() { +	ALBEDO = vec3(1., 1., 0.); +	vec2 uv = UV.xy; +	uv.x = abs(2. * uv.x - 1.); +	float alpha = step( +		mod(uv.y - TIME * speed + angle * uv.x, frequency), width +	); +	ALPHA = alpha * alpha_fac; +} diff --git a/client/map/tiles/conveyor_direction.tscn b/client/map/tiles/conveyor_direction.tscn new file mode 100644 index 00000000..9d407683 --- /dev/null +++ b/client/map/tiles/conveyor_direction.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://60wue8ult1bx"] + +[ext_resource type="Shader" path="res://map/tiles/conveyor_direction.gdshader" id="1_47s57"] + +[sub_resource type="QuadMesh" id="QuadMesh_hr8jj"] +size = Vector2(0.8, 1) + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_h5q6r"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("1_47s57") +shader_parameter/angle = 0.2 +shader_parameter/frequency = 0.5 +shader_parameter/width = 0.2 +shader_parameter/speed = 1.0 +shader_parameter/alpha_fac = 1.0 + +[node name="ConveyorDirection" type="MeshInstance3D"] +transform = Transform3D(1, 0, 0, 0, 1.19249e-08, 1, 0, -1, 1.19249e-08, 0, 0, 0) +mesh = SubResource("QuadMesh_hr8jj") +surface_material_override/0 = SubResource("ShaderMaterial_h5q6r") diff --git a/client/map/tiles/conveyor_model.gd b/client/map/tiles/conveyor_model.gd new file mode 100644 index 00000000..7dd48957 --- /dev/null +++ b/client/map/tiles/conveyor_model.gd @@ -0,0 +1,15 @@ +class_name ConveyorModel +extends Node3D + +var alpha: float = 0. + +@onready var mat: ShaderMaterial = $ConveyorDirection.get_active_material(0) + +func _process(delta): +	alpha = Global.interpolate(alpha, 0., delta) +	mat.set_shader_parameter("alpha_fac", alpha) + +func to_direction(direction: Vector2): +	direction.y *= -1 +	$ConveyorDirection.rotation.y = direction.angle() + .5 * PI +	alpha = 1. diff --git a/client/player/interact_marker.gdshader b/client/player/interact_marker.gdshader index 6f3cd435..1a1b9c63 100644 --- a/client/player/interact_marker.gdshader +++ b/client/player/interact_marker.gdshader @@ -1,6 +1,6 @@  /*      Hurry Curry! - a game about cooking -    Copyright 2024 metamuffin +    Copyright 2024 nokoe      This program is free software: you can redistribute it and/or modify      it under the terms of the GNU Affero General Public License as published by  |