antichamber-at-home/addons/portals/plugin.gd

40 lines
1.4 KiB
GDScript

@tool
extends EditorPlugin
const ExitOutlinesGizmo = preload("uid://pk5ua52g54m1") # gizmos/portal_exit_outline.gd
var exit_outline_gizmo
const ForwardDirGizmo = preload("uid://cacoywhcpn4ja") # gizmos/portal_forward_direction.gd
var forward_dir_gizmo
func _enter_tree() -> void:
PortalSettings.init_setting("gizmo_exit_outline_active", true, true)
PortalSettings.add_info(AtExport.bool_("gizmo_exit_outline_active"))
PortalSettings.init_setting("gizmo_exit_outline_color", Color.DEEP_SKY_BLUE, true)
PortalSettings.add_info(AtExport.color_no_alpha("gizmo_exit_outline_color"))
PortalSettings.init_setting("gizmo_forward_active", true, true)
PortalSettings.add_info(AtExport.bool_("gizmo_forward_active"))
PortalSettings.init_setting("gizmo_forward_color", Color.HOT_PINK, true)
PortalSettings.add_info(AtExport.color_no_alpha("gizmo_forward_color"))
PortalSettings.init_setting("portals_group_name", "portals")
PortalSettings.add_info(AtExport.string("portals_group_name"))
if PortalSettings.get_setting("gizmo_exit_outline_active"):
exit_outline_gizmo = ExitOutlinesGizmo.new()
add_node_3d_gizmo_plugin(exit_outline_gizmo)
if PortalSettings.get_setting("gizmo_forward_active"):
forward_dir_gizmo = ForwardDirGizmo.new()
add_node_3d_gizmo_plugin(forward_dir_gizmo)
func _exit_tree() -> void:
if exit_outline_gizmo:
remove_node_3d_gizmo_plugin(exit_outline_gizmo)
if forward_dir_gizmo:
remove_node_3d_gizmo_plugin(forward_dir_gizmo)