From d887c29b81d6b5cd1080f89e83b7dc070f58b82a Mon Sep 17 00:00:00 2001 From: davidh Date: Mon, 25 Apr 2022 22:46:18 -0500 Subject: [PATCH] add SpiffUI-Inventory --- .../media/lua/client/!SpiffUI-Inv.lua | 579 ++++++++++++++++++ .../lua/client/SUI/SUI_ISInventoryPage.lua | 534 ++++++++++++++++ .../media/lua/client/SpiffUI-Inventory.lua | 78 +++ .../media/lua/shared/Translate/EN/UI_EN.txt | 27 + .../mods/SpiffUI-Inventory/mod.info.bak | 10 + .../mods/SpiffUI-Inventory/poster.png | Bin 0 -> 122064 bytes SpiffUI-Inventory/README.md | 69 +++ SpiffUI-Inventory/preview.png | Bin 0 -> 19665 bytes SpiffUI-Inventory/workshop.txt | 84 +++ 9 files changed, 1381 insertions(+) create mode 100644 SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/!SpiffUI-Inv.lua create mode 100644 SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/SUI/SUI_ISInventoryPage.lua create mode 100644 SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/SpiffUI-Inventory.lua create mode 100644 SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/shared/Translate/EN/UI_EN.txt create mode 100644 SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/mod.info.bak create mode 100644 SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/poster.png create mode 100644 SpiffUI-Inventory/README.md create mode 100644 SpiffUI-Inventory/preview.png create mode 100644 SpiffUI-Inventory/workshop.txt diff --git a/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/!SpiffUI-Inv.lua b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/!SpiffUI-Inv.lua new file mode 100644 index 0000000..5c1b988 --- /dev/null +++ b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/!SpiffUI-Inv.lua @@ -0,0 +1,579 @@ +------------------------------------------ +-- SpiffUI Main Library +------------------------------------------ +-- Authors: +---- @dhert (2022) +------------------------------------------ +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: + +-- The above copyright notice and this permission notice shall be included in all +-- copies or substantial portions of the Software. + +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +-- SOFTWARE. +------------------------------------------ + +------------------------------------------ +-- Set the SpiffUI lib version +local SPIFFUI_VERSION = 1 --<<< DO NOT CHANGE UNLESS YOU KNOW WHAT YOU'RE DOING +if SpiffUI then + if SpiffUI.Version >= SPIFFUI_VERSION then + return -- Don't do anything else + else + -- We only want the newest version, and this is it + Events.OnGameBoot.Remove(SpiffUI.firstBoot) + SpiffUI = nil + end +end + +------------------------------------------ +-- Start SpiffUI +SpiffUI = {} +SpiffUI.Version = SPIFFUI_VERSION + +------------------------------------------ +-- Register Module +function SpiffUI:Register(name) + if not SpiffUI[name] then + -- Add Key for our module + table.insert(SpiffUI, name) + + -- Add module + SpiffUI[name] = {} + end + return SpiffUI[name] +end + +------------------------------------------ +-- Overrides for already-defined keys +SpiffUI.KeyDefaults = {} + +-- Add a new Key Default +function SpiffUI:AddKeyDefault(name, key) + SpiffUI.KeyDefaults[name] = tonumber(key) +end + +-- Add an array of keys +---- Expected: +---- binds { +---- ["Name"] = key, +---- } +function SpiffUI:AddKeyDefaults(binds) + for i,j in pairs(binds) do + self:AddKeyDefault(i,j) + end +end + +------------------------------------------ +-- Keys that will be removed from the binds +SpiffUI.KeyDisables = {} + +-- Add a new Key Disable +function SpiffUI:AddKeyDisable(name) + -- We do it where the name is the index to avoid dupes + SpiffUI.KeyDisables[name] = true +end + +-- Add an array of keys +---- Expected: +---- binds { +---- ["Name"] = true, +---- } +function SpiffUI:AddKeyDisables(binds) + for i,_ in pairs(binds) do + self:AddKeyDisable(i) + end +end + +------------------------------------------ +-- New Keys to Add +SpiffUI.KeyBinds = { + { + name = '[SpiffUI]', -- Title + } +} + +-- Add a new Key Bind +---- Expected: +---- bind = { +---- name = 'KeyBind', -- Name of Key +---- key = Keyboard.KEY, -- Key +---- qBlock = true, -- Don't perform key action with queue +---- Down = actionDown, -- Action on Down -- Receives playerObj -- Optional +---- Hold = actionHold, -- Action on Hold -- Receives playerObj -- Optional +---- Up = actionUp -- Action on Up -- Receives playerObj -- Optional +---- } +function SpiffUI:AddKeyBind(bind) + --SpiffUI.KeyDefaults[name] = tonumber(key) + table.insert(SpiffUI.KeyBinds, bind) +end + +-- Add an array of keys +---- Expected: +---- binds = { +---- { +---- name = 'KeyBind', -- Name of Key +---- key = Keyboard.KEY, -- Key +---- qBlock = true, -- Don't perform key action with queue +---- Down = actionDown, -- Action on Down -- Receives playerObj -- Optional +---- Hold = actionHold, -- Action on Hold -- Receives playerObj -- Optional +---- Up = actionUp -- Action on Up -- Receives playerObj -- Optional +---- }, +---- } +function SpiffUI:AddKeyBinds(binds) + for _,j in ipairs(binds) do + self:AddKeyBind(j) + end +end + +------------------------------------------ +-- Key Handlers +-- Common things to check for when checking a key +---- Returns the player object if successful +SpiffUI.preCheck = function() + local player = getSpecificPlayer(0) + + if not player or player:isDead() or player:isAsleep() then + return nil + end + + if UIManager.getSpeedControls() and (UIManager.getSpeedControls():getCurrentGameSpeed() == 0) then + return nil + end + + return player +end + +local function keyDown(key) + local player = SpiffUI.preCheck(key) + if not player then return end + for _,bind in ipairs(SpiffUI.KeyBinds) do + if key == getCore():getKey(bind.name) then + if bind.Down then + local queue = ISTimedActionQueue.queues[player] + if bind.qBlock and queue and #queue.queue > 0 then + return + end + bind.Down(player) + end + break + end + end +end + +local function keyHold(key) + local player = SpiffUI.preCheck(key) + if not player then return end + + for _,bind in ipairs(SpiffUI.KeyBinds) do + if key == getCore():getKey(bind.name) then + if bind.Hold then + local queue = ISTimedActionQueue.queues[player] + if bind.qBlock and queue and #queue.queue > 0 then + return + end + bind.Hold(player) + end + break + end + end +end + +local function keyRelease(key) + local player = SpiffUI.preCheck(key) + if not player then return end + + for _,bind in ipairs(SpiffUI.KeyBinds) do + if key == getCore():getKey(bind.name) then + if bind.Up then + local queue = ISTimedActionQueue.queues[player] + if bind.qBlock and queue and #queue.queue > 0 then + return + end + bind.Up(player) + end + break + end + end +end + +------------------------------------------ +-- Key Action Handlers +---- used mostly for radials +SpiffUI.action = { + ticks = 0, + delay = 500, + ready = true, + wasVisible = false +} + +-- onKeyDown starts an action +SpiffUI.onKeyDown = function(player) + -- The radial menu will also close without updating me + ---- So we need to catch this + local radialMenu = getPlayerRadialMenu(0) + if SpiffUI.action.ready and (not radialMenu:isReallyVisible() and SpiffUI.action.wasVisible) then + SpiffUI.action.ready = true + end + + -- True means we're not doing another action + if SpiffUI.action.ready then + -- Hide Radial Menu on Press if applicable + if radialMenu:isReallyVisible() and getCore():getOptionRadialMenuKeyToggle() then + radialMenu:removeFromUIManager() + setJoypadFocus(player:getPlayerNum(), nil) + SpiffUI.action.wasVisible = false + SpiffUI.action.ready = true + return + end + SpiffUI.action.ticks = getTimestampMs() + SpiffUI.action.ready = false + SpiffUI.action.wasVisible = false + end +end + +-- We check here and set our state if true on hold +SpiffUI.holdTime = function() + if SpiffUI.action.ready then return false end + SpiffUI.action.ready = (getTimestampMs() - SpiffUI.action.ticks) >= SpiffUI.action.delay + return SpiffUI.action.ready +end + +-- We check here and set our state if true on release +SpiffUI.releaseTime = function() + if SpiffUI.action.ready then return false end + SpiffUI.action.ready = (getTimestampMs() - SpiffUI.action.ticks) < SpiffUI.action.delay + return SpiffUI.action.ready +end + +SpiffUI.resetKey = function() + SpiffUI.action.ready = true +end + +------------------------------------------ +-- ISEquippedItem Buttons +SpiffUI.equippedItem = { + ["Inventory"] = true, + ["Health"] = true, + ["Craft"] = true, + ["Movable"] = true, + ["Search"] = true, + ["Map"] = true, + ["MiniMap"] = true, + ["Debug"] = true, + ["Client"] = true, + ["Admin"] = true +} + +function SpiffUI:updateEquippedItem() + -- Redo the ISEquippedItem tree based on what we set + local player = getPlayerData(0) + local y = player.equipped.invBtn:getY() + for i,v in pairs(SpiffUI.equippedItem) do + if i == "Inventory" then + player.equipped.invBtn:setVisible(v) + if v then + y = player.equipped.invBtn:getY() + player.equipped.inventoryTexture:getHeightOrig() + 5 + end + elseif i == "Health" then + player.equipped.healthBtn:setVisible(v) + player.equipped.healthBtn:setY(y) + if v then + y = player.equipped.healthBtn:getY() + player.equipped.heartIcon:getHeightOrig() + 5 + end + elseif i == "Craft" then + player.equipped.craftingBtn:setVisible(v) + player.equipped.craftingBtn:setY(y) + if v then + y = player.equipped.craftingBtn:getY() + player.equipped.craftingIcon:getHeightOrig() + 5 + end + elseif i == "Movable" then + player.equipped.movableBtn:setVisible(v) + player.equipped.movableBtn:setY(y) + player.equipped.movableTooltip:setY(y) + player.equipped.movablePopup:setY(y) + if v then + y = player.equipped.movableBtn:getBottom() + 5 + end + elseif i == "Search" then + player.equipped.searchBtn:setVisible(v) + player.equipped.searchBtn:setY(y) + if v then + y = player.equipped.searchBtn:getY() + player.equipped.searchIconOff:getHeightOrig() + 5 + end + elseif i == "Map" then + if ISWorldMap.IsAllowed() then + player.equipped.mapBtn:setVisible(v) + player.equipped.mapBtn:setY(y) + + if ISMiniMap.IsAllowed() then + player.equipped.mapPopup:setY(10 + y) + end + + if v then + y = player.equipped.mapBtn:getBottom() + 5 + end + end + elseif i == "Debug" then + if getCore():getDebug() or (ISDebugMenu.forceEnable and not isClient()) then + player.equipped.debugBtn:setVisible(v) + player.equipped.debugBtn:setY(y) + if v then + y = player.equipped.debugBtn:getY() + player.equipped.debugIcon:getHeightOrig() + 5 + end + end + elseif i == "Client" then + if isClient() then + player.equipped.clientBtn:setVisible(v) + player.equipped.clientBtn:setY(y) + if v then + y = player.equipped.clientBtn:getY() + player.equipped.clientIcon:getHeightOrig() + 5 + end + end + elseif i == "Admin" then + if isClient() then + player.equipped.adminBtn:setVisible(v) + player.equipped.adminBtn:setY(y) + end + end + end +end + +------------------------------------------ + +function SpiffUI:OnGameStart() + for _,j in ipairs(SpiffUI) do + local mod = SpiffUI[j] + if mod and mod.Start then + mod.Start() + end + end + + Events.OnKeyStartPressed.Add(keyDown) + Events.OnKeyKeepPressed.Add(keyHold) + Events.OnKeyPressed.Add(keyRelease) + + self:updateEquippedItem() +end + +function SpiffUI:ModOptions() + SpiffUI.config = {} + + if ModOptions and ModOptions.getInstance then + local function apply(data) + local options = data.settings.options + -- Set options + end + + local SPIFFCONFIG = { + options_data = { + applyNewKeybinds = { + name = "UI_ModOptions_SpiffUI_applyNewKeybinds", + default = false + }, + runAllResets = { + name = "UI_ModOptions_SpiffUI_runAllResets", + default = false, + tooltip = "UI_ModOptions_SpiffUI_tooltip_runResets" + } + }, + mod_id = "SpiffUI", + mod_shortname = "SpiffUI", + mod_fullname = getText("UI_Name_SpiffUI") + } + + local optionsInstance = ModOptions:getInstance(SPIFFCONFIG) + ModOptions:loadFile() + + -- Modal for our Apply Defaults key + local applyKeys = optionsInstance:getData("applyNewKeybinds") + + function applyKeys:buildString(text,h) + for name,key in pairs(SpiffUI.KeyDefaults) do + text = text .. getText("UI_ModOptions_SpiffUI_Modal_aNKChild", getText("UI_optionscreen_binding_" .. name), getKeyName(key)) + h = h + 20 + end + return text,h + end + + function applyKeys:onUpdate(newValue) + if newValue then + applyKeys:set(false) + local w,h = 350,120 + local text = getText("UI_ModOptions_SpiffUI_Modal_applyNewKeybinds") + text,h = self:buildString(text,h) + SpiffUI.settingsModal(w, h, text, self, applyKeys.apply) + end + end + + function applyKeys:apply(button) + self.modal = nil + if button.internal == "NO" then + return + end + for name,key in pairs(SpiffUI.KeyDefaults) do + for i,v in ipairs(MainOptions.keyText) do + if not v.value then + if v.txt:getName() == name then + v.keyCode = key + v.btn:setTitle(getKeyName(key)) + break + end + end + end + end + getCore():saveOptions() + MainOptions.instance.gameOptions.changed = false + end + + local runResets = optionsInstance:getData("runAllResets") + + function runResets:buildString(text,h) + for _,j in ipairs(SpiffUI) do + local mod = SpiffUI[j] + if mod and mod.Reset then + if mod.resetDesc then + text = text .. mod.resetDesc + else + text = text .. " " .. j + end + h = h + 20 + end + end + return text,h + end + + function runResets:onUpdate(newValue) + if newValue then + runResets:set(false) + -- quick check if we're in game + local player = getPlayerData(0) + if not player then return end + local w,h = 350,120 + local text = getText("UI_ModOptions_SpiffUI_Modal_runResets") + text,h = self:buildString(text,h) + SpiffUI.settingsModal(w, h, text, self, runResets.apply) + end + end + + function runResets:apply(button) + self.modal = nil + if button.internal == "NO" then + return + end + for _,j in ipairs(SpiffUI) do + local mod = SpiffUI[j] + if mod and mod.Reset then + mod.Reset() + end + end + MainOptions.instance.gameOptions.changed = false + end + + + Events.OnPreMapLoad.Add(function() + apply({settings = SPIFFCONFIG}) + end) + + end +end + +-- Due to SpiffUI being loaded as one of the first mods, it will be one of the first to Boot +---- We don't want that, we want this to be last. So, this makes sure of that. +SpiffUI.firstBoot = function() + Events.OnGameBoot.Add(function() + SpiffUI:OnGameBoot() + end) + Events.OnGameBoot.Remove(SpiffUI.firstBoot) +end + +function SpiffUI:OnGameBoot() + self:ModOptions() + + for _,j in ipairs(SpiffUI) do + local mod = SpiffUI[j] + if mod and mod.Boot then + mod.Boot() + end + end + + -- Let's Remove some keys + for name,_ in pairs(SpiffUI.KeyDisables) do + local found = false + for i = 1, #keyBinding do + if keyBinding[i].value == name then + table.remove(keyBinding, i) + print("Removed Keybind: " .. name) + found = true + break + end + end + + -- We may have a SpiffUI key we want to remove + if not found then + for i,bind in ipairs(SpiffUI.KeyBinds) do + if bind.name == name then + table.remove(SpiffUI.KeyBinds, i) + print("Removed SpiffUI Keybind: " .. name) + break + end + end + end + end + + -- Now let's add ours! + for _, bind in ipairs(SpiffUI.KeyBinds) do + table.insert(keyBinding, { value = bind.name, key = bind.key }) + end + + -- Events + Events.OnGameStart.Add(function() + SpiffUI:OnGameStart() + end) + + Events.OnCreatePlayer.Add(function(id) + SpiffUI:OnCreatePlayer(id) + end) + +end + +function SpiffUI:OnCreatePlayer(id) + for _,j in ipairs(SpiffUI) do + local mod = SpiffUI[j] + if mod and mod.CreatePlayer then + mod.CreatePlayer(id) + end + end +end + +------------------------------------------ + +SpiffUI.settingsModal = function(w, h, text, key, callback) + key.modal = ISModalRichText:new((getCore():getScreenWidth() / 2) - w / 2, + (getCore():getScreenHeight() / 2) - h / 2, w, h, + text, true, MainOptions.instance, callback) + key.modal:initialise() + key.modal:setCapture(true) + key.modal:setAlwaysOnTop(true) + key.modal:addToUIManager() + if MainOptions.joyfocus then + MainOptions.joyfocus.focus = key.modal + updateJoypadFocus(key.joyfocus) + end +end + +------------------------------------------ +Events.OnGameBoot.Add(SpiffUI.firstBoot) + +-- Hello SpiffUI :) +print(getText("UI_Hello_SpiffUI")) \ No newline at end of file diff --git a/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/SUI/SUI_ISInventoryPage.lua b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/SUI/SUI_ISInventoryPage.lua new file mode 100644 index 0000000..ec9bdb3 --- /dev/null +++ b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/SUI/SUI_ISInventoryPage.lua @@ -0,0 +1,534 @@ +------------------------------------------ +-- SpiffUI Inventory +------------------------------------------ + +-- Add module +SpiffUI = SpiffUI or {} + +-- Register our inventory +local spiff = SpiffUI:Register("inventory") + +------------------------------------------ +-- on game start, we take over the Inventory +local function spiffInit(id) + -- We still setup our stuff, but if not enabled nothing happens + local player = getSpecificPlayer(id) + local isMouse = (id == 0) and (not JoypadState.players[1]) + + local inv = getPlayerInventory(id) + local loot = getPlayerLoot(id) + + if spiff.config.enabled then + -- Set the inventories to be closed on start + --local isVis = inv:getIsVisible() + inv:InitSUI() + loot:InitSUI() + end + + -- Make them Friends! + inv.friend = loot + loot.friend = inv + + if isMouse then + -- Start collapsed tho + inv:Collapse(true, "Start") + loot:Collapse(true, "Start") + end + + -- Sometimes we just have to re-run this, nbd + SpiffUI:updateEquippedItem() +end + +-- Reset our inventory to the default location +---- This only occurs for user "0" as this is the only user that uses mouse/keys +local function spiffReset() + local isMouse = (not JoypadState.players[1]) + if isMouse then + getPlayerInventory(0):SUIReset() + getPlayerLoot(0):SUIReset() + end +end + +spiff.CreatePlayer = spiffInit +spiff.Reset = spiffReset +spiff.resetDesc = " Inventory Panel Location & Size " + +------------------------------------------ + +function ISInventoryPage:isMouseInBuffer() + if self.resizeWidget2.resizing then return true end + + -- So the inventory disappearing isn't so sensitive + local buffer = 32 + local boX = buffer * (-1) + local boY = 0 -- can't really go further up at the top + local boW = self:getWidth() + buffer + local boH = self:getHeight() + buffer + + local x = self:getMouseX() + local y = self:getMouseY() + + return (x >= boX and x <= boW) and (y >= boY and y <= boH) +end + +function ISInventoryPage:isMouseIn() + if self.resizeWidget2.resizing then return true end + + -- So the inventory disappearing isn't so sensitive + local boX = 0 + local boY = 0 -- can't really go further up at the top + local boW = self:getWidth() + local boH = self:getHeight() + + local x = self:getMouseX() + local y = self:getMouseY() + + return (x >= boX and x <= boW) and (y >= boY and y <= boH) +end + +function ISInventoryPage:isMouseInTop() + -- So the inventory disappearing isn't so sensitive + local buffer = 32 + local boX = buffer * (-1) + local boY = 0 -- can't really go further up at the top + local boW = self:getWidth() + buffer + local boH = self:titleBarHeight() + buffer + + local x = self:getMouseX() + local y = self:getMouseY() + + return (x >= boX and x <= boW) and (y >= boY and y <= boH) +end + +local _ISInventoryPage_update = ISInventoryPage.update +function ISInventoryPage:update() + if not spiff.config.enabled then + _ISInventoryPage_update(self) + return + end + + if not self.isMouse then + _ISInventoryPage_update(self) + ------------------------------------------ + self.closeButton:setVisible(false) + self.infoButton:setVisible(false) + self.pinButton:setVisible(false) + self.collapseButton:setVisible(false) + self.resizeWidget:setVisible(false) + return + end + + if not self.onCharacter then + if self.coloredInv and (self.inventory ~= self.coloredInv or self.isCollapsed) then + if self.coloredInv:getParent() then + self.coloredInv:getParent():setHighlighted(false) + end + self.coloredInv = nil; + end + + if not self.isCollapsed and self.inventory:getParent() and (instanceof(self.inventory:getParent(), "IsoObject") or instanceof(self.inventory:getParent(), "IsoDeadBody")) then + self.inventory:getParent():setHighlighted(true, false); + self.inventory:getParent():setHighlightColor(getCore():getObjectHighlitedColor()); + self.coloredInv = self.inventory; + end + + if not self.isCollapsed and self.inventoryPane.inventory:getType() == "floor" and self.inventoryPane.inventory:getItems():isEmpty() then + if self.autoHide and self.holdOpen and not self.prevMouse then + self:Collapse(true, "No Floor Items") + end + end + end +------------------------------------------ + self.collapseCounter = 0 + + self.wasVisible = not self.isCollapsed + + if not self.isCollapsed then + -- When we stop dragging, set panel to close after next mouseout or click, or set to tie with our friend + if not self.fVisible and (not ISMouseDrag.dragging or #ISMouseDrag.dragging == 0) and self.fromDrag then + self.fromDrag = false + self.autoHide = true + self.wasDrag = self.friend.mouseOver + self.holdOpen = not self.wasDrag + end + + -- If we're not dragging anything and we're not moused over and not from where we started, close + if not self.fVisible and (not ISMouseDrag.dragging or #ISMouseDrag.dragging == 0) and self.toDrag and not self.mouseOver then + self.toDrag = false + self.autoHide = true + end + + -- If we have dragged items, but we're not in our window + if not self.fVisible and (ISMouseDrag.dragging and #ISMouseDrag.dragging > 0) and self.toDrag and not self:isMouseInBuffer() then + self.toDrag = false + self.autoHide = true + end + + -- If we're no longer dragging items, but we're still on our window + if not self.fVisible and (not ISMouseDrag.dragging or #ISMouseDrag.dragging == 0) and self.toDrag and self:isMouseInBuffer() then + self.toDrag = false + end + + -- If we should autohide + --- prevmouse is to not have this happen immediately, we need a tick for other logic to kick in on state change + --- holdOpen should prevent the window from closing if we click on an object + --- We do this here so we can check the mouse location with our buffer + if not self.fVisible and self.autoHide and not self.prevMouse and not self.holdOpen and not self.fromDrag and not self.toDrag and not self.wasDrag and not self:isMouseInBuffer() then + self:Collapse(true, "Autohide") + end + + else + + -- If we are dragging items from the other inventory to our window + if not self.fVisible and (ISMouseDrag.dragging and #ISMouseDrag.dragging > 0) and not self.fromDrag and self:isMouseInBuffer() then + self:Collapse(false, "From Drag!") + self.toDrag = true + self.autoHide = true + end + + -- If mouse is at the top of the screen, show + if not self.fVisible and not self.toDrag and not self.fromDrag and not isMouseButtonDown(1) then + if not self.friend.wasVisible then + if self:isMouseInTop() then + self:Collapse(false, "MouseMoveIn") + self.autoHide = true + end + else + if self:isMouseIn() then + self:Collapse(false, "MouseMoveInFriend") + self.autoHide = true + end + end + end + + if self.fVisible then + self:Collapse(false, "force visible") + end + end + +------------------------------------------ + if not self.onCharacter then + -- add "remove all" button for trash can/bins + self.removeAll:setVisible(self:isRemoveButtonVisible()) + + local playerObj = getSpecificPlayer(self.player) + if self.lastDir ~= playerObj:getDir() then + self.lastDir = playerObj:getDir() + self:refreshBackpacks() + elseif self.lastSquare ~= playerObj:getCurrentSquare() then + self.lastSquare = playerObj:getCurrentSquare() + self:refreshBackpacks() + end + + -- If the currently-selected container is locked to the player, select another container. + local object = self.inventory and self.inventory:getParent() or nil + if #self.backpacks > 1 and instanceof(object, "IsoThumpable") and object:isLockedToCharacter(playerObj) then + local currentIndex = self:getCurrentBackpackIndex() + local unlockedIndex = self:prevUnlockedContainer(currentIndex, false) + if unlockedIndex == -1 then + unlockedIndex = self:nextUnlockedContainer(currentIndex, false) + end + if unlockedIndex ~= -1 then + self:selectContainer(self.backpacks[unlockedIndex]) + if playerObj:getJoypadBind() ~= -1 then + self.backpackChoice = unlockedIndex + end + end + end + end + + self:syncToggleStove() +------------------------------------------ + self.closeButton:setVisible(false) + self.infoButton:setVisible(false) + self.pinButton:setVisible(false) + self.collapseButton:setVisible(false) + self.resizeWidget:setVisible(false) +end + +------------------------------------------ +-- ISInventoryPage:setVisible +local _ISInventoryPage_setVisible = ISInventoryPage.setVisible +function ISInventoryPage:setVisible(vis) + if not spiff.config.enabled or not self.isMouse then + _ISInventoryPage_setVisible(self, vis) + return + end + + -- This gets called at the start of the game before init, so just don't do anything yet. + if not self.friend then return end + + self:Collapse(not vis, "setVisible") + + if vis then + --- This is really only called when the world interacts now + --- So let's treat it as such + self.holdOpen = true + self.autoHide = true + end +end + +------------------------------------------ +-- ISInventoryPage:getIsVisible +local _ISInventoryPage_getIsVisible = ISInventoryPage.getIsVisible +function ISInventoryPage:getIsVisible() + if not spiff.config.enabled or not self.isMouse then + return _ISInventoryPage_getIsVisible(self) + end + return not self.isCollapsed +end + +------------------------------------------ +-- ISInventoryPage:onMouseMove +local _ISInventoryPage_onMouseMove = ISInventoryPage.onMouseMove +function ISInventoryPage:onMouseMove(...) + if not spiff.config.enabled or not self.isMouse then + _ISInventoryPage_onMouseMove(self, ...) + return + end + -- Disable this + self.collapseCounter = 0 + + if isGamePaused() then + return + end + + -- if we're collapsed and pressing right mouse, we're probably aiming + --- this shouldn't trigger the inventory + if self.isCollapsed and isMouseButtonDown(1) then + return + end + + self.mouseOver = true + + -- Disable inventory window moving + if self.moving then + self.moving = false + end + + -- camera panning + local panCameraKey = getCore():getKey("PanCamera") + if self.isCollapsed and panCameraKey ~= 0 and isKeyDown(panCameraKey) then + return + end + + self.fromDrag = false + -- If we are dragging items from this inventory + if (ISMouseDrag.dragging and #ISMouseDrag.dragging > 0) and not self.toDrag and not self.fromDrag then + self.fromDrag = true + end + + -- First we touch the window, then close + if self.holdOpen then + self.holdOpen = false + end + + self.prevMouse = self.mouseOver +end + +------------------------------------------ +-- ISInventoryPage:onMouseMoveOutside +local _ISInventoryPage_onMouseMoveOutside = ISInventoryPage.onMouseMoveOutside +function ISInventoryPage:onMouseMoveOutside(...) + if not spiff.config.enabled or not self.isMouse then + _ISInventoryPage_onMouseMoveOutside(self, ...) + return + end + + if isGamePaused() then + return + end + self.mouseOver = false; + + if self.moving then + self.moving = false + end + + if self.wasDrag then + self.wasDrag = self.friend.mouseOver + end + + self.prevMouse = self.mouseOver +end + +------------------------------------------ +-- ISInventoryPage:onMouseDownOutside +local _ISInventoryPage_onMouseDownOutside = ISInventoryPage.onMouseDownOutside +function ISInventoryPage:onMouseDownOutside(...) + if not spiff.config.enabled or not self.isMouse then + _ISInventoryPage_onMouseDownOutside(self, ...) + return + end + + if not self.fVisible and not self.isCollapsed and not self:isMouseInBuffer() and not self.fromDrag and not self.toDrag and not self.wasDrag then + self:Collapse(true, "onMouseDownOutside") + end +end + +------------------------------------------ +-- ISInventoryPage:onRightMouseDownOutside +local _ISInventoryPage_onRightMouseDownOutside = ISInventoryPage.onRightMouseDownOutside +function ISInventoryPage:onRightMouseDownOutside(...) + if not spiff.config.enabled or not self.isMouse then + _ISInventoryPage_onRightMouseDownOutside(self, ...) + return + end + + if not self.fVisible and not self.isCollapsed and not self:isMouseInBuffer() and not self.fromDrag and not self.toDrag and not self.wasDrag then + self:Collapse(true, "onRightMouseDownOutside") + end +end + +function ISInventoryPage:Collapse(collapse, why) + --if self.isCollapsed == collapse then return end + + -- local label + -- if self.onCharacter then + -- label = "Player" + -- else + -- label = "Loot" + -- end + + -- if collapse then + -- print("Collapsing: " .. label .. " | " .. why) + -- else + -- print("Showing: " .. label .. " | " .. why) + -- end + + -- If we get here and there's no friend, re-run the init + if not self.friend then + spiffInit(self.player) + end + + self.isCollapsed = collapse + if self.isCollapsed then + self:setMaxDrawHeight(self:titleBarHeight()) + self.holdOpen = false + if spiff.config.enabled then + if self.friend.isCollapsed then + _ISInventoryPage_setVisible(self, false) + _ISInventoryPage_setVisible(self.friend, false) + end + end + else + if isClient() and not self.onCharacter then + self.inventoryPane.inventory:requestSync() + end + self:clearMaxDrawHeight() + self.collapseCounter = 0 + if spiff.config.enabled then + _ISInventoryPage_setVisible(self, true) + _ISInventoryPage_setVisible(self.friend, true) + end + end +end + +------------------------------------------ +-- ISInventoryPage:createChildren +local _ISInventoryPage_createChildren = ISInventoryPage.createChildren +function ISInventoryPage:createChildren() + _ISInventoryPage_createChildren(self) + + if spiff.config.enabled and self.isMouse then + self.closeButton:setVisible(false) + self.infoButton:setVisible(false) + self.pinButton:setVisible(false) + self.collapseButton:setVisible(false) + self.resizeWidget:setVisible(false) + + self.infoButton:setX(self.closeButton:getX()) + + self.minimumHeight = getPlayerScreenHeight(self.player) / 4 + end +end + +function ISInventoryPage:InitSUI() + -- Cache our player + self.playerObj = getSpecificPlayer(self.player) + + -- If player is on a controller + self.isMouse = (self.player == 0) and (not JoypadState.players[1]) + + -- If force visible + self.fVisible = false + -- autohide is used on mouse-over only + self.autoHide = false + -- Used to toggle Autohide until interaction with window + self.holdOpen = false + -- If being dragged to + self.toDrag = false + -- If dragged from here + self.fromDrag = false + -- If was opened from drag + self.wasDrag = false + + self.wasVisible = false +end + +function ISInventoryPage:SUIReset() + local x = getPlayerScreenLeft(self.player) + local y = getPlayerScreenTop(self.player) + local w = getPlayerScreenWidth(self.player) + local h = getPlayerScreenHeight(self.player) + + local divhei = 0 + local divwid = 0 + divhei = h / 3; + + if w < h then + divhei = h / 4; + end + + divwid = round(w / 3) + if divwid < 256 + 32 then + -- min width of ISInventoryPage + divwid = 256 + 32 + end + + if self.onCharacter then + self:setX(x + w / 2 - divwid) + else + self:setX(x + w / 2) + end + self:setY(y) + self:setWidth(divwid) + self:setHeight(divhei) + + -- Set the column sizes too! + local column2 = 48 + local column3 = (self.width - column2) / 4 + local column3 = math.ceil(column3*self.inventoryPane.zoom) + local column3 = (column3) + 100 + + self.inventoryPane.column2 = column2 + self.inventoryPane.column3 = column3 + + self.inventoryPane.nameHeader:setX(column2) + self.inventoryPane.nameHeader:setWidth((column3 - column2)) + + self.inventoryPane.typeHeader:setX(column3-1) + self.inventoryPane.typeHeader:setWidth(self.width - column3 + 1) +end + +ISInventoryPage.SpiffOnKey = function(playerObj) + local player = getPlayerInventory(0) + local loot = getPlayerLoot(0) + local state = not player.isCollapsed + + if not spiff.config.enabled then + state = not player:getIsVisible() + player:setVisible(state) + loot:setVisible(state) + return + end + + -- if dragging and tab is pressed, don't do the toggle. it resets the state + if (not ISMouseDrag.dragging or #ISMouseDrag.dragging == 0) then + player:Collapse(state, "Toggle") + loot:Collapse(state, "Toggle") + end + + -- still set this tho + player.fVisible = not state + loot.fVisible = not state +end \ No newline at end of file diff --git a/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/SpiffUI-Inventory.lua b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/SpiffUI-Inventory.lua new file mode 100644 index 0000000..5399256 --- /dev/null +++ b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/client/SpiffUI-Inventory.lua @@ -0,0 +1,78 @@ +------------------------------------------ +-- SpiffUI Inventory Module +------------------------------------------ +SpiffUI = SpiffUI or {} + +-- Register our inventory +local spiff = SpiffUI:Register("inventory") + +spiff.config = { + enabled = true +} + +local function SpiffUIBoot() + if ModOptions and ModOptions.getInstance then + local function apply(data) + local options = data.settings.options + -- Set options + spiff.config.enabled = options.enableInv + SpiffUI.equippedItem["Inventory"] = not options.hideInv + end + + local function applyGame(data) + apply(data) + local options = data.settings.options + SpiffUI:updateEquippedItem() + end + + local INVCONFIG = { + options_data = { + enableInv = { + name = "UI_ModOptions_SpiffUI_Inv_enable", + default = true, + tooltip = "UI_ModOptions_SpiffUI_Inv_tooltip_enable", + OnApplyMainMenu = apply, + OnApplyInGame = apply, + }, + hideInv = { + name = "UI_ModOptions_SpiffUI_Inv_hideInv", + default = true, + OnApplyMainMenu = apply, + OnApplyInGame = applyGame, + }, + }, + mod_id = "SpiffUI - Inventory", + mod_shortname = "SpiffUI-Inv", + mod_fullname = getText("UI_Name_SpiffUI_Inv") + } + + local optionsInstance = ModOptions:getInstance(INVCONFIG) + ModOptions:loadFile() + + Events.OnPreMapLoad.Add(function() + apply({settings = INVCONFIG}) + end) + + end + + local defKeys = { + ["Toggle mode"] = Keyboard.KEY_I, + ["Toggle Moveable Panel Mode"] = 0 + } + SpiffUI:AddKeyDefaults(defKeys) + + local keyBind = { + name = 'SpiffUI_Inv', + key = Keyboard.KEY_TAB, + qBlock = false, + Down = ISInventoryPage.SpiffOnKey + } + SpiffUI:AddKeyBind(keyBind) + + SpiffUI:AddKeyDisable("Toggle Inventory") + + -- Hello :) + print(getText("UI_Hello_SpiffUI_Inv")) +end + +spiff.Boot = SpiffUIBoot \ No newline at end of file diff --git a/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/shared/Translate/EN/UI_EN.txt b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/shared/Translate/EN/UI_EN.txt new file mode 100644 index 0000000..cebbaf4 --- /dev/null +++ b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/media/lua/shared/Translate/EN/UI_EN.txt @@ -0,0 +1,27 @@ +UI_EN = { + -- SpiffUI + UI_Hello_SpiffUI = "Hello SpiffUI!", + UI_Name_SpiffUI = "SpiffUI", + UI_optionscreen_binding_SpiffUI = "SpiffUI" + + UI_ModOptions_SpiffUI_applyNewKeybinds = "Set SpiffUI Recommended Keybinds", + UI_ModOptions_SpiffUI_Modal_applyNewKeybinds = " Set SpiffUI Keybinds Sets the following Keybinds: ", + UI_ModOptions_SpiffUI_Modal_aNKChild = " %1 to: [%2] ", + + UI_ModOptions_SpiffUI_runAllResets = "Run All SpiffUI Resets", + UI_ModOptions_SpiffUI_tooltip_runResets = "Only works In-Game!", + UI_ModOptions_SpiffUI_Modal_runResets = " SpiffUI Reset The following will be reset: ", + + + -- SpiffUI -- Inventory + UI_Hello_SpiffUI_Inv = "Hello SpiffUI - Inventory!", + + UI_Name_SpiffUI_Inv = "SpiffUI - Inventory", + + UI_ModOptions_SpiffUI_Inv_enable = "Enable SpiffUI Inventory", + UI_ModOptions_SpiffUI_Inv_tooltip_enable = "Note: A Restart is Required if In-Game!", + + UI_ModOptions_SpiffUI_Inv_hideInv = "Hide Inventory Button", + + UI_optionscreen_binding_SpiffUI_Inv = "Toggle Inventory" +} \ No newline at end of file diff --git a/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/mod.info.bak b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/mod.info.bak new file mode 100644 index 0000000..52289b5 --- /dev/null +++ b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/mod.info.bak @@ -0,0 +1,10 @@ +name=SpiffUI - Inventory +id=SpiffUI-Inv +authors=dhert + +description=Change the hiding/showing behavior of the Inventory Windows + +pzversion=41 +tags=Interface + +poster=poster.png diff --git a/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/poster.png b/SpiffUI-Inventory/Contents/mods/SpiffUI-Inventory/poster.png new file mode 100644 index 0000000000000000000000000000000000000000..26fa9000351691082241ac2b36c5317a047a92b8 GIT binary patch literal 122064 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 literal 0 HcmV?d00001 diff --git a/SpiffUI-Inventory/README.md b/SpiffUI-Inventory/README.md new file mode 100644 index 0000000..792312b --- /dev/null +++ b/SpiffUI-Inventory/README.md @@ -0,0 +1,69 @@ +# SpiffUI - Inventory + +![poster](Contents/mods/SpiffUI-Inventory/poster.png) + +## About SpiffUI + +SpiffUI is an attempt to make the Project Zomboid in-game UI more player-friendly. The UI currently acts like a windowing system overtop a video game; similar in behavior to the Openbox/Fluxbox windowing system for a Linux Desktop. This is works as the complexity of the game warrants this, but with little tweaks it can be so much better. + +There will be several independent modules released under the SpiffUI name that each change/add their own features. + +**Supports B41+. Works in Multiplayer** + +## SpiffUI - Inventory +Changes the default behavior of the Loot and Player Inventories in how they are displayed. + +For starters, the Inventory and Loot panels are hidden until the player triggers an interaction. + +The Inventory is now bound to the "Tab" key by default. Pressing Tab will open/close both the inventory and loot panels for the player, the panels cannot be closed when open in this way until you press the key again. + +Bringing the mouse to the top of the screen will show the inventory or loot panel allowing easy access; you can freely switch between which panel is open by moving the mouse. The panel is automatically hidden after losing mouse focus. + +Panels are no longer able to be resized horizontally or moved around. They are instead locked to the top of the screen in the default location, and can only be resized vertically. The "Close", "Info", "Collapse", and "Pin" buttons are also hidden. + +Clicking on a world container will show the loot panel and lock it open until the window is interacted with, an external mouse click, or if you walk away changing the loot panel to a blank floor. + +Even when "hidden", the panels are only a small mouse-movement or key-press away! + +Option to Hide the "Inventory" button in the left panel. (I know the keybind, I don't need it) + +The Inventory/Loot Panel rules should make sense in normal usage, but may take a small adjustment to your playstyle. Try it for yourself and let me know what you think! + +If playing with a controller these rules will not apply. + +## SpiffUI Configuration + +If ModOptions is installed (Recommended) SpiffUI will appear as a category. This is intended to have common configuration across all of SpiffUI, as well as tools to help configure the game to SpiffUI recommendations. + +- Set SpiffUI Recommended Keybinds + - Default: (None) It's a Button! + - Sets keybinds for built-in keys to recommended defaults. A dialog will ask confirming this change, and will display the changes it will make. +- Run All SpiffUI Resets + - Default: (None) It's a Button! + - Runs all "Reset" functions for SpiffUI modules. A user is able to change where the UI is, its size, etc. This will set this to default. A dialog will ask confirming this change, and will display the changes it will make. + - **NOTE:** This will only be usable in-game. + +## SpiffUI - Inventory Configuration + +- Enable SpiffUI Inventory + - Default: True + - Enables all SpiffUI Inventory changes. Disable to return to all vanilla behavior. + - **NOTE:** A restart will be required if in-game +- Hide Inventory Button + - Default: True + - Hides the Inventory button in the left sidemenu + +## Known Issues + +- The Dialog Box shown for the SpiffUI options will trigger the game to be unpaused if in-game. +- Controllers do not gain focus to the Settings Dialog; please use a mouse for now. +- Initiating a splitscreen game does not move Player 1's Inventory/Loot panels. This is vanilla behavior, but complicates things as you cannot move these panels with this mod. + + +## Translations + +This mod is currently only in English! If you would like to help with translations, please submit a Pull Request. + +``` + +``` \ No newline at end of file diff --git a/SpiffUI-Inventory/preview.png b/SpiffUI-Inventory/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..bea410912dd79afdc792fdfcb3f89a367311d842 GIT binary patch literal 19665 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 literal 0 HcmV?d00001 diff --git a/SpiffUI-Inventory/workshop.txt b/SpiffUI-Inventory/workshop.txt new file mode 100644 index 0000000..e8f8131 --- /dev/null +++ b/SpiffUI-Inventory/workshop.txt @@ -0,0 +1,84 @@ +version=1 +id=2799848602 +title=SpiffUI - Inventory +description=[h1]Supports B41+. Works in Multiplayer[/h1] +description=[h3]A new save is not required[/h3] +description= +description=[h2]About SpiffUI[/h2] +description= +description=SpiffUI is an attempt to make the Project Zomboid in-game UI more player-friendly. The UI currently acts like a windowing system overtop a video game; similar in behavior to the Openbox/Fluxbox windowing system for a Linux Desktop. This is works as the complexity of the game warrants this, but with little tweaks it can be so much better. +description= +description=There will be several independent modules released under the SpiffUI name that each change/add their own features. This allows me to make modifications to these independently, and allow you, the user, to choose which are active. +description= +description=[h2]About SpiffUI[/h2] +description= +description=Changes the default behavior of the Loot and Player Inventories in how they are displayed. +description= +description=For starters, the Inventory and Loot panels are hidden until the player triggers an interaction. +description= +description=The Inventory is now bound to the "Tab" key by default. Pressing Tab will open/close both the inventory and loot panels for the player, the panels cannot be closed when open in this way until you press the key again. +description= +description=Bringing the mouse to the top of the screen will show the inventory or loot panel allowing easy access; you can freely switch between which panel is open by moving the mouse. The panel is automatically hidden after losing mouse focus. +description= +description=Panels are no longer able to be resized horizontally or moved around. They are instead locked to the top of the screen in the default location, and can only be resized vertically. The "Close", "Info", "Collapse", and "Pin" buttons are also hidden. +description= +description=Clicking on a world container will show the loot panel and lock it open until the window is interacted with, an external mouse click, or if you walk away changing the loot panel to a blank floor. +description= +description=Even when "hidden", the panels are only a small mouse-movement or key-press away! +description= +description=Option to Hide the "Inventory" button in the left panel. (I know the keybind, I don't need it) +description= +description=The Inventory/Loot Panel rules should make sense in normal usage, but may take a small adjustment to your playstyle. Try it for yourself and let me know what you think! +description= +description=If playing with a controller these rules will not apply. +description= +description=I HIGHLY recommend that you run both the "Set SpiffUI Recommended Keybinds" and "Run All SpiffUI Resets" after you first install and start the game! +description= +description=[h2]SpiffUI Configuration[/h2] +description= +description=[url=https://steamcommunity.com/workshop/filedetails/?id=2169435993]ModOptions[/url] is required for futher configuration, but the mod will function without. +description=If ModOptions is installed (Recommended) SpiffUI will appear as a category. This is intended to have common configuration across all of SpiffUI, as well as tools to help configure the game to SpiffUI recommendations. +description= +description=[table] +description=[tr] +description=[th]Name[/th] +description=[th]Default[/th] +description=[th]Description[/th] +description=[/tr] +description=[tr] +description=[td]Set SpiffUI Recommended Keybinds[/td] +description=[td](None) It's a Button![/td] +description=[td]Sets keybinds for built-in keys to recommended defaults. A dialog will ask confirming this change, and will display the changes it will make.[/td] +description=[/tr] +description=[tr] +description=[td]Run All SpiffUI Resets[/td] +description=[td](None) It's a Button![/td] +description=[td]Runs all "Reset" functions for SpiffUI modules. A user is able to change where the UI is, its size, etc. This will set this to default. A dialog will ask confirming this change, and will display the changes it will make. PLEASE NOTE: This will only be usable in-game.[/td] +description=[/tr] +description=[/table] +description= +description=[h2]SpiffUI - Inventory Configuration[/h2] +description= +description=[table] +description=[tr] +description=[th]Name[/th] +description=[th]Default[/th] +description=[th]Description[/th] +description=[/tr] +description=[tr] +description=[td]Enable SpiffUI Inventory[/td] +description=[td]True[/td] +description=[td]Enables all SpiffUI Inventory changes. Disable to return to all vanilla behavior. NOTE: A restart will be required if in-game[/td] +description=[/tr] +description=[tr] +description=[td]Hide Inventory Button[/td] +description=[td]True[/td] +description=[td]Hides the Inventory button in the left sidemenu[/td] +description=[/tr] +description=[/table] +description= +description=[h2]Translations[/h2] +description= +description=This mod is currently only in English. If you would like to contribute a translation, please submit a pull request on [url=https://github.com/hlfstr/pz-mods]GitHub![/url] I will happily give credit! +tags=Build 41;Framework;Interface;Misc +visibility=friendsOnly