DayZ 1.24
Loading...
Searching...
No Matches
UIPropertyAttachment.c
Go to the documentation of this file.
2{
8 private int m_PrevIndex;
9 private EntityAI m_Obj;
10 private int m_SlotID;
11
12
14 {
16
18
19 m_WgtThis = GetGame().GetWorkspace().CreateWidgets("gui/layouts/scene_editor/day_z_scene_editor_attachment.layout", m_WgtRoot);
20 m_WgtComboBox = XComboBoxWidget.Cast(m_WgtThis.FindAnyWidget("combo_box"));
21 m_WgtSlotName = TextWidget.Cast(m_WgtThis.FindAnyWidget("txt_slot_name"));
22 }
23
25 {
28
29 delete m_WgtThis;
30 }
31
32 bool OnClick(Widget w, int x, int y, int button)
33 {
34 if (w == m_WgtComboBox)
35 {
36 if (m_PrevIndex != 0)
37 {
38 EntityAI attachment = m_Obj.GetInventory().FindAttachment(m_SlotID);
39 GetGame().ObjectDelete(attachment);
40 }
41
42 int curr_index = m_WgtComboBox.GetCurrentItem();
43
44 if (curr_index != 0)
45 {
46 PluginDeveloper module_dev = PluginDeveloper.Cast(GetPlugin(PluginDeveloper));
47
48 EntityAI e = module_dev.SpawnEntityAsAttachment(PluginSceneManager.PLAYER, m_Obj, m_ComboItems.Get(curr_index), 1, -1);
49 }
50
52
53 return true;
54 }
55
56 return false;
57 }
58
59 void SetPos(float x, float y)
60 {
61 m_WgtThis.SetPos(x, y);
62 }
63
64 void SetSize(float width, float height)
65 {
66 m_WgtThis.SetSize(width, height);
67 }
68
70 {
71 m_WgtThis.Show(true);
72
73 m_Obj = e;
74 m_ComboItems.Clear();
75 m_ComboItems.Insert("none");
76 m_ComboItems.InsertAll(att_items);
77
78 m_WgtSlotName.SetText(slot_name);
79
80 m_WgtComboBox.ClearAll();
81
83 EntityAI attachment = e.GetInventory().FindAttachment(m_SlotID);
84 int selected_index = 0;
85
86 for (int i = 0; i < m_ComboItems.Count(); ++i)
87 {
88 string item_name = m_ComboItems.Get(i);
89
90 m_WgtComboBox.AddItem(item_name);
91
92 if (attachment != NULL && attachment.GetType() == item_name)
94 }
95
96 m_WgtComboBox.SetCurrentItem(selected_index);
98 }
99
100 void Hide()
101 {
102 m_WgtThis.Show(false);
103
104 m_Obj = NULL;
105 m_SlotID = -1;
106 }
107
109 {
110 return m_WgtThis.IsVisible();
111 }
112}
Icon x
Icon y
PluginBase GetPlugin(typename plugin_type)
provides access to slot configuration
static proto native int GetSlotIdFromString(string slot_name)
converts string to slot_id
void SetSize(float width, float height)
ref TStringArray m_ComboItems
bool OnClick(Widget w, int x, int y, int button)
XComboBoxWidget m_WgtComboBox
void UIPropertyAttachment(Widget root)
void Show(EntityAI e, string slot_name, TStringArray att_items)
void SetPos(float x, float y)
proto native CGame GetGame()
array< string > TStringArray
Definition EnScript.c:666