Merge pull request 'Bug markers can be loaded and unloaded during gameplay' (#7) from in-game-marker-display into main
Reviewed-on: BattyBovine/Bugbot#7
This commit is contained in:
commit
c571c35908
@ -13,6 +13,10 @@ enum BugStatus { NEUTRAL, UNRESOLVED, IN_PROGRESS, RESOLVED }
|
||||
@export_group("")
|
||||
@export var enable_info : bool = true : set = set_info_enabled
|
||||
|
||||
const UNRESOLVED_TINT : Color = Color(0.1,0.0,0.0)
|
||||
const IN_PROGRESS_TINT : Color = Color(0.5,0.5,0.0)
|
||||
const RESOLVED_TINT : Color = Color(0.0,1.0,0.0)
|
||||
|
||||
var bug_data : BugbotBugData
|
||||
|
||||
var __arrow : MeshInstance3D
|
||||
|
||||
@ -67,7 +67,9 @@ extends CharacterBody3D
|
||||
#endregion
|
||||
|
||||
#region Private Properties
|
||||
var __bugbot_server : BugbotServerAPI
|
||||
static var __bugbot_server : BugbotServerAPI
|
||||
static var __bug_marker_root : Node
|
||||
|
||||
var __bug_report_form : BugReportForm
|
||||
|
||||
var __movement_speed : float = 5.0
|
||||
@ -240,7 +242,7 @@ func _physics_process(_delta:float) -> void:
|
||||
static func instantiate(tree:SceneTree) -> void:
|
||||
tree.root.add_child(load("res://addons/Bugbot/Scenes/bugbot_player.tscn").instantiate() as CharacterBody3D)
|
||||
|
||||
static func load_bug_markers(marker_root:Node3D, bug_list:Array) -> void:
|
||||
static func load_bug_markers(marker_root:Node, bug_list:Array) -> void:
|
||||
var bug_marker_preload : PackedScene = preload("res://addons/Bugbot/Scenes/bug_marker.tscn")
|
||||
|
||||
Bugbot.adjust_bug_marker_colours()
|
||||
@ -265,9 +267,9 @@ static func load_bug_markers(marker_root:Node3D, bug_list:Array) -> void:
|
||||
bug_marker.set_rotation_to_normal(bugbot_data.marker_normal)
|
||||
|
||||
static func adjust_bug_marker_colours() -> void:
|
||||
var unresolved_colour : Color = ProjectSettings.get_setting("bugbot/markers/unresolved/tint")
|
||||
var in_progress_colour : Color = ProjectSettings.get_setting("bugbot/markers/in_progress/tint")
|
||||
var resolved_colour : Color = ProjectSettings.get_setting("bugbot/markers/resolved/tint")
|
||||
var unresolved_colour : Color = ProjectSettings.get_setting("bugbot/markers/unresolved/tint", BugMarker.UNRESOLVED_TINT)
|
||||
var in_progress_colour : Color = ProjectSettings.get_setting("bugbot/markers/in_progress/tint", BugMarker.IN_PROGRESS_TINT)
|
||||
var resolved_colour : Color = ProjectSettings.get_setting("bugbot/markers/resolved/tint", BugMarker.RESOLVED_TINT)
|
||||
|
||||
var unresolved_material : BugMarkerMaterialPack = load("res://addons/Bugbot/Materials/BugMarker/bug_marker_unresolved.res")
|
||||
(unresolved_material.arrow as ShaderMaterial).set_shader_parameter("colour", unresolved_colour)
|
||||
@ -281,6 +283,28 @@ static func adjust_bug_marker_colours() -> void:
|
||||
(resolved_material.arrow as ShaderMaterial).set_shader_parameter("colour", resolved_colour)
|
||||
(resolved_material.icon as ShaderMaterial).set_shader_parameter("colour", resolved_colour)
|
||||
|
||||
static func __get_bug_marker_root(current_scene:Node) -> void:
|
||||
var current_scene_hash : String = current_scene.scene_file_path.sha256_text()
|
||||
var current_scene_children : Array = current_scene.get_children()
|
||||
var found_root : bool = false
|
||||
for child:Node in current_scene_children:
|
||||
if child.name == current_scene_hash:
|
||||
__bug_marker_root = child
|
||||
return
|
||||
var new_root : Node = Node.new()
|
||||
current_scene.add_child(new_root)
|
||||
new_root.name = current_scene_hash
|
||||
__bug_marker_root = new_root
|
||||
|
||||
static func show_bug_markers(current_scene:Node) -> void:
|
||||
Bugbot.__get_bug_marker_root(current_scene)
|
||||
__bugbot_server._return_list_of_bugs(current_scene.scene_file_path, __show_bug_markers_response)
|
||||
static func __show_bug_markers_response(bugs:Array) -> void:
|
||||
Bugbot.load_bug_markers(__bug_marker_root, bugs)
|
||||
|
||||
static func hide_bug_markers(current_scene:Node) -> void:
|
||||
Bugbot.__get_bug_marker_root(current_scene)
|
||||
__bug_marker_root.queue_free()
|
||||
|
||||
func __calculate_movement_speed() -> void:
|
||||
if Input.is_action_pressed(&"bugbot_movement_speed_down") or Input.is_action_just_pressed(&"bugbot_movement_speed_down"):
|
||||
@ -363,8 +387,9 @@ func __bug_report_form_data_prepared(tag_lists:Array) -> void:
|
||||
__bug_report_form.submitted.connect(__form_submitted)
|
||||
__bug_report_form.cancelled.connect(__form_cancelled)
|
||||
func __form_submitted(map_name:String, bug_position:Vector3, bug_normal:Vector3) -> void:
|
||||
__get_bug_marker_root(get_tree().current_scene)
|
||||
var marker : BugMarker = (load(bug_marker) as PackedScene).instantiate() as BugMarker
|
||||
get_tree().get_root().add_child(marker)
|
||||
__bug_marker_root.add_child(marker)
|
||||
marker.global_position = bug_position
|
||||
marker.set_rotation_to_normal(bug_normal)
|
||||
marker.marker_status = BugMarker.BugStatus.UNRESOLVED
|
||||
|
||||
@ -52,13 +52,13 @@ func __return_list_of_bugs_thread(map_name:String, callback:Callable) -> void:
|
||||
return
|
||||
|
||||
var bug_array : Array
|
||||
var resolved_labels : Array = ProjectSettings.get_setting("bugbot/reporting/gitea/status_labels/resolved_statuses")
|
||||
var in_progress_labels : Array = ProjectSettings.get_setting("bugbot/reporting/gitea/status_labels/in_progress_statuses")
|
||||
var unresolved_labels : Array = ProjectSettings.get_setting("bugbot/reporting/gitea/status_labels/unresolved_statuses")
|
||||
var resolved_labels : Array = ProjectSettings.get_setting("bugbot/reporting/gitea/status_labels/resolved_statuses", Array())
|
||||
var in_progress_labels : Array = ProjectSettings.get_setting("bugbot/reporting/gitea/status_labels/in_progress_statuses", Array())
|
||||
var unresolved_labels : Array = ProjectSettings.get_setting("bugbot/reporting/gitea/status_labels/unresolved_statuses", Array())
|
||||
|
||||
var show_resolved : bool = ProjectSettings.get_setting("bugbot/markers/resolved/show_resolved_bugs")
|
||||
var show_in_progress : bool = ProjectSettings.get_setting("bugbot/markers/in_progress/show_in_progress_bugs")
|
||||
var show_unresolved : bool = ProjectSettings.get_setting("bugbot/markers/unresolved/show_unresolved_bugs")
|
||||
var show_resolved : bool = ProjectSettings.get_setting("bugbot/markers/resolved/show_resolved_bugs", false)
|
||||
var show_in_progress : bool = ProjectSettings.get_setting("bugbot/markers/in_progress/show_in_progress_bugs", true)
|
||||
var show_unresolved : bool = ProjectSettings.get_setting("bugbot/markers/unresolved/show_unresolved_bugs", true)
|
||||
|
||||
for bug_in:Dictionary in response_data:
|
||||
var bugbot_marker_string : String = bug_in["body"].split("\n")[-1]
|
||||
@ -73,7 +73,7 @@ func __return_list_of_bugs_thread(map_name:String, callback:Callable) -> void:
|
||||
if bug.map_name != map_name:
|
||||
continue
|
||||
|
||||
var marker_location : Array = bugbot_marker_data["bug_location"]
|
||||
var marker_location : Array = bugbot_marker_data["bug_position"]
|
||||
var marker_normal : Array = bugbot_marker_data["bug_normal"]
|
||||
bug.marker_position = Vector3(marker_location[0], marker_location[1], marker_location[2])
|
||||
bug.marker_normal = Vector3(marker_normal[0], marker_normal[1], marker_normal[2])
|
||||
|
||||
@ -79,7 +79,9 @@ func _on_submit_button_pressed() -> void:
|
||||
printerr("You must select a severity level.")
|
||||
error_detected = true
|
||||
|
||||
if error_detected: return
|
||||
if error_detected:
|
||||
__submit_button.disabled = false
|
||||
return
|
||||
|
||||
__get_label_ids_for_submission_data(labels_to_be_added, BugbotServerAPI.BugbotTagArray.VERSION)
|
||||
__get_label_ids_for_submission_data(labels_to_be_added, BugbotServerAPI.BugbotTagArray.HARDWARE)
|
||||
|
||||
@ -30,8 +30,6 @@ func _enter_tree() -> void:
|
||||
func _exit_tree() -> void:
|
||||
remove_control_from_container(CustomControlContainer.CONTAINER_SPATIAL_EDITOR_MENU, __bugbot_menu_button)
|
||||
__bugbot_menu_button.queue_free()
|
||||
|
||||
# This is where we should remove any visible bug markers
|
||||
|
||||
|
||||
func __initialise_project_settings() -> void:
|
||||
@ -86,13 +84,13 @@ func __initialise_project_settings() -> void:
|
||||
|
||||
#region Bug Markers
|
||||
__add_project_setting("bugbot/markers/unresolved/show_unresolved_bugs", TYPE_BOOL, true)
|
||||
__add_project_setting("bugbot/markers/unresolved/tint", TYPE_COLOR, Color(0.1,0.0,0.0))
|
||||
__add_project_setting("bugbot/markers/unresolved/tint", TYPE_COLOR, BugMarker.UNRESOLVED_TINT)
|
||||
|
||||
__add_project_setting("bugbot/markers/in_progress/show_in_progress_bugs", TYPE_BOOL, true)
|
||||
__add_project_setting("bugbot/markers/in_progress/tint", TYPE_COLOR, Color(0.5,0.5,0.0))
|
||||
__add_project_setting("bugbot/markers/in_progress/tint", TYPE_COLOR, BugMarker.IN_PROGRESS_TINT)
|
||||
|
||||
__add_project_setting("bugbot/markers/resolved/show_resolved_bugs", TYPE_BOOL, false)
|
||||
__add_project_setting("bugbot/markers/resolved/tint", TYPE_COLOR, Color(0.0,1.0,0.0))
|
||||
__add_project_setting("bugbot/markers/resolved/tint", TYPE_COLOR, BugMarker.RESOLVED_TINT)
|
||||
#endregion
|
||||
|
||||
#region Batch Loading
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user