From a0c7caf7271838de02c83b459980d11c154488d8 Mon Sep 17 00:00:00 2001 From: Tucan444 Date: Mon, 6 Sep 2021 16:03:18 +0200 Subject: [PATCH] _ --- UI/Objects/Multiscene.py | 2 +- UI/Objects/Scene.py | 2 +- .../RopeInteractiveDot.py | 21 ++++++++++--------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/UI/Objects/Multiscene.py b/UI/Objects/Multiscene.py index 1702ba5..3fb795d 100644 --- a/UI/Objects/Multiscene.py +++ b/UI/Objects/Multiscene.py @@ -93,7 +93,7 @@ class Multiscene(Scene): subscene.progress() def get_i_objects(self): - i_objects = copy.copy(self.i_objects) + i_objects = [[copy.copy(self.i_objects), self.mouse_pos]] for subscene in self.subscenes: i_objects += subscene.get_i_objects() diff --git a/UI/Objects/Scene.py b/UI/Objects/Scene.py index d79ef01..2df408e 100644 --- a/UI/Objects/Scene.py +++ b/UI/Objects/Scene.py @@ -56,4 +56,4 @@ class Scene(Screen): pass def get_i_objects(self): - return self.i_objects + return [[self.i_objects, self.mouse_pos]] diff --git a/UI/Objects/nr_objects/controllable_objects/RopeInteractiveDot.py b/UI/Objects/nr_objects/controllable_objects/RopeInteractiveDot.py index 85429fa..10658c1 100644 --- a/UI/Objects/nr_objects/controllable_objects/RopeInteractiveDot.py +++ b/UI/Objects/nr_objects/controllable_objects/RopeInteractiveDot.py @@ -18,16 +18,17 @@ class RopeInteractiveDot: self.position = mouse_pos if clicked: - for object_ in self.scene.get_i_objects(): - if object_.__class__.__name__ == "Rope": - for node in object_.nodes: - if node.locked is False: - if math.sqrt(sum((node.position - self.position) ** 2)) < self.forcefield_range: - force_vector = node.position - self.position - full_force_vector = (force_vector / math.sqrt(sum(force_vector ** 2))) * self.forcefield_range - force_vector = full_force_vector - force_vector - force_vector /= self.forcefield_range / self.force + for object_batch in self.scene.get_i_objects(): + for object_ in object_batch[0]: + if object_.__class__.__name__ == "Rope": + for node in object_.nodes: + if node.locked is False: + if math.sqrt(sum((node.position - self.position) ** 2)) < self.forcefield_range: + force_vector = node.position - self.position + full_force_vector = (force_vector / math.sqrt(sum(force_vector ** 2))) * self.forcefield_range + force_vector = full_force_vector - force_vector + force_vector /= self.forcefield_range / self.force - node.position += force_vector + node.position += force_vector