signalis-eb/godot/addons/FreeControl/main.gd
2025-06-17 01:26:30 -04:00

258 lines
6.7 KiB
GDScript

# Made by Xavier Alvarez. A part of the "FreeControl" Godot addon.
@tool
extends EditorPlugin
const GLOBAL_FOLDER := "res://addons/FreeControl/src/Other/Global/"
const CUSTOM_CLASS_FOLDER := "res://addons/FreeControl/src/CustomClasses/"
const ICON_FOLDER := "res://addons/FreeControl/assets/icons/CustomType/"
func _enter_tree() -> void:
# AnimatableControls
# Control
add_custom_type(
"AnimatableControl",
"Container",
load(CUSTOM_CLASS_FOLDER + "AnimatableControl/control/AnimatableControl.gd"),
load(ICON_FOLDER + "AnimatableControl.svg")
)
add_custom_type(
"AnimatableScrollControl",
"Container",
load(CUSTOM_CLASS_FOLDER + "AnimatableControl/control/AnimatableScrollControl.gd"),
load(ICON_FOLDER + "AnimatableScrollControl.svg")
)
add_custom_type(
"AnimatableZoneControl",
"Container",
load(CUSTOM_CLASS_FOLDER + "AnimatableControl/control/AnimatableZoneControl.gd"),
load(ICON_FOLDER + "AnimatableZoneControl.svg")
)
add_custom_type(
"AnimatableVisibleControl",
"Container",
load(CUSTOM_CLASS_FOLDER + "AnimatableControl/control/AnimatableVisibleControl.gd"),
load(ICON_FOLDER + "AnimatableVisibleControl.svg")
)
# Mount
add_custom_type(
"AnimatableMount",
"Control",
load(CUSTOM_CLASS_FOLDER + "AnimatableControl/mount/AnimatableMount.gd"),
load(ICON_FOLDER + "AnimatableMount.svg")
)
add_custom_type(
"AnimatableTransformationMount",
"Control",
load(CUSTOM_CLASS_FOLDER + "AnimatableControl/mount/AnimatableTransformationMount.gd"),
load(ICON_FOLDER + "AnimatableTransformationMount.svg")
)
# Buttons
# Base
add_custom_type(
"AnimatedSwitch",
"BaseButton",
load(CUSTOM_CLASS_FOLDER + "Buttons/Base/AnimatedSwitch.gd"),
load(ICON_FOLDER + "AnimatedSwitch.svg")
)
add_custom_type(
"HoldButton",
"BaseButton",
load(CUSTOM_CLASS_FOLDER + "Buttons/Base/HoldButton.gd"),
load(ICON_FOLDER + "HoldButton.svg")
)
# MotionCheck
add_custom_type(
"BoundsCheck",
"Control",
load(CUSTOM_CLASS_FOLDER + "Buttons/Base/MotionCheck/BoundsCheck.gd"),
load(ICON_FOLDER + "BoundsCheck.svg")
)
add_custom_type(
"DistanceCheck",
"Control",
load(CUSTOM_CLASS_FOLDER + "Buttons/Base/MotionCheck/DistanceCheck.gd"),
load(ICON_FOLDER + "DistanceCheck.svg")
)
add_custom_type(
"MotionCheck",
"Control",
load(CUSTOM_CLASS_FOLDER + "Buttons/Base/MotionCheck/MotionCheck.gd"),
load(ICON_FOLDER + "MotionCheck.svg")
)
# Complex
add_custom_type(
"ModulateTransitionButton",
"Container",
load(CUSTOM_CLASS_FOLDER + "Buttons/Complex/ModulateTransitionButton.gd"),
load(ICON_FOLDER + "ModulateTransitionButton.svg")
)
add_custom_type(
"StyleTransitionButton",
"Container",
load(CUSTOM_CLASS_FOLDER + "Buttons/Complex/StyleTransitionButton.gd"),
load(ICON_FOLDER + "StyleTransitionButton.svg")
)
# Carousel
add_custom_type(
"Carousel",
"Container",
load(CUSTOM_CLASS_FOLDER + "Carousel/Carousel.gd"),
load(ICON_FOLDER + "Carousel.svg")
)
# CircularContainer
add_custom_type(
"CircularContainer",
"Container",
load(CUSTOM_CLASS_FOLDER + "CircularContainer/CircularContainer.gd"),
load(ICON_FOLDER + "CircularContainer.svg")
)
# Drawer
add_custom_type(
"Drawer",
"Container",
load(CUSTOM_CLASS_FOLDER + "Drawer/Drawer.gd"),
load(ICON_FOLDER + "Drawer.svg")
)
# PaddingContainer
add_custom_type(
"PaddingContainer",
"Container",
load(CUSTOM_CLASS_FOLDER + "PaddingContainer/PaddingContainer.gd"),
load(ICON_FOLDER + "PaddingContainer.svg")
)
# ProportionalContainer
add_custom_type(
"ProportionalContainer",
"Container",
load(CUSTOM_CLASS_FOLDER + "ProportionalContainer/ProportionalContainer.gd"),
load(ICON_FOLDER + "ProportionalContainer.svg")
)
# Routers
add_custom_type(
"RouterStack",
"Container",
load(CUSTOM_CLASS_FOLDER + "Routers/RouterStack.gd"),
load(ICON_FOLDER + "RouterStack.svg")
)
# Base
add_custom_type(
"Page",
"Container",
load(CUSTOM_CLASS_FOLDER + "Routers/Base/Page.gd"),
load(ICON_FOLDER + "Page.svg")
)
add_custom_type(
"PageInfo",
"Resource",
load(CUSTOM_CLASS_FOLDER + "Routers/Base/PageInfo.gd"),
load(ICON_FOLDER + "PageInfo.svg")
)
# SizeControllers
# MaxSizeContainer
add_custom_type(
"MaxSizeContainer",
"Container",
load(CUSTOM_CLASS_FOLDER + "SizeController/MaxSizeContainer.gd"),
load(ICON_FOLDER + "MaxSizeContainer.svg")
)
# MaxRatioContainer
add_custom_type(
"MaxRatioContainer",
"Container",
load(CUSTOM_CLASS_FOLDER + "SizeController/MaxRatioContainer.gd"),
load(ICON_FOLDER + "MaxRatioContainer.svg")
)
# SwapContainer
add_custom_type(
"SwapContainer",
"Container",
load(CUSTOM_CLASS_FOLDER + "SwapContainer/SwapContainer.gd"),
load(ICON_FOLDER + "SwapContainer.svg")
)
# TransitionContainers
add_custom_type(
"ModulateTransitionContainer",
"Container",
load(CUSTOM_CLASS_FOLDER + "TransitionContainers/ModulateTransitionContainer.gd"),
load(ICON_FOLDER + "ModulateTransitionContainer.svg")
)
add_custom_type(
"StyleTransitionContainer",
"Container",
load(CUSTOM_CLASS_FOLDER + "TransitionContainers/StyleTransitionContainer.gd"),
load(ICON_FOLDER + "StyleTransitionContainer.svg")
)
add_custom_type(
"StyleTransitionPanel",
"Container",
load(CUSTOM_CLASS_FOLDER + "TransitionContainers/StyleTransitionPanel.gd"),
load(ICON_FOLDER + "StyleTransitionPanel.svg")
)
func _exit_tree() -> void:
# AnimatableControls
# Control
remove_custom_type("AnimatableControl")
remove_custom_type("AnimatableScrollControl")
remove_custom_type("AnimatableZoneControl")
remove_custom_type("AnimatableVisibleControl")
# Mount
remove_custom_type("AnimatableMount")
remove_custom_type("AnimatableTransformationMount")
# Buttons
# Base
remove_custom_type("AnimatedSwitch")
remove_custom_type("HoldButton")
# MotionCheck
remove_custom_type("BoundsCheck")
remove_custom_type("DistanceCheck")
remove_custom_type("MotionCheck")
# Complex
remove_custom_type("ModulateTransitionButton")
remove_custom_type("StyleTransitionButton")
# Carousel
remove_custom_type("Carousel")
# CircularContainer
remove_custom_type("CircularContainer")
# Drawer
remove_custom_type("Drawer")
# PaddingContainer
remove_custom_type("PaddingContainer")
# ProportionalContainer
remove_custom_type("ProportionalContainer")
# Routers
remove_custom_type("RouterStack")
# Base
remove_custom_type("Page")
remove_custom_type("PageInfo")
# SizeControllers
remove_custom_type("MaxSizeContainer")
remove_custom_type("MaxRatioContainer")
# SwapContainer
remove_custom_type("SwapContainer")
# TransitionContainers
remove_custom_type("ModulateTransitionContainer")
remove_custom_type("StyleTransitionContainer")
remove_custom_type("StyleTransitionPanel")