From 2b527c9b2ea9f0a84a94d615d6ec6e8ba7c796b9 Mon Sep 17 00:00:00 2001 From: R34nd0 Date: Sun, 14 Jan 2024 14:42:23 +0500 Subject: [PATCH] Color rework --- scenes/Base.tscn | 5 +- scenes/MainShip.tscn | 6 ++- scenes/Space.tscn | 48 ++++++++++++++++++- scenes/engines/starterengine.tscn | 1 + scenes/hulls/starterhull.tscn | 2 + scenes/npcships/NPCShipDefault.tscn | 2 +- scenes/weapons/presets/SingleLaserMk1.tscn | 2 + scripts/Space.gd | 2 +- scripts/misc/FactionRecoloring.gd | 2 +- scripts/objects/MainShip.gd | 2 +- scripts/objects/Minimap.gd | 2 +- scripts/objects/MinimapMarker.gd | 2 +- ...hield_material.tres => ship_material.tres} | 4 +- shaders/{shield.gdshader => ship.gdshader} | 7 ++- test.tscn | 2 +- 15 files changed, 73 insertions(+), 16 deletions(-) rename shaders/materials/{shield_material.tres => ship_material.tres} (69%) rename shaders/{shield.gdshader => ship.gdshader} (90%) diff --git a/scenes/Base.tscn b/scenes/Base.tscn index 1880bbe..240ad08 100644 --- a/scenes/Base.tscn +++ b/scenes/Base.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=7 format=3 uid="uid://dbtrc26016xov"] +[gd_scene load_steps=8 format=3 uid="uid://dbtrc26016xov"] [ext_resource type="Script" path="res://scripts/objects/Base.gd" id="1_bmrsb"] +[ext_resource type="Material" uid="uid://cw0827vwv7pc1" path="res://shaders/materials/ship_material.tres" id="1_uy68o"] [ext_resource type="Texture2D" uid="uid://deabc107bimdb" path="res://sprites/space station 1.png" id="2_tvpq1"] [ext_resource type="Script" path="res://scripts/misc/BaseCollider.gd" id="3_vluwu"] [ext_resource type="Script" path="res://scripts/misc/BaseMenuOpen.gd" id="4_ftno6"] @@ -9,9 +10,11 @@ [node name="Base" type="Node2D"] process_mode = 1 +material = ExtResource("1_uy68o") script = ExtResource("1_bmrsb") [node name="Sprite" type="Sprite2D" parent="."] +use_parent_material = true rotation = -1.5708 texture = ExtResource("2_tvpq1") diff --git a/scenes/MainShip.tscn b/scenes/MainShip.tscn index 7602148..e040964 100644 --- a/scenes/MainShip.tscn +++ b/scenes/MainShip.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=14 format=3 uid="uid://ccrs28h3b2tfy"] -[ext_resource type="Material" uid="uid://cw0827vwv7pc1" path="res://shaders/materials/shield_material.tres" id="1_3gt13"] +[ext_resource type="Material" uid="uid://cw0827vwv7pc1" path="res://shaders/materials/ship_material.tres" id="1_6fqoi"] [ext_resource type="Script" path="res://scripts/objects/MainShip.gd" id="1_h7kne"] [ext_resource type="PackedScene" uid="uid://bbho4h6tg4jca" path="res://scenes/hulls/starterhull.tscn" id="2_r634y"] [ext_resource type="PackedScene" uid="uid://20171x3gmn1j" path="res://scenes/engines/starterengine.tscn" id="3_upe7o"] @@ -18,7 +18,7 @@ font_size = 48 [node name="MainShip" type="CharacterBody2D"] process_mode = 1 -material = ExtResource("1_3gt13") +material = ExtResource("1_6fqoi") collision_mask = 3 script = ExtResource("1_h7kne") metadata/_edit_horizontal_guides_ = [] @@ -28,10 +28,12 @@ metadata/_edit_horizontal_guides_ = [] [node name="Engine" parent="." instance=ExtResource("3_upe7o")] [node name="PrimaryWeapon" type="Node2D" parent="."] +use_parent_material = true [node name="SingleLaser" parent="PrimaryWeapon" instance=ExtResource("4_s724s")] [node name="SecondaryWeapon" type="Node2D" parent="."] +use_parent_material = true [node name="SingleLaser" parent="SecondaryWeapon" instance=ExtResource("4_s724s")] diff --git a/scenes/Space.tscn b/scenes/Space.tscn index 6d78084..1be618e 100644 --- a/scenes/Space.tscn +++ b/scenes/Space.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=27 format=3 uid="uid://14k35mkjwi5i"] +[gd_scene load_steps=31 format=3 uid="uid://14k35mkjwi5i"] [ext_resource type="PackedScene" uid="uid://ccrs28h3b2tfy" path="res://scenes/MainShip.tscn" id="1_6fvpc"] [ext_resource type="Script" path="res://scripts/Space.gd" id="1_ppaw3"] @@ -7,7 +7,7 @@ [ext_resource type="PackedScene" uid="uid://dbtrc26016xov" path="res://scenes/Base.tscn" id="5_bjt5p"] [ext_resource type="PackedScene" uid="uid://523dme3h6d6c" path="res://scenes/npcships/NPCShipDefault.tscn" id="6_67746"] [ext_resource type="Script" path="res://scripts/misc/FactionRecoloring.gd" id="7_w8i61"] -[ext_resource type="Shader" path="res://shaders/shield.gdshader" id="7_wqq78"] +[ext_resource type="Shader" path="res://shaders/ship.gdshader" id="7_wqq78"] [ext_resource type="Shader" path="res://shaders/nebula.gdshader" id="8_3swn8"] [ext_resource type="Script" path="res://scripts/nebula.gd" id="9_utirt"] @@ -141,6 +141,46 @@ shader_parameter/color = Color(1, 0, 0, 1) shader_parameter/max_distance = 20.0 shader_parameter/bublic_size = 5.0 +[sub_resource type="ShaderMaterial" id="ShaderMaterial_bdvxf"] +resource_local_to_scene = true +resource_name = "Shield Material" +shader = ExtResource("7_wqq78") +shader_parameter/wave_centers = PackedVector2Array() +shader_parameter/wave_distances = PackedFloat32Array(-1) +shader_parameter/color = Color(1, 0, 0, 1) +shader_parameter/max_distance = 20.0 +shader_parameter/bublic_size = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_j8bi2"] +resource_local_to_scene = true +resource_name = "Shield Material" +shader = ExtResource("7_wqq78") +shader_parameter/wave_centers = PackedVector2Array() +shader_parameter/wave_distances = PackedFloat32Array(-1) +shader_parameter/color = Color(1, 0, 0, 1) +shader_parameter/max_distance = 20.0 +shader_parameter/bublic_size = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_pbsyb"] +resource_local_to_scene = true +resource_name = "Shield Material" +shader = ExtResource("7_wqq78") +shader_parameter/wave_centers = PackedVector2Array() +shader_parameter/wave_distances = PackedFloat32Array(-1) +shader_parameter/color = Color(1, 0, 0, 1) +shader_parameter/max_distance = 20.0 +shader_parameter/bublic_size = 20.0 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_2r73x"] +resource_local_to_scene = true +resource_name = "Shield Material" +shader = ExtResource("7_wqq78") +shader_parameter/wave_centers = PackedVector2Array() +shader_parameter/wave_distances = PackedFloat32Array(-1) +shader_parameter/color = Color(1, 0, 0, 1) +shader_parameter/max_distance = 20.0 +shader_parameter/bublic_size = 20.0 + [sub_resource type="FastNoiseLite" id="FastNoiseLite_n2xxx"] [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_lcrcg"] @@ -224,20 +264,24 @@ position = Vector2(1212, 518) script = ExtResource("7_w8i61") [node name="Base" parent="Bases" instance=ExtResource("5_bjt5p")] +material = SubResource("ShaderMaterial_bdvxf") position = Vector2(-434, -343) rotation = 0.660397 [node name="Base2" parent="Bases" instance=ExtResource("5_bjt5p")] +material = SubResource("ShaderMaterial_j8bi2") position = Vector2(429, -368) rotation = 2.41284 type = 1 [node name="Base3" parent="Bases" instance=ExtResource("5_bjt5p")] +material = SubResource("ShaderMaterial_pbsyb") position = Vector2(-428, 418) rotation = -0.826175 type = 3 [node name="Base4" parent="Bases" instance=ExtResource("5_bjt5p")] +material = SubResource("ShaderMaterial_2r73x") position = Vector2(386, 432) rotation = -2.31102 type = 2 diff --git a/scenes/engines/starterengine.tscn b/scenes/engines/starterengine.tscn index db7ad45..9b75fc4 100644 --- a/scenes/engines/starterengine.tscn +++ b/scenes/engines/starterengine.tscn @@ -48,6 +48,7 @@ scale_max = 1.5 scale_curve = SubResource("CurveTexture_ot3qw") [node name="Engine" type="Node2D"] +use_parent_material = true script = ExtResource("1_jvcps") rotation_speed = 120 diff --git a/scenes/hulls/starterhull.tscn b/scenes/hulls/starterhull.tscn index 8e4a8f9..0806648 100644 --- a/scenes/hulls/starterhull.tscn +++ b/scenes/hulls/starterhull.tscn @@ -4,10 +4,12 @@ [ext_resource type="Texture2D" uid="uid://dbwvej0c5bl52" path="res://sprites/ship mk1.png" id="2_tvpkh"] [node name="Hull" type="Node2D"] +use_parent_material = true script = ExtResource("1_em4j0") max_fuel = 6000 [node name="HullSprite" type="Sprite2D" parent="."] z_index = -1 +use_parent_material = true position = Vector2(16, 0) texture = ExtResource("2_tvpkh") diff --git a/scenes/npcships/NPCShipDefault.tscn b/scenes/npcships/NPCShipDefault.tscn index 84befee..138b779 100644 --- a/scenes/npcships/NPCShipDefault.tscn +++ b/scenes/npcships/NPCShipDefault.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=11 format=3 uid="uid://523dme3h6d6c"] -[ext_resource type="Shader" path="res://shaders/shield.gdshader" id="1_0qs3p"] +[ext_resource type="Shader" path="res://shaders/ship.gdshader" id="1_0qs3p"] [ext_resource type="Script" path="res://scripts/objects/npcship.gd" id="1_wioir"] [ext_resource type="PackedScene" uid="uid://d1bhrxmr0oo0n" path="res://scenes/Bounty.tscn" id="2_6fdps"] [ext_resource type="PackedScene" uid="uid://cyskycafymwx" path="res://scenes/shields/npcshield.tscn" id="3_47apr"] diff --git a/scenes/weapons/presets/SingleLaserMk1.tscn b/scenes/weapons/presets/SingleLaserMk1.tscn index 893aaad..cb78893 100644 --- a/scenes/weapons/presets/SingleLaserMk1.tscn +++ b/scenes/weapons/presets/SingleLaserMk1.tscn @@ -5,6 +5,7 @@ [ext_resource type="Texture2D" uid="uid://c3gei46k8muk3" path="res://sprites/laserbox.png" id="3_n1sx7"] [node name="SingleLaser" type="Node2D" node_paths=PackedStringArray("shoot_timer", "spawner_points")] +use_parent_material = true position = Vector2(8, 0) script = ExtResource("1_dwcuc") projectile = ExtResource("2_eiesu") @@ -18,6 +19,7 @@ wait_time = 0.25 one_shot = true [node name="SpawnerSprite" type="Sprite2D" parent="."] +use_parent_material = true texture = ExtResource("3_n1sx7") [node name="Spawner" type="Node2D" parent="."] diff --git a/scripts/Space.gd b/scripts/Space.gd index 8b305c8..62195d9 100644 --- a/scripts/Space.gd +++ b/scripts/Space.gd @@ -92,7 +92,7 @@ func recolor(): color_base = Color.from_hsv(randf(), randf_range(0.8, 1), randf_range(0.8, 1)) color_enemy = Color.from_hsv(randf(), randf_range(0.8, 1), randf_range(0.8, 1)) color_background = Color.from_hsv(randf(), randf_range(0.1765, 1), randf_range(0.06, 0.08)) - ship.modulate = color_player + ship.material.set_shader_parameter('color',color_player) bases.modulate = color_base enemy_faction.modulate = color_enemy enemy_faction.changeitemscolor() diff --git a/scripts/misc/FactionRecoloring.gd b/scripts/misc/FactionRecoloring.gd index 0860f23..9ad9e44 100644 --- a/scripts/misc/FactionRecoloring.gd +++ b/scripts/misc/FactionRecoloring.gd @@ -6,7 +6,7 @@ func changeitemscolor(): var items = get_children() var ship = get_tree().current_scene.ship for item in items: - item.modulate = modulate + #item.modulate = modulate if item.material: item.material.set_shader_parameter("color",modulate) if faction: diff --git a/scripts/objects/MainShip.gd b/scripts/objects/MainShip.gd index 630c136..e284a39 100644 --- a/scripts/objects/MainShip.gd +++ b/scripts/objects/MainShip.gd @@ -36,7 +36,7 @@ func _process(_delta): if hull.hp < 0: destroy() func changeinterfacecolor(): - $GUI/Interface.modulate = modulate + $GUI/Interface.modulate = material.get_shader_parameter('color') func destroy(): hull.hp = hull.max_hp diff --git a/scripts/objects/Minimap.gd b/scripts/objects/Minimap.gd index a39e6b9..4a3f93f 100644 --- a/scripts/objects/Minimap.gd +++ b/scripts/objects/Minimap.gd @@ -7,7 +7,7 @@ extends Control var markers = [] func _process(_delta): - $Sprite.self_modulate = ship.modulate + $Sprite.self_modulate = ship.material.get_shader_parameter('color') func add_marker(target : Node, type : String): var marker_inst = marker.instantiate() diff --git a/scripts/objects/MinimapMarker.gd b/scripts/objects/MinimapMarker.gd index 6f4792e..3d92577 100644 --- a/scripts/objects/MinimapMarker.gd +++ b/scripts/objects/MinimapMarker.gd @@ -22,4 +22,4 @@ func _process(_delta): rotation = ship.global_position.angle_to_point(target.global_position) var sp_scale = 1024 / clamp(ship.global_position.distance_to(target.global_position), 512, 2048) marker.scale = Vector2(sp_scale, sp_scale) - modulate = target.modulate + modulate = target.material.get_shader_parameter("color") diff --git a/shaders/materials/shield_material.tres b/shaders/materials/ship_material.tres similarity index 69% rename from shaders/materials/shield_material.tres rename to shaders/materials/ship_material.tres index ba9d2c0..599f460 100644 --- a/shaders/materials/shield_material.tres +++ b/shaders/materials/ship_material.tres @@ -1,13 +1,13 @@ [gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://cw0827vwv7pc1"] -[ext_resource type="Shader" path="res://shaders/shield.gdshader" id="1_qsjai"] +[ext_resource type="Shader" path="res://shaders/ship.gdshader" id="1_qsjai"] [resource] resource_local_to_scene = true resource_name = "Shield Material" shader = ExtResource("1_qsjai") shader_parameter/wave_centers = PackedVector2Array() -shader_parameter/wave_distances = PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +shader_parameter/wave_distances = PackedFloat32Array(-1) shader_parameter/color = Color(1, 0, 0, 1) shader_parameter/max_distance = 20.0 shader_parameter/bublic_size = 20.0 diff --git a/shaders/shield.gdshader b/shaders/ship.gdshader similarity index 90% rename from shaders/shield.gdshader rename to shaders/ship.gdshader index 04d3739..f16cbc1 100644 --- a/shaders/shield.gdshader +++ b/shaders/ship.gdshader @@ -29,7 +29,10 @@ void vertex() } void fragment() { - for (int i = 0; i < wave_centers.length(); i++) + // Set faction color + COLOR = texture(TEXTURE,UV) * vec4(color,1.0); + + /*for (int i = 0; i < wave_centers.length(); i++) { float wave_distance = wave_distances[i]; float normalized_distance = wave_distance/max_distance; @@ -46,5 +49,5 @@ void fragment() { COLOR.rgb = mix(COLOR.rgb,vec3(bublic*color),1.0-normalized_distance); - } + }*/ } \ No newline at end of file diff --git a/test.tscn b/test.tscn index c9a1a3a..3650451 100644 --- a/test.tscn +++ b/test.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=6 format=3 uid="uid://dhh12jepm10m7"] -[ext_resource type="Shader" path="res://shaders/shield.gdshader" id="1_0kl5j"] +[ext_resource type="Shader" path="res://shaders/ship.gdshader" id="1_0kl5j"] [ext_resource type="Texture2D" uid="uid://dbwvej0c5bl52" path="res://sprites/ship mk1.png" id="2_bxhdx"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_j0js1"]