fix: void card

This commit is contained in:
tiger tiger tiger 2026-01-22 14:56:16 +01:00
parent 350361395d
commit b79780835e
7 changed files with 72 additions and 55 deletions

View File

@ -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):

View File

@ -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

View File

@ -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="."]

View File

@ -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)

View File

@ -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

View File

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