diff --git a/assets/themes/openlovemap/openlovemap.json b/assets/themes/openlovemap/openlovemap.json index 4eb34de52..9d1616a58 100644 --- a/assets/themes/openlovemap/openlovemap.json +++ b/assets/themes/openlovemap/openlovemap.json @@ -24,7 +24,10 @@ }, "minzoom": 6, "=filter": [ - "open_now" + "open_now", + "fetish", + "accepts_cash", + "accepts_cards" ], "name": { "en": "Erotic shops", @@ -42,6 +45,53 @@ "shop=erotic" ] } + ], + "tagRenderings+": [ + { + "id": "fetish", + "multiAnswer": true, + "question": { + "en": "Does this shop offer fetish gear?" + }, + "mappings": [ + { + "if": "fetish:bdsm:soft=yes", + "ifnot": "fetish:bdsm:soft=no", + "then": { + "en": "This shop offers soft BDSM-gear, such as fluffy handcuffs, a 'fifty-shade-of-grey'-starterset, ..." + } + }, + { + "if": "fetish:bdsm:specialized=yes", + "ifnot": "fetish:bdsm:specialized=no", + "then":{ + "en": "This shop offers specialized BDSM-gear, such as spreader bars, supplies for needle play, medical bondage supplies, impact tools, shackles, metal colors, cuffs, nipple clamps, shibari accessories, ..." + } + }, + { + "if": "fetish:pet_play=yes", + "ifnot": "fetish:pet_play=no", + "then": { + "en": "This shop offers pet play accessories, such as puppy masks, animal masks, pony play, tails, hoof shoes, ..." + } + }, + { + "if": "fetish:leather=yes", + "ifnot": "fetish:leather=no", + "then": { + "en": "This shop offers leather gear, including pants and shirts usable in daily life up till leather harnesses" + } + }, + { + "if": "fetish:uniform=yes", + "ifnot": "fetish:uniform=no", + "then": { + "en": "This shop offers uniforms for roleplay, such nurse uniforms, military uniforms, police, school girl, french maid, ..." + } + } + + ] + } ] } }, diff --git a/src/UI/ThemeViewGUI.svelte b/src/UI/ThemeViewGUI.svelte index b2980971d..97bbb91cd 100644 --- a/src/UI/ThemeViewGUI.svelte +++ b/src/UI/ThemeViewGUI.svelte @@ -13,6 +13,7 @@ import type { MapProperties } from "../Models/MapProperties" import Geosearch from "./BigComponents/Geosearch.svelte" import Translations from "./i18n/Translations" + import usersettings from "../assets/generated/layers/usersettings.json" import { CogIcon, EyeIcon, @@ -73,6 +74,7 @@ import AboutMapComplete from "./BigComponents/AboutMapComplete.svelte" import HotkeyTable from "./BigComponents/HotkeyTable.svelte" import SelectedElementPanel from "./Base/SelectedElementPanel.svelte" + import { LayerConfigJson } from "../Models/ThemeConfig/Json/LayerConfigJson" export let state: ThemeViewState let layout = state.layout @@ -121,6 +123,7 @@ let visualFeedback = state.visualFeedback let viewport: UIEventSource = new UIEventSource(undefined) let mapproperties: MapProperties = state.mapProperties + let usersettingslayer = new LayerConfig( usersettings, "usersettings", true) state.mapProperties.installCustomKeyboardHandler(viewport) let canZoomIn = mapproperties.maxzoom.map( (mz) => mapproperties.zoom.data < mz, @@ -603,6 +606,7 @@