mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-22 19:43:55 +00:00
Add enemy creation and viewer functionality with filtering options
This commit is contained in:
parent
e735060f93
commit
18683c0680
32 changed files with 1009 additions and 411 deletions
|
|
@ -10,6 +10,7 @@ const SETTINGS_PATH = "user://weapon_creator_settings.tres"
|
|||
signal create_weapon_requested(weapon_data: Dictionary)
|
||||
signal create_bullet_requested(bullet_data: Dictionary)
|
||||
signal create_item_requested(item_data: Dictionary)
|
||||
signal create_enemy_requested(enemy_data: Dictionary)
|
||||
|
||||
# UI elements
|
||||
var clear_button: Button
|
||||
|
|
@ -18,6 +19,7 @@ var log_output: RichTextLabel
|
|||
var weapon_viewer: PanelContainer
|
||||
var bullet_viewer: PanelContainer
|
||||
var item_viewer: PanelContainer
|
||||
var enemy_viewer: PanelContainer
|
||||
var tab_container: TabContainer
|
||||
|
||||
var _is_creating: bool = false
|
||||
|
|
@ -123,11 +125,22 @@ func _build_ui() -> void:
|
|||
item_viewer.item_duplication_started.connect(_on_item_duplication_started)
|
||||
tab_container.add_child(item_viewer)
|
||||
|
||||
# Enemy Viewer Tab
|
||||
var enemy_viewer_script = load("res://addons/weapon_creator/EnemyViewer.gd")
|
||||
enemy_viewer = PanelContainer.new()
|
||||
enemy_viewer.set_script(enemy_viewer_script)
|
||||
enemy_viewer.name = "Enemies"
|
||||
enemy_viewer.duplicate_enemy_requested.connect(_on_enemy_data_confirmed)
|
||||
enemy_viewer.enemy_deleted.connect(_on_enemy_deleted)
|
||||
enemy_viewer.enemy_duplication_started.connect(_on_enemy_duplication_started)
|
||||
tab_container.add_child(enemy_viewer)
|
||||
|
||||
# Setup after adding to scene tree
|
||||
if _editor_interface:
|
||||
weapon_viewer.setup(_editor_interface, self)
|
||||
bullet_viewer.setup(_editor_interface, self)
|
||||
item_viewer.setup(_editor_interface, self)
|
||||
enemy_viewer.setup(_editor_interface, self)
|
||||
|
||||
# Log header with label and clear button
|
||||
var log_header_hbox = HBoxContainer.new()
|
||||
|
|
@ -184,11 +197,13 @@ func _on_options_pressed() -> void:
|
|||
settings = WeaponCreatorSettings.new()
|
||||
# Refresh all viewers to pick up new settings
|
||||
if weapon_viewer:
|
||||
weapon_viewer.call("refresh_weapons")
|
||||
weapon_viewer.call("refresh")
|
||||
if bullet_viewer:
|
||||
bullet_viewer.call("refresh_bullets")
|
||||
bullet_viewer.call("refresh")
|
||||
if item_viewer:
|
||||
item_viewer.call("refresh_items")
|
||||
item_viewer.call("refresh")
|
||||
if enemy_viewer:
|
||||
enemy_viewer.call("refresh")
|
||||
)
|
||||
|
||||
func _on_weapon_deleted(weapon_name: String, weapon_path: String, item_path: String) -> void:
|
||||
|
|
@ -228,6 +243,21 @@ func _on_item_deleted(item_name: String, item_path: String) -> void:
|
|||
func _on_item_duplication_started(item_name: String) -> void:
|
||||
pass
|
||||
|
||||
func _on_enemy_data_confirmed(enemy_data: Dictionary) -> void:
|
||||
if _is_creating:
|
||||
return
|
||||
|
||||
_is_creating = true
|
||||
log_output.clear()
|
||||
|
||||
create_enemy_requested.emit(enemy_data)
|
||||
|
||||
func _on_enemy_deleted(enemy_name: String, enemy_path: String) -> void:
|
||||
pass
|
||||
|
||||
func _on_enemy_duplication_started(enemy_name: String, is_3d: bool) -> void:
|
||||
pass
|
||||
|
||||
func add_log(message: String, color: Color = Color.WHITE) -> void:
|
||||
# Add colored message to log output
|
||||
log_output.append_text("[color=#" + color.to_html(false) + "]" + message + "[/color]\n")
|
||||
|
|
@ -236,8 +266,10 @@ func set_creation_complete() -> void:
|
|||
_is_creating = false
|
||||
|
||||
if weapon_viewer:
|
||||
weapon_viewer.call("refresh_weapons")
|
||||
weapon_viewer.call("refresh")
|
||||
if bullet_viewer:
|
||||
bullet_viewer.call("refresh_bullets")
|
||||
bullet_viewer.call("refresh")
|
||||
if item_viewer:
|
||||
item_viewer.call("refresh_items")
|
||||
item_viewer.call("refresh")
|
||||
if enemy_viewer:
|
||||
enemy_viewer.call("refresh")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue