-- Bundled by luabundle {"version":"1.6.0"} local __bundle_require, __bundle_loaded, __bundle_register, __bundle_modules = (function(superRequire) local loadingPlaceholder = {[{}] = true} local register local modules = {} local require local loaded = {} register = function(name, body) if not modules[name] then modules[name] = body end end require = function(name) local loadedModule = loaded[name] if loadedModule then if loadedModule == loadingPlaceholder then return nil end else if not modules[name] then if not superRequire then local identifier = type(name) == 'string' and '\"' .. name .. '\"' or tostring(name) error('Tried to require ' .. identifier .. ', but no such module has been registered') else return superRequire(name) end end loaded[name] = loadingPlaceholder loadedModule = modules[name](require, loaded, register, modules) loaded[name] = loadedModule end return loadedModule end return require, loaded, register, modules end)(nil) __bundle_register("__root", function(require, _LOADED, __bundle_register, __bundle_modules) require("playermat/ClueCounter") end) __bundle_register("playermat/ClueCounter", function(require, _LOADED, __bundle_register, __bundle_modules) -- Table of items which can be counted in this Bowl -- Each entry has 2 things to enter -- a name (what is in the name field of that object) -- a value (how much it is worth) -- a number in the items description will override the number entry in this table local validCountItemList = { ["Clue"] = 1, [""] = 1 } local trashGUID = "70b9f6" exposedValue = 0 function onLoad() self.createButton({ label = "", click_function = "removeAllClues", function_owner = self, position = { 0, 0.1, 0 }, height = 0, width = 0, font_color = { 0, 0, 0 }, font_size = 2000 }) loopID = Wait.time(countItems, 1, -1) end -- Activated once per second, counts items in bowls function countItems() local totalValue = 0 local countableItems = findValidItemsInSphere() for _, entry in ipairs(countableItems) do local descValue = tonumber(entry.hit_object.getDescription()) local stackMult = math.abs(entry.hit_object.getQuantity()) -- Use value in description if available if descValue ~= nil then totalValue = totalValue + descValue * stackMult else -- Otherwise use the value in validCountItemList totalValue = totalValue + validCountItemList[entry.hit_object.getName()] * stackMult end end exposedValue = totalValue self.editButton({ index = 0, label = totalValue }) end function findValidItemsInSphere() local items = Physics.cast({ origin = self.getPosition(), direction = { 0, 1, 0 }, type = 2, max_distance = 0, size = { 2, 2, 2 }, --debug=true }) retval = {} for _, entry in ipairs(items) do --Ignore the bowl if entry.hit_object ~= self then --Ignore if not in validCountItemList local tableEntry = validCountItemList[entry.hit_object.getName()] if tableEntry ~= nil then table.insert(retval, entry) end end end return retval end function removeAllClues() startLuaCoroutine(self, "clueRemovalCoroutine") end function clueRemovalCoroutine() for _, entry in ipairs(findValidItemsInSphere()) do -- Do not put the table in the garbage if entry.hit_object.getGUID() ~= "4ee1f2" then -- delay for animation purposes for k = 1, 10 do coroutine.yield(0) end getObjectFromGUID(trashGUID).putObject(entry.hit_object) end end return 1 end end) return __bundle_require("__root")