MediaWiki:ARKCode.js
Aller à la navigation
Aller à la recherche
Dans d’autres langues: English • Español • Italiano • 日本語 • Polski • Português do Brasil • Русский •
Tous changements apportés au fichiers CSS et Javascript doivent être conforme aux règles de design du wiki.
Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
- Firefox / Safari : maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac)
- Google Chrome : appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac)
- Internet Explorer : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5
- Opera : allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d’exploration → Images et fichiers en cache.
// Used by [[Template:ARKCode]]
$(function(){
var ARKCodeImages = [
'https://ark.wiki.gg/images/6/6f/ARKCode0.png',
'https://ark.wiki.gg/images/b/b3/ARKCode1.png',
'https://ark.wiki.gg/images/a/aa/ARKCode2.png',
'https://ark.wiki.gg/images/4/40/ARKCode3.png'
];
function ARKCodeDecode(input) {
var code = input.children[0].children[1].value;
var codeRep = input.children[1].children[1];
var outputEl = input.children[2].children[1];
codeRep.innerHTML = '';
code = code.replace(/[^wasd \n]/g, '');
var output = '';
var codeRepOutput = '';
var ii = 0;
var c = 0;
for (var i = 0; i < code.length; i++) {
if (code[i] == ' ' || code[i] == '\n') {
output += ' ';
ii = 0;
if (code[i] == '\n') {
codeRepOutput += '<br/>';
}
continue;
}
var add = 0;
switch (code[i]) {
case 'd':
add = 1;
break;
case 's':
add = 2;
break;
case 'w':
add = 3;
break;
}
c = c * 4 + add;
codeRepOutput += '<img alt="' + add + '" src="' + ARKCodeImages[add] + '" width="46" height="24">';
if (ii == 3 || i == code.length - 1) {
ii = 0;
if (c > 31 && c < 127) {
output += String.fromCharCode(c);
}
c = 0;
} else {
ii++;
}
}
outputEl.innerHTML = output;
codeRep.innerHTML = codeRepOutput;
}
// replace the textarea div(s) with an actual textarea
Array.from(document.getElementsByClassName('ARKCode-textarea')).forEach(function(textDiv){
var newNode = document.createElement('textarea');
newNode.setAttribute('style', textDiv.getAttribute('style'));
newNode.value = textDiv.textContent;
newNode.classList = textDiv.classList;
textDiv.parentElement.appendChild(newNode);
newNode.addEventListener('input', function(){ARKCodeDecode(newNode.parentElement.parentElement)});
textDiv.remove();
});
// replace the button div(s) with an actual button
Array.from(document.getElementsByClassName('ARKCode-button')).forEach(function(buttonDiv) {
var newNode = document.createElement('input');
newNode.type = 'button';
newNode.classList = buttonDiv.classList;
newNode.value = buttonDiv.textContent;
buttonDiv.parentElement.appendChild(newNode);
addEventListener('click', function(){ARKCodeDecode(newNode.parentElement.parentElement)});
buttonDiv.remove();
});
});