Fix shader materials on forcefields

This commit is contained in:
Marco 2025-02-24 14:23:59 +01:00
commit dc70bd8122
8 changed files with 201 additions and 25 deletions

View file

@ -1,10 +1,22 @@
[gd_scene load_steps=24 format=3 uid="uid://b0gpbkxdfbnjh"]
[gd_scene load_steps=26 format=3 uid="uid://b0gpbkxdfbnjh"]
[ext_resource type="Script" uid="uid://b2bpqbfeqi4ge" path="res://Scripts/Activables/ForceField.cs" id="1_yxhr6"]
[ext_resource type="Texture2D" uid="uid://gc24sjyj47x6" path="res://Sprites/Actors/ForceFieldHorizontal.png" id="2_12wxm"]
[ext_resource type="Shader" uid="uid://0ruey5bjl7mh" path="res://Shaders/Blink.gdshader" id="2_q7pky"]
[ext_resource type="Shader" uid="uid://cjdl1m3psohju" path="res://Shaders/scanlines_static.tres" id="2_qbobr"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_yl7re"]
resource_local_to_scene = true
shader = ExtResource("2_q7pky")
shader_parameter/blink_color = Color(0, 0, 0, 1)
shader_parameter/blink_intensity = 0.0
shader_parameter/teleport_progress = 0.0
shader_parameter/scanline_density = 50.0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_u04tu"]
resource_local_to_scene = true
shader = ExtResource("2_qbobr")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tnfy3"]
shader = ExtResource("2_qbobr")
@ -148,6 +160,8 @@ collision_mask = 154
script = ExtResource("1_yxhr6")
TurnOffShader = ExtResource("2_q7pky")
ActiveShader = ExtResource("2_qbobr")
TurnOffMaterial = SubResource("ShaderMaterial_yl7re")
ActiveMaterial = SubResource("ShaderMaterial_u04tu")
metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -6,18 +6,19 @@ using System.Threading.Tasks;
public partial class ForceField : Door
{
[Export]
public Shader TurnOffShader { get; private set; }
public Material TurnOffMaterial { get; private set; }
[Export]
public Shader ActiveShader { get; private set; }
public Material ActiveMaterial { get; private set; }
// Disable
public override void Open()
{
base.Open();
if (TurnOffShader is null) return;
if (TurnOffMaterial is null) return;
((ShaderMaterial)_animatedSprite.Material).Shader = TurnOffShader;
_animatedSprite.Material = TurnOffMaterial;
//((ShaderMaterial)_animatedSprite.Material).Shader = TurnOffShader;
_ = AnimateShutdownAsync();
}
@ -36,8 +37,9 @@ public partial class ForceField : Door
{
base.Close();
if (ActiveShader is null) return;
((ShaderMaterial)_animatedSprite.Material).Shader = ActiveShader;
if (ActiveMaterial is null) return;
_animatedSprite.Material = ActiveMaterial;
//((ShaderMaterial)_animatedSprite.Material).Shader = ActiveShader;
}
private void SetShaderTeleportProgress(float value)

View file

@ -34,6 +34,7 @@ source = 5
input_name = "time"
[resource]
resource_local_to_scene = true
code = "shader_type canvas_item;
render_mode blend_mix;

BIN
Tilesets/Space.aseprite (Stored with Git LFS)

Binary file not shown.

BIN
Tilesets/Space.png (Stored with Git LFS)

Binary file not shown.

View file

@ -986,6 +986,10 @@ texture = ExtResource("12_fb37q")
4:6/0 = 0
3:6/0 = 0
2:6/0 = 0
4:0/0 = 0
4:0/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
4:1/0 = 0
4:1/0/physics_layer_1/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
[resource]
physics_layer_0/collision_layer = 1