This commit is contained in:
2025-01-04 00:34:03 +01:00
parent 41829408dc
commit 0ca14bbc19
18111 changed files with 1871397 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
<section class="tab standard-form scrollable {{tabs.advanced.cssClass}}"
data-tab="advanced" data-group="{{tabs.advanced.group}}">
{{#if isDarkness}}
<p class="hint">
<i class="fa-solid fa-exclamation-triangle"></i>
{{localize "AMBIENT_LIGHT.LABELS.darknessAdvancedWarning"}}
</p>
{{/if}}
<fieldset {{disabled isDarkness}}>
<legend>{{ localize "AMBIENT_LIGHT.SECTIONS.ADVANCED" }}</legend>
{{formGroup fields.vision value=source.vision}}
{{formGroup fields.config.fields.coloration value=source.config.coloration
choices=colorationTechniques valueAttr="id" labelAttr="label" localize=true}}
{{formGroup fields.config.fields.luminosity value=source.config.luminosity step=0.05}}
{{formGroup fields.config.fields.attenuation value=source.config.attenuation step=0.05}}
{{formGroup fields.config.fields.saturation value=source.config.saturation step=0.05}}
{{formGroup fields.config.fields.contrast value=source.config.contrast step=0.05}}
{{formGroup fields.config.fields.shadows value=source.config.shadows step=0.05}}
</fieldset>
</section>

View File

@@ -0,0 +1,12 @@
<section class="tab standard-form scrollable {{tabs.animation.cssClass}}"
data-tab="animation" data-group="{{tabs.animation.group}}">
<fieldset>
<legend>{{ localize "AMBIENT_LIGHT.SECTIONS.ANIMATION" }}</legend>
{{formGroup fields.config.fields.animation.fields.type value=source.config.animation.type
choices=lightAnimations labelAttr="label" blank="None" sort=true localize=true}}
{{formGroup fields.config.fields.animation.fields.speed value=source.config.animation.speed}}
{{formGroup fields.config.fields.animation.fields.reverse value=source.config.animation.reverse}}
{{formGroup fields.config.fields.animation.fields.intensity value=source.config.animation.intensity}}
</fieldset>
</section>

View File

@@ -0,0 +1,50 @@
<section class="tab standard-form scrollable {{tabs.basic.cssClass}}"
data-tab="basic" data-group="{{tabs.basic.group}}">
<fieldset>
<legend>{{ localize "AMBIENT_LIGHT.SECTIONS.PLACEMENT" }}</legend>
<div class="form-group slim">
<label>{{localize "Coordinates"}} <span class="units">({{localize "Pixels"}})</span></label>
<div class="form-fields">
<label>{{fields.x.label}}</label>
{{formInput fields.x value=source.x}}
<label>{{fields.y.label}}</label>
{{formInput fields.y value=source.y}}
</div>
</div>
{{formGroup fields.elevation value=source.elevation classes="slim" units=gridUnits}}
<div class="form-group slim">
<label>{{localize "AMBIENT_LIGHT.LABELS.radius"}} <span class="units">({{gridUnits}})</span></label>
<div class="form-fields">
<label>{{fields.config.fields.dim.label}}</label>
{{formInput fields.config.fields.dim value=source.config.dim}}
<label>{{fields.config.fields.bright.label}}</label>
{{formInput fields.config.fields.bright value=source.config.bright}}
</div>
<p class="hint">{{ localize 'AMBIENT_LIGHT.LABELS.radiusHint' }}</p>
</div>
{{formGroup fields.walls value=source.walls}}
{{formGroup fields.config.fields.angle value=source.config.angle step=1 units="Degrees"}}
{{formGroup fields.rotation value=source.rotation step=1 units="Degrees"}}
</fieldset>
<fieldset>
<legend>{{ localize "AMBIENT_LIGHT.SECTIONS.APPEARANCE" }}</legend>
{{formGroup fields.config.fields.negative value=source.config.negative}}
{{formGroup fields.config.fields.color value=source.config.color}}
{{formGroup fields.config.fields.alpha value=source.config.alpha step=0.05}}
<div class="form-group slim">
<label>{{fields.config.fields.darkness.label}}</label>
<div class="form-fields">
<label>{{fields.config.fields.darkness.fields.min.label}}</label>
{{formInput fields.config.fields.darkness.fields.min value=source.config.darkness.min placeholder="0"}}
<label>{{fields.config.fields.darkness.fields.max.label}}</label>
{{formInput fields.config.fields.darkness.fields.max value=source.config.darkness.max placeholder="1"}}
</div>
<p class="hint">{{fields.config.fields.darkness.hint}}</p>
</div>
</fieldset>
</section>

View File

@@ -0,0 +1,37 @@
<section class="tab region-{{tab.id}} flexcol {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
<header class="region-element region-behavior flexrow">
<div class="region-element-name">{{localize "REGION.Behavior"}}</div>
<div class="region-element-controls">
<a class="region-control" data-action="behaviorCreate"
data-tooltip="REGION.ACTIONS.behaviorCreate" aria-label="{{localize "REGION.ACTIONS.behaviorCreate"}}">
<i class="fa-solid fa-plus fa-fw"></i>
</a>
</div>
</header>
<div class="standard-form scrollable">
{{#each behaviors as |behavior|}}
<fieldset class="region-element region-behavior flexrow {{#if behavior.disabled}}inactive{{/if}}"
data-behavior-id="{{behavior.id}}" aria-label="{{behavior.name}}">
<a class="region-element-name" data-action="behaviorEdit">
<i class="{{behavior.typeIcon}} fa-fw" data-tooltip="{{behavior.typeLabel}}"></i>
{{behavior.name}}
</a>
<div class="region-element-controls">
<a class="control fa-solid {{#if behavior.disabled}}fa-toggle-off{{else}}fa-toggle-on{{/if}} fa-fw"
data-action="behaviorToggle"
{{#if behavior.disabled}}
data-tooltip="REGION.ACTIONS.behaviorEnable" aria-label="{{localize "REGION.ACTIONS.behaviorEnable"}}"
{{else}}
data-tooltip="REGION.ACTIONS.behaviorDisable" aria-label="{{localize "REGION.ACTIONS.behaviorDisable"}}"
{{/if}}
></a>
<a class="control fa-solid fa-edit fa-fw" data-action="behaviorEdit"
data-tooltip="REGION.ACTIONS.behaviorEdit" aria-label="{{localize "REGION.ACTIONS.behaviorEdit"}}"></a>
<a class="control fa-solid fa-trash fa-fw" data-action="behaviorDelete"
data-tooltip="REGION.ACTIONS.behaviorDelete" aria-label="{{localize "REGION.ACTIONS.behaviorDelete"}}"></a>
</div>
</fieldset>
{{/each}}
</div>
</section>

View File

@@ -0,0 +1,23 @@
<section class="tab region-{{tab.id}} {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
{{formField fields.name value=source.name placeholder=source.name localize=true}}
{{formField fields.color value=source.color localize=true}}
<div class="form-group slim">
<label>{{localize "REGION.FIELDS.elevation.label"}}</label>
<div class="form-fields">
<label>{{localize "REGION.FIELDS.elevation.FIELDS.bottom.label"}}</label>
<input name="elevation.bottom" type="number" value="{{source.elevation.bottom}}"
class="placeholder-fa-solid" placeholder="&#xF068 &#xF534;" step="any"
data-tooltip="{{localize "REGION.FIELDS.elevation.FIELDS.bottom.hint"}}"
aria-label="{{localize "REGION.FIELDS.elevation.FIELDS.bottom.hint"}}">
<label>{{localize "REGION.FIELDS.elevation.FIELDS.top.label"}}</label>
<input name="elevation.top" type="number" value="{{source.elevation.top}}"
class="placeholder-fa-solid" placeholder="&#x002B &#xF534;" step="any"
data-tooltip="{{localize "REGION.FIELDS.elevation.FIELDS.top.hint"}}"
aria-label="{{localize "REGION.FIELDS.elevation.FIELDS.top.hint"}}">
</div>
<p class="hint">{{localize "REGION.FIELDS.elevation.hint"}}</p>
</div>
{{formField fields.visibility value=source.visibility localize=true}}
</section>

View File

@@ -0,0 +1,34 @@
<section class="tab region-{{tab.id}} flexcol {{tab.cssClass}}" data-tab="{{tab.id}}" data-group="{{tab.group}}">
<header class="region-element region-shape flexrow">
<div class="region-element-name">{{localize "REGION.Shape"}}</div>
<div class="region-element-controls">
<a class="control" data-action="shapeCreateFromWalls"
data-tooltip="REGION.ACTIONS.shapeCreateFromWalls" aria-label="{{localize "REGION.ACTIONS.shapeCreateFromWalls"}}">
<i class="fa-solid fa-plus"></i><i class="fa-solid fa-block-brick fa-fw"></i>
</a>
</div>
</header>
<div class="standard-form scrollable">
{{#each source.shapes as |shape i|}}
<fieldset class="region-element region-shape flexrow" data-shape-index="{{i}}" aria-label="{{localize "REGION.Shape"}} {{i}}">
<span class="region-element-name">{{localize (concat "REGION.SHAPES." shape.type)}}</span>
<div class="region-element-controls">
<a class="control {{#if shape.hole}}fa-regular{{else}}fa-solid{{/if}} fa-circle fa-fw" data-action="shapeToggleHole"
{{#if shape.hole}}
data-tooltip="REGION.ACTIONS.shapeFillHole" aria-label="{{localize "REGION.ACTIONS.shapeFillHole"}}"
{{else}}
data-tooltip="REGION.ACTIONS.shapeMakeHole" aria-label="{{localize "REGION.ACTIONS.shapeMakeHole"}}"
{{/if}}
></a>
<a class="control fa-solid fa-arrow-up fa-fw" data-action="shapeMoveUp"
data-tooltip="REGION.ACTIONS.shapeMoveUp" aria-label="{{localize "REGION.ACTIONS.shapeMoveUp"}}"></a>
<a class="control fa-solid fa-arrow-down fa-fw" data-action="shapeMoveDown"
data-tooltip="REGION.ACTIONS.shapeMoveDown" aria-label="{{localize "REGION.ACTIONS.shapeMoveDown"}}"></a>
<a class="control fa-solid fa-trash fa-fw" data-action="shapeRemove"
data-tooltip="REGION.ACTIONS.shapeRemove" aria-label="{{localize "REGION.ACTIONS.shapeRemove"}}"></a>
</div>
</fieldset>
{{/each}}
</div>
</section>

View File

@@ -0,0 +1,145 @@
<div class="tab" data-group="main" data-tab="ambience">
<nav class="tabs sheet-tabs secondary-tabs" data-group="ambience" aria-role="{{localize 'LIGHT.NavLabel'}}">
<a class="item" data-tab="basic" data-group="ambience"><i class="fas fa-chart-simple"></i> {{ localize "SCENES.HeaderAmbienceBasic" }}</a>
<a class="item" data-tab="environment" data-group="ambience"><i class="fa-regular fa-face-clouds"></i> {{ localize "SCENES.ENVIRONMENT.HeaderLabel" }}</a>
</nav>
<div class="tab" data-group="ambience" data-tab="basic">
<div class="form-group">
<label>{{localize "SCENES.JournalEntry"}}</label>
<select name="journal">
{{ selectOptions journals selected=data.journal blank="" valueAttr="id" labelAttr="name"}}
</select>
<p class="notes">{{ localize "SCENES.JournalEntryHint" }}</p>
</div>
<div class="form-group">
<label>{{ localize "JOURNALENTRYPAGE.Page" }}</label>
<div class="form-fields">
<select name="journalEntryPage">
{{ selectOptions pages selected=data.journalEntryPage valueAttr="id" labelAttr="name" blank="" }}
</select>
</div>
</div>
<hr>
<div class="form-group">
<label>{{localize "SCENES.AudioPlaylist"}}</label>
<select name="playlist">
{{ selectOptions playlists selected=data.playlist blank="" valueAttr="id" labelAttr="name"}}
</select>
<p class="notes">{{ localize "SCENES.AudioPlaylistHint" }}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.PlaylistSound"}}</label>
<select name="playlistSound">
{{ selectOptions sounds selected=playlistSound blank="" valueAttr="id" labelAttr="name"}}
</select>
<p class="notes">{{ localize "SCENES.PlaylistSoundHint" }}</p>
</div>
<hr>
<div class="form-group">
<label>{{ localize "SCENES.WeatherEffect" }}</label>
<select name="weather">
{{ selectOptions weatherTypes selected=data.weather blank="" }}
</select>
<p class="notes">{{ localize "SCENES.WeatherEffectHint" }}</p>
</div>
</div>
<div class="tab" data-group="ambience" data-tab="environment">
<h3>{{localize "SCENES.ENVIRONMENT.BaseAmbience"}}</h3>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Luminosity" }}</label>
<div class="form-fields">
{{ rangePicker name="environment.base.luminosity" value=data.environment.base.luminosity min="-1" max="1" step="0.05" }}
</div>
<p class="hint">{{ localize "SCENES.ENVIRONMENT.LuminosityHint" }}</p>
</div>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Saturation" }}</label>
<div class="form-fields">
{{ rangePicker name="environment.base.saturation" value=data.environment.base.saturation min="-1" max="1" step="0.05" }}
</div>
<p class="hint">{{ localize "SCENES.ENVIRONMENT.SaturationHint" }}</p>
</div>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Shadows" }}</label>
<div class="form-fields">
{{ rangePicker name="environment.base.shadows" value=data.environment.base.shadows min="0" max="1" step="0.05" }}
</div>
<p class="hint">{{ localize "SCENES.ENVIRONMENT.ShadowsHint" }}</p>
</div>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Hue" }}</label>
<div class="form-fields">
<hue-slider name="environment.base.hue" value="{{data.environment.base.hue}}" {{ disabled baseHueSliderDisabled }}></hue-slider>
</div>
<p class="hint">{{ localize "SCENES.ENVIRONMENT.HueHint" }}</p>
</div>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Intensity" }}</label>
<div class="form-fields">
{{ rangePicker name="environment.base.intensity" value=data.environment.base.intensity min="0" max="1" step="0.05" }}
</div>
<p class="hint">{{ localize "SCENES.ENVIRONMENT.IntensityHint" }}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.ENVIRONMENT.BlendAmbience"}}</label>
<input type="checkbox" name="environment.cycle" {{checked data.environment.cycle}}/>
<p class="notes">{{localize "SCENES.ENVIRONMENT.BlendAmbienceHint"}}</p>
</div>
<hr>
<h3>{{localize "SCENES.ENVIRONMENT.DarkAmbience"}}</h3>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Luminosity" }}</label>
<div class="form-fields">
{{ rangePicker name="environment.dark.luminosity" value=data.environment.dark.luminosity min="-1" max="1" step="0.05" }}
</div>
<!-- <p class="hint">{{ localize "SCENES.ENVIRONMENT.LuminosityHint" }}</p> -->
</div>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Saturation" }}</label>
<div class="form-fields">
{{ rangePicker name="environment.dark.saturation" value=data.environment.dark.saturation min="-1" max="1" step="0.05" }}
</div>
<!-- <p class="hint">{{ localize "SCENES.ENVIRONMENT.SaturationHint" }}</p> -->
</div>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Shadows" }}</label>
<div class="form-fields">
{{ rangePicker name="environment.dark.shadows" value=data.environment.dark.shadows min="0" max="1" step="0.05" }}
</div>
<!-- <p class="hint">{{ localize "SCENES.ENVIRONMENT.ShadowsHint" }}</p> -->
</div>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Hue" }}</label>
<div class="form-fields">
<hue-slider name="environment.dark.hue" value="{{data.environment.dark.hue}}" {{ disabled darknessHueSliderDisabled }}></hue-slider>
</div>
<!-- <p class="hint">{{ localize "SCENES.ENVIRONMENT.HueHint" }}</p> -->
</div>
<div class="form-group">
<label>{{ localize "SCENES.ENVIRONMENT.Intensity" }}</label>
<div class="form-fields">
{{ rangePicker name="environment.dark.intensity" value=data.environment.dark.intensity min="0" max="1" step="0.05" }}
</div>
<!-- <p class="hint">{{ localize "SCENES.ENVIRONMENT.IntensityHint" }}</p> -->
</div>
</div>
</div>

View File

@@ -0,0 +1,42 @@
<div class="tab" data-group="main" data-tab="light">
<nav class="tabs sheet-tabs secondary-tabs" data-group="light" aria-role="{{localize 'LIGHT.NavLabel'}}">
<a class="item" data-tab="basic" data-group="light"><i class="fas fa-lightbulb"></i> {{localize "AMBIENT_LIGHT.SECTIONS.BASIC"}}</a>
<a class="item" data-tab="animation" data-group="light"><i class="fas fa-play"></i> {{localize "AMBIENT_LIGHT.SECTIONS.ANIMATION"}}</a>
<a class="item" data-tab="advanced" data-group="light"><i class="fas fa-cogs"></i> {{localize "AMBIENT_LIGHT.SECTIONS.ADVANCED"}}</a>
</nav>
<div class="tab" data-group="light" data-tab="basic">
<div class="form-group slim">
<label>{{localize "AMBIENT_LIGHT.LABELS.radius"}} <span class="units">({{gridUnits}})</span></label>
<div class="form-fields">
<label>{{lightFields.dim.label}}</label>
{{formInput lightFields.dim value=object.light.dim}}
<label>{{lightFields.bright.label}}</label>
{{formInput lightFields.bright value=object.light.bright}}
</div>
<p class="hint">{{ localize 'AMBIENT_LIGHT.LABELS.radiusHint' }}</p>
</div>
{{formGroup lightFields.angle value=object.light.angle step=1 units="Degrees"}}
{{formGroup lightFields.color value=object.light.color}}
{{formGroup lightFields.alpha value=object.light.alpha step=0.05}}
</div>
<div class="tab" data-group="light" data-tab="animation">
{{formGroup lightFields.animation.fields.type value=object.light.animation.type
choices=lightAnimations labelAttr="label" blank="None" sort=true localize=true}}
{{formGroup lightFields.animation.fields.speed value=object.light.animation.speed}}
{{formGroup lightFields.animation.fields.reverse value=object.light.animation.reverse}}
{{formGroup lightFields.animation.fields.intensity value=object.light.animation.intensity}}
</div>
<div class="tab" data-group="light" data-tab="advanced">
{{formGroup lightFields.coloration value=object.light.coloration
choices=colorationTechniques valueAttr="id" labelAttr="label" localize=true}}
{{formGroup lightFields.luminosity value=object.light.luminosity step=0.05}}
{{formGroup lightFields.attenuation value=object.light.attenuation step=0.05}}
{{formGroup lightFields.saturation value=object.light.saturation step=0.05}}
{{formGroup lightFields.contrast value=object.light.contrast step=0.05}}
{{formGroup lightFields.shadows value=object.light.shadows step=0.05}}
</div>
</div>

View File

@@ -0,0 +1,50 @@
<div class="tab" data-group="main" data-tab="resources">
<div class="form-group">
<label>{{localize "TOKEN.ResourceDisplay"}}</label>
<div class="form-fields">
<select name="displayBars" data-dtype="Number">
{{selectOptions displayModes selected=object.displayBars}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "TOKEN.ResourceBar1A"}}</label>
<div class="form-fields">
<select class="bar-attribute" name="bar1.attribute">
{{selectOptions barAttributes selected=bar1.attribute blank=(localize "None")}}
</select>
</div>
</div>
{{#unless isDefault}}
<div class="form-group">
<label>{{localize "TOKEN.ResourceBar1D"}}</label>
<div class="form-fields">
<input type="number" class="bar1-value" value="{{bar1.value}}" disabled>
<span class="sep">/</span>
<input type="number" class="bar1-max" value="{{bar1.max}}" disabled>
</div>
</div>
{{/unless}}
<div class="form-group">
<label>{{localize "TOKEN.ResourceBar2A"}}</label>
<div class="form-fields">
<select class="bar-attribute" name="bar2.attribute">
{{selectOptions barAttributes selected=bar2.attribute blank=(localize "None")}}
</select>
</div>
</div>
{{#unless isDefault}}
<div class="form-group">
<label>{{localize "TOKEN.ResourceBar2D"}}</label>
<div class="form-fields">
<input type="number" class="bar2-value" value="{{bar2.value}}" disabled>
<span class="sep">/</span>
<input type="number" class="bar2-max" value="{{bar2.max}}" disabled>
</div>
</div>
{{/unless}}
</div>

View File

@@ -0,0 +1,136 @@
<div class="tab" data-group="main" data-tab="vision">
<nav class="tabs sheet-tabs secondary-tabs" data-group="vision" aria-role="{{localize 'TOKEN.SightNavLabel'}}">
<a class="item" data-tab="basic" data-group="vision"><i class="fa-solid fa-eye"></i> {{localize "TOKEN.SightHeaderBasic"}}</a>
<a class="item" data-tab="detection" data-group="vision"><i class="fa-solid fa-radar"></i> {{localize "TOKEN.SightHeaderDetection"}}</a>
<a class="item" data-tab="advanced" data-group="vision"><i class="fa-solid fa-cogs"></i> {{localize "TOKEN.SightHeaderAdvanced"}}</a>
</nav>
<div class="tab" data-group="vision" data-tab="basic">
<div class="form-group">
<label>{{localize "TOKEN.VisionEnabled"}}</label>
<input type="checkbox" name="sight.enabled" {{checked object.sight.enabled}}>
<p class="hint">{{ localize 'TOKEN.VisionEnabledHint' }}</p>
</div>
<div class="form-group slim">
<label>{{localize "TOKEN.VisionRange"}} <span class="units">({{gridUnits}})</span></label>
<div class="form-fields">
<input name="sight.range" type="number" value="{{object.sight.range}}" class="placeholder-fa-solid" class="placeholder-fa-solid" placeholder="&#xF534;" min="0" step="any">
</div>
<p class="hint">{{ localize 'TOKEN.VisionRangeHint' }}</p>
</div>
<div class="form-group slim">
<label>{{localize "TOKEN.VisionAngle"}} <span class="units">({{localize "Degrees"}})</span></label>
<div class="form-fields">
{{numberInput object.sight.angle name="sight.angle" placeholder=(localize "Degrees")}}
</div>
<p class="hint">{{ localize 'TOKEN.VisionAngleHint' }}</p>
</div>
<div class="form-group">
<label>{{ localize "TOKEN.VisionMode"}}</label>
<div class="form-fields">
<select name="sight.visionMode">
{{selectOptions visionModes selected=object.sight.visionMode valueAttr="id" labelAttr="label"
localize=true}}
</select>
</div>
<p class="hint">{{ localize 'TOKEN.VisionModeHint' }}</p>
</div>
</div>
<div class="tab detection-modes" data-group="vision" data-tab="detection">
<header class="detection-mode">
<div class="detection-mode-id">{{localize "TOKEN.DetectionMode"}}</div>
<div class="detection-mode-range">{{localize "TOKEN.DetectionRange"}} <span class="units">({{gridUnits}})</span></div>
<div class="detection-mode-enabled">{{localize "TOKEN.DetectionEnabled"}}</div>
<div class="detection-mode-controls">
<a class="action-button" data-action="addDetectionMode" data-tooltip="TOKEN.DetectionAdd">
<i class="fa-solid fa-plus"></i>
</a>
</div>
</header>
{{#each preparedDetectionModes as |mode|}}
<fieldset class="detection-mode" disabled>
<div class="detection-mode-id">
<select disabled>
{{selectOptions ../detectionModes selected=mode.id blank=""
valueAttr="id" labelAttr="label" localize=true}}
</select>
</div>
<div class="detection-mode-range">
<input type="number" value="{{mode.range}}" class="placeholder-fa-solid" placeholder="&#xF534;" min="0" step="any" disabled>
</div>
<div class="detection-mode-enabled">
<input type="checkbox" {{checked mode.enabled}} disabled>
</div>
<div class="detection-mode-controls"></div>
</fieldset>
{{/each}}
{{#each object.detectionModes as |mode i|}}
<fieldset class="detection-mode" data-index="{{i}}">
<div class="detection-mode-id">
<select name="detectionModes.{{i}}.id">
{{selectOptions ../detectionModes selected=mode.id blank=""
valueAttr="id" labelAttr="label" localize=true}}
</select>
</div>
<div class="detection-mode-range">
<input name="detectionModes.{{i}}.range" type="number" value="{{mode.range}}" class="placeholder-fa-solid" placeholder="&#xF534;" min="0" step="any">
</div>
<div class="detection-mode-enabled">
<input name="detectionModes.{{i}}.enabled" type="checkbox" {{checked mode.enabled}}>
</div>
<div class="detection-mode-controls">
<a class="action-button" data-action="removeDetectionMode" data-tooltip="TOKEN.DetectionRemove">
<i class="fa-solid fa-times"></i>
</a>
</div>
</fieldset>
{{/each}}
</div>
<div class="tab" data-group="vision" data-tab="advanced">
<div class="form-group">
<label>{{ localize "TOKEN.VisionColor" }}</label>
<div class="form-fields">
<color-picker name="sight.color" value="{{object.sight.color}}"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{ localize 'TOKEN.VisionAttenuation' }}</label>
<div class="form-fields">
{{rangePicker name="sight.attenuation" value=object.sight.attenuation min="0" max="1" step="0.05"}}
</div>
<p class="hint">{{ localize 'TOKEN.VisionAttenuationHint' }}</p>
</div>
<div class="form-group">
<label>{{ localize 'TOKEN.VisionBrightness' }}</label>
<div class="form-fields">
{{rangePicker name="sight.brightness" value=object.sight.brightness min="-1" max="1" step="0.05"}}
</div>
<p class="hint">{{ localize 'TOKEN.VisionBrightnessHint' }}</p>
</div>
<div class="form-group">
<label>{{ localize 'TOKEN.VisionSaturation' }}</label>
<div class="form-fields">
{{rangePicker name="sight.saturation" value=object.sight.saturation min="-1" max="1" step="0.05"}}
</div>
<p class="hint">{{ localize 'TOKEN.VisionSaturationHint' }}</p>
</div>
<div class="form-group">
<label>{{ localize 'TOKEN.VisionContrast' }}</label>
<div class="form-fields">
{{rangePicker name="sight.contrast" value=object.sight.contrast min="-1" max="1" step="0.05"}}
</div>
<p class="hint">{{ localize 'TOKEN.VisionContrastHint' }}</p>
</div>
</div>
</div>