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

◆ OnDropReceivedFromIcon()

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

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

222 {
223 string name = receiver.GetName();
224 name.Replace("PanelWidget", "Render");
225 ItemPreviewWidget receiver_iw = ItemPreviewWidget.Cast( receiver.FindAnyWidget(name) );
226 EntityAI receiver_item = receiver_iw.GetItem();
227
228 ItemPreviewWidget ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( "Render" ) );
229 if ( !ipw )
230 {
231 name = w.GetName();
232 name.Replace( "PanelWidget", "Render" );
233 ipw = ItemPreviewWidget.Cast( w.FindAnyWidget( name ) );
234 }
235
236 if ( !ItemBase.Cast( receiver_item ) || !ipw.GetItem() )
237 {
238 return;
239 }
240
241 EntityAI item = ipw.GetItem();
242 bool equal_typed = item.GetType() == receiver_item.GetType();
243 if ( !receiver_item.IsInherited( ItemBase ) || item == null )
244 {
245 return;
246 }
247
248 PlayerBase player = PlayerBase.Cast( g_Game.GetPlayer() );
249
250 if ( !item.GetInventory().CanRemoveEntity() )
251 return;
252
253 if ( ( ItemBase.Cast( receiver_item ) ).CanBeCombined( ItemBase.Cast( item ) ) )
254 {
255 ( ItemBase.Cast( receiver_item ) ).CombineItemsClient( ItemBase.Cast( item ) );
256 }
257 else if( GameInventory.CanSwapEntitiesEx( receiver_item, item ) )
258 {
259 InventoryLocation il1 = new InventoryLocation;
260 InventoryLocation il2 = new InventoryLocation;
261 receiver_item.GetInventory().GetCurrentInventoryLocation( il1 );
262 item.GetInventory().GetCurrentInventoryLocation( il2 );
263
264 if( !receiver_item.GetInventory().CanRemoveEntity() || ( il1.GetType() == InventoryLocationType.GROUND && il2.GetType() == InventoryLocationType.GROUND ) )
265 return;
266 player.PredictiveSwapEntities( item, receiver_item );
267 }
268
269 ItemManager.GetInstance().HideDropzones();
270 ItemManager.GetInstance().SetIsDragging( false );
271 PrepareOwnedTooltip(item);
272
273 InventoryMenu menu = InventoryMenu.Cast( g_Game.GetUIManager().FindMenu( MENU_INVENTORY ) );
274 if ( menu )
275 {
276 menu.RefreshQuickbar();
277 }
278 }
class LogManager EntityAI
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
DayZGame g_Game
Определения DayZGame.c:3942
class GP5GasMask extends MaskBase ItemBase
InventoryLocationType
types of Inventory Location
Определения InventoryLocation.c:4
void InventoryMenu()
Определения InventoryMenu.c:20
proto native int GetType()
returns type of InventoryLocation
proto native EntityAI GetItem()
const int MENU_INVENTORY
Определения 3_Game/DayZ/constants.c:180

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