Dayz Explorer 1.28.160049
Loading...
Searching...
No Matches
uipropertyattachment.c
Go to the documentation of this file.
2{
3 private Widget m_WgtRoot;
4 private Widget m_WgtThis;
5 private XComboBoxWidget m_WgtComboBox;
6 private TextWidget m_WgtSlotName;
7 private ref TStringArray m_ComboItems;
8 private int m_PrevIndex;
9 private EntityAI m_Obj;
10 private int m_SlotID;
11
12
13 void UIPropertyAttachment(Widget root)
14 {
15 m_WgtRoot = root;
16
17 m_ComboItems = new TStringArray;
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 {
26 m_WgtRoot = NULL;
27 m_WgtComboBox = NULL;
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
51 m_PrevIndex = curr_index;
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
69 void Show(EntityAI e, string slot_name, TStringArray att_items)
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
82 m_SlotID = InventorySlots.GetSlotIdFromString(slot_name);
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 )
93 {
94 selected_index = i;
95 }
96 }
97
98 m_WgtComboBox.SetCurrentItem(selected_index);
99 m_PrevIndex = selected_index;
100 }
101
102 void Hide()
103 {
104 m_WgtThis.Show(false);
105
106 m_Obj = NULL;
107 m_SlotID = -1;
108 }
109
110 bool IsVisible()
111 {
112 return m_WgtThis.IsVisible();
113 }
114}
provides access to slot configuration
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
void Show()
Definition dayzgame.c:162
proto native CGame GetGame()
array< string > TStringArray
Definition enscript.c:709
Widget m_WgtRoot
Definition huddebug.c:94
Icon x
Icon y
PluginBase GetPlugin(typename plugin_type)