Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
-- Mouse down: start potential drag-to-reorder ReorderContainers_Mod.onMouseDown = function(self, x, y) -- 'self' is the container BUTTON local panel = self.parent local page = panel and panel.parent or nil -- Call original (bound in ReorderContainers_InventoryPage.lua) self.pre_reorder_onMouseDown(self, x, y) self.reorderStartMouseY = getMouseY() self.reorderStartY = self:getY() -- Can we drag? (needs the real page) self.canDragToReorder = page and not ReorderContainers_Mod.isLocked(page) and ReorderContainers_Mod.canReorderBackpacks(page) or false end -- Mouse move: do the drag inside the PANEL, compare thresholds using PAGE buttonSize ReorderContainers_Mod.onMouseMove = function(self, dx, dy, skipOgMouseMove) if not skipOgMouseMove then self.pre_reorder_onMouseMove(self, dx, dy) end if not (self.pressed and self.canDragToReorder) then return end local panel = self.parent local page = panel and panel.parent or nil if not (panel and page) then return end if math.abs(self.reorderStartMouseY - getMouseY()) > (page.buttonSize / 2) then self.draggingToReorder = true end if self.draggingToReorder then local x = getMouseX() local y = getMouseY() -- Position within the PANEL (buttons are children of the panel now) local panelAbsY = panel:getAbsoluteY() local newY = y - panelAbsY - (self:getHeight() / 2) -- Clamp to panel area (0..panel:getHeight()-button) newY = math.max(0, newY) self:setY(newY) self:bringToTop() end end -- Mouse move outside: keep existing behavior, re-use our onMouseMove ReorderContainers_Mod.onMouseMoveOutside = function(self, dx, dy) self.pre_reorder_onMouseMoveOutside(self, dx, dy) ReorderContainers_Mod.onMouseMove(self, dx, dy, true) if self.draggingToReorder and not isMouseButtonDown(0) then ReorderContainers_Mod.onMouseUp(self, 0, 0) end end -- Mouse up: apply new order on the PAGE ReorderContainers_Mod.onMouseUp = function(self, x, y) local panel = self.parent local page = panel and panel.parent or nil if self.draggingToReorder and page then self.pressed = false self.draggingToReorder = false page:reorderContainerButtons(self) page:refreshBackpacks() else self.pre_reorder_onMouseUp(self, x, y) end end
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)