OnCanvasElement node now takes into account anchoring points

This commit is contained in:
QuantumCoderQC 2020-04-15 20:15:36 +02:00
parent d815a5fc98
commit 91988372fd

View file

@ -1,5 +1,6 @@
package armory.logicnode;
import zui.Canvas.Anchor;
import iron.Scene;
import armory.trait.internal.CanvasScript;
@ -52,48 +53,31 @@ class OnCanvasElementNode extends LogicNode {
var mouseY = mouse.y;
var x2 = x1 + canvas.getElement(element).width;
var y2 = y1 + canvas.getElement(element).height;
switch(anchor)
{
case 1:
{
case Top:
mouseX -= cx/2 - canvas.getElement(element).width/2;
}
case 2:
{
case TopRight:
mouseX -= cx - canvas.getElement(element).width;
}
case 3:
{
case CenterLeft:
mouseY -= cy/2 - canvas.getElement(element).height/2;
}
case 4:
{
case Anchor.Center:
mouseX -= cx/2 - canvas.getElement(element).width/2;
mouseY -= cy/2 - canvas.getElement(element).height/2;
}
case 5:
{
case CenterRight:
mouseX -= cx - canvas.getElement(element).width;
mouseY -= cy/2 - canvas.getElement(element).height/2;
}
case 6:
{
case BottomLeft:
mouseY -= cy - canvas.getElement(element).height;
}
case 7:
{
case Bottom:
mouseX -= cx/2 - canvas.getElement(element).width/2;
mouseY -= cy - canvas.getElement(element).height;
}
case 8:
{
case BottomRight:
mouseX -= cx - canvas.getElement(element).width;
mouseY -= cy - canvas.getElement(element).height;
}
}
if((mouseX >= x1) && (mouseX <= x2))
{
if((mouseY >= y1) && (mouseY <= y2))