From b79780835e7402440541ef50508e9c08aec93f9e Mon Sep 17 00:00:00 2001 From: Tiger Jove Date: Thu, 22 Jan 2026 14:56:16 +0100 Subject: [PATCH] fix: void card --- src/dev-util/hardcoded_cards.gd | 14 +++++- src/logic-scenes/board/card.gd | 2 +- src/logic-scenes/board/card.tscn | 2 +- src/logic-scenes/board/void_card.tscn | 55 ++++++------------------ src/logic-scenes/board/void_stuff.gd | 35 +++++++++++++++ src/logic-scenes/board/void_stuff.gd.uid | 1 + src/logic-scenes/board/void_stuff.tscn | 18 ++++---- 7 files changed, 72 insertions(+), 55 deletions(-) create mode 100644 src/logic-scenes/board/void_stuff.gd create mode 100644 src/logic-scenes/board/void_stuff.gd.uid diff --git a/src/dev-util/hardcoded_cards.gd b/src/dev-util/hardcoded_cards.gd index c575710..b0efd56 100644 --- a/src/dev-util/hardcoded_cards.gd +++ b/src/dev-util/hardcoded_cards.gd @@ -1,6 +1,7 @@ class_name HardcodedCards extends Control @onready var card_prefab : PackedScene = preload("res://logic-scenes/board/card.tscn") +@onready var void_prefab : PackedScene = preload("res://logic-scenes/board/void_card.tscn") @onready var note_prefab : PackedScene = preload("res://logic-scenes/board/sticky-note.tscn") var source_dicts: Array[Dictionary] = [ @@ -183,12 +184,21 @@ func get_cards_by_scene_id(id: int) -> Array[Card]: var output:Array[Card] for card_name in source_dicts[id].keys(): - var card := card_prefab.instantiate() as Card + var card : Card = _create_card(card_name) + card.init(card_name, all_ids[card_name]); output.append(card) return output + +func _create_card(card_name: StringName) -> Card: + match card_name: + &"c_void": return void_prefab.instantiate() as Card + &"3.c_void": return void_prefab.instantiate() as Card + _: return card_prefab.instantiate() as Card + + # used to put cards on the dev board func get_cards_by_name_array(names: Array[StringName]) -> Dictionary[String, Array]: var output:Dictionary[String, Array] = { @@ -210,7 +220,7 @@ func get_cards_by_name_array(names: Array[StringName]) -> Dictionary[String, Arr func create_from_id(id:StringName) -> Area2D: var parsed: PackedStringArray = id.rsplit(".") if card_ids.values().has(id): - var card := card_prefab.instantiate() as Card + var card := _create_card(id) card.init(parsed[1], id); return card elif sticky_ids.values().has(id): diff --git a/src/logic-scenes/board/card.gd b/src/logic-scenes/board/card.gd index 9564891..cd9f005 100644 --- a/src/logic-scenes/board/card.gd +++ b/src/logic-scenes/board/card.gd @@ -150,7 +150,7 @@ func _ready(): _on_text_updated.call_deferred() func _on_text_updated(): - if is_node_ready(): + if is_node_ready() and name != "c_void" and name != "3.c_void": var curr_frame := text.hash() % background_sprite.sprite_frames.get_frame_count(background_sprite.animation) background_sprite.frame = curr_frame diff --git a/src/logic-scenes/board/card.tscn b/src/logic-scenes/board/card.tscn index 239b650..fc4d9e6 100644 --- a/src/logic-scenes/board/card.tscn +++ b/src/logic-scenes/board/card.tscn @@ -12,7 +12,7 @@ collision_layer = 4 collision_mask = 0 priority = 50 script = ExtResource("1_emip0") -text = "asdf" +text = "card" metadata/type = "card" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/src/logic-scenes/board/void_card.tscn b/src/logic-scenes/board/void_card.tscn index e48416e..f38e55d 100644 --- a/src/logic-scenes/board/void_card.tscn +++ b/src/logic-scenes/board/void_card.tscn @@ -1,39 +1,11 @@ -[gd_scene load_steps=12 format=3 uid="uid://vqwep0whfb0o"] +[gd_scene load_steps=11 format=3 uid="uid://vqwep0whfb0o"] [ext_resource type="Script" uid="uid://2loic2eeec5b" path="res://logic-scenes/board/card.gd" id="1_6ceun"] [ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_buevv"] -[ext_resource type="PackedScene" path="res://logic-scenes/board/void_stuff.tscn" id="3_ipd1f"] +[ext_resource type="PackedScene" uid="uid://b2st6v25p0ley" path="res://logic-scenes/board/void_stuff.tscn" id="3_ipd1f"] -[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_aqrbw"] -radius = 110.0 -height = 336.0 - -[sub_resource type="GDScript" id="GDScript_8bs16"] -script/source = "extends Node2D - -@onready var particles = $BackgroundSprite/GPUParticles2D -@onready var initial_position = position -var noise_position = randf() -var noise: Noise = FastNoiseLite.new() - -func _process(delta): - - if not State.reduce_motion: - - noise_position += delta * 10 - - var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position)) - - random_position = random_position.normalized() * pow(random_position.length()*2, 3) * 5 - - position = initial_position - random_position - - rotation = noise.get_noise_1d(noise_position*10) * random_position.length() * 0.01 - - particles.position = random_position - - else: position = initial_position -" +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ipd1f"] +size = Vector2(277, 231) [sub_resource type="AtlasTexture" id="AtlasTexture_aqrbw"] atlas = ExtResource("2_buevv") @@ -79,28 +51,27 @@ animations = [{ }] [node name="c_void" type="Area2D"] +collision_layer = 4 +collision_mask = 0 +priority = 50 script = ExtResource("1_6ceun") text = "card" metadata/type = "card" [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -position = Vector2(-0.0713516, 0.997451) -rotation = 1.5708 -shape = SubResource("CapsuleShape2D_aqrbw") +position = Vector2(5.5, 0) +shape = SubResource("RectangleShape2D_ipd1f") -[node name="Visual" type="Node2D" parent="."] -scale = Vector2(0.6, 0.6) -script = SubResource("GDScript_8bs16") - -[node name="BackgroundSprite" type="AnimatedSprite2D" parent="Visual"] +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] unique_name_in_owner = true clip_children = 2 +scale = Vector2(0.6, 0.6) sprite_frames = SubResource("SpriteFrames_cu2at") frame = 1 -[node name="void_stuff" parent="Visual/BackgroundSprite" instance=ExtResource("3_ipd1f")] +[node name="void_stuff" parent="AnimatedSprite2D" instance=ExtResource("3_ipd1f")] -[node name="StickyNoteAncor" type="Node2D" parent="Visual/BackgroundSprite"] +[node name="StickyNoteAncor" type="Node2D" parent="AnimatedSprite2D"] unique_name_in_owner = true position = Vector2(-109.413, 100.642) scale = Vector2(1.66667, 1.66667) diff --git a/src/logic-scenes/board/void_stuff.gd b/src/logic-scenes/board/void_stuff.gd new file mode 100644 index 0000000..56e79f1 --- /dev/null +++ b/src/logic-scenes/board/void_stuff.gd @@ -0,0 +1,35 @@ +extends Node2D + +@onready var particles = $GPUParticles2D +@onready var sprite = $Sprite2D +@onready var initial_position := position +@onready var parent : Node2D +var noise_position := randf() +var noise: Noise = FastNoiseLite.new() + +func _ready() -> void: + State.settings_changed.connect(_on_settings_updated) + + parent = get_parent() + +func _process(delta): + + if not State.reduce_motion: + + noise_position += delta * 10 + + var random_position := Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position)) + + random_position = random_position.normalized() * pow(random_position.length()*2, 3) * 5 + + parent.position = initial_position - random_position + + parent.rotation = noise.get_noise_1d(noise_position*10) * random_position.length() * 0.01 + + particles.position = random_position + + else: position = initial_position + +func _on_settings_updated(): + particles.visible = !State.reduce_motion + sprite.visible = State.reduce_motion diff --git a/src/logic-scenes/board/void_stuff.gd.uid b/src/logic-scenes/board/void_stuff.gd.uid new file mode 100644 index 0000000..068cc41 --- /dev/null +++ b/src/logic-scenes/board/void_stuff.gd.uid @@ -0,0 +1 @@ +uid://cwgrf3yofi1va diff --git a/src/logic-scenes/board/void_stuff.tscn b/src/logic-scenes/board/void_stuff.tscn index 1199736..a21bdd0 100644 --- a/src/logic-scenes/board/void_stuff.tscn +++ b/src/logic-scenes/board/void_stuff.tscn @@ -15,25 +15,25 @@ var noise: Noise = FastNoiseLite.new() func _ready() -> void: State.settings_changed.connect(_on_settings_updated) - + parent = get_parent() func _process(delta): - + if not State.reduce_motion: - + noise_position += delta * 10 - + var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position)) - + random_position = random_position.normalized() * pow(random_position.length()*2, 3) * 5 - + parent.position = initial_position - random_position - + parent.rotation = noise.get_noise_1d(noise_position*10) * random_position.length() * 0.01 - + particles.position = random_position - + else: position = initial_position func _on_settings_updated():