|
@@ -15,6 +15,7 @@ from synergine2.config import Config
|
15
|
15
|
from synergine2.log import SynergineLogger
|
16
|
16
|
from synergine2.terminals import Terminal
|
17
|
17
|
from synergine2.terminals import TerminalPackage
|
|
18
|
+from synergine2_cocos2d.actor import Actor
|
18
|
19
|
from synergine2_cocos2d.layer import LayerManager
|
19
|
20
|
from synergine2_cocos2d.middleware import TMXMiddleware
|
20
|
21
|
|
|
@@ -199,6 +200,24 @@ class EditLayer(cocos.layer.Layer):
|
199
|
200
|
)
|
200
|
201
|
|
201
|
202
|
self.schedule(self.update)
|
|
203
|
+ self.selectable_actors = []
|
|
204
|
+
|
|
205
|
+ def set_selectable(self, actor: Actor) -> None:
|
|
206
|
+ self.selectable_actors.append(actor)
|
|
207
|
+ self.collision_manager.add(actor)
|
|
208
|
+
|
|
209
|
+ def unset_selectable(self, actor: Actor) -> None:
|
|
210
|
+ self.selectable_actors.remove(actor)
|
|
211
|
+ self.collision_manager.remove_tricky(actor)
|
|
212
|
+
|
|
213
|
+ def draw(self, *args, **kwargs) -> None:
|
|
214
|
+ for actor in self.selectable_actors:
|
|
215
|
+ if actor.need_update_cshape:
|
|
216
|
+ if self.collision_manager.knows(actor):
|
|
217
|
+ self.collision_manager.remove_tricky(actor)
|
|
218
|
+ actor.update_cshape()
|
|
219
|
+ self.collision_manager.add(actor)
|
|
220
|
+ actor.need_update_cshape = False
|
202
|
221
|
|
203
|
222
|
def on_enter(self):
|
204
|
223
|
super(EditLayer, self).on_enter()
|