From 66a4c4fa46ab3f627b999b59c481dfea89360536 Mon Sep 17 00:00:00 2001 From: rendo Date: Mon, 6 Apr 2026 10:51:07 +0500 Subject: [PATCH] Categorical crossingover --- godot-pvz-genetics/scenes/world.tscn | 1 - godot-pvz-genetics/ui/debug_modifiers.gd | 7 ++----- .../src/godot_wrapper/reference_modifiers.rs | 12 +++++++++++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/godot-pvz-genetics/scenes/world.tscn b/godot-pvz-genetics/scenes/world.tscn index 4dbd301..fd4e232 100644 --- a/godot-pvz-genetics/scenes/world.tscn +++ b/godot-pvz-genetics/scenes/world.tscn @@ -53,6 +53,5 @@ text = "Категориальная трансформация" godot_genome_a = NodePath("../../GenomeA") godot_genome_b = NodePath("../../GenomeB") -[connection signal="genome_updated" from="GenomeA" to="CanvasLayer/HBoxContainer" method="_on_genome_a_genome_updated"] [connection signal="pressed" from="CanvasLayer/HBoxContainer/Allelic" to="CanvasLayer/HBoxContainer" method="_on_allelic_pressed"] [connection signal="pressed" from="CanvasLayer/HBoxContainer/Categoric" to="CanvasLayer/HBoxContainer" method="_on_categoric_pressed"] diff --git a/godot-pvz-genetics/ui/debug_modifiers.gd b/godot-pvz-genetics/ui/debug_modifiers.gd index ccbea4a..2a97896 100644 --- a/godot-pvz-genetics/ui/debug_modifiers.gd +++ b/godot-pvz-genetics/ui/debug_modifiers.gd @@ -7,8 +7,5 @@ func _on_allelic_pressed() -> void: func _on_categoric_pressed() -> void: - pass # Replace with function body. - - -func _on_genome_a_genome_updated() -> void: - print("test") + reference_pair_modifier.categoric_crossingover() + diff --git a/rust-pvz-genetics/src/godot_wrapper/reference_modifiers.rs b/rust-pvz-genetics/src/godot_wrapper/reference_modifiers.rs index 4df5341..71d100f 100644 --- a/rust-pvz-genetics/src/godot_wrapper/reference_modifiers.rs +++ b/rust-pvz-genetics/src/godot_wrapper/reference_modifiers.rs @@ -47,7 +47,17 @@ impl ReferencePairModifier { let (genome_a,genome_b) = pair.allelic_crossingover(None); self.godot_genome_a.as_mut().unwrap().bind_mut().set_genome(genome_a); self.godot_genome_b.as_mut().unwrap().bind_mut().set_genome(genome_b); - godot_print!("Kukayan"); + } + else { + godot_error!("Modifier is not initialized!"); + } + } + #[func] + fn categoric_crossingover(&mut self) { + if let Some(pair) = self.modifier.as_mut() { + let (genome_a,genome_b) = pair.categoric_crossingover(None); + self.godot_genome_a.as_mut().unwrap().bind_mut().set_genome(genome_a); + self.godot_genome_b.as_mut().unwrap().bind_mut().set_genome(genome_b); } else { godot_error!("Modifier is not initialized!");