better border loading

This commit is contained in:
Kyle
2018-10-29 18:23:54 -07:00
parent aa33258c45
commit 38fd185236
5 changed files with 64 additions and 23 deletions

View File

@@ -18,8 +18,8 @@ var typeY = 502
var typeAlign = "center" var typeAlign = "center"
//Rules/Flavor Text //Rules/Flavor Text
var textFont = "px mplantin" var textFont = "px mplantin"
var textFontSpacing = 0.3 var textFontSpacing = 0.2
var textX = 125 var textX = 124
var textY = 535 var textY = 535
var textWidth = 925 var textWidth = 925
document.getElementById("textSize").value = 26 document.getElementById("textSize").value = 26

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

BIN
data/manaSymbols/56.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -20,9 +20,9 @@
<div class="togglee shown"> <div class="togglee shown">
Border Border
<select id="borderSelection" onchange="changeTemplate()"> <select id="borderSelection" onchange="changeTemplate()">
<option value="plane/">Plane</option>
<option value="m15/">M15</option> <option value="m15/">M15</option>
<option value="map/">Map (Ixalan)</option> <option value="map/">Map (Ixalan)</option>
<option value="plane/">Plane</option>
<option value="8th/">8th</option> <option value="8th/">8th</option>
</select> </select>
<br/> <br/>
@@ -35,7 +35,7 @@
<br/> <br/>
<input type="checkbox" id="checkboxThirdColor" onchange="updateBorder()">Third Color <select id="thirdColorSelection" onchange="updateBorder()"></select></input> <input type="checkbox" id="checkboxThirdColor" onchange="updateBorder()">Third Color <select id="thirdColorSelection" onchange="updateBorder()"></select></input>
<br/> <br/>
<input type="checkbox" id="checkboxCreature" onchange="updateBorder()">Power/Toughness <input type="checkbox" id="checkboxCreature">Power/Toughness
<input id="inputPowerToughness" value="" type="text"></input> <input id="inputPowerToughness" value="" type="text"></input>
</div> </div>
</div> </div>
@@ -151,7 +151,7 @@
<input type="checkbox" id="checkboxSetSymbol" checked="true">Set Symbol</input> <input type="checkbox" id="checkboxSetSymbol" checked="true">Set Symbol</input>
<br> <br>
Set Code Set Code
<input type="text" onchange="loadSetSymbol()" value="pca" id="setSymbolCode"></input> <input type="text" onchange="loadSetSymbol()" value="hm" id="setSymbolCode"></input>
<br> <br>
Set Symbol Rarity Set Symbol Rarity
<input type="text" onchange="loadSetSymbol()" value="C" id="setSymbolRarity"></input> <input type="text" onchange="loadSetSymbol()" value="C" id="setSymbolRarity"></input>
@@ -433,7 +433,7 @@ a:active {
var borderCanvas = document.createElement("canvas") var borderCanvas = document.createElement("canvas")
borderCanvas.width = 749; borderCanvas.height = 1044 borderCanvas.width = 749; borderCanvas.height = 1044
var border = borderCanvas.getContext("2d") var border = borderCanvas.getContext("2d")
document.body.appendChild(borderCanvas) //document.body.appendChild(borderCanvas)
//Load the initial border (m15) //Load the initial border (m15)
changeTemplate() changeTemplate()
//set up initial variables //set up initial variables
@@ -442,24 +442,47 @@ var secondColor
var thirdColor var thirdColor
var titleRightShift = 0 var titleRightShift = 0
var typeRightShift = 0 var typeRightShift = 0
var imagesToLoad
//set up canvas //set up canvas
var canvas = document.getElementById("canvas") var canvas = document.getElementById("canvas")
var card = canvas.getContext("2d") var card = canvas.getContext("2d")
//Load dynamic images //load template images (images that may change based off of the selected template)
var dynamicImageList = ["art", "setSymbol", "watermark", "multiMask", "rareStampMask", "frameMask", "legendFrameMask", "borderMask", "border", "borderColor", "secondBorderColor", "thirdBorderColor", "borderCreature", "borderLegendary", "secondBorderLegendary", "borderRareStamp", "secondBorderRareStamp", "borderNyx", "secondBorderNyx", "borderMiracle", "secondBorderMiracle", "borderFlipIcon", "borderFlipCircle", "borderFlipTip", "borderFlippedDark", "secondBorderFlippedDark", "artMask"] var imgListTemplate = ["multiMask", "rareStampMask", "frameMask", "legendFrameMask", "borderMask", "artMask"]
for (i = 0; i < dynamicImageList.length; i ++) { for (i = 0; i < imgListTemplate.length; i ++) {
var imgName = "img" + dynamicImageList[i].charAt(0).toUpperCase() + dynamicImageList[i].slice(1) var imgName = "img" + imgListTemplate[i].charAt(0).toUpperCase() + imgListTemplate[i].slice(1)
window[imgName] = new Image()
}
//Load border images (images that are determined by border settings)
var imgListBorder = ["borderColor", "secondBorderColor", "thirdBorderColor", "borderCreature", "borderLegendary", "secondBorderLegendary", "borderRareStamp", "secondBorderRareStamp", "borderNyx", "secondBorderNyx", "borderMiracle", "secondBorderMiracle", "borderFlipIcon", "borderFlipCircle", "borderFlipTip", "borderFlippedDark", "secondBorderFlippedDark"]
for (i = 0; i < imgListBorder.length; i ++) {
var imgName = "img" + imgListBorder[i].charAt(0).toUpperCase() + imgListBorder[i].slice(1)
window[imgName] = new Image()
imgListBorder[i] = window[imgName]
imgListBorder[i].onload = function() {
if (this.hasToLoad == true) {
this.hasToLoad = false
imagesToLoad --
if (imagesToLoad == 0) {
createBorder()
}
}
}
}
//Load dynamic images (images that are input by the user)
var imgListUser = ["art", "setSymbol", "watermark", "border"]
for (i = 0; i < imgListUser.length; i ++) {
var imgName = "img" + imgListUser[i].charAt(0).toUpperCase() + imgListUser[i].slice(1)
window[imgName] = new Image() window[imgName] = new Image()
} }
//Load static images //Load static images
var staticImageList = ["artistBrush", "foil", "stampGradient", "multiGradient", "rareStamp", "cardMask", "bar", "identity"] var imgListStatic = ["artistBrush", "foil", "stampGradient", "multiGradient", "rareStamp", "cardMask", "bar", "identity"]
for (i = 0; i < staticImageList.length; i ++) { for (i = 0; i < imgListStatic.length; i ++) {
var imgName = "img" + staticImageList[i].charAt(0).toUpperCase() + staticImageList[i].slice(1) var imgName = "img" + imgListStatic[i].charAt(0).toUpperCase() + imgListStatic[i].slice(1)
window[imgName] = new Image() window[imgName] = new Image()
window[imgName].src = "data/borders/" + staticImageList[i] + ".png" window[imgName].src = "data/borders/" + imgListStatic[i] + ".png"
} }
//Mana symbol Array setup //Mana symbol Array setup
var manaSymbolCode = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "w", "u", "b", "r", "g", "2w", "2u", "2b", "2r", "2g", "pw", "pu", "pb", "pr", "pg", "wu", "wb", "ub", "ur", "br", "bg", "rg", "rw", "gw", "gu", "x", "snow", "c", "t","untap", "e", "y", "z", "half", "infinity"] var manaSymbolCode = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "w", "u", "b", "r", "g", "2w", "2u", "2b", "2r", "2g", "pw", "pu", "pb", "pr", "pg", "wu", "wb", "ub", "ur", "br", "bg", "rg", "rw", "gw", "gu", "x", "snow", "c", "t","untap", "e", "y", "z", "half", "infinity", "chaos"]
var manaSymbolImages = new Array() var manaSymbolImages = new Array()
for (var i = 0; i < manaSymbolCode.length; i++) { for (var i = 0; i < manaSymbolCode.length; i++) {
manaSymbolImages[i] = new Image() manaSymbolImages[i] = new Image()
@@ -518,9 +541,9 @@ function cardClock() {
} }
//Sets up the initial clock //Sets up the initial clock
var cardClockInterval = setInterval(cardClock, 1000 / document.getElementById("inputFPS").value) var cardClockInterval = setInterval(cardClock, 1000 / document.getElementById("inputFPS").value)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//The two following functions load border images //The two following functions load border images
function changeTemplate() { function changeTemplate() {
//the loadScript function is located in data/scripts/loadScript.js. It sets values to variables such as set symbol coordinates or title font //the loadScript function is located in data/scripts/loadScript.js. It sets values to variables such as set symbol coordinates or title font
@@ -606,9 +629,18 @@ function updateBorder() {
imgBorderFlipCircle.src = firstColorPath + "/flipCircle.png" imgBorderFlipCircle.src = firstColorPath + "/flipCircle.png"
imgBorderFlipIcon.src = "data/borders/icons/" + document.getElementById("inputFlipIcon").value imgBorderFlipIcon.src = "data/borders/icons/" + document.getElementById("inputFlipIcon").value
} }
//This creates a short pause in order to allow all images to finish loading //This allows all the images to be loaded
imgBorderColor.onload = function() { imagesToLoad = 0
setTimeout(createBorder, 50) //Makes a count of all images that are loading, also tags them
for (i = 0; i < imgListBorder.length; i++) {
if (imgListBorder[i].complete == false) {
imagesToLoad ++
imgListBorder[i].hasToLoad = true
}
}
//If no images needed to be loaded, runs the createBorder function anyways
if (imagesToLoad == 0) {
createBorder()
} }
} }
//Once the border images have finished loading, they are all drawn into a temporary canvas then saved to a single image //Once the border images have finished loading, they are all drawn into a temporary canvas then saved to a single image
@@ -998,7 +1030,16 @@ function drawText(text, xCoord, yCoord) {
card.drawImage(imgBar, canvas.width / 2 - imgBar.width / 2, y + textSize + lineSpace + 5) card.drawImage(imgBar, canvas.width / 2 - imgBar.width / 2, y + textSize + lineSpace + 5)
textXShift = 0 textXShift = 0
y += 2 * lineSpace + textSize + 3 y += 2 * lineSpace + textSize + 3
} else if (megaSplit[0] == "chaos") {
//The chaos symbol (on planar cards) needs to be a bit bigger
card.drawImage(manaSymbolImages[56], x + textXShift + textSize * 0.054, y + textSize * 0.17, textSize, manaSymbolImages[56].height * textSize / manaSymbolImages[56].width)
textXShift += textSize * 1
} else if (megaSplit[0] == "plane") {
//This draws the large chaos symbol found on planar cards and permenantly shifts the text over
card.drawImage(manaSymbolImages[56], x, y + 6, 48, 42)
x += 58
} else { } else {
//It's an image (mana symbol, tap, etc...)
card.drawImage(manaSymbolImages[manaSymbolCode.indexOf(megaSplit[0])], x + textXShift + textSize * 0.054, y + textSize * 0.17, textSize * 0.77, textSize * 0.77) card.drawImage(manaSymbolImages[manaSymbolCode.indexOf(megaSplit[0])], x + textXShift + textSize * 0.054, y + textSize * 0.17, textSize * 0.77, textSize * 0.77)
textXShift += textSize * 0.84 textXShift += textSize * 0.84
} }
@@ -1055,7 +1096,7 @@ function resizeThings() {
} }
} }
//runs the autocrop function for the chosen set symbol //Loads the set symbol from my seperate repository
function loadSetSymbol() { function loadSetSymbol() {
imgSetSymbol.crossOrigin = "Anonymous" imgSetSymbol.crossOrigin = "Anonymous"
imgSetSymbol.src = "https://raw.githubusercontent.com/ImKyle4815/MTG-Set-Symbols/master/setSymbols/" + document.getElementById("setSymbolCode").value.toUpperCase() + "_" + document.getElementById("setSymbolRarity").value.toUpperCase() + ".png" imgSetSymbol.src = "https://raw.githubusercontent.com/ImKyle4815/MTG-Set-Symbols/master/setSymbols/" + document.getElementById("setSymbolCode").value.toUpperCase() + "_" + document.getElementById("setSymbolRarity").value.toUpperCase() + ".png"
@@ -1065,7 +1106,7 @@ function loadSetSymbol() {
function downloadCardImage(linkElement) { function downloadCardImage(linkElement) {
var cardImageData = canvas.toDataURL() var cardImageData = canvas.toDataURL()
if (cardImageData == undefined) { if (cardImageData == undefined) {
alert("Sorry, it seems that you cannot download your card. Please try using a different browser.") alert("Sorry, it seems that you cannot download your card. Please try using a different browser/device.")
} }
linkElement.href = cardImageData linkElement.href = cardImageData
} }