Files
Ban-Data-Tool/scenes/Overrides/loadout_override_display.gd

92 lines
3.1 KiB
GDScript

extends Control
@export var class_option: OptionButton
@export var custom_class_edit: LineEdit
@export var class_custom: HBoxContainer
@export var slot_option: OptionButton
@export var slot_custom: HBoxContainer
@export var custom_slot_edit: LineEdit
@export var item_edit: LineEdit
var loadout_override:LoadoutOverrideInfo
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
load_from_loadout()
func load_from_loadout(_n=null):
var class_path:int = get_class_idx(loadout_override.class_path)
class_option.selected = class_path
if class_path == 9:
custom_class_edit.text = loadout_override.class_path
var slot:int = slot_to_idx(loadout_override.slot)
slot_option.select(slot)
if slot == 5:
custom_slot_edit.text = loadout_override.slot
item_edit.text = loadout_override.item_path
func update_loadout():
loadout_override.class_path = get_class_path()
func get_class_idx(string:String) -> int:
match string:
"/Game/tf2_commons_v142/Loadout/Loadouts/Scout/TF2_Scout_HolderInfo.TF2_Scout_HolderInfo":
return 0
"/Game/tf2_commons_v142/Loadout/Loadouts/Soldier/TF2_Soldier_HolderInfo.TF2_Soldier_HolderInfo":
return 1
"/Game/tf2_commons_v142/Loadout/Loadouts/Medic/TF2_Medic_HolderInfo.TF2_Medic_HolderInfo":
return 2
"/Game/tf2_commons_v142/Loadout/Loadouts/Engineer/TF2_Engineer_HolderInfo.TF2_Engineer_HolderInfo":
return 3
"/Game/tf2_commons_v142/Loadout/Loadouts/Heavy/TF2_Heavy_HolderInfo.TF2_Heavy_HolderInfo":
return 4
"/Game/tf2_commons_v142/Loadout/Loadouts/Sniper/TF2_Sniper_HolderInfo.TF2_Sniper_HolderInfo":
return 5
"/Game/tf2_commons_v142/Loadout/Loadouts/Spy/TF2_Spy_HolderInfo.TF2_Spy_HolderInfo":
return 6
"/Game/tf2_commons_v142/Loadout/Loadouts/Demoman/TF2_Demoman_HolderInfo.TF2_Demoman_HolderInfo":
return 7
"/Game/tf2_commons_v142/Loadout/Loadouts/Pyro/TF2_Pyro_HolderInfo.TF2_Pyro_HolderInfo":
return 8
_:
return 9
func slot_to_idx(slot:String) -> int:
match slot:
"Hat":
return 0
"Misc":
return 1
"Melee":
return 2
"Primary":
return 3
"Sidearm":
return 4
_:
return 5
func get_class_path():
match class_option.selected:
0:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Scout/TF2_Scout_HolderInfo.TF2_Scout_HolderInfo"
1:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Soldier/TF2_Soldier_HolderInfo.TF2_Soldier_HolderInfo"
2:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Medic/TF2_Medic_HolderInfo.TF2_Medic_HolderInfo"
3:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Engineer/TF2_Engineer_HolderInfo.TF2_Engineer_HolderInfo"
4:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Heavy/TF2_Heavy_HolderInfo.TF2_Heavy_HolderInfo"
5:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Sniper/TF2_Sniper_HolderInfo.TF2_Sniper_HolderInfo"
6:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Spy/TF2_Spy_HolderInfo.TF2_Spy_HolderInfo"
7:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Demoman/TF2_Demoman_HolderInfo.TF2_Demoman_HolderInfo"
8:
return "/Game/tf2_commons_v142/Loadout/Loadouts/Pyro/TF2_Pyro_HolderInfo.TF2_Pyro_HolderInfo"
9:
return custom_class_edit.text