From 614cdba47727489b4dbf5b7b053b0d8473b43cf8 Mon Sep 17 00:00:00 2001 From: Chr1Z93 Date: Tue, 6 Aug 2024 00:08:46 +0200 Subject: [PATCH] bugfixes --- src/core/Global.ttslua | 36 ++++++++++++++++----------- src/core/token/TokenManagerApi.ttslua | 7 ++++-- src/util/TokenSpawnTool.ttslua | 2 +- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/core/Global.ttslua b/src/core/Global.ttslua index bbf5aa47..fffbf9d3 100644 --- a/src/core/Global.ttslua +++ b/src/core/Global.ttslua @@ -1998,7 +1998,7 @@ function TokenManager.generateOffsets(maxTokens) tokenOffsets = {} for numTokens = 1, maxTokens do if numTokens == 1 then - tokenOffsets[1] = Vector(0, 3, -0.2) + tokenOffsets[1] = { Vector(0, 3, -0.2) } else local offsets = {} local rows = math.min(4, math.ceil(numTokens / 3)) @@ -2154,24 +2154,36 @@ function TokenManager.spawnToken(params) local callbackName = params.callbackName local callbackParams = params.callbackParams - if callbackName and type(_G[callbackName]) ~= "function" then - error("Callback function " .. callbackName .. " does not exist") - return + -- initialize data table + local spawnData = { position = position } + + -- maybe set callback function + if callbackName then + if type(_G[callbackName]) ~= "function" then + error("Callback function " .. callbackName .. " does not exist") + return + else + spawnData.callback_function = function(obj) _G[callbackName](obj, callbackParams) end + end end - TokenManager.initTokenTemplates() - + -- get data for token type local loadTokenType = tokenType if tokenType == "clue" or tokenType == "doom" then loadTokenType = "clueDoom" end + TokenManager.initTokenTemplates() local tokenTemplate = tokenTemplates[loadTokenType] if tokenTemplate == nil then error("Unknown token type '" .. loadTokenType .. "'") return end + tokenTemplate.Nickname = "" + spawnData.data = tokenTemplate + + -- get rotation for the token -- Take ONLY the Y-value for rotation, so we don't flip the token coming out of the bag local rot = Vector(tokenTemplate.Transform.rotX, 270, tokenTemplate.Transform.rotZ) if rotation ~= nil then @@ -2181,13 +2193,9 @@ function TokenManager.spawnToken(params) rot.z = 180 end - tokenTemplate.Nickname = "" - return spawnObjectData({ - data = tokenTemplate, - position = position, - rotation = rot, - callback_function = function(obj) _G[callbackName](obj, callbackParams) end - }) + spawnData.rotation = rot + + return spawnObjectData(spawnData) end -- Checks a card for metadata to maybe replenish it @@ -2394,7 +2402,7 @@ end ---@param card tts__Object Card object to be replenished ---@param useInfo table The already decoded subtable of metadata.uses (to avoid decoding again) -TokenManager.replenishTokens = function(card, useInfo) +function TokenManager.replenishTokens(card, useInfo) -- get current amount of matching resource tokens on the card local clickableResourceCounter = nil local foundTokens = 0 diff --git a/src/core/token/TokenManagerApi.ttslua b/src/core/token/TokenManagerApi.ttslua index eff3cc75..37752580 100644 --- a/src/core/token/TokenManagerApi.ttslua +++ b/src/core/token/TokenManagerApi.ttslua @@ -45,8 +45,8 @@ do { "TokenManager", "spawnToken" }, { position = position, - tokenType = tokenType, rotation = rotation, + tokenType = tokenType, callbackName = callbackName, callbackParams = callbackParams } @@ -79,7 +79,10 @@ do function TokenManagerApi.maybeReplenishCard(card, uses) Global.call("callTable", { { "TokenManager", "maybeReplenishCard" }, - { card = card, uses = uses } + { + card = card, + uses = uses + } }) end diff --git a/src/util/TokenSpawnTool.ttslua b/src/util/TokenSpawnTool.ttslua index d476599c..6dd65478 100644 --- a/src/util/TokenSpawnTool.ttslua +++ b/src/util/TokenSpawnTool.ttslua @@ -18,8 +18,8 @@ function onScriptingButtonDown(index, playerColor) local tokenType = TOKEN_INDEX[index] if not tokenType then return end - local rotation = { x = 0, y = Player[playerColor].getPointerRotation(), z = 0 } local position = Player[playerColor].getPointerPosition() + Vector(0, 0.2, 0) + local rotation = Vector(0, Player[playerColor].getPointerRotation(), 0) callbackName = nil callbackParams = nil