const saveButton = document.getElementById('saveButton'); function openTab(evt, tabName) { const tabContents = document.getElementsByClassName("tabcontent"); for (let i = 0; i < tabContents.length; i++) { tabContents[i].style.display = "none"; } document.getElementById(tabName).style.display = "block"; const tablinks = document.getElementsByClassName("tablinks"); for (let i = 0; i < tablinks.length; i++) { tablinks[i].className = tablinks[i].className.replace(" active", ""); } evt.currentTarget.className += " active"; } function addEntry(type) { let entryContainer; let newEntry; switch (type) { case 'typesWingedOffSet': entryContainer = document.getElementById('typesWingedOffSetEntries'); const offsetIndex = document.getElementById('offsetIndex'); const comment1 = document.getElementById('comment1'); const northX = document.getElementById('northX'); const northY = document.getElementById('northY'); const eastX = document.getElementById('eastX'); const eastY = document.getElementById('eastY'); const southX = document.getElementById('southX'); const southY = document.getElementById('southY'); const westX = document.getElementById('westX'); const westY = document.getElementById('westY'); if (!entryContainer || !offsetIndex || !comment1 || !northX || !northY || !eastX || !eastY || !southX || !southY || !westX || !westY) { console.error('Uno o más elementos están faltando para typesWingedOffSet'); return; } const offsetIndexValue = parseInt(offsetIndex.value); const northXValue = parseInt(northX.value); const northYValue = parseInt(northY.value); const eastXValue = parseInt(eastX.value); const eastYValue = parseInt(eastY.value); const southXValue = parseInt(southX.value); const southYValue = parseInt(southY.value); const westXValue = parseInt(westX.value); const westYValue = parseInt(westY.value); const existingEntry1 = Array.from(entryContainer.getElementsByClassName('entry')).find(entry => { return entry.innerText.includes(`[${offsetIndexValue}]`); }); if (existingEntry1) { existingEntry1.innerHTML = ` [${offsetIndexValue}] = { -- ${comment1.value} [North] = {x = ${northXValue}, y = ${northYValue}}, [East] = {x = ${eastXValue}, y = ${eastYValue}}, [South] = {x = ${southXValue}, y = ${southYValue}}, [West] = {x = ${westXValue}, y = ${westYValue}}, },`; } else { newEntry = `
[${offsetIndexValue}] = { -- ${comment1.value} [North] = {x = ${northXValue}, y = ${northYValue}}, [East] = {x = ${eastXValue}, y = ${eastYValue}}, [South] = {x = ${southXValue}, y = ${southYValue}}, [West] = {x = ${westXValue}, y = ${westYValue}}, },
`; entryContainer.innerHTML += newEntry; } break; case 'typesWingedMountedOffSet': entryContainer = document.getElementById('typesWingedMountedOffSetEntries'); const mountedOffsetIndex = parseInt(document.getElementById('mountedOffsetIndex').value); const comment2 = document.getElementById('comment2').value; const mountedNorthX = parseInt(document.getElementById('mountedNorthX').value); const mountedNorthY = parseInt(document.getElementById('mountedNorthY').value); const mountedEastX = parseInt(document.getElementById('mountedEastX').value); const mountedEastY = parseInt(document.getElementById('mountedEastY').value); const mountedSouthX = parseInt(document.getElementById('mountedSouthX').value); const mountedSouthY = parseInt(document.getElementById('mountedSouthY').value); const mountedWestX = parseInt(document.getElementById('mountedWestX').value); const mountedWestY = parseInt(document.getElementById('mountedWestY').value); if (!entryContainer || isNaN(mountedOffsetIndex) || isNaN(mountedNorthX) || isNaN(mountedNorthY) || isNaN(mountedEastX) || isNaN(mountedEastY) || isNaN(mountedSouthX) || isNaN(mountedSouthY) || isNaN(mountedWestX) || isNaN(mountedWestY) || comment2 === undefined) { console.error('Uno o más elementos están faltando para typesWingedMountedOffSet'); return; } const existingEntry2 = Array.from(entryContainer.getElementsByClassName('entry')).find(entry => { return entry.innerText.includes(`[${mountedOffsetIndex}]`); }); if (existingEntry2) { existingEntry2.innerHTML = ` [${mountedOffsetIndex}] = { -- ${comment2} [North] = {x = ${mountedNorthX}, y = ${mountedNorthY}}, [East] = {x = ${mountedEastX}, y = ${mountedEastY}}, [South] = {x = ${mountedSouthX}, y = ${mountedSouthY}}, [West] = {x = ${mountedWestX}, y = ${mountedWestY}}, },`; } else { newEntry = `
[${mountedOffsetIndex}] = { -- ${comment2} [North] = {x = ${mountedNorthX}, y = ${mountedNorthY}}, [East] = {x = ${mountedEastX}, y = ${mountedEastY}}, [South] = {x = ${mountedSouthX}, y = ${mountedSouthY}}, [West] = {x = ${mountedWestX}, y = ${mountedWestY}}, },
`; entryContainer.innerHTML += newEntry; } break; case 'WingsOffsets': entryContainer = document.getElementById('WingsOffsetsEntries'); const wingID = parseInt(document.getElementById('wingID').value); const outfitID = parseInt(document.getElementById('outfitID').value); const comment3 = document.getElementById('comment3').value; if (!entryContainer || isNaN(wingID) || isNaN(outfitID) || comment3 === undefined) { console.error('Uno o más elementos están faltando para WingsOffsets'); return; } const existingWingsEntry = Array.from(entryContainer.getElementsByClassName('entry')).find(entry => { return entry.innerText.includes(`[${wingID}]`); }); if (existingWingsEntry) { existingWingsEntry.innerHTML = ` [${wingID}] = { -- ${comment3} [${outfitID}] = typesWingedOffSet[1], },`; } else { newEntry = `
[${wingID}] = { -- ${comment3} [${outfitID}] = typesWingedOffSet[], },
`; entryContainer.innerHTML += newEntry; } break; case 'WingsMountedOffsets': entryContainer = document.getElementById('WingsMountedOffsetsEntries'); const mountedWingID = parseInt(document.getElementById('mountedWingID').value); const mountedOutfitID = parseInt(document.getElementById('mountedOutfitID').value); const comment4 = document.getElementById('comment4').value; if (!entryContainer || isNaN(mountedWingID) || isNaN(mountedOutfitID) || comment4 === undefined) { console.error('Uno o más elementos están faltando para WingsMountedOffsets'); return; } const existingMountedWingsEntry = Array.from(entryContainer.getElementsByClassName('entry')).find(entry => { return entry.innerText.includes(`[${mountedWingID}]`); }); if (existingMountedWingsEntry) { existingMountedWingsEntry.innerHTML = ` [${mountedWingID}] = { -- ${comment4} [${mountedOutfitID}] = typesWingedMountedOffSet[1], },`; } else { newEntry = `
[${mountedWingID}] = { -- ${comment4} [${mountedOutfitID}] = typesWingedMountedOffSet[1], },
`; entryContainer.innerHTML += newEntry; } break; } } // Rueda del mouse para cambiar valores document.querySelectorAll('input[type="number"]').forEach(input => { input.addEventListener('wheel', (event) => { event.preventDefault(); const delta = event.deltaY < 0 ? 1 : -1; input.value = parseInt(input.value) + delta; }); }); saveButton.addEventListener('click', saveStructure); function saveStructure() { const typesWingedOffSetContent = document.getElementById('typesWingedOffSetEntries').innerText.trim(); const typesWingedMountedOffSetContent = document.getElementById('typesWingedMountedOffSetEntries').innerText.trim(); const wingsOffsetsContent = document.getElementById('WingsOffsetsEntries').innerText.trim(); const wingsMountedOffsetsContent = document.getElementById('WingsMountedOffsetsEntries').innerText.trim(); const content = `typesWingedOffSet = {\n${typesWingedOffSetContent}\n}\n\n` + `typesWingedMountedOffSet = {\n${typesWingedMountedOffSetContent}\n}\n\n` + `WingsOffsets = {\n${wingsOffsetsContent}\n}\n\n` + `WingsMountedOffsets = {\n${wingsMountedOffsetsContent}\n}`; const blob = new Blob([content], { type: 'text/plain;charset=utf-8' }); const url = window.URL.createObjectURL(blob); const downloadLink = document.createElement('a'); downloadLink.href = url; downloadLink.download = 'types_wings_structure.lua'; downloadLink.click(); window.URL.revokeObjectURL(url); }