Merge pull request #2349 from MoritzBrueckner/global-canvas-scale-nodes
Add nodes to get/set global canvas scale
This commit is contained in:
commit
73a352b76e
22
Sources/armory/logicnode/GetGlobalCanvasScaleNode.hx
Normal file
22
Sources/armory/logicnode/GetGlobalCanvasScaleNode.hx
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
package armory.logicnode;
|
||||||
|
|
||||||
|
import iron.Scene;
|
||||||
|
import armory.trait.internal.CanvasScript;
|
||||||
|
|
||||||
|
class GetGlobalCanvasScaleNode extends LogicNode {
|
||||||
|
|
||||||
|
var canvas: CanvasScript;
|
||||||
|
|
||||||
|
public function new(tree: LogicTree) {
|
||||||
|
super(tree);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if arm_ui
|
||||||
|
override function get(from: Int): Dynamic {
|
||||||
|
canvas = Scene.active.getTrait(CanvasScript);
|
||||||
|
if (canvas == null) canvas = Scene.active.camera.getTrait(CanvasScript);
|
||||||
|
|
||||||
|
return canvas.getUiScale();
|
||||||
|
}
|
||||||
|
#end
|
||||||
|
}
|
25
Sources/armory/logicnode/SetGlobalCanvasScaleNode.hx
Normal file
25
Sources/armory/logicnode/SetGlobalCanvasScaleNode.hx
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package armory.logicnode;
|
||||||
|
|
||||||
|
import iron.Scene;
|
||||||
|
import armory.trait.internal.CanvasScript;
|
||||||
|
|
||||||
|
class SetGlobalCanvasScaleNode extends LogicNode {
|
||||||
|
|
||||||
|
var canvas: CanvasScript;
|
||||||
|
var factor: Float;
|
||||||
|
|
||||||
|
public function new(tree: LogicTree) {
|
||||||
|
super(tree);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if arm_ui
|
||||||
|
override function run(from: Int) {
|
||||||
|
factor = inputs[1].get();
|
||||||
|
canvas = Scene.active.getTrait(CanvasScript);
|
||||||
|
if (canvas == null) canvas = Scene.active.camera.getTrait(CanvasScript);
|
||||||
|
|
||||||
|
canvas.setUiScale(factor);
|
||||||
|
runOutput(0);
|
||||||
|
}
|
||||||
|
#end
|
||||||
|
}
|
|
@ -114,13 +114,19 @@ class CanvasScript extends Trait {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set UI scale factor.
|
Set the UI scale factor.
|
||||||
* @param factor Scale factor.
|
**/
|
||||||
*/
|
public inline function setUiScale(factor: Float) {
|
||||||
public function setUiScale(factor:Float) {
|
|
||||||
cui.setScale(factor);
|
cui.setScale(factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Get the UI scale factor.
|
||||||
|
**/
|
||||||
|
public inline function getUiScale(): Float {
|
||||||
|
return cui.ops.scaleFactor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set visibility of canvas
|
* Set visibility of canvas
|
||||||
* @param visible Whether canvas should be visible or not
|
* @param visible Whether canvas should be visible or not
|
||||||
|
|
11
blender/arm/logicnode/canvas/LN_get_global_canvas_scale.py
Normal file
11
blender/arm/logicnode/canvas/LN_get_global_canvas_scale.py
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
from arm.logicnode.arm_nodes import *
|
||||||
|
|
||||||
|
|
||||||
|
class GetGlobalCanvasScaleNode(ArmLogicTreeNode):
|
||||||
|
"""Returns the scale of the entire UI Canvas."""
|
||||||
|
bl_idname = 'LNGetGlobalCanvasScaleNode'
|
||||||
|
bl_label = 'Get Global Canvas Scale'
|
||||||
|
arm_version = 1
|
||||||
|
|
||||||
|
def arm_init(self, context):
|
||||||
|
self.add_output('ArmFloatSocket', 'Scale')
|
14
blender/arm/logicnode/canvas/LN_set_global_canvas_scale.py
Normal file
14
blender/arm/logicnode/canvas/LN_set_global_canvas_scale.py
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
from arm.logicnode.arm_nodes import *
|
||||||
|
|
||||||
|
|
||||||
|
class SetGlobalCanvasScaleNode(ArmLogicTreeNode):
|
||||||
|
"""Sets the scale of the entire UI Canvas."""
|
||||||
|
bl_idname = 'LNSetGlobalCanvasScaleNode'
|
||||||
|
bl_label = 'Set Global Canvas Scale'
|
||||||
|
arm_version = 1
|
||||||
|
|
||||||
|
def arm_init(self, context):
|
||||||
|
self.add_input('ArmNodeSocketAction', 'In')
|
||||||
|
self.add_input('ArmFloatSocket', 'Scale', default_value=1.0)
|
||||||
|
|
||||||
|
self.add_output('ArmNodeSocketAction', 'Out')
|
Loading…
Reference in a new issue