xiandie/addons/project-statistics/plugin.gd
2024-12-23 09:30:31 +08:00

43 lines
1.2 KiB
GDScript

@tool
extends EditorPlugin
const IGNORE_PROPERTY: String = "statistics/ignore"
const FORCE_INCLUDE_PROPERTY: String = "statistics/force_include"
var DEFAULT_IGNORE = PackedStringArray([
"res://.import/*",
"res://.github/*",
"res://addons/*",
"*.import"
])
var statistics_preview: PackedScene = preload("./nodes/StatisticsPreview.tscn")
var preview: StatisticsPreview
func _enter_tree() -> void:
preview = statistics_preview.instantiate()
preview.editor_interface = get_editor_interface()
add_control_to_bottom_panel(preview, "Statistics")
_setup()
func _exit_tree() -> void:
remove_control_from_bottom_panel(preview)
preview.editor_interface = null
func _setup() -> void:
if not ProjectSettings.has_setting(IGNORE_PROPERTY):
ProjectSettings.set_setting(IGNORE_PROPERTY, DEFAULT_IGNORE)
ProjectSettings.add_property_info({
name = IGNORE_PROPERTY,
type = TYPE_PACKED_STRING_ARRAY
})
ProjectSettings.set_initial_value(IGNORE_PROPERTY, DEFAULT_IGNORE)
if not ProjectSettings.has_setting(FORCE_INCLUDE_PROPERTY):
ProjectSettings.set_setting(FORCE_INCLUDE_PROPERTY, PackedStringArray())
ProjectSettings.add_property_info({
name = FORCE_INCLUDE_PROPERTY,
type = TYPE_PACKED_STRING_ARRAY
})