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

◆ DraggingOverSwap()

void Icon::DraggingOverSwap ( Widget w,
int x,
int y,
Widget receiver )
inlineprotected

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

260 {
261 if (w == null)
262 {
263 return;
264 }
265
266 string name = w.GetName();
267 name.Replace("PanelWidget", "Render");
268
269 ItemPreviewWidget targetIpw = ItemPreviewWidget.Cast(receiver.FindAnyWidget( "Render" ));
270 if (m_HandsIcon)
271 {
272 targetIpw = ItemPreviewWidget.Cast(receiver.GetParent().FindAnyWidget( "Render" ));
273 }
274
275 ItemPreviewWidget selectedIpw = ItemPreviewWidget.Cast(w.FindAnyWidget(name));
276 if (selectedIpw == null)
277 {
278 selectedIpw = ItemPreviewWidget.Cast(w.FindAnyWidget("Render"));
279 }
280
281 if (selectedIpw == null)
282 {
283 return;
284 }
285
286 InventoryItem targetEntity = InventoryItem.Cast(targetIpw.GetItem());
287 InventoryItem selectedEntity = InventoryItem.Cast(selectedIpw.GetItem());
288 if (!selectedEntity || !targetEntity)
289 {
290 return;
291 }
292
293 InventoryLocation il = new InventoryLocation();
294 PlayerBase player = PlayerBase.Cast(GetGame().GetPlayer());
295 int index = player.GetHumanInventory().FindUserReservedLocationIndex(m_Item);
296
297 if (index >= 0)
298 {
299 player.GetHumanInventory().GetUserReservedLocation(index, il);
300
301 if (GameInventory.CanForceSwapEntitiesEx(selectedEntity, null, targetEntity, il))
302 {
303 ColorManager.GetInstance().SetColor(w, ColorManager.FSWAP_COLOR);
304 ItemManager.GetInstance().HideDropzones();
305 ItemManager.GetInstance().ShowSourceDropzone(il.GetParent());
306 return;
307 }
308 }
309 static int testedFlags = InventoryCombinationFlags.SWAP | InventoryCombinationFlags.FSWAP;
310
311 int chosenInventoryAction = ItemManager.GetChosenCombinationFlag(selectedEntity, targetEntity, testedFlags, il);
312 UpdateFrameColor(selectedEntity, targetEntity, chosenInventoryAction, w, il);
313 }
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo
PlayerBase GetPlayer()
Определения ModifierBase.c:51
void UpdateFrameColor(EntityAI selectedEntity, EntityAI targetEntity, int combinationFlag, Widget w, InventoryLocation il=null)
Определения Icon.c:568
ItemBase m_Item
Определения Icon.c:16
bool m_HandsIcon
Определения Icon.c:17
proto native EntityAI GetParent()
returns parent of current inventory location
proto native EntityAI GetItem()
proto native CGame GetGame()

Перекрестные ссылки GameInventory::CanForceSwapEntitiesEx(), InventoryCombinationFlags::FSWAP, ColorManager::FSWAP_COLOR, ItemManager::GetChosenCombinationFlag(), GetGame(), ColorManager::GetInstance(), ItemManager::GetInstance(), ItemPreviewWidget::GetItem(), InventoryLocation::GetParent(), GetPlayer(), ItemManager::HideDropzones(), m_HandsIcon, m_Item, name, ColorManager::SetColor(), ItemManager::ShowSourceDropzone(), InventoryCombinationFlags::SWAP, UpdateFrameColor(), x и y.