pandemonium_engine_minimal/doc/classes/VisibilityEnabler.xml
2023-12-14 23:24:47 +01:00

51 lines
2.4 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="VisibilityEnabler" inherits="VisibilityNotifier" version="4.2">
<brief_description>
Enables certain nodes only when approximately visible.
</brief_description>
<description>
The VisibilityEnabler will disable [RigidBody] and [AnimationPlayer] nodes when they are not visible. It will only affect other nodes within the same scene as the VisibilityEnabler itself.
If you just want to receive notifications, use [VisibilityNotifier] instead.
[b]Note:[/b] VisibilityEnabler uses an approximate heuristic for performance reasons. It doesn't take walls and other occlusion into account (unless you are using [Portal]s). The heuristic is an implementation detail and may change in future versions. If you need precise visibility checking, use another method such as adding an [Area] node as a child of a [Camera] node and/or [method Vector3.dot].
[b]Note:[/b] VisibilityEnabler will not affect nodes added after scene initialization.
</description>
<tutorials>
</tutorials>
<methods>
<method name="is_enabler_enabled" qualifiers="const">
<return type="bool" />
<argument index="0" name="enabler" type="int" enum="VisibilityEnabler.Enabler" />
<description>
Returns whether the enabler identified by given [enum Enabler] constant is active.
</description>
</method>
<method name="set_enabler">
<return type="void" />
<argument index="0" name="enabler" type="int" enum="VisibilityEnabler.Enabler" />
<argument index="1" name="enabled" type="bool" />
<description>
Sets active state of the enabler identified by given [enum Enabler] constant.
</description>
</method>
</methods>
<members>
<member name="freeze_bodies" type="bool" setter="set_enabler" getter="is_enabler_enabled" default="true">
If [code]true[/code], [RigidBody] nodes will be paused.
</member>
<member name="pause_animations" type="bool" setter="set_enabler" getter="is_enabler_enabled" default="true">
If [code]true[/code], [AnimationPlayer] nodes will be paused.
</member>
</members>
<constants>
<constant name="ENABLER_PAUSE_ANIMATIONS" value="0" enum="Enabler">
This enabler will pause [AnimationPlayer] nodes.
</constant>
<constant name="ENABLER_FREEZE_BODIES" value="1" enum="Enabler">
This enabler will freeze [RigidBody] nodes.
</constant>
<constant name="ENABLER_MAX" value="2" enum="Enabler">
Represents the size of the [enum Enabler] enum.
</constant>
</constants>
</class>