Extensive work on virtually all of the visuals and the net code

This commit is contained in:
2026-03-01 21:26:31 -05:00
parent e7570c78c3
commit bed068eafc
180 changed files with 46533 additions and 913 deletions

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://klhragf48bkd"
path="res://.godot/imported/button-trap-hit.png-865f2fa9062023dca2508cb9d2362361.ctex"
path="res://.godot/imported/button-hack-hit.png-0263d8d5709167c7d451f54fa26b792d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-trap-hit.png"
dest_files=["res://.godot/imported/button-trap-hit.png-865f2fa9062023dca2508cb9d2362361.ctex"]
source_file="res://visuals/images/icons/button-hack-hit.png"
dest_files=["res://.godot/imported/button-hack-hit.png-0263d8d5709167c7d451f54fa26b792d.ctex"]
[params]

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://belkk38rxged0"
path="res://.godot/imported/button-trap.png-7a6d52d00cf7dac09beedca466e13569.ctex"
path="res://.godot/imported/button-hack.png-63dcc62671ab7c71242ea169428c96db.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/button-trap.png"
dest_files=["res://.godot/imported/button-trap.png-7a6d52d00cf7dac09beedca466e13569.ctex"]
source_file="res://visuals/images/icons/button-hack.png"
dest_files=["res://.godot/imported/button-hack.png-63dcc62671ab7c71242ea169428c96db.ctex"]
[params]

View File

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -3,7 +3,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bdo6instl47uf"
path.s3tc="res://.godot/imported/enemy_trap_marker.png-1c5b7ca7cafa418b711651f11cd5afcf.s3tc.ctex"
path.s3tc="res://.godot/imported/enemy_hack_marker.png-111650dc8c56407d075196836140972b.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps]
source_file="res://visuals/images/icons/enemy_trap_marker.png"
dest_files=["res://.godot/imported/enemy_trap_marker.png-1c5b7ca7cafa418b711651f11cd5afcf.s3tc.ctex"]
source_file="res://visuals/images/icons/enemy_hack_marker.png"
dest_files=["res://.godot/imported/enemy_hack_marker.png-111650dc8c56407d075196836140972b.s3tc.ctex"]
[params]

View File

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -3,7 +3,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c6wke2vs8rfyd"
path.s3tc="res://.godot/imported/friendly_trap_marker.png-620ca5c48decec71f2637c2f41c9f3ba.s3tc.ctex"
path.s3tc="res://.godot/imported/friendly_hack_marker.png-12baca45ed4f35fcdbc62709a654797d.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps]
source_file="res://visuals/images/icons/friendly_trap_marker.png"
dest_files=["res://.godot/imported/friendly_trap_marker.png-620ca5c48decec71f2637c2f41c9f3ba.s3tc.ctex"]
source_file="res://visuals/images/icons/friendly_hack_marker.png"
dest_files=["res://.godot/imported/friendly_hack_marker.png-12baca45ed4f35fcdbc62709a654797d.s3tc.ctex"]
[params]

View File

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 220 B

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://divrb0alxk567"
path="res://.godot/imported/trap arrow.png-35b12c88876ce5975e182915ae184d6f.ctex"
path="res://.godot/imported/hack arrow.png-125fd82c705089690219f5b4f814ae9e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/trap arrow.png"
dest_files=["res://.godot/imported/trap arrow.png-35b12c88876ce5975e182915ae184d6f.ctex"]
source_file="res://visuals/images/icons/hack arrow.png"
dest_files=["res://.godot/imported/hack arrow.png-125fd82c705089690219f5b4f814ae9e.ctex"]
[params]

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c1g5jy6w66rys"
path="res://.godot/imported/trap button.png-2ea56d177ad9ed1627305ab5dea5416a.ctex"
path="res://.godot/imported/install button.png-15d86f8e664d53278cb1b65e3ca3e086.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/trap button.png"
dest_files=["res://.godot/imported/trap button.png-2ea56d177ad9ed1627305ab5dea5416a.ctex"]
source_file="res://visuals/images/icons/install button.png"
dest_files=["res://.godot/imported/install button.png-15d86f8e664d53278cb1b65e3ca3e086.ctex"]
[params]

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b2tu6cwb6xftx"
path="res://.godot/imported/lit trap button.png-0ca388f33e4933278a4c631123af634e.ctex"
path="res://.godot/imported/lit install button.png-7bf983e2a77b380d5086c264115fac42.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://visuals/images/icons/lit trap button.png"
dest_files=["res://.godot/imported/lit trap button.png-0ca388f33e4933278a4c631123af634e.ctex"]
source_file="res://visuals/images/icons/lit install button.png"
dest_files=["res://.godot/imported/lit install button.png-7bf983e2a77b380d5086c264115fac42.ctex"]
[params]

View File

@@ -0,0 +1,40 @@
shader_type spatial;
render_mode blend_add, cull_disabled;
uniform vec4 intersection_color : source_color = vec4(1.0, 0.5, 0.0, 1.0);
uniform float intersection_thickness = 0.5;
uniform float intensity = 1.0f;
uniform sampler2D DEPTH_TEXTURE : hint_depth_texture, filter_linear_mipmap;
void fragment() {
// 1. Get linear depth of the scene (opaque objects)
float depth = texture(DEPTH_TEXTURE, SCREEN_UV).x;
vec3 ndc = vec3(SCREEN_UV * 2.0 - 1.0, depth);
vec4 view = INV_PROJECTION_MATRIX * vec4(ndc, 1.0);
view.xyz /= view.w;
float linear_depth = -view.z;
// 2. Get linear depth of the current object
float linear_frag_coord = -VERTEX.z;
// 3. Calculate difference
float diff = linear_depth - linear_frag_coord;
// 4. Create intersection mask
float intersect = clamp(diff / intersection_thickness, 0.0, 1.0);
// Invert so the intersection is 1.0
intersect = 1.0 - intersect;
// Output color
float strength = .25 + .75 * (1.0 + sin(TIME*3.0))/2.0;
ALPHA = max(.05, intersect * intersection_color.a * strength);
if(ALPHA == .05){
ALBEDO = intersection_color.rgb;
}else{
ALBEDO = intersection_color.rgb * strength;
EMISSION = intersection_color.rgb * intensity * strength; // Glow effect
}
}

View File

@@ -0,0 +1 @@
uid://byr88gb5fk3w2

View File

@@ -2,28 +2,33 @@ shader_type canvas_item;
uniform sampler2D chars;
uniform sampler2D noise_tex;
uniform float offset;
void fragment() {
// Random character
vec2 uv = fract(UV * 32.0); // loop uv 32 times for the characters (as the noise resolution is 32x32)
//vec2 uv = vec2(0,0);
float noise = texture(noise_tex, UV).g;
noise = round(noise * 26.0) / 26.0; // make sure the color value are snapped by 0.1 (so its only 0.0, 0.1, 0.2, and so on) for perfect offset
uv.x = (uv.x / 26.0); // offset
uv.x += noise; // offset every character by the noise value
uv.x += round(TIME * 0.5 * 26.0)/26.0; // animate characters with TIME, then snapped by 0.1 so it doesnt slide. 0.5 is the speed, you might want to change that
noise = round(noise * 0.1) / 0.1; // make sure the color value are snapped by 0.1 (so its only 0.0, 0.1, 0.2, and so on) for perfect offset
//uv.x = (uv.x / 26.0); // offset
//uv.x = UV.x;
//uv.x += noise; // offset every character by the noise value
uv.x = fract(UV.x + round(TIME * 0.1 * 26.0)/26.0);
//uv.x += round(TIME * 0.5 * 26.0)/26.0; // animate characters with TIME, then snapped by 0.1 so it doesnt slide. 0.5 is the speed, you might want to change that
// distortion
float rain = UV.y; // this is a vertical gradient
float distortion = texture(noise_tex, UV / vec2(1.0, 32.0)).g; // this will be used for distortion, using previous noise but only horizontal
float distortion = texture(noise_tex, (UV + vec2(0,offset)) / vec2(1.0, 64.0)).g; // this will be used for distortion, using previous noise but only horizontal
distortion = round(distortion * 26.0) / 26.0; // for precision reason, you need to round your distortion too, otherwise some character wouldnt be fully shown
rain -= round(TIME * 0.2 * 32.0) / 32.0; // the 'rain' shouldn't move smoothly right? also, 0.2 is the speed
rain -= round((TIME + offset) * 0.2 * 32.0) / 32.0; // the 'rain' shouldn't move smoothly right? also, 0.2 is the speed
rain += distortion; // distort this gradient, turning it into a rain
rain = fract(rain); // loop the rain
rain = round(rain * 16.0) / 16.0; // pixelate the rain. Rounding by 32.0 or 8.0 is optional
rain = pow(rain, 3.0); // this is not necessary, i just think that it looks good
rain = round(rain * 128.0) / 128.0; // pixelate the rain. Rounding by 32.0 or 8.0 is optional
rain = pow(rain, 5.0); // this is not necessary, i just think that it looks good
rain *= 2.0; // this is also not important, just making the characters brighter
COLOR.rgb = texture(chars, uv).rgb * rain * vec3(0.0, 1.0, 0.0); // finally multiply them together then multiply with green for the color
COLOR.rgb = texture(chars, vec2(uv.x, uv.y)).rgb * rain * vec3(0.0, 1.0, 0.0); // finally multiply them together then multiply with green for the color
COLOR.a = rain;
}

View File

@@ -0,0 +1,38 @@
shader_type spatial;
render_mode unshaded, diffuse_lambert;
uniform float amount = 3.0f;
uniform float intensity = 1.0f;
uniform vec3 fresnel_color : source_color = vec3(1,1,1);
uniform sampler2D noise_texture;
varying float flux;
float fresnel(vec3 normal, vec3 view)
{
return pow((1.0 - clamp(dot(normalize(normal), normalize(view)), 0.0, 1.0 )), amount);
}
vec3 fresnel_glow(vec3 normal, vec3 view)
{
return pow((1.0 - dot(normalize(normal), normalize(view))), amount) * fresnel_color * intensity;
}
void vertex()
{
flux = .1 + .9 * texture(noise_texture, vec2(UV.x + TIME * .1, UV.y + TIME*.2)).r;
}
void fragment()
{
vec3 base_color = vec3(0.0);
vec3 basic_fresnel = fresnel_glow(NORMAL, VIEW);
float f = texture(noise_texture, vec2(NORMAL.x + TIME * .1, NORMAL.y + TIME*.2)).r;
ALBEDO = base_color + basic_fresnel * f;
float fres_alpha = fresnel(NORMAL, VIEW);
ALPHA = fres_alpha;
}
//void light() {
// // Called for every pixel for every light affecting the material.
// // Uncomment to replace the default light processing function with this one.
//}

View File

@@ -0,0 +1 @@
uid://g2hj3keuywp4

14
visuals/tunnel.gdshader Normal file
View File

@@ -0,0 +1,14 @@
shader_type canvas_item;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
}
//void light() {
// // Called for every pixel for every light affecting the CanvasItem.
// // Uncomment to replace the default light processing function with this one.
//}

View File

@@ -0,0 +1 @@
uid://c7pasi2xrhnc0