DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
UIPropertyAttachment.c
См. документацию.
2{
5 private XComboBoxWidget m_WgtComboBox;
8 private int m_PrevIndex;
9 private EntityAI m_Obj;
10 private int m_SlotID;
11
12
14 {
15 m_WgtRoot = root;
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 {
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
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
111 {
112 return m_WgtThis.IsVisible();
113 }
114}
Icon x
Icon y
PluginBase GetPlugin(typename plugin_type)
Определения PluginManager.c:316
proto native WorkspaceWidget GetWorkspace()
proto native void ObjectDelete(Object obj)
Определения Building.c:6
static proto native int GetSlotIdFromString(string slot_name)
converts string to slot_id
provides access to slot configuration
Определения InventorySlots.c:6
Определения EnWidgets.c:220
EntityAI m_Obj
Определения UIPropertyAttachment.c:9
void SetSize(float width, float height)
Определения UIPropertyAttachment.c:64
TextWidget m_WgtSlotName
Определения UIPropertyAttachment.c:6
int m_PrevIndex
Определения UIPropertyAttachment.c:8
ref TStringArray m_ComboItems
Определения UIPropertyAttachment.c:7
void ~UIPropertyAttachment()
Определения UIPropertyAttachment.c:24
bool OnClick(Widget w, int x, int y, int button)
Определения UIPropertyAttachment.c:32
XComboBoxWidget m_WgtComboBox
Определения UIPropertyAttachment.c:5
void UIPropertyAttachment(Widget root)
Определения UIPropertyAttachment.c:13
Widget m_WgtRoot
Определения UIPropertyAttachment.c:3
bool IsVisible()
Определения UIPropertyAttachment.c:110
Widget m_WgtThis
Определения UIPropertyAttachment.c:4
void Show(EntityAI e, string slot_name, TStringArray att_items)
Определения UIPropertyAttachment.c:69
void SetPos(float x, float y)
Определения UIPropertyAttachment.c:59
Определения EnWidgets.c:190
proto native CGame GetGame()
array< string > TStringArray
Определения EnScript.c:685
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.