public void BindController(LevelPresenter controller)
{
if (_controller != null) {
_controller.LevelGeometry = null;
_controller.PointerEventResponderChanged -= PointerEventResponderChanged;
_controller.ContextMenuActivated -= ContextMenuActivatedHandler;
}
_controller = controller;
if (_controller != null) {
_controller.LevelGeometry = _layerControl.LevelGeometry;
_controller.PointerEventResponderChanged += PointerEventResponderChanged;
_controller.ContextMenuActivated += ContextMenuActivatedHandler;
_pointerController.Responder = _controller.PointerEventResponder;
_root = new GroupLayer(controller.RootLayer);
_layerControl.RootLayer = _root;
_layerControl.TextureCache.SourcePool = _controller.TexturePool;
_layerControl.ReferenceOriginX = _controller.Level.OriginX;
_layerControl.ReferenceOriginY = _controller.Level.OriginY;
_layerControl.ReferenceWidth = _controller.Level.Width;
_layerControl.ReferenceHeight = _controller.Level.Height;
}
else {
_root = null;
_layerControl.RootLayer = null;
_layerControl.TextureCache.SourcePool = null;
_pointerController.Responder = null;
}
}