Added resize event to update to particle window size when resizing

This commit is contained in:
Colin Kallemein 2024-11-13 21:25:54 +01:00
parent dd5baa530d
commit faf887163a

View File

@ -6,7 +6,7 @@
import { Scene } from 'phavuer'
import { useZoneStore } from '@/stores/zoneStore'
import { useGameStore } from '@/stores/gameStore'
import { onBeforeUnmount, ref, watch } from 'vue'
import { onBeforeUnmount, onMounted, ref, watch } from 'vue'
import type { WeatherState } from '@/types'
// Constants
@ -194,11 +194,24 @@ const setupSocketListeners = () => {
})
}
const updateEffectWindowSize = () => {
if(rainEmitter.value) rainEmitter.value.updateConfig({x: {min: 0, max: window.innerWidth}})
if(fogSprite.value) {
fogSprite.value.setX(window.innerWidth / 2)
fogSprite.value.setY(window.innerHeight / 2)
}
}
// Watchers
watch(() => zoneStore.zone?.zoneEffects, updateEffects, { deep: true })
onMounted(() => {
window.addEventListener("resize", updateEffectWindowSize);
})
// Cleanup
onBeforeUnmount(() => {
window.removeEventListener("resize", updateEffectWindowSize);
if (sceneRef.value) sceneRef.value.scene.remove('effects')
gameStore.connection?.off('weather')
})