@@ -161,71 +161,22 @@ function changeColourMode() {
161161 }
162162}
163163
164+ function _addFilteredClass ( key : string , label : CSS2DObject ) {
165+ if ( label . userData [ key ] === false ) {
166+ label . element . classList . add ( 'portalLabel-filtered' ) ;
167+ }
168+ }
169+
164170function changeLabelFilter ( ) {
165171 const { portalLabels, roomLabels } = getCurrentWorld ( ) ;
172+ const filterKey =
173+ Object . keys ( allLabelFilters ) . find (
174+ key => allLabelFilters [ key ] === options . labelFilter ,
175+ ) ?? '' ;
166176
167177 for ( const label of portalLabels ) {
168178 label . element . className = 'portalLabel' ;
169-
170- switch ( options . labelFilter ) {
171- case allLabelFilters . enderChests :
172- if ( ! label . userData . enderChest )
173- label . element . classList . add ( 'portalLabel-filtered' ) ;
174- break ;
175-
176- case allLabelFilters . cherryTrees :
177- if ( ! label . userData . cherryTree )
178- label . element . classList . add ( 'portalLabel-filtered' ) ;
179- break ;
180-
181- case allLabelFilters . bed :
182- if ( ! label . userData . bed )
183- label . element . classList . add ( 'portalLabel-filtered' ) ;
184- break ;
185-
186- case allLabelFilters . basicWorkstation :
187- if ( ! label . userData . basicWorkstation )
188- label . element . classList . add ( 'portalLabel-filtered' ) ;
189- break ;
190-
191- case allLabelFilters . storage :
192- if ( ! label . userData . storage )
193- label . element . classList . add ( 'portalLabel-filtered' ) ;
194- break ;
195-
196- case allLabelFilters . food :
197- if ( ! label . userData . food )
198- label . element . classList . add ( 'portalLabel-filtered' ) ;
199- break ;
200-
201- case allLabelFilters . lava :
202- if ( ! label . userData . lava )
203- label . element . classList . add ( 'portalLabel-filtered' ) ;
204- break ;
205-
206- case allLabelFilters . smithing :
207- if ( ! label . userData . smithing )
208- label . element . classList . add ( 'portalLabel-filtered' ) ;
209- break ;
210-
211- case allLabelFilters . enchantingTable :
212- if ( ! label . userData . enchantingTable )
213- label . element . classList . add ( 'portalLabel-filtered' ) ;
214- break ;
215-
216- case allLabelFilters . brewingStand :
217- if ( ! label . userData . brewingStand )
218- label . element . classList . add ( 'portalLabel-filtered' ) ;
219- break ;
220-
221- case allLabelFilters . dogs :
222- if ( ! label . userData . dogs )
223- label . element . classList . add ( 'portalLabel-filtered' ) ;
224- break ;
225-
226- case allLabelFilters . none :
227- default :
228- }
179+ _addFilteredClass ( filterKey , label ) ;
229180 }
230181
231182 for ( const label of roomLabels ) {
0 commit comments