start of tossing system
This commit is contained in:
parent
f5999da412
commit
dc2a1a78f3
12 changed files with 193 additions and 38 deletions
17
assets/shaders/outline.gdshader
Normal file
17
assets/shaders/outline.gdshader
Normal file
|
@ -0,0 +1,17 @@
|
|||
shader_type canvas_item;
|
||||
|
||||
uniform bool outline_enabled = false;
|
||||
uniform vec3 outline_color : source_color = vec3(1.0);
|
||||
|
||||
void fragment() {
|
||||
COLOR = texture(TEXTURE, UV);
|
||||
|
||||
if (outline_enabled) {
|
||||
float border = texture(TEXTURE, UV + vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
||||
border += texture(TEXTURE, UV - vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
||||
border += texture(TEXTURE, UV + vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
||||
border += texture(TEXTURE, UV - vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
||||
float final = step(sign(border), sign(COLOR.a));
|
||||
COLOR = vec4(vec3(mix(outline_color, COLOR.rgb, final)), step(final, COLOR.a));
|
||||
}
|
||||
}
|
81
assets/shaders/outline.tres
Normal file
81
assets/shaders/outline.tres
Normal file
|
@ -0,0 +1,81 @@
|
|||
[gd_resource type="VisualShader" load_steps=4 format=3 uid="uid://cyfnxkbtd6ehn"]
|
||||
|
||||
[sub_resource type="VisualShaderNodeExpression" id="VisualShaderNodeExpression_pnln1"]
|
||||
size = Vector2(400, 260)
|
||||
expression = "float base = texture(tex, uv).a;
|
||||
border = texture(tex, uv + vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
||||
border += texture(tex, uv - vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
||||
border += texture(tex, uv + vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
||||
border += texture(tex, uv - vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
||||
if (base < 0.5 && border > 0.5) {
|
||||
border = 1.0;
|
||||
} else {
|
||||
border = 0.0;
|
||||
}"
|
||||
|
||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_dxtqj"]
|
||||
input_name = "texture"
|
||||
|
||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_ebc8y"]
|
||||
output_port_for_preview = 0
|
||||
input_name = "uv"
|
||||
|
||||
[resource]
|
||||
code = "shader_type canvas_item;
|
||||
render_mode blend_mix;
|
||||
|
||||
|
||||
|
||||
|
||||
void fragment() {
|
||||
// Input:4
|
||||
vec2 n_out4p0 = UV;
|
||||
|
||||
|
||||
float n_out2p0;
|
||||
// Expression:2
|
||||
n_out2p0 = 0.0;
|
||||
{
|
||||
float base = texture(TEXTURE, n_out4p0).a;
|
||||
n_out2p0 = texture(TEXTURE, n_out4p0 + vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
||||
n_out2p0 += texture(TEXTURE, n_out4p0 - vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
||||
n_out2p0 += texture(TEXTURE, n_out4p0 + vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
||||
n_out2p0 += texture(TEXTURE, n_out4p0 - vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
||||
if (base < 0.5 && n_out2p0 > 0.5) {
|
||||
n_out2p0 = 1.0;
|
||||
} else {
|
||||
n_out2p0 = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Output:0
|
||||
COLOR.rgb = vec3(n_out2p0);
|
||||
|
||||
|
||||
}
|
||||
"
|
||||
graph_offset = Vector2(29.7429, 470.485)
|
||||
mode = 1
|
||||
flags/light_only = false
|
||||
nodes/fragment/0/position = Vector2(500, 360)
|
||||
nodes/fragment/2/node = SubResource("VisualShaderNodeExpression_pnln1")
|
||||
nodes/fragment/2/position = Vector2(80, 380)
|
||||
nodes/fragment/2/size = Vector2(400, 260)
|
||||
nodes/fragment/2/input_ports = "0,8,tex;1,3,uv;"
|
||||
nodes/fragment/2/output_ports = "0,0,border;"
|
||||
nodes/fragment/2/expression = "float base = texture(tex, uv).a;
|
||||
border = texture(tex, uv + vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
||||
border += texture(tex, uv - vec2(TEXTURE_PIXEL_SIZE.x, 0.0)).a;
|
||||
border += texture(tex, uv + vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
||||
border += texture(tex, uv - vec2(0.0, TEXTURE_PIXEL_SIZE.y)).a;
|
||||
if (base < 0.5 && border > 0.5) {
|
||||
border = 1.0;
|
||||
} else {
|
||||
border = 0.0;
|
||||
}"
|
||||
nodes/fragment/3/node = SubResource("VisualShaderNodeInput_dxtqj")
|
||||
nodes/fragment/3/position = Vector2(-160, 340)
|
||||
nodes/fragment/4/node = SubResource("VisualShaderNodeInput_ebc8y")
|
||||
nodes/fragment/4/position = Vector2(-180, 420)
|
||||
nodes/fragment/connections = PackedInt32Array(3, 0, 2, 0, 4, 0, 2, 1, 2, 0, 0, 0)
|
Reference in a new issue