Added SFX sounds

This commit is contained in:
2026-01-09 21:45:29 +03:00
parent 123510d103
commit ffdf0b0403
47 changed files with 392 additions and 72 deletions
+4 -34
View File
@@ -22,17 +22,12 @@ enum Collisions {
enum State {
Black,
White,
TransitionToBlack,
TransitionToWhite,
}
const COLLISION_WHITE_SHIFT = 4
const MAX_INTENSITY = 1.0
const SHADER_SWITCH_COLORS = "shader_parameter/switch_colors"
const SHADER_INTENSITY = "shader_parameter/intensity"
@export var object : CollisionObject2D
@@ -50,8 +45,6 @@ var _state : State:
_state = value
_apply_color()
var _intensity_tween : Tween
var _grey_layer := 0
var _color_layer := 0
@@ -69,17 +62,9 @@ func _ready() -> void:
_state = initial_state
func switch_color(time: float = 0.0) -> void:
if _intensity_tween != null and _intensity_tween.is_running(): return
if is_zero_approx(time):
_state = State.Black if _state == State.White else State.White
else:
_state = State.TransitionToBlack if _state == State.White else State.TransitionToWhite
_intensity_tween = create_tween()
_intensity_tween.tween_method(_set_shader_internsity, 0.0, MAX_INTENSITY, time)
_intensity_tween.finished.connect(_update_state)
func switch_color() -> void:
_state = State.Black if _state == State.White else State.White
func _get_grey_collision(collision: int) -> int:
@@ -92,18 +77,6 @@ func _get_color_collision(collision: int) -> int:
return black_collision | white_collision
func _set_shader_internsity(value: float) -> void:
material.set(SHADER_INTENSITY, value)
func _update_state() -> void:
match _state:
State.TransitionToBlack:
_state = State.Black
State.TransitionToWhite:
_state = State.White
func _apply_color() -> void:
var layer := 0
var mask := 0
@@ -115,13 +88,10 @@ func _apply_color() -> void:
State.White:
layer = _grey_layer | (_color_layer << COLLISION_WHITE_SHIFT)
mask = _grey_mask | (_color_mask << COLLISION_WHITE_SHIFT)
State.TransitionToBlack, State.TransitionToWhite:
layer = _grey_layer | _color_layer | (_color_layer << COLLISION_WHITE_SHIFT)
mask = _grey_mask
object.collision_layer = layer
object.collision_mask = mask
if material != null:
var is_black := _state == State.Black or _state == State.TransitionToBlack
var is_black := _state == State.Black
material.set(SHADER_SWITCH_COLORS, is_black)