123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- class UIPropertyAttachment
- {
- private Widget m_WgtRoot;
- private Widget m_WgtThis;
- private XComboBoxWidget m_WgtComboBox;
- private TextWidget m_WgtSlotName;
- private ref TStringArray m_ComboItems;
- private int m_PrevIndex;
- private EntityAI m_Obj;
- private int m_SlotID;
-
-
- void UIPropertyAttachment(Widget root)
- {
- m_WgtRoot = root;
-
- m_ComboItems = new TStringArray;
-
- m_WgtThis = GetGame().GetWorkspace().CreateWidgets("gui/layouts/scene_editor/day_z_scene_editor_attachment.layout", m_WgtRoot);
- m_WgtComboBox = XComboBoxWidget.Cast( m_WgtThis.FindAnyWidget("combo_box") );
- m_WgtSlotName = TextWidget.Cast( m_WgtThis.FindAnyWidget("txt_slot_name") );
- }
-
- void ~UIPropertyAttachment()
- {
- m_WgtRoot = NULL;
- m_WgtComboBox = NULL;
-
- delete m_WgtThis;
- }
-
- bool OnClick(Widget w, int x, int y, int button)
- {
- if ( w == m_WgtComboBox )
- {
- if ( m_PrevIndex != 0 )
- {
- EntityAI attachment = m_Obj.GetInventory().FindAttachment(m_SlotID);
- GetGame().ObjectDelete(attachment);
- }
-
- int curr_index = m_WgtComboBox.GetCurrentItem();
-
- if ( curr_index != 0 )
- {
- PluginDeveloper module_dev = PluginDeveloper.Cast( GetPlugin(PluginDeveloper) );
-
- EntityAI e = module_dev.SpawnEntityAsAttachment(PluginSceneManager.PLAYER, m_Obj, m_ComboItems.Get(curr_index), 1, -1);
- }
-
- m_PrevIndex = curr_index;
-
- return true;
- }
-
- return false;
- }
-
- void SetPos(float x, float y)
- {
- m_WgtThis.SetPos(x, y);
- }
-
- void SetSize(float width, float height)
- {
- m_WgtThis.SetSize(width, height);
- }
-
- void Show(EntityAI e, string slot_name, TStringArray att_items)
- {
- m_WgtThis.Show(true);
-
- m_Obj = e;
- m_ComboItems.Clear();
- m_ComboItems.Insert("none");
- m_ComboItems.InsertAll(att_items);
-
- m_WgtSlotName.SetText(slot_name);
-
- m_WgtComboBox.ClearAll();
-
- m_SlotID = InventorySlots.GetSlotIdFromString(slot_name);
- EntityAI attachment = e.GetInventory().FindAttachment(m_SlotID);
- int selected_index = 0;
-
- for ( int i = 0; i < m_ComboItems.Count(); ++i )
- {
- string item_name = m_ComboItems.Get(i);
-
- m_WgtComboBox.AddItem(item_name);
-
- if ( attachment != NULL && attachment.GetType() == item_name )
- {
- selected_index = i;
- }
- }
-
- m_WgtComboBox.SetCurrentItem(selected_index);
- m_PrevIndex = selected_index;
- }
-
- void Hide()
- {
- m_WgtThis.Show(false);
-
- m_Obj = NULL;
- m_SlotID = -1;
- }
-
- bool IsVisible()
- {
- return m_WgtThis.IsVisible();
- }
- }
|