43 lines
1.2 KiB
GDScript3
43 lines
1.2 KiB
GDScript3
|
@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
|
||
|
})
|