removal of obsolete files

This commit is contained in:
Chr1Z93 2023-05-08 22:13:12 +02:00
parent df7673cdfb
commit 25e07b1e46
10 changed files with 91 additions and 700 deletions

View File

@ -18,7 +18,6 @@
"TokenArranger.022907", "TokenArranger.022907",
"CYOACampaignGuides.e87ea2", "CYOACampaignGuides.e87ea2",
"AttachmentHelper.7f4976", "AttachmentHelper.7f4976",
"NavigationOverlay.a8affa",
"SearchAssistant.17aed0", "SearchAssistant.17aed0",
"HandHelper.450688", "HandHelper.450688",
"DisplacementTool.0f1374", "DisplacementTool.0f1374",

View File

@ -1,56 +0,0 @@
{
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"Bag": {
"Order": 0
},
"ColorDiffuse": {
"b": 0,
"g": 0.36652,
"r": 0.70588
},
"ContainedObjects_order": [
"NavigationOverlay.e5803c",
"CameraPlacementHelper.cecc3e",
"NavigationOverlayTile.9f2481"
],
"ContainedObjects_path": "NavigationOverlay.a8affa",
"Description": "",
"DragSelectable": true,
"GMNotes": "",
"GUID": "a8affa",
"Grid": true,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScript": "",
"LuaScriptState": "",
"MaterialIndex": -1,
"MeasureMovement": false,
"MeshIndex": -1,
"Name": "Bag",
"Nickname": "Navigation Overlay",
"Snap": true,
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": 76.955,
"posY": 36.39,
"posZ": 4.123,
"rotX": 0,
"rotY": 180,
"rotZ": 0,
"scaleX": 1,
"scaleY": 1,
"scaleZ": 1
},
"Value": 0,
"XmlUI": ""
}

View File

@ -1,52 +0,0 @@
{
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"ColorDiffuse": {
"b": 0.18382,
"g": 0.18382,
"r": 0.18382
},
"CustomAssetbundle": {
"AssetbundleSecondaryURL": "",
"AssetbundleURL": "http://cloud-3.steamusercontent.com/ugc/880873968289806692/67F62868DF65CD9CC43F3CDCDED7BACA0F075422/",
"LoopingEffectIndex": 0,
"MaterialIndex": 2,
"TypeIndex": 4
},
"Description": "[b]Camera Placement Helper[/b]\n\nIf you want to use another object as the focus for the camera, you may do so by enter its GUID into this object's NAME field.\n\nIf you put a space and a number, the camera rotation will be offset by that amount. POSITIVE NUMBERS ONLY.\n\n[i]Example:[/i]\ncecc3e 90\n",
"DragSelectable": true,
"GMNotes": "",
"GUID": "cecc3e",
"Grid": false,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScriptState": "",
"LuaScript_path": "OptionPanelSource.830bd0/NavigationOverlay.a8affa/CameraPlacementHelper.cecc3e.ttslua",
"MeasureMovement": false,
"Name": "Custom_Assetbundle",
"Nickname": "Camera Placement Helper",
"Snap": false,
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": -12.658,
"posY": 3.538,
"posZ": 28.573,
"rotX": 0,
"rotY": 270,
"rotZ": 0,
"scaleX": 0.58,
"scaleY": 0.58,
"scaleZ": 0.58
},
"Value": 0,
"XmlUI": ""
}

View File

@ -1,174 +0,0 @@
--Data tables used in button creation
ref_modifyPitchButtons = {
{ offset = -0.37, func = function() click_modify(-1, 0) end },
{ offset = -1.11, func = function() click_modify(-5, 0) end },
{ offset = 0.37, func = function() click_modify(1, 0) end },
{ offset = 1.11, func = function() click_modify(5, 0) end },
}
ref_modifyDistanceButtons = {
{ offset = -0.37, func = function() click_modify(-1, 1) end },
{ offset = -1.11, func = function() click_modify(-5, 1) end },
{ offset = 0.37, func = function() click_modify(1, 1) end },
{ offset = 1.11, func = function() click_modify(5, 1) end },
}
--On-demand save function, remembers pitch and distance values
function updateSave()
self.script_state = JSON.encode({ pitch = pitch, distance = distance })
end
--Startup, loading memory
function onload(saved_data)
--Loads the tracking for if the game has started yet
if saved_data ~= "" then
local loaded_data = JSON.decode(saved_data)
pitch = loaded_data.pitch
distance = loaded_data.distance
else
pitch = 45
distance = 30
end
createInputs()
createButtons()
end
--Activated by finishing writing in the input box, updates save info
function input_entered(inputString, stillEditing, typeIndex)
if stillEditing == false then
--Check to avoid empty input strings
if tonumber(inputString) == nil then inputString = 0 end
--Update save data
if typeIndex == 0 then
pitch = inputString
else
distance = inputString
end
updateSave()
end
end
--Activated by button, the -5 -1 +1 +5 buttons
function click_modify(amount, typeIndex)
if typeIndex == 0 then
pitch = pitch + amount
self.editInput({ index = typeIndex, value = pitch })
else
distance = distance + amount
self.editInput({ index = typeIndex, value = distance })
end
updateSave()
end
--Activated by button, uses the data to move the camera
function click_setCamera(_, color)
--Check if there is another object to use instead of self
local targetObj = self
local nameGUID = string.sub(self.getName(), 1, 6)
if getObjectFromGUID(nameGUID) ~= nil then
targetObj = getObjectFromGUID(nameGUID)
end
--Check if there is an offset to use instead of 180
local offsetY = 180
local offsetString = string.sub(self.getName(), 7)
if tonumber(string.match(offsetString, "%d+")) ~= nil then
offsetY = tonumber(string.match(offsetString, "%d+"))
end
--Move camera into position around object
local pos = targetObj.getPosition()
local rot = targetObj.getRotation()
rot.y = rot.y + offsetY
Player[color].lookAt({ position = pos, pitch = pitch, yaw = rot.y, distance = distance })
--Send values to main tile
for _, v in ipairs(getObjects()) do
if v.getName() == "Navigation Overlay Tile" then
v.call('updateEditCamera', { { pos.x, pos.y, pos.z }, tonumber(pitch), rot.y, tonumber(distance) })
break
end
end
end
--Button/Input creation
--Text boxes for number input
function createInputs()
local funcName = "inputFuncNamePitch"
local func = function(_, _, x, z) input_entered(x, z, 0) end
self.setVar(funcName, func)
self.createInput({
input_function = funcName,
function_owner = self,
label = "input",
alignment = 2,
position = { -3.4, 0.35, -0.21 },
rotation = { 0, 0, 0 },
height = 420,
width = 1400,
font_size = 400,
color = { 57 / 255, 46 / 255, 40 / 255 },
font_color = { 1, 1, 1 },
value = pitch,
validation = 3
})
local funcName = "inputFuncNameDistance"
local func = function(_, _, x, z) input_entered(x, z, 1) end
self.setVar(funcName, func)
self.createInput({
input_function = funcName,
function_owner = self,
label = "input",
alignment = 4,
position = { 3.4, 0.35, -0.21 },
rotation = { 0, 0, 0 },
height = 420,
width = 1400,
font_size = 400,
color = { 57 / 255, 46 / 255, 40 / 255 },
font_color = { 1, 1, 1 },
value = distance,
validation = 3
})
end
--Center button and -5 - +5 buttons
function createButtons()
self.createButton({
click_function = "click_setCamera",
function_owner = self,
position = { 0, 0.4, 0 },
height = 900,
width = 900,
color = { 1, 1, 1, 0 },
tooltip = "Set camera to this angle"
})
for i, ref in ipairs(ref_modifyPitchButtons) do
local funcName = "pitchModifyFunction_" .. i
self.setVar(funcName, ref.func)
local pos = { -3.4 + ref.offset, 0.3, 0.6 }
self.createButton({
click_function = funcName,
function_owner = self,
position = pos,
height = 240,
width = 320,
color = { 1, 1, 1, 0 }
})
end
for i, ref in ipairs(ref_modifyDistanceButtons) do
local funcName = "distanceModifyFunction_" .. i
self.setVar(funcName, ref.func)
local pos = { 3.4 + ref.offset, 0.3, 0.6 }
self.createButton({
click_function = funcName,
function_owner = self,
position = pos,
height = 240,
width = 320,
color = { 1, 1, 1, 0 }
})
end
end

View File

@ -1,227 +0,0 @@
{
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"ColorDiffuse": {
"b": 1,
"g": 1,
"r": 1
},
"Description": "Controls a movable overlay allowing for quick movement to various parts of the table. There should only be one tile per table.\n\nFull Table: Displays a larger overlay corresponding to the whole table.\n\nPlay Area: Displays a much smaller overlay only covering the play area.",
"DragSelectable": true,
"GMNotes": "",
"GUID": "e5803c",
"Grid": true,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScript": "",
"LuaScriptState": "",
"MeasureMovement": false,
"Name": "Notecard",
"Nickname": "Navigation Overlay",
"Snap": true,
"States": {
"2": {
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"ColorDiffuse": {
"b": 1,
"g": 1,
"r": 1
},
"Description": "If there is only 1 player, clicking a button to move to a playmat will change the player's color to that playmat's color. Changes to camera settings will apply to all colors.\n\nIf there is more than 1 player, displaying the overlay or editing a camera setting will only apply to your color.",
"DragSelectable": true,
"GMNotes": "",
"GUID": "3051f2",
"Grid": true,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScript": "",
"LuaScriptState": "",
"MeasureMovement": false,
"Name": "Notecard",
"Nickname": "Navigation Overlay",
"Snap": true,
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": -69.47138,
"posY": 1.551499,
"posZ": -50.97995,
"rotX": -6.706855e-8,
"rotY": 90.00628,
"rotZ": 3.98763333e-9,
"scaleX": 0.7,
"scaleY": 1,
"scaleZ": 0.7
},
"Value": 0,
"XmlUI": ""
},
"3": {
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"ColorDiffuse": {
"b": 1,
"g": 1,
"r": 1
},
"Description": "Edit Camera: TTS does not make accessing camera settings easy, so this is done using a modified version of MrStump's Camera Placement Helper.\n\nTo use the Helper, place it in the position you want the camera to look, with the desired rotation. Set the Pitch and Distance values. Click \"Set camera to this angle\".",
"DragSelectable": true,
"GMNotes": "",
"GUID": "579a11",
"Grid": true,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScript": "",
"LuaScriptState": "",
"MeasureMovement": false,
"Name": "Notecard",
"Nickname": "Navigation Overlay: Edit Camera (1/2)",
"Snap": true,
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": -69.47138,
"posY": 1.55149889,
"posZ": -50.97995,
"rotX": -4.66551136e-8,
"rotY": 90.00628,
"rotZ": 9.637148e-9,
"scaleX": 0.7,
"scaleY": 1,
"scaleZ": 0.7
},
"Value": 0,
"XmlUI": ""
},
"4": {
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"ColorDiffuse": {
"b": 1,
"g": 1,
"r": 1
},
"Description": "1. Click \"Edit Camera\"\n2. Click a button in the overlay, it will turn green.\n3. Use the Camera Placement Helper to set the camera view.\n4. When clicking \"Set camera to this angle\" produces the correct camera view, click the green button in the overlay again to set the camera. Click a red button to cancel.",
"DragSelectable": true,
"GMNotes": "",
"GUID": "045a3e",
"Grid": true,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScript": "",
"LuaScriptState": "",
"MeasureMovement": false,
"Name": "Notecard",
"Nickname": "Navigation Overlay: Edit Camera (2/2)",
"Snap": true,
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": -69.47138,
"posY": 1.55149889,
"posZ": -50.97995,
"rotX": -1.21061817e-7,
"rotY": 90.00628,
"rotZ": 9.462388e-8,
"scaleX": 0.7,
"scaleY": 1,
"scaleZ": 0.7
},
"Value": 0,
"XmlUI": ""
},
"5": {
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"ColorDiffuse": {
"b": 1,
"g": 1,
"r": 1
},
"Description": "Claim Color: This is useful if you are running a game where one person controls 2 colors, and one controls the other two, and you wish to have your player color switch when you click White or Red, but not if you click Green or Orange.\n\nWhen you click Claim Color, the playmat areas of the overlay will turn white. Clicking one will allow you to switch to that color with the overlay. ",
"DragSelectable": true,
"GMNotes": "",
"GUID": "516664",
"Grid": true,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScript": "",
"LuaScriptState": "",
"MeasureMovement": false,
"Name": "Notecard",
"Nickname": "Navigation Overlay: Claim Colors",
"Snap": true,
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": -38.4611664,
"posY": 1.59,
"posZ": -1.54776835,
"rotX": 5.3783765e-8,
"rotY": 90.00012,
"rotZ": 8.552772e-8,
"scaleX": 0.7,
"scaleY": 1,
"scaleZ": 0.7
},
"Value": 0,
"XmlUI": ""
}
},
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": -37.692,
"posY": 3.67,
"posZ": 9.23,
"rotX": 0,
"rotY": 90,
"rotZ": 0,
"scaleX": 0.7,
"scaleY": 1,
"scaleZ": 0.7
},
"Value": 0,
"XmlUI": ""
}

View File

@ -1,56 +0,0 @@
{
"AltLookAngle": {
"x": 0,
"y": 0,
"z": 0
},
"Autoraise": true,
"ColorDiffuse": {
"b": 1,
"g": 1,
"r": 1
},
"CustomImage": {
"CustomTile": {
"Stackable": false,
"Stretch": true,
"Thickness": 0.1,
"Type": 0
},
"ImageScalar": 1,
"ImageURL": "http://cloud-3.steamusercontent.com/ugc/2021591230456185506/15AF790F0622B57C1F629DB3A8C38F2A99D0EB1B/",
"WidthScale": 0
},
"Description": "",
"DragSelectable": true,
"GMNotes": "",
"GUID": "9f2481",
"Grid": false,
"GridProjection": false,
"Hands": false,
"HideWhenFaceDown": false,
"IgnoreFoW": false,
"LayoutGroupSortIndex": 0,
"Locked": false,
"LuaScript": "",
"LuaScriptState": "",
"MeasureMovement": false,
"Name": "Custom_Tile",
"Nickname": "Navigation Overlay Tile",
"Snap": false,
"Sticky": true,
"Tooltip": true,
"Transform": {
"posX": -12.93,
"posY": 3.562,
"posZ": 28.568,
"rotX": 0,
"rotY": 270,
"rotZ": 1,
"scaleX": 3,
"scaleY": 1,
"scaleZ": 3
},
"Value": 0,
"XmlUI": ""
}

View File

@ -38,6 +38,7 @@ local soundCubeApi = require("core/SoundCubeApi")
local mythosAreaApi = require("core/MythosAreaApi") local mythosAreaApi = require("core/MythosAreaApi")
local tokenArrangerApi = require("accessories/TokenArrangerApi") local tokenArrangerApi = require("accessories/TokenArrangerApi")
local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi") local blessCurseManagerApi = require("chaosbag/BlessCurseManagerApi")
local navigationOverlayApi = require("core/NavigationOverlayApi")
-- online functionality related variables -- online functionality related variables
local MOD_VERSION = "3.1.0" local MOD_VERSION = "3.1.0"
@ -643,8 +644,7 @@ end
function onClick_toggleUi(player, title) function onClick_toggleUi(player, title)
if title == "Navigation Overlay" then if title == "Navigation Overlay" then
local navigationOverlayHandler = getObjectFromGUID("797ede") navigationOverlayApi.cycleVisibility(player.color)
navigationOverlayHandler.call("cycleVisibility", player.color)
return return
end end

View File

@ -12,5 +12,11 @@ do
}) })
end end
-- Changes the Navigation Overlay view ("Full View" --> "Play Areas" --> "Closed" etc.)
---@param playerColor String Color of the player to update the visibility for
NavigationOverlayApi.cycleVisibility = function(playerColor)
getObjectFromGUID(HANDLER_GUID).call("cycleVisibility", playerColor)
end
return NavigationOverlayApi return NavigationOverlayApi
end end

View File

@ -1,4 +1,5 @@
local playmatApi = require("playermat/PlaymatApi") local playmatApi = require("playermat/PlaymatApi")
fullButtonData = { fullButtonData = {
{ id = "1", width = "84", height = "33", offset = "1 2" }, -- Act/Agenda { id = "1", width = "84", height = "33", offset = "1 2" }, -- Act/Agenda
{ id = "2", width = "78", height = "69", offset = "1 -62" }, -- Map { id = "2", width = "78", height = "69", offset = "1 -62" }, -- Map
@ -58,13 +59,16 @@ defaultCameraParams = {
{ position = { -59.08, 1.55, -83 }, distance = 27 } -- 18. Additions { position = { -59.08, 1.55, -83 }, distance = 27 } -- 18. Additions
} }
local cameraParams = { {}, {}, {}, {} }
local playermatData = { {}, {}, {}, {} }
local editing = false local editing = false
local claiming = false local claiming = false
local cameraParams = {}
local visibility = {} local visibility = {}
local claims = {} local claims = {}
---------------------------------------------------------
-- save/load functionality
---------------------------------------------------------
function onSave() function onSave()
return JSON.encode({ return JSON.encode({
cameras = cameraParams, cameras = cameraParams,
@ -89,27 +93,30 @@ function onLoad(savedData)
updateVisibility() updateVisibility()
end end
---------------------------------------------------------
-- visibility related functions
---------------------------------------------------------
function cycleVisibility(color) function cycleVisibility(color)
setVisibility("next", color) setVisibility("next", color)
end end
function copyVisibility(params)
visibility[params.targetColor] = {
full = visibility[params.startColor].full,
play = visibility[params.startColor].play
}
updateVisibility()
end
function setVisibility(type, color) function setVisibility(type, color)
if type == "next" then if type == "next" then
if visibility[color].full then if visibility[color].full then
visibility[color] = { visibility[color] = { full = false, play = true }
full = false,
play = true
}
elseif visibility[color].play then elseif visibility[color].play then
visibility[color] = { visibility[color] = { full = false, play = false }
full = false,
play = false
}
else else
visibility[color] = { visibility[color] = { full = true, play = false }
full = true,
play = false
}
end end
elseif type == "toggle" then elseif type == "toggle" then
visibility[color] = { visibility[color] = {
@ -117,60 +124,43 @@ function setVisibility(type, color)
play = not visibility[color].play play = not visibility[color].play
} }
else else
visibility[color] = { visibility[color] = { full = false, play = false }
full = false,
play = false
}
end end
updateVisibility() updateVisibility()
end end
function getIndices(color)
local playerCount = #getSeatedPlayers()
if playerCount == 0 then
return {}
elseif playerCount == 1 then
return { 1, 2, 3, 4 }
else
return { getIndexForPlayerColor(color) }
end
end
function resetCameras()
for v = 1, 4 do
cameraParams[v] = {}
for i = 1, #defaultCameraParams do
cameraParams[v][i] = {}
cameraParams[v][i].position = defaultCameraParams[i].position
cameraParams[v][i].pitch = 75
cameraParams[v][i].yaw = 90
cameraParams[v][i].distance = defaultCameraParams[i].distance
end
end
end
-- update XML visibility -- update XML visibility
function updateVisibility() function updateVisibility()
local fullColors = "Black" local colorString = {full = "", play = ""}
local playColors = "Black"
for color, v in pairs(visibility) do for color, v in pairs(visibility) do
if v.full then if v.full then
fullColors = fullColors .. '|' .. color if colorString.full == "" then
colorString.full = color
else
colorString.full = colorString.full .. '|' .. color
end
elseif v.play then elseif v.play then
playColors = playColors .. '|' .. color if colorString.play == "" then
colorString.play = color
else
colorString.play = colorString.play .. '|' .. color
end
end end
end end
log(fullColors)
log(playColors)
-- update the visibility on the XML -- update the visibility on the XML
UI.setAttribute("navPanelFull", "visibility", fullColors) UI.setAttribute("navPanelFull", "visibility", colorString.full)
UI.setAttribute("navPanelPlay", "visibility", playColors) UI.setAttribute("navPanelPlay", "visibility", colorString.play)
UI.setAttribute("navPanelFull", "active", colorString.full ~= "")
UI.setAttribute("navPanelPlay", "active", colorString.play ~= "")
end end
---------------------------------------------------------
-- XML creating/editing
---------------------------------------------------------
function updateXmlButtons() function updateXmlButtons()
local ui = UI.getXmlTable() local ui = UI.getXmlTable()
ui = updateXmlButtonHelper(ui, { ui = updateXmlButtonHelper(ui, {
@ -249,53 +239,30 @@ function findTagWithId(ui, id)
return nil return nil
end end
---------------------------------------------------------
-- core functionality
---------------------------------------------------------
-- handles all button clicks -- handles all button clicks
function buttonClicked(player, _, idValue) function buttonClicked(player, _, idValue)
local buttonID = tonumber(idValue) local index = tonumber(idValue)
if buttonID == 19 then if index == 19 then
setVisibility("toggle", player.color) setVisibility("toggle", player.color)
return return
elseif buttonID == 20 then elseif index == 20 then
setVisibility("close", player.color) setVisibility("close", player.color)
return return
end end
if editing then loadCamera(player, _, index)
if selectedEditButton < 0 then
selectedEditButton = buttonID
else
if buttonID == selectedEditButton and editDistance > 0 then
for _, v in ipairs(getIndices(color)) do
cameraParams[v][selectedEditButton].position = editPos
cameraParams[v][selectedEditButton].pitch = editPitch
cameraParams[v][selectedEditButton].yaw = editYaw
cameraParams[v][selectedEditButton].distance = editDistance
end
end
editing = false
selectedEditButton = -1
end
updateXmlButtons()
elseif claiming then
if buttonID >= 3 and buttonID <= 6 then
local colors = {"White", "Orange", "Green", "Red"}
local matColor = colors[buttonID - 2]
claims[player.color][matColor] = not claims[player.color][matColor]
end
claiming = false
updateXmlButtons()
else
loadCamera(player, _, buttonID)
end
end end
function loadCamera(player, _, index) function loadCamera(player, _, index)
local lookHere
-- only do map zooming if the camera hasn't been specially set by user -- only do map zooming if the camera hasn't been specially set by user
if index == 2 and cameraParams[playerIndex][index].distance <= 0 then if index == 2 and cameraParams[player.color][index].distance <= 0 then
local zone = getObjectFromGUID("a2f932") local zone = getObjectFromGUID("a2f932")
local minX, minZ, maxX, maxZ = 100, 100, -100, -100 local minX, minZ, maxX, maxZ = 100, 100, -100, -100
@ -314,16 +281,15 @@ function loadCamera(player, _, index)
end end
end end
player.lookAt({ lookHere = {
position = { (minX + maxX) / 2, 0, (minZ + maxZ) / 2 }, position = { (minX + maxX) / 2, 0, (minZ + maxZ) / 2 },
pitch = 75, pitch = 75,
yaw = 90, yaw = 90,
distance = 0.96 * math.max(maxX - minX, (maxZ - minZ) / 1.6) + 5 distance = 0.96 * math.max(maxX - minX, (maxZ - minZ) / 1.6) + 5
}) }
elseif index >= 3 and index <= 6 then elseif index >= 3 and index <= 6 then
local newMatIndex = index - 2 -- mat index 1 - 4
local colorList = { "White", "Orange", "Green", "Red" } local colorList = { "White", "Orange", "Green", "Red" }
local newMatColor = colorList[newMatIndex] local newMatColor = colorList[index - 2] -- mat index 1 - 4
local newPlayerColor = playmatApi.getPlayerColor(newMatColor) local newPlayerColor = playmatApi.getPlayerColor(newMatColor)
if newMatColor ~= nil and (#getSeatedPlayers() == 1 or claims[player.color][newMatColor]) then if newMatColor ~= nil and (#getSeatedPlayers() == 1 or claims[player.color][newMatColor]) then
@ -331,8 +297,8 @@ function loadCamera(player, _, index)
player.changeColor(newPlayerColor) player.changeColor(newPlayerColor)
end end
if cameraParams[newMatIndex][index].distance <= 0 then if cameraParams[player.color][index].distance <= 0 then
local divisor, minX, maxX, minZ, maxZ local minX, maxX, minZ, maxZ
for _, v in pairs(playmatApi.searchPlaymat(newMatColor)) do for _, v in pairs(playmatApi.searchPlaymat(newMatColor)) do
local bounds = v.hit_object.getBounds() local bounds = v.hit_object.getBounds()
@ -347,38 +313,16 @@ function loadCamera(player, _, index)
maxZ = math.max(z2, maxZ or z2) maxZ = math.max(z2, maxZ or z2)
end end
-- White/Orange lookHere = {
if index == 3 or index == 4 then position = { (minX + maxX) / 2, 0, (minZ + maxZ) / 2 },
divisor = {x = 1.5, z = 1.5 } -- screen ratio * 1.2 (for my macbook pro, no idea how to generalize this) pitch = 75,
-- Green/Red yaw = playmatApi.returnRotation(newMatColor).y + 180,
else distance = 0.42 * math.max(maxX - minX, maxZ - minZ) + 7
divisor = {x = 1.5, z = 1.5} }
end
-- need to wait if the player color changed
Wait.frames(
function() player.lookAt({
position = { (minX + maxX) / 2, 0, (minZ + maxZ) / 2 },
pitch = 75,
yaw = playmatApi.returnRotation(newMatColor).y + 180,
distance = 0.64 * math.max((maxX - minX) / divisor.x, (maxZ - minZ) / divisor.z) + 7
})
end, 2)
else
Wait.frames(function() player.lookAt(cameraParams[newMatIndex][index]) end, 2)
end end
else
local playerIndex = getIndexForPlayerColor(player.color)
player.lookAt(cameraParams[playerIndex][index])
end end
end -- delay is to account for colorswap
Wait.frames(function() player.lookAt(lookHere or cameraParams[player.color][index]) end, 2)
function copyVisibility(params)
visibility[params.targetColor] = {
full = visibility[params.startColor].full,
play = visibility[params.startColor].play
}
updateVisibility()
end end
function beginClaimColor() function beginClaimColor()
@ -405,6 +349,23 @@ function updateEditCamera(params)
editDistance = params[4] editDistance = params[4]
end end
---------------------------------------------------------
-- functions to reset/initialize tables
---------------------------------------------------------
function resetCameras()
for _, color in ipairs(Player.getColors()) do
cameraParams[color] = {}
for i = 1, #defaultCameraParams do
cameraParams[color][i] = {}
cameraParams[color][i].yaw = 90
cameraParams[color][i].pitch = 75
cameraParams[color][i].position = defaultCameraParams[i].position
cameraParams[color][i].distance = defaultCameraParams[i].distance
end
end
end
function resetClaimColors() function resetClaimColors()
for _, seatedColor in ipairs(getSeatedPlayers()) do for _, seatedColor in ipairs(getSeatedPlayers()) do
claims[seatedColor] = {} claims[seatedColor] = {}
@ -419,13 +380,3 @@ function resetVisibility()
visibility[color] = { full = false, play = false } visibility[color] = { full = false, play = false }
end end
end end
function getIndexForPlayerColor(color)
local index = { White = 1, Orange = 2, Green = 3, Red = 4 }
if index[color] then
return index[color]
else
return -1
end
end

View File

@ -1,7 +1,7 @@
<!-- Defaults --> <!-- Defaults -->
<Defaults> <Defaults>
<Panel class="navPanel" <Panel class="navPanel"
visibility="Black" active="false"
allowDragging="true" allowDragging="true"
rectAlignment="LowerRight" rectAlignment="LowerRight"
returnToOriginalPositionWhenReleased="false" returnToOriginalPositionWhenReleased="false"