From ea9eb54955b4d207bcd36cce6314d526a736736f Mon Sep 17 00:00:00 2001 From: OleSTEEP Date: Sat, 17 Feb 2024 00:57:49 +0300 Subject: [PATCH] PIXI Controls: Safe area in Edit Mode --- www.rus/js/plugins/VND_ONSControls.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/www.rus/js/plugins/VND_ONSControls.js b/www.rus/js/plugins/VND_ONSControls.js index d72b9ac..1655218 100644 --- a/www.rus/js/plugins/VND_ONSControls.js +++ b/www.rus/js/plugins/VND_ONSControls.js @@ -263,6 +263,19 @@ ONSControls.updateButtons = function() { console.log("ONSControls: Controls updated"); } //============================================================================= +// * Check if element in safe area +//============================================================================= +ONSControls.isSafeArea = function(element, position) { + if (position.x - element.width/2 <= ConfigManager.ONSConfig.safeArea || + position.x + element.width/2 >= this._controlsCanvas.screen.width - ConfigManager.ONSConfig.safeArea || + position.y - element.width/2 <= ConfigManager.ONSConfig.safeArea || + position.y + element.width/2 >= this._controlsCanvas.screen.height - ConfigManager.ONSConfig.safeArea) { + return false; + } else { + return true; + } +} +//============================================================================= // * Setup controls touch events //============================================================================= ONSControls.setupInteractive = function () { @@ -355,8 +368,10 @@ ONSControls.setupDragNDrop = function(element) { } var onMove = function(event) { if (element) { - element.parent.toLocal(event.data.global, null, element.position); - ConfigManager.ONSConfig.customPos = true; + if (ONSControls.isSafeArea(element, event.data.global)) { + element.parent.toLocal(event.data.global, null, element.position); + ConfigManager.ONSConfig.customPos = true; + } }; } var onEnd = function(event) {