diff --git a/src/components/Effects.vue b/src/components/Effects.vue index f9993b7..e4c771e 100644 --- a/src/components/Effects.vue +++ b/src/components/Effects.vue @@ -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') })