[F] Fix no image icon on missing texture

pull/106/head
Azalea 2025-01-08 01:27:00 -05:00
parent cd90f2745a
commit 65cc3095e2
3 changed files with 27 additions and 25 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -1,4 +1,5 @@
<script lang="ts"> <script lang="ts">
import { removeImg } from "../../../libs/ui";
import { DDS } from "../../../libs/userbox/dds" import { DDS } from "../../../libs/userbox/dds"
import { ddsDB } from "../../../libs/userbox/userbox" import { ddsDB } from "../../../libs/userbox/userbox"
@ -17,87 +18,87 @@
<div class="chuni-penguin-body"> <div class="chuni-penguin-body">
<!-- Body --> <!-- Body -->
{#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniSkin.toString().padStart(8, "0")}`, 0, 0, 256, 400, 0.75) then imageURL} {#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniSkin.toString().padStart(8, "0")}`, 0, 0, 256, 400, 0.75) then imageURL}
<img class="chuni-penguin-skin" src={imageURL} alt="Body"> <img class="chuni-penguin-skin" src={imageURL} alt="Body" on:error={removeImg}>
{/await} {/await}
<!-- Face --> <!-- Face -->
{#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_face_00.dds", 0, 0, 225, 150, 0.75) then imageURL} {#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_face_00.dds", 0, 0, 225, 150, 0.75) then imageURL}
<img class="chuni-penguin-eyes chuni-penguin-accessory" src={imageURL} alt="Eyes"> <img class="chuni-penguin-eyes chuni-penguin-accessory" src={imageURL} alt="Eyes" on:error={removeImg}>
{/await} {/await}
{#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 86, 103, 96, 43, 0.75) then imageURL} {#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 86, 103, 96, 43, 0.75) then imageURL}
<img class="chuni-penguin-beak chuni-penguin-accessory" src={imageURL} alt="Beak"> <img class="chuni-penguin-beak chuni-penguin-accessory" src={imageURL} alt="Beak" on:error={removeImg}>
{/await} {/await}
{#if chuniItem != 1500001} {#if chuniItem != 1500001}
<!-- Arms (straight) --> <!-- Arms (straight) -->
{#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 0, 0, 85, 160, 0.75) then imageURL} {#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 0, 0, 85, 160, 0.75) then imageURL}
<img class="chuni-penguin-arm-left chuni-penguin-arm" src={imageURL} alt="Left Arm"> <img class="chuni-penguin-arm-left chuni-penguin-arm" src={imageURL} alt="Left Arm" on:error={removeImg}/>
<div class="chuni-penguin-arm-left chuni-penguin-arm-type-1 chuni-penguin-arm"> <div class="chuni-penguin-arm-left chuni-penguin-arm-type-1 chuni-penguin-arm">
{#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniItem.toString().padStart(8, "0")}`, 0, 0, 200, 544, 0.75) then imageURL} {#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniItem.toString().padStart(8, "0")}`, 0, 0, 200, 544, 0.75) then imageURL}
<img class="chuni-penguin-item chuni-penguin-accessory chuni-penguin-item-left" src={imageURL} alt="Item"> <img class="chuni-penguin-item chuni-penguin-accessory chuni-penguin-item-left" src={imageURL} alt="Item" on:error={removeImg}>
{/await} {/await}
</div> </div>
{/await} {/await}
{#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 0, 0, 85, 160, 0.75) then imageURL} {#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 0, 0, 85, 160, 0.75) then imageURL}
<img class="chuni-penguin-arm-right chuni-penguin-arm" src={imageURL} alt="Right Arm"> <img class="chuni-penguin-arm-right chuni-penguin-arm" src={imageURL} alt="Right Arm" on:error={removeImg}>
<div class="chuni-penguin-arm-right chuni-penguin-arm-type-1 chuni-penguin-arm"> <div class="chuni-penguin-arm-right chuni-penguin-arm-type-1 chuni-penguin-arm">
{#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniItem.toString().padStart(8, "0")}`, 200, 0, 200, 544, 0.75) then imageURL} {#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniItem.toString().padStart(8, "0")}`, 200, 0, 200, 544, 0.75) then imageURL}
<img class="chuni-penguin-item chuni-penguin-accessory chuni-penguin-item-right" src={imageURL} alt="Item"> <img class="chuni-penguin-item chuni-penguin-accessory chuni-penguin-item-right" src={imageURL} alt="Item" on:error={removeImg}>
{/await} {/await}
</div> </div>
{/await} {/await}
{:else} {:else}
<!-- Arms (bent) --> <!-- Arms (bent) -->
{#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 80, 0, 110, 100, 0.75) then imageURL} {#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 80, 0, 110, 100, 0.75) then imageURL}
<img class="chuni-penguin-arm-left chuni-penguin-arm chuni-penguin-arm-type-2" src={imageURL} alt="Left Arm"> <img class="chuni-penguin-arm-left chuni-penguin-arm chuni-penguin-arm-type-2" src={imageURL} alt="Left Arm" on:error={removeImg}>
{/await} {/await}
{#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 80, 0, 110, 100, 0.75) then imageURL} {#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 80, 0, 110, 100, 0.75) then imageURL}
<img class="chuni-penguin-arm-right chuni-penguin-arm chuni-penguin-arm-type-2" src={imageURL} alt="Right Arm"> <img class="chuni-penguin-arm-right chuni-penguin-arm chuni-penguin-arm-type-2" src={imageURL} alt="Right Arm" on:error={removeImg}>
{/await} {/await}
{/if} {/if}
<!-- Wear --> <!-- Wear -->
{#await DDSreader.getFileScaled(`avatarAccessory:${chuniWear.toString().padStart(8, "0")}`, 0.75, `avatarAccessory:01100001`) then imageURL} {#await DDSreader.getFileScaled(`avatarAccessory:${chuniWear.toString().padStart(8, "0")}`, 0.75, `avatarAccessory:01100001`) then imageURL}
<img class="chuni-penguin-wear chuni-penguin-accessory" src={imageURL} alt="Wear"> <img class="chuni-penguin-wear chuni-penguin-accessory" src={imageURL} alt="Wear" on:error={removeImg}>
{/await} {/await}
<!-- Head --> <!-- Head -->
{#await DDSreader.getFileScaled(`avatarAccessory:${chuniHead.toString().padStart(8, "0")}`, 0.75, `avatarAccessory:01200001`) then imageURL} {#await DDSreader.getFileScaled(`avatarAccessory:${chuniHead.toString().padStart(8, "0")}`, 0.75, `avatarAccessory:01200001`) then imageURL}
<img class="chuni-penguin-head chuni-penguin-accessory" src={imageURL} alt="Head"> <img class="chuni-penguin-head chuni-penguin-accessory" src={imageURL} alt="Head" on:error={removeImg}>
{/await} {/await}
{#if chuniHead == 1200001} {#if chuniHead == 1200001}
<!-- If wearing original hat, add the feather --> <!-- If wearing original hat, add the feather -->
{#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 5, 160, 100, 150, 0.75) then imageURL} {#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 5, 160, 100, 150, 0.75) then imageURL}
<img class="chuni-penguin-head-3 chuni-penguin-accessory" src={imageURL} alt="Head3"> <img class="chuni-penguin-head-3 chuni-penguin-accessory" src={imageURL} alt="Head3" on:error={removeImg}>
{/await} {/await}
{/if} {/if}
<!-- Oops, I realized just now that the thing on it's forehead applies to all hats. My mistake! --> <!-- Oops, I realized just now that the thing on it's forehead applies to all hats. My mistake! -->
{#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 105, 153, 56, 58, 0.75) then imageURL} {#await DDSreader.getFileFromSheet("surfboard:CHU_UI_Common_Avatar_body_00.dds", 105, 153, 56, 58, 0.75) then imageURL}
<img class="chuni-penguin-head-2 chuni-penguin-accessory" src={imageURL} alt="Head2"> <img class="chuni-penguin-head-2 chuni-penguin-accessory" src={imageURL} alt="Head2" on:error={removeImg}>
{/await} {/await}
<!-- Face (Accessory) --> <!-- Face (Accessory) -->
{#await DDSreader.getFileScaled(`avatarAccessory:${chuniFace.toString().padStart(8, "0")}`, 0.75, `avatarAccessory:01300001`) then imageURL} {#await DDSreader.getFileScaled(`avatarAccessory:${chuniFace.toString().padStart(8, "0")}`, 0.75, `avatarAccessory:01300001`) then imageURL}
<img class="chuni-penguin-face-accessory chuni-penguin-accessory" src={imageURL} alt="Face (Accessory)"> <img class="chuni-penguin-face-accessory chuni-penguin-accessory" src={imageURL} alt="Face (Accessory)" on:error={removeImg}>
{/await} {/await}
<!-- Front --> <!-- Front -->
{#await DDSreader.getFileScaled(`avatarAccessory:${chuniFront.toString().padStart(8, "0")}`, 0.75) then imageURL} {#await DDSreader.getFileScaled(`avatarAccessory:${chuniFront.toString().padStart(8, "0")}`, 0.75) then imageURL}
<img class="chuni-penguin-front chuni-penguin-accessory" src={imageURL} alt="Front"> <img class="chuni-penguin-front chuni-penguin-accessory" src={imageURL} alt="Front" on:error={removeImg}>
{/await} {/await}
<!-- Back --> <!-- Back -->
{#await DDSreader.getFileScaled(`avatarAccessory:${chuniBack.toString().padStart(8, "0")}`, 0.75) then imageURL} {#await DDSreader.getFileScaled(`avatarAccessory:${chuniBack.toString().padStart(8, "0")}`, 0.75) then imageURL}
<img class="chuni-penguin-back chuni-penguin-accessory" src={imageURL} alt="Back"> <img class="chuni-penguin-back chuni-penguin-accessory" src={imageURL} alt="Back" on:error={removeImg}>
{/await} {/await}
</div> </div>
<div class="chuni-penguin-feet"> <div class="chuni-penguin-feet">
<!-- Feet --> <!-- Feet -->
{#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniSkin.toString().padStart(8, "0")}`, 0, 410, 85, 80, 0.75) then imageURL} {#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniSkin.toString().padStart(8, "0")}`, 0, 410, 85, 80, 0.75) then imageURL}
<img src={imageURL} alt="Foot"> <img src={imageURL} alt="Foot" on:error={removeImg}>
{/await} {/await}
{#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniSkin.toString().padStart(8, "0")}`, 85, 410, 85, 80, 0.75) then imageURL} {#await DDSreader.getFileFromSheet(`avatarAccessory:${chuniSkin.toString().padStart(8, "0")}`, 85, 410, 85, 80, 0.75) then imageURL}
<img src={imageURL} alt="Foot"> <img src={imageURL} alt="Foot" on:error={removeImg}>
{/await} {/await}
</div> </div>
</div> </div>
@ -147,7 +148,7 @@
transform: translate(-50%, -50%) transform: translate(-50%, -50%)
position: absolute position: absolute
left: 50% left: 50%
.chuni-penguin-body .chuni-penguin-body
top: 50% top: 50%
z-index: 1 z-index: 1
@ -175,10 +176,10 @@
&.chuni-penguin-arm-type-2 &.chuni-penguin-arm-type-2
transform-origin: 40% 10% transform-origin: 40% 10%
z-index: 2 z-index: 2
&.chuni-penguin-arm-left &.chuni-penguin-arm-left
left: 0% left: 0%
transform: translate(-50%, 0) transform: translate(-50%, 0)
animation: chuniPenguinArmLeft 1s infinite cubic-bezier(0.45, 0, 0.55, 1) animation: chuniPenguinArmLeft 1s infinite cubic-bezier(0.45, 0, 0.55, 1)
&.chuni-penguin-arm-type-2 &.chuni-penguin-arm-type-2
left: 15% left: 15%
@ -222,5 +223,5 @@
top: 27.5% top: 27.5%
.chuni-penguin-back .chuni-penguin-back
z-index: -1 z-index: -1
</style> </style>

View File

@ -153,6 +153,7 @@ export const CHARTJS_OPT: ChartOptions<'line'> = {
export const pfpNotFound = (e: Event) => (e.target as HTMLImageElement).src = DEFAULT_PFP export const pfpNotFound = (e: Event) => (e.target as HTMLImageElement).src = DEFAULT_PFP
export const coverNotFound = (e: Event) => (e.target as HTMLImageElement).src = "/assets/imgs/no_cover.jpg" export const coverNotFound = (e: Event) => (e.target as HTMLImageElement).src = "/assets/imgs/no_cover.jpg"
export const removeImg = (e: Event) => (e.target as HTMLImageElement).style.display = 'none'
/** /**