-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapply_integration.ps1
More file actions
108 lines (97 loc) · 4.51 KB
/
apply_integration.ps1
File metadata and controls
108 lines (97 loc) · 4.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# PowerShell script to integrate VectorAI sidebar into editor_node.cpp
# Read the original file
$content = Get-Content "editor\editor_node.cpp"
$newContent = @()
$includeAdded = $false
$methodAdded = $false
$dockAdded = $false
$buttonAdded = $false
$layoutAdded = $false
for ($i = 0; $i -lt $content.Length; $i++) {
$line = $content[$i]
# 1. Add include after editor_theme_manager.h
if ($line -match '#include "editor/themes/editor_theme_manager.h"' -and !$includeAdded) {
$newContent += $line
$newContent += '#include "editor/vector_ai/vector_ai_sidebar.h"'
$includeAdded = $true
Write-Host "Added include statement"
continue
}
# 2. Add method after _version_control_menu_option
if ($line -match '^\s*\}\s*$' -and $i -gt 0 -and $content[$i-1] -match 'break;' -and !$methodAdded) {
if ($content[$i-10..$i] -join '' -match '_version_control_menu_option') {
$newContent += $line
$newContent += ''
$newContent += 'void EditorNode::_on_vector_ai_pressed() {'
$newContent += ' // Toggle the VectorAI sidebar visibility'
$newContent += ' vector_ai_sidebar_visible = !vector_ai_sidebar_visible;'
$newContent += ' vector_ai_sidebar->set_visible(vector_ai_sidebar_visible);'
$newContent += ' '
$newContent += ' // Update the button state'
$newContent += ' vector_ai_button->set_pressed(vector_ai_sidebar_visible);'
$newContent += '}'
$methodAdded = $true
Write-Host "Added method implementation"
continue
}
}
# 3. Add dock after history_dock
if ($line -match 'editor_dock_manager->add_dock\(history_dock' -and !$dockAdded) {
$newContent += $line
$newContent += ''
$newContent += ' // VectorAI: Bottom right, for AI assistance'
$newContent += ' vector_ai_sidebar = memnew(VectorAISidebar);'
$newContent += ' editor_dock_manager->add_dock(vector_ai_sidebar, TTR("VectorAI"), EditorDockManager::DOCK_SLOT_RIGHT_BR, nullptr, "Script");'
$newContent += ' vector_ai_sidebar_visible = true;'
$dockAdded = $true
Write-Host "Added dock registration"
continue
}
# 4. Add button after main_editor_button_hb creation
if ($line -match 'main_editor_button_hb = memnew\(HBoxContainer\)' -and !$buttonAdded) {
$newContent += $line
# Find the next few lines to add after title_bar->add_child(main_editor_button_hb)
$j = $i + 1
while ($j -lt $content.Length) {
$nextLine = $content[$j]
$newContent += $nextLine
if ($nextLine -match 'title_bar->add_child\(main_editor_button_hb\)') {
$newContent += ''
$newContent += ' // Create VectorAI toggle button'
$newContent += ' vector_ai_button = memnew(Button);'
$newContent += ' vector_ai_button->set_theme_type_variation("FlatButton");'
$newContent += ' vector_ai_button->set_text("🤖");'
$newContent += ' vector_ai_button->set_toggle_mode(true);'
$newContent += ' vector_ai_button->set_focus_mode(Control::FOCUS_NONE);'
$newContent += ' vector_ai_button->set_pressed(true);'
$newContent += ' vector_ai_button->set_tooltip_text("Toggle VectorAI Sidebar");'
$newContent += ' vector_ai_button->connect(SceneStringName(pressed), callable_mp(this, &EditorNode::_on_vector_ai_pressed));'
$newContent += ' title_bar->add_child(vector_ai_button);'
$buttonAdded = $true
Write-Host "Added button creation"
$i = $j
break
}
$j++
}
continue
}
# 5. Add layout after dock_5 configuration
if ($line -match 'default_layout->set_value\(docks_section, "dock_5"' -and !$layoutAdded) {
$newContent += $line
$newContent += ' default_layout->set_value(docks_section, "dock_6", "VectorAI");'
$layoutAdded = $true
Write-Host "Added layout configuration"
continue
}
# Add the current line
$newContent += $line
}
# Write the modified content back to the file
$newContent | Set-Content "editor\editor_node.cpp"
Write-Host "Integration complete!"
Write-Host "Include added: $includeAdded"
Write-Host "Method added: $methodAdded"
Write-Host "Dock added: $dockAdded"
Write-Host "Button added: $buttonAdded"
Write-Host "Layout added: $layoutAdded"