DropItemOutOfViewCommand.lua 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. local DropItemOutOfViewCommand = class('DropItemOutOfViewCommand', framework.SimpleCommand)
  2. requireProxy("actorUtils")
  3. function DropItemOutOfViewCommand:ctor()
  4. end
  5. function DropItemOutOfViewCommand:execute(notification)
  6. local data = notification:getBody()
  7. local actorID = data.actorID
  8. -- clear auto pick item ID
  9. local autoProxy = global.Facade:retrieveProxy(global.ProxyTable.Auto)
  10. if autoProxy:GetPickItemID() == actorID then
  11. autoProxy:SetPickItemID(nil)
  12. autoProxy:SetPickBeginTime(nil)
  13. -- 清理前往拾取物的路径
  14. local inputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
  15. inputProxy:SetPathFindPoints({})
  16. end
  17. local dropActor = global.actorManager:GetActor(actorID)
  18. if dropActor then
  19. local mapX = dropActor:GetMapX()
  20. local mapY = dropActor:GetMapY()
  21. local dItems = global.dropItemManager:FindDropItemAllInMapXY(mapX, mapY)
  22. if dItems and next(dItems) then
  23. for _, dropItem in pairs(dItems) do
  24. dropItem:ResetPickState()
  25. dropItem:ResetPickTimeout()
  26. end
  27. end
  28. end
  29. -- cleanup actor attr
  30. ClenupActorAttrByID(actorID)
  31. end
  32. return DropItemOutOfViewCommand