Skip to content

Commit ca7e47a

Browse files
committed
Cape/arms can now be changed without making a skin save
1 parent 817360f commit ca7e47a

File tree

1 file changed

+34
-31
lines changed

1 file changed

+34
-31
lines changed

apps/app/src/pages/SkinManager.vue

+34-31
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ const selectedSkin = ref({
322322
323323
const displaySkin = ref(null)
324324
const currentRender = ref(null)
325-
const newRender = ref(null)
325+
const modalRender = ref(null)
326326
327327
const InLibrary = ref(true)
328328
const validSkin = ref(false)
@@ -536,10 +536,15 @@ const next = async () => {
536536
}
537537
538538
const handleModal = async () => {
539-
skinClear()
540539
changeSkinType.value = 'from file'
541540
editSkin.value = false
542-
skinModal.value.show()
541+
validSkin.value = true
542+
displaySkin.value = skinData.value.skin
543+
selectedSkin.value.skin = skinData.value.skin
544+
await skinModal.value.show()
545+
selectedSkin.value.arms = skinData.value.arms
546+
selectedSkin.value.cape = skinData.value.cape
547+
await create_modal_render()
543548
}
544549
545550
const handleAdd = async () => {
@@ -561,23 +566,23 @@ const skinClear = async () => {
561566
skin: '',
562567
unlocked_capes: [],
563568
}
564-
if (newRender.value) {
565-
newRender.value.resetSkin()
566-
newRender.value.resetCape()
569+
if (modalRender.value) {
570+
modalRender.value.resetSkin()
571+
modalRender.value.resetCape()
567572
}
568573
}
569574
570575
const handleArms = async () => {
571576
if (validSkin.value) {
572-
newRender.value.loadSkin(displaySkin.value, { model: convert_arms(selectedSkin.value.arms) })
577+
modalRender.value.loadSkin(displaySkin.value, { model: convert_arms(selectedSkin.value.arms) })
573578
}
574579
}
575580
576581
const handleCape = async () => {
577582
if (validSkin.value) {
578-
if (selectedSkin.value.cape == 'no cape') newRender.value.resetCape()
583+
if (selectedSkin.value.cape == 'no cape') modalRender.value.resetCape()
579584
else
580-
newRender.value.loadCape(
585+
modalRender.value.loadCape(
581586
await get_cape_data(selectedSkin.value.cape, 'url').catch(handleError),
582587
)
583588
}
@@ -608,22 +613,26 @@ const handleSkin = async (state) => {
608613
const uploadedCape = await set_cape(capeid, selectedAccount.value.access_token).catch(
609614
handleError,
610615
)
616+
console.log(selectedSkin.value.skin)
611617
const uploadedSkin = await set_skin(
612618
selectedSkin.value.skin,
613619
selectedSkin.value.arms,
614620
selectedAccount.value,
615621
).catch(handleError)
616622
617623
if (uploadedSkin) {
618-
skinData.value = selectedSkin.value
624+
if (!selectedSkin.value.skin.startsWith('data:image/png;base64,')) {
625+
skinData.value.skin = tauri.convertFileSrc(selectedSkin.value.skin)
626+
} else {
627+
skinData.value.skin = selectedSkin.value.skin
628+
}
629+
skinData.value.arms = selectedSkin.value.arms
630+
skinData.value.cape = selectedSkin.value.cape
619631
InLibrary.value = await check_skin(skinData.value.skin, selectedAccount.value.id).catch(
620632
handleError,
621633
)
622634
const renderArms = convert_arms(selectedSkin.value.arms)
623-
if (!selectedSkin.value.skin.startsWith('data:image/png;base64,')) {
624-
selectedSkin.value.skin = tauri.convertFileSrc(selectedSkin.value.skin)
625-
}
626-
currentRender.value.loadSkin(selectedSkin.value.skin, { model: renderArms })
635+
currentRender.value.loadSkin(skinData.value.skin, { model: renderArms })
627636
} else {
628637
notificationsWrapper.value.addNotification({
629638
title: 'Error Uploading Skin',
@@ -654,25 +663,16 @@ const handleSkin = async (state) => {
654663
const edit_skin = async (data) => {
655664
changeSkinType.value = 'from file'
656665
editSkin.value = true
666+
validSkin.value = true
657667
displaySkin.value = data.skin
658668
selectedSkin.value.skin = data.skin
659669
selectedSkin.value.name = data.name
660670
selectedSkin.value.id = data.id
661671
selectedSkin.value.user = data.user
662-
validSkin.value = true
663672
await skinModal.value.show()
664-
newRender.value = new SkinViewer({
665-
canvas: document.getElementById('new_render'),
666-
width: 247.5,
667-
height: 330,
668-
})
669673
selectedSkin.value.arms = data.arms
670674
selectedSkin.value.cape = data.cape
671-
newRender.value.animation = new IdleAnimation()
672-
newRender.value.controls.enableZoom = false
673-
newRender.value.loadSkin(displaySkin.value, { model: convert_arms(selectedSkin.value.arms) })
674-
if (selectedSkin.value.cape !== 'no cape')
675-
newRender.value.loadCape(await get_cape_data(selectedSkin.value.cape, 'url').catch(handleError))
675+
await create_modal_render()
676676
}
677677
678678
const edit_skin_end = async () => {
@@ -751,17 +751,20 @@ const openskin = async () => {
751751
return
752752
}
753753
displaySkin.value = tauri.convertFileSrc(selectedSkin.value.skin)
754-
if (!newRender.value)
755-
newRender.value = new SkinViewer({
754+
create_modal_render()
755+
}
756+
757+
const create_modal_render = async () => {
758+
modalRender.value = new SkinViewer({
756759
canvas: document.getElementById('new_render'),
757760
width: 247.5,
758761
height: 330,
759762
})
760-
newRender.value.animation = new IdleAnimation()
761-
newRender.value.controls.enableZoom = false
762-
newRender.value.loadSkin(displaySkin.value, { model: convert_arms(selectedSkin.value.arms) })
763+
modalRender.value.animation = new IdleAnimation()
764+
modalRender.value.controls.enableZoom = false
765+
modalRender.value.loadSkin(displaySkin.value, { model: convert_arms(selectedSkin.value.arms) })
763766
if (selectedSkin.value.cape !== 'no cape')
764-
newRender.value.loadCape(await get_cape_data(selectedSkin.value.cape, 'url').catch(handleError))
767+
modalRender.value.loadCape(await get_cape_data(selectedSkin.value.cape, 'url').catch(handleError))
765768
}
766769
767770
const create_render = async () => {

0 commit comments

Comments
 (0)