DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ OnDropReceivedFromIcon()

void VicinityContainer::OnDropReceivedFromIcon ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected

См. определение в файле VicinityContainer.c строка 202

203 {
204 string name = receiver.GetName();
205 name.Replace("PanelWidget", "Render");
206 ItemPreviewWidget receiver_iw = ItemPreviewWidget.Cast( receiver.FindAnyWidget(name) );
207 EntityAI receiver_item = receiver_iw.GetItem();
208
209 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
210 if ( !ipw )
211 {
212 name = w.GetName();
213 name.Replace( "PanelWidget", "Render" );
214 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
215 }
216
217 if ( !ItemBase.Cast( receiver_item ) || !ipw.GetItem() )
218 {
219 return;
220 }
221
222 EntityAI item = ipw.GetItem();
223 bool equal_typed = item.GetType() == receiver_item.GetType();
224 if ( !receiver_item.IsInherited( ItemBase ) || item == null )
225 {
226 return;
227 }
228
229 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
230
231 if ( !item.GetInventory().CanRemoveEntity() )
232 return;
233
234 if ( ( ItemBase.Cast( receiver_item ) ).CanBeCombined( ItemBase.Cast( item ) ) )
235 {
236 ( ItemBase.Cast( receiver_item ) ).CombineItemsClient( ItemBase.Cast( item ) );
237 }
238 else if( GameInventory.CanSwapEntitiesEx( receiver_item, item ) )
239 {
240 InventoryLocation il1 = new InventoryLocation;
241 InventoryLocation il2 = new InventoryLocation;
242 receiver_item.GetInventory().GetCurrentInventoryLocation( il1 );
243 item.GetInventory().GetCurrentInventoryLocation( il2 );
244
245 if( !receiver_item.GetInventory().CanRemoveEntity() || ( il1.GetType() == InventoryLocationType.GROUND && il2.GetType() == InventoryLocationType.GROUND ) )
246 return;
247 player.PredictiveSwapEntities( item, receiver_item );
248 }
249
250 ItemManager.GetInstance().HideDropzones();
251 ItemManager.GetInstance().SetIsDragging( false );
252 PrepareOwnedTooltip(item);
253
254 InventoryMenu menu = InventoryMenu.Cast( GetGame().GetUIManager().FindMenu( MENU_INVENTORY ) );
255 if ( menu )
256 {
257 menu.RefreshQuickbar();
258 }
259 }
class LogManager EntityAI
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
class GP5GasMask extends MaskBase ItemBase
InventoryLocationType
types of Inventory Location
Определения InventoryLocation.c:4
void InventoryMenu()
Определения InventoryMenu.c:20
PlayerBase GetPlayer()
Определения ModifierBase.c:51
proto native int GetType()
returns type of InventoryLocation
proto native EntityAI GetItem()
proto native CGame GetGame()
const int MENU_INVENTORY
Определения constants.c:180

Перекрестные ссылки GameInventory::CanSwapEntitiesEx(), GetGame(), ItemManager::GetInstance(), ItemPreviewWidget::GetItem(), GetPlayer(), InventoryLocation::GetType(), ItemManager::HideDropzones(), InventoryMenu(), MENU_INVENTORY, name, ItemManager::SetIsDragging(), x и y.