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,79 @@
<div class="form-body standard-form scrollable">
<fieldset>
<legend>{{ localize "AMBIENT_SOUND.SECTIONS.SOURCE" }}</legend>
{{formField fields.path value=source.path placeholder=(localize "SOUND.PathPlaceholder")}}
</fieldset>
<fieldset>
<legend>{{ localize "AMBIENT_SOUND.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>
<div class="form-group slim">
<label>{{fields.radius.label}} <span class="units">({{gridUnits}})</span></label>
<div class="form-fields">
{{formInput fields.radius value=source.radius}}
</div>
</div>
<div class="form-group slim">
<label>{{fields.elevation.label}} <span class="units">({{gridUnits}})</span></label>
<div class="form-fields">
{{formInput fields.elevation value=source.elevation placeholder=gridUnits}}
</div>
</div>
<p class="hint">{{localize "AMBIENT_SOUND.SECTIONS.PLACEMENT_HINT"}}</p>
</fieldset>
<fieldset>
<legend>{{ localize "AMBIENT_SOUND.SECTIONS.VOLUME" }}</legend>
{{formField fields.volume value=source.volume}}
{{formField fields.easing value=source.easing}}
</fieldset>
<fieldset>
<legend>{{ localize "AMBIENT_SOUND.SECTIONS.ACTIVATION" }}</legend>
{{formField fields.hidden value=source.hidden}}
{{formField fields.walls value=source.walls}}
<div class="form-group slim">
<label>{{fields.darkness.label}}</label>
<div class="form-fields">
<label>{{fields.darkness.fields.min.label}}</label>
{{ numberInput source.darkness.min name="darkness.min" min=0 max=1 placeholder="0" }}
<label>{{fields.darkness.fields.max.label}}</label>
{{ numberInput source.darkness.max name="darkness.max" min=0 max=1 placeholder="1" }}
</div>
<p class="hint">{{fields.darkness.hint}}</p>
</div>
</fieldset>
<fieldset>
<legend>{{ localize "AMBIENT_SOUND.SECTIONS.EFFECTS" }}</legend>
<div class="form-group">
<label>{{fields.effects.fields.base.fields.type.label}}</label>
<div class="form-fields">
<select name="effects.base.type">
{{selectOptions soundEffects selected=source.effects.base.type labelAttr="label" blank="" localize=true}}
</select>
</div>
</div>
{{formField fields.effects.fields.base.fields.intensity value=source.effects.base.intensity}}
<p class="hint">{{fields.effects.fields.base.hint}}</p>
<div class="form-group">
<label>{{fields.effects.fields.muffled.fields.type.label}}</label>
<div class="form-fields">
<select name="effects.muffled.type">
{{selectOptions soundEffects selected=source.effects.muffled.type labelAttr="label" blank="" localize=true}}
</select>
</div>
</div>
{{formField fields.effects.fields.muffled.fields.intensity value=source.effects.muffled.intensity}}
<p class="hint">{{fields.effects.fields.muffled.hint}}</p>
</fieldset>
</div>

View File

@@ -0,0 +1,270 @@
<form class="flexcol {{cssClasses}}" autocomplete="off">
<!-- Configuration Tabs -->
<nav class="sheet-tabs tabs" data-group="main" aria-role="{{localize 'SHEETS.FormNavLabel'}}">
<a class="item" data-tab="basic"><i class="fas fa-image"></i> {{localize "SCENES.HeaderDetails"}}</a>
<a class="item" data-tab="grid"><i class="fas fa-ruler"></i> {{localize "SCENES.HeaderGrid"}}</a>
<a class="item" data-tab="lighting"><i class="fas fas fa-lightbulb"></i> {{localize "SCENES.HeaderVision"}}</a>
<a class="item" data-tab="ambience"><i class="fas fa-cloud-sun"></i> {{localize "SCENES.HeaderAmbience"}}</a>
</nav>
<!-- Basic Tab -->
<div class="tab" data-group="main" data-tab="basic">
<div class="form-group">
<label>{{localize "SCENES.SceneName"}}</label>
<div class="form-fields">
<input type="text" name="name" placeholder="{{localize 'Name'}}" value="{{data.name}}"/>
</div>
</div>
<div class="form-group">
<label>{{localize "SCENES.Accessibility"}}</label>
<div class="form-fields">
<label class="checkbox">
{{localize "SCENES.ShowNav"}}
<input type="checkbox" name="navigation" {{checked data.navigation}}>
</label>
<select name="ownership.default" data-dtype="Number">
{{selectOptions ownerships selected=data.ownership.default localize=true}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "SCENES.NavName"}}</label>
<div class="form-fields">
<input type="text" name="navName" value="{{data.navName}}"/>
</div>
<p class="notes">{{localize "SCENES.NavNameHint"}}</p>
</div>
<hr>
<div class="form-group">
<label>{{localize "SCENES.BackgroundImage"}}</label>
<div class="form-fields">
<file-picker name="background.src" type="imagevideo" value="{{data.background.src}}"></file-picker>
</div>
<p class="notes">{{localize "SCENES.BackgroundImageHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.ForegroundImage"}}</label>
<div class="form-fields">
<file-picker name="foreground" type="imagevideo" value="{{data.foreground}}"></file-picker>
</div>
<p class="notes">{{localize "SCENES.ForegroundImageHint"}}</p>
</div>
<hr>
<div class="form-group">
<label>{{localize "SCENES.BackgroundColor"}}</label>
<div class="form-fields">
<color-picker name="backgroundColor" value="{{data.backgroundColor}}" placeholder="#999999"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{localize "SCENES.ForegroundElevation"}}</label>
<div class="form-fields">
{{numberInput foregroundElevation name="foregroundElevation" min=1 step=1}}
</div>
<p class="notes">{{localize "SCENES.ForegroundElevationHint"}}</p>
</div>
<div class="form-group initial-position">
<label>{{localize "SCENES.InitialView"}}</label>
<div class="form-fields">
<button class="capture-position" type="button" data-tooltip="{{ localize "SCENES.InitialViewButton" }}">
<i class="fas fa-crop-alt fa-fw"></i>
</button>
<label>X</label>
<input type="number" name="initial.x" placeholder="0" value="{{data.initial.x}}" step="1"/>
<label>Y</label>
<input type="number" name="initial.y" placeholder="0" value="{{data.initial.y}}" step="1"/>
<label>{{localize "SCENES.ZoomLower"}}</label>
<input type="number" name="initial.scale" placeholder="1" value="{{data.initial.scale}}" step="any"/>
</div>
<p class="notes">{{localize "SCENES.InitialViewHint"}}</p>
</div>
</div>
<!-- Grid Tab -->
<div class="tab" data-group="main" data-tab="grid">
<div class="form-group">
<label>{{localize "SCENES.GridType"}}</label>
<div class="form-fields">
<button type="button" class="grid-config" data-tooltip="{{ localize "SCENES.GridConfigTool" }}">
<i class="fas fa-ruler-combined"></i>
</button>
<select name="grid.type" data-dtype="Number">
{{ selectOptions gridTypes selected=data.grid.type localize=true }}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "SCENES.GridSize"}} <span class="units">({{localize "SCENES.Pixels"}})</span></label>
<div class="form-fields">
{{numberInput data.grid.size name="grid.size" placeholder=(localize "SCENES.Pixels") min=minGrid step=1}}
</div>
<p class="notes">{{localize "SCENES.GridSizeHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.Dimensions"}} <span class="units">({{localize "SCENES.Pixels"}})</span></label>
<div class="form-fields">
<label>{{localize "Width"}}</label>
{{numberInput data.width name="width"}}
<button type="button" class="dimension-link" data-tooltip="{{ localize 'SCENES.DimensionLinked' }}">
<i class="fas fa-link-simple"></i>
</button>
<label>{{localize "Height"}}</label>
{{numberInput data.height name="height"}}
</div>
<p class="notes">{{localize "SCENES.DimensionsHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.Padding"}}</label>
<div class="form-fields">
<range-picker name="padding" value="{{data.padding}}" min="0" max="0.5" step="0.05"></range-picker>
</div>
<p class="notes">{{localize "SCENES.PaddingHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.ShiftBG"}} <span class="units">({{localize "SCENES.Pixels"}})</span></label>
<div class="form-fields">
<label class="grid-label">{{localize "SCENES.ShiftHorizontal"}}</label>
{{numberInput data.background.offsetX name="background.offsetX" placeholder=(localize "SCENES.Pixels")}}
<label class="grid-label">{{localize "SCENES.ShiftVertical"}}</label>
{{numberInput data.background.offsetY name="background.offsetY" placeholder=(localize "SCENES.Pixels")}}
</div>
</div>
<hr>
<div class="form-group">
<label>{{localize "SCENES.GridScale"}}</label>
<div class="form-fields">
<label class="grid-label">{{localize "SCENES.GridDistance"}}</label>
{{numberInput data.grid.distance name="grid.distance" placeholder=1}}
<label class="grid-label">{{localize "SCENES.GridUnits"}}</label>
<input type="text" name="grid.units" placeholder="{{localize "None"}}" value="{{data.grid.units}}"/>
</div>
</div>
<div class="form-group">
<label>{{localize "SCENES.GridStyle"}}</label>
<div class="form-fields">
<select name="grid.style">
{{ selectOptions gridStyles selected=data.grid.style labelAttr="label" localize=true }}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "SCENES.GridThickness"}}</label>
<div class="form-fields">
{{numberInput data.grid.thickness name="grid.thickness" placeholder=1}}
</div>
</div>
<div class="form-group">
<label>{{localize "SCENES.GridColor"}}</label>
<div class="form-fields">
<color-picker name="grid.color" value="{{data.grid.color}}" placeholder="#000000"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{localize "SCENES.GridOpacity"}}</label>
<div class="form-fields">
<range-picker name="grid.alpha" value="{{data.grid.alpha}}" min="0" max="1" step="0.05"></range-picker>
</div>
</div>
</div>
<!-- Lighting and Vision -->
<div class="tab" data-group="main" data-tab="lighting">
<div class="form-group">
<label>{{localize "SCENES.TokenVision"}}</label>
<input type="checkbox" name="tokenVision" {{checked data.tokenVision}}/>
<p class="notes">{{localize "SCENES.TokenVisionHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.FogExplore"}}</label>
<input type="checkbox" name="fog.exploration" {{checked data.fog.exploration}}/>
<p class="notes">{{localize "SCENES.FogExploreHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.FogOverlay"}}</label>
<div class="form-fields">
<file-picker name="fog.overlay" type="imagevideo" value="{{data.fog.overlay}}"></file-picker>
</div>
<p class="notes">{{localize "SCENES.FogOverlayHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.FogUnexploredColor"}}</label>
<div class="form-fields">
<color-picker name="fog.colors.unexplored" value="{{data.fog.colors.unexplored}}"></color-picker>
</div>
<p class="notes">{{localize "SCENES.FogUnexploredColorHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.FogExploredColor"}}</label>
<div class="form-fields">
<color-picker name="fog.colors.explored" value="{{data.fog.colors.explored}}"></color-picker>
</div>
<p class="notes">{{localize "SCENES.FogExploredColorHint"}}</p>
</div>
<hr>
<div class="form-group">
<label>{{localize "SCENES.GlobalIllum"}}</label>
<input type="checkbox" name="environment.globalLight.enabled" {{checked data.environment.globalLight.enabled}}/>
<p class="notes">{{localize "SCENES.GlobalIllumHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.GlobalLightThreshold"}}</label>
<div class="form-fields">
<range-picker name="environment.globalLight.darkness.max"
value="{{data.environment.globalLight.darkness.max}}"
min="0" max="1" step="0.05"></range-picker>
</div>
<p class="notes">{{localize "SCENES.GlobalLightThresholdHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.Darkness"}}</label>
<div class="form-fields">
<range-picker name="environment.darknessLevel" value="{{data.environment.darknessLevel}}"
min="0" max="1" step="0.05" {{disabled data.environment.darknessLock}}></range-picker>
</div>
<p class="notes">{{localize "SCENES.DarknessHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "SCENES.ENVIRONMENT.DarknessLock"}}</label>
<input type="checkbox" name="environment.darknessLock" {{checked data.environment.darknessLock}}/>
<p class="notes">{{localize "SCENES.ENVIRONMENT.DarknessLockHint"}}</p>
</div>
</div>
<!-- Ambience and Atmosphere -->
{{> "templates/scene/parts/scene-ambience.html"}}
<!-- Form Submission -->
<footer class="sheet-footer">
<button type="reset" {{#unless isEnvironment}}class="hidden"{{/unless}}>
<i class="fas fa-undo"></i> {{ localize "SCENES.ENVIRONMENT.ResetEnvironment" }}
</button>
<button type="submit">
<i class="far fa-save"></i> {{ localize "SETTINGS.Save" }}
</button>
</footer>
</form>

View File

@@ -0,0 +1,64 @@
<form class="flexcol {{cssClasses}}" autocomplete="off">
<!-- Token Configuration Tabs -->
<nav class="sheet-tabs tabs" data-group="main" aria-role="{{localize 'SHEETS.FormNavLabel'}}">
<a class="item" data-tab="character"><i class="fas fa-user"></i> {{localize "TOKEN.HeaderIdentity"}}</a>
<a class="item" data-tab="vision"><i class="fas fa-eye"></i> {{localize "TOKEN.HeaderVision"}}</a>
<a class="item" data-tab="light"><i class="fas fa-lightbulb"></i> {{localize "TOKEN.HeaderLight"}}</a>
<a class="item" data-tab="resources"><i class="fas fa-heart"></i> {{localize "TOKEN.HeaderResources"}}</a>
</nav>
<!-- Token Character -->
<div class="tab" data-group="main" data-tab="character">
<div class="form-group">
<label>{{localize "TOKEN.CharShowNameplate"}}</label>
<select name="displayName" data-dtype="Number">
{{selectOptions displayModes selected=object.displayName }}
</select>
</div>
<div class="form-group">
<label>{{localize "TOKEN.Disposition"}}</label>
<select name="disposition" data-dtype="Number">
{{selectOptions dispositions selected=object.disposition }}
</select>
</div>
<div class="form-group">
<label>{{localize "TOKEN.LockRotation"}}</label>
<input type="checkbox" name="lockRotation" {{checked object.lockRotation}}/>
</div>
<hr>
<div class="form-group">
<label>{{localize "TOKEN.AppendNumber"}}</label>
<input type="checkbox" name="appendNumber" {{checked object.appendNumber}}/>
<p class="notes">{{localize "TOKEN.AppendNumberHint" name="Kobold"}}</p>
</div>
<div class="form-group">
<label>{{localize "TOKEN.PrependAdjective"}}</label>
<input type="checkbox" name="prependAdjective" {{checked object.prependAdjective}}/>
<p class="notes">{{localize "TOKEN.PrependAdjectiveHint" name="Kobold"}}</p>
</div>
</div>
<!-- Vision -->
{{> "templates/scene/parts/token-vision.html"}}
<!-- Light -->
{{> "templates/scene/parts/token-lighting.hbs"}}
<!-- Resource Bars -->
{{> "templates/scene/parts/token-resources.html"}}
<footer class="sheet-footer flexrow">
<button type="submit">
<i class="far fa-save"></i> {{localize "SETTINGS.Save"}}
</button>
<button type="button" data-action="reset">
<i class="fas fa-undo"></i> {{localize "SETTINGS.Reset"}}
</button>
</footer>
</form>

View File

@@ -0,0 +1,176 @@
<form class="flexcol" autocomplete="off">
<!-- Sheet Navigation Tabs -->
<nav class="sheet-tabs tabs" aria-role="{{localize 'SHEETS.FormNavLabel'}}">
{{#unless isDefault}}
<a class="item" data-tab="position"><i class="fas fa-map-marker-alt"></i> {{ localize "DRAWING.TabPosition" }}</a>
{{/unless}}
<a class="item" data-tab="lines"><i class="fas fa-paint-brush"></i> {{ localize "DRAWING.TabLines" }}</a>
<a class="item" data-tab="fill"><i class="fas fa-fill-drip"></i> {{ localize "DRAWING.TabFill" }}</a>
<a class="item" data-tab="text"><i class="fas fa-font"></i> {{ localize "DRAWING.TabText" }}</a>
</nav>
<!-- Position Tab -->
{{#unless isDefault}}
<div class="tab" data-tab="position">
<p class="notes">{{ localize "DRAWING.NotePosition" }}</p>
<div class="form-group">
<label>{{ localize "DRAWING.Author" }}</label>
<input type="text" name="author" value="{{author}}" disabled/>
</div>
<div class="form-group">
<label>{{ localize "XCoord" }} <span class="units">({{ localize "Pixels" }})</span></label>
{{numberInput object.x name="x" step=1}}
</div>
<div class="form-group">
<label>{{ localize "YCoord" }} <span class="units">({{ localize "Pixels" }})</span></label>
{{numberInput object.y name="y" step=1}}
</div>
<div class="form-group">
<label>{{ localize "DRAWING.Width" }} <span class="units">({{ localize "Pixels" }})</span></label>
{{numberInput object.shape.width name="shape.width" step="1"}}
</div>
<div class="form-group">
<label>{{ localize "DRAWING.Height" }} <span class="units">({{ localize "Pixels" }})</span></label>
{{numberInput object.shape.height name="shape.height" step="1"}}
</div>
<div class="form-group">
<label>{{ localize "DRAWING.Rotation" }} <span class="units">({{ localize "Degrees" }})</span></label>
{{numberInput object.rotation name="rotation" step=1}}
</div>
<div class="form-group">
<label>{{localize "Elevation"}} <span class="units">({{gridUnits}})</span></label>
{{numberInput object.elevation name="elevation" placeholder=gridUnits}}
</div>
<div class="form-group">
<label>{{ localize "Sort" }}</label>
{{numberInput object.sort name="sort" step=1}}
</div>
<hr>
<div class="form-group">
<label>{{ localize "DRAWING.Role" }}</label>
<select name="drawingRole">
{{selectOptions drawingRoles selected=currentRole localize=true}}
</select>
<p class="hint">{{ localize "DRAWING.RoleHint" }}</p>
</div>
</div>
{{/unless}}
<!-- Lines Tab -->
<div class="tab" data-tab="lines">
<p class="notes">{{ localize "DRAWING.NoteLines" }}</p>
<div class="form-group">
<label>{{ localize "DRAWING.LineWidth" }} <span class="units">({{ localize "Pixels" }})</span></label>
{{numberInput object.strokeWidth name="strokeWidth" step=1}}
</div>
<div class="form-group">
<label>{{ localize "DRAWING.StrokeColor" }}</label>
<div class="form-fields">
<color-picker name="strokeColor" value="{{object.strokeColor}}" placeholder="{{userColor}}"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{ localize "DRAWING.LineOpacity" }}</label>
<div class="form-fields">
{{rangePicker name="strokeAlpha" value=object.strokeAlpha min="0" max="1" step="0.1"}}
</div>
</div>
<div class="form-group">
<label>{{ localize "DRAWING.SmoothingFactor" }}</label>
<div class="form-fields">
{{rangePicker name="bezierFactor" value=scaledBezierFactor min="0" max="1" step="0.1"}}
</div>
<p class="notes">{{ localize "DRAWING.SmoothingFactorHint" }}</p>
</div>
</div>
<!-- Fill Tab -->
<div class="tab" data-tab="fill">
<p class="notes">{{ localize "DRAWING.NoteFill" }}</p>
<div class="form-group">
<label>{{ localize "DRAWING.FillTypes" }}</label>
<select name="fillType" data-dtype="Number">
{{selectOptions fillTypes selected=object.fillType localize=true}}
</select>
</div>
<div class="form-group">
<label>{{ localize "DRAWING.FillColor" }}</label>
<div class="form-fields">
<color-picker name="fillColor" value="{{object.fillColor}}" placeholder="{{userColor}}"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{ localize "DRAWING.FillOpacity" }}</label>
<div class="form-fields">
{{rangePicker name="fillAlpha" value=object.fillAlpha min="0" max="1" step="0.1"}}
</div>
</div>
<div class="form-group">
<label>{{ localize "DRAWING.FillTexture" }}</label>
<div class="form-fields">
<file-picker name="texture" type="image" value="{{object.texture}}"></file-picker>
</div>
</div>
</div>
<!-- Text Tab -->
<div class="tab" data-tab="text">
<p class="notes">{{ localize "DRAWING.NoteText" }}</p>
<div class="form-group">
<label>{{ localize "DRAWING.TextLabel" }}</label>
<input type="text" name="text" value="{{object.text}}"/>
</div>
<div class="form-group">
<label>{{ localize "DRAWING.FontFamily" }}</label>
<select name="fontFamily">
{{selectOptions fontFamilies selected=object.fontFamily}}
</select>
</div>
<div class="form-group">
<label>{{ localize "DRAWING.FontSize" }}</label>
{{numberInput object.fontSize name="fontSize" step=1}}
</div>
<div class="form-group">
<label>{{ localize "DRAWING.TextColor" }}</label>
<div class="form-fields">
<color-picker name="textColor" value="{{object.textColor}}" placeholder="#ffffff"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{ localize "DRAWING.TextOpacity" }}</label>
<div class="form-fields">
{{rangePicker name="textAlpha" value=object.textAlpha min="0" max="1" step="0.1"}}
</div>
</div>
</div>
<!-- Sheet Footer -->
<footer class="sheet-footer flexrow">
{{#if options.configureDefault}}
<button type="reset" name="reset">
<i class="fas fa-undo"></i> {{ localize "DRAWING.SubmitReset" }}
</button>
{{/if}}
<button type="submit"><i class="far fa-save"></i> {{localize submitText}}</button>
</footer>
</form>

View File

@@ -0,0 +1,48 @@
<form autocomplete="off">
<p class="notes">{{localize "SCENES.GridConfigToolHint"}}</p>
<div class="form-group">
<label>{{localize "SCENES.GridType"}}</label>
<div class="form-fields">
<select name="grid.type" data-dtype="Number">
{{selectOptions gridTypes selected=scene.grid.type localize=true}}
</select>
</div>
</div>
<div class="form-group">
<label>{{ localize "SCENES.BackgroundScale" }}</label>
<div class="form-fields">
{{numberInput scale name="scale"}}
</div>
<p class="notes">{{localize "SCENES.BackgroundScaleHint"}}</p>
</div>
<div class="form-group">
<label>{{ localize "SCENES.GridSize" }}</label>
<div class="form-fields">
{{numberInput scene.grid.size name="grid.size" min=50 step=1}}
</div>
<p class="notes">{{ localize "SCENES.GridResizeHint" }}</p>
</div>
<div class="form-group">
<label>{{ localize "SCENES.GridPosition" }}</label>
<div class="form-fields">
<label>x</label>
{{numberInput scene.background.offsetX name="background.offsetX"}}
<label>y</label>
{{numberInput scene.background.offsetY name="background.offsetY"}}
</div>
<p class="notes">{{ localize "SCENES.GridPositionHint" }}</p>
</div>
<div class="form-group">
<button type="reset" name="reset">
<i class="fas fa-sync"></i> {{ localize "SCENES.GridReset" }}
</button>
<button type="submit">
<i class="fas fa-save"></i> {{ localize "SETTINGS.Save" }}
</button>
</div>
</form>

View File

@@ -0,0 +1,124 @@
<form autocomplete="off">
<div class="form-group">
<label>{{ localize "DOCUMENT.JournalEntry" }}</label>
<div class="form-fields">
<select name="entryId">
{{selectOptions entries selected=data.entryId valueAttr="id" labelAttr="name" blank=""}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "JOURNALENTRYPAGE.Page"}}</label>
<div class="form-fields">
<select name="pageId">
{{selectOptions pages selected=data.pageId valueAttr="id" labelAttr="name" blank=""}}
</select>
</div>
</div>
<div class="form-group">
<label>{{ localize "NOTE.TextLabel" }}</label>
<div class="form-fields">
<input type="text" name="text" value="{{data.text}}" placeholder="{{label}}"/>
</div>
</div>
<div class="form-group">
<label>{{ localize "XCoord" }}</label>
<div class="form-fields">
{{numberInput data.x name="x"}}
</div>
</div>
<div class="form-group">
<label>{{ localize "YCoord" }}</label>
<div class="form-fields">
{{numberInput data.y name="y"}}
</div>
</div>
<div class="form-group">
<label>{{localize "Elevation"}} <span class="units">({{gridUnits}})</span></label>
{{numberInput data.elevation name="elevation" placeholder=gridUnits}}
</div>
<div class="form-group">
<label>{{ localize "Sort" }}</label>
{{numberInput data.sort name="sort" step=1}}
</div>
<div class="form-group">
<label>{{ localize "NOTE.Global" }}</label>
<div class="form-fields">
<input type="checkbox" name="global" {{checked data.global}}>
</div>
<p class="notes">{{ localize "NOTE.GlobalHint" }}</p>
</div>
<div class="form-group">
<label>{{ localize "NOTE.EntryIcon" }}</label>
<div class="form-fields">
<select name="icon.selected">
{{selectOptions icons selected=icon.selected valueAttr="src" labelAttr="label"}}
</select>
</div>
</div>
<div class="form-group">
<label>{{ localize "NOTE.CustomIcon" }}</label>
<div class="form-fields">
<file-picker name="icon.custom" type="image" value="{{icon.custom}}"></file-picker>
</div>
</div>
<div class="form-group">
<label>{{ localize "NOTE.IconSize" }} <span class="units">({{localize "Pixels"}})</span></label>
<div class="form-fields">
{{numberInput data.iconSize name="iconSize"}}
</div>
</div>
<div class="form-group">
<label>{{ localize "NOTE.IconTint" }}</label>
<div class="form-fields">
<color-picker name="texture.tint" value="{{data.texture.tint}}" placeholder="#ffffff"></color-picker>
</div>
</div>
<div class="form-group">
<label for="fontFamily">{{ localize "NOTE.FontFamily" }}</label>
<div class="form-fields">
<select name="fontFamily">
{{selectOptions fontFamilies selected=data.fontFamily}}
</select>
</div>
</div>
<div class="form-group">
<label>{{ localize "NOTE.FontSize" }}</label>
<div class="form-fields">
{{numberInput data.fontSize name="fontSize"}}
</div>
</div>
<div class="form-group">
<label for="textColor">{{ localize "NOTE.TextColor" }}</label>
<div class="form-fields">
<color-picker name="textColor" value="{{data.textColor}}" placeholder="#ffffff"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{ localize "NOTE.AnchorPoint" }}</label>
<div class="form-fields">
<select name="textAnchor" data-dtype="Number">
{{selectOptions textAnchors selected=data.textAnchor}}
</select>
</div>
</div>
<button type="submit">
<i class="far fa-save"></i> {{ submitText }}
</button>
</form>

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>

View File

@@ -0,0 +1,30 @@
<div class="flexcol">
<div class="region-filters flexrow" aria-label="{{localize "REGION.LEGEND.filter"}}">
<input type="search" name="search" value="" autocomplete="off" placeholder="{{localize "REGION.LEGEND.filter"}}"
data-tooltip="{{localize "Name"}}" aria-label="{{localize "Name"}}">
<input name="elevationBottom" type="number" value="{{elevation.bottom}}" class="placeholder-fa-solid" placeholder="&#xF068 &#xF534;" step="any"
data-tooltip="{{localize "REGION.LEGEND.elevationBottom"}}" aria-label="{{localize "REGION.LEGEND.elevationBottom"}}">
<input name="elevationTop" type="number" value="{{elevation.top}}" class="placeholder-fa-solid" placeholder="&#x002B &#xF534;" step="any"
data-tooltip="{{localize "REGION.LEGEND.elevationTop"}}" aria-label="{{localize "REGION.LEGEND.elevationTop"}}">
<button type="button" class="icon fa-solid fa-plus" data-action="create" data-tooltip="REGION.LEGEND.create"></button>
</div>
<ol class="region-list flexcol scrollable">
{{#each regions as |region|}}
<li class="region flexrow {{#if region.controlled}}controlled{{/if}} {{#if region.hover}}hover{{/if}}" data-region-id="{{region.id}}"
aria-label="{{region.name}}">
<i class="region-color" style="background: {{region.color}}"></i>
<a class="region-name" data-action="control" aria-label="{{localize "REGION.LEGEND.control"}}">
{{region.name}}
</a>
{{#if region.empty}}<span class="region-meta">({{localize "REGION.LEGEND.empty"}})</span>{{/if}}
{{#if region.elevationLabel}}<span class="region-meta">{{{region.elevationLabel}}}</span>{{/if}}
{{#each region.buttons as |button|}}
<button type="button" class="icon" {{button.disabled}} data-action="{{button.action}}"
data-tooltip="{{button.tooltip}}" aria-label="{{button.tooltip}}">
<i class="fa-solid {{button.icon}} fa-fw"></i>
</button>
{{/each}}
</li>
{{/each}}
</ol>
</div>

View File

@@ -0,0 +1,80 @@
<form autocomplete="off">
<p class="notes">{{ localize "CONTROLS.MeasureConfigHint" }}</p>
<div class="form-group">
<label>{{ localize "CONTROLS.MeasureType" }}</label>
<select name="t">
{{selectOptions templateTypes selected=data.t localize=true}}
</select>
</div>
<div class="form-group">
<label>{{ localize "XCoord" }} <span class="units">({{ localize "Pixels" }})</span></label>
{{numberInput data.x name="x" step=1 placeholder="X"}}
</div>
<div class="form-group">
<label>{{ localize "YCoord" }} <span class="units">({{ localize "Pixels" }})</span></label>
{{numberInput data.y name="y" step=1 placeholder="Y"}}
</div>
<div class="form-group slim">
<label>{{localize "Elevation"}} <span class="units">({{gridUnits}})</span></label>
{{numberInput data.elevation name="elevation" placeholder=gridUnits}}
</div>
<div class="form-group">
<label>{{ localize "Sort" }}</label>
{{numberInput data.sort name="sort" step=1 placeholder=(localize "Sort")}}
</div>
<div class="form-group">
<label>{{ localize "Direction" }} <span class="units">({{ localize "Degrees" }})</span></label>
{{numberInput data.direction name="direction" placeholder=(localize "Direction")}}
</div>
<div class="form-group">
<label>{{ localize "Angle" }} <span class="units">({{ localize "Degrees" }})</span></label>
{{numberInput data.angle name="angle" placeholder=(localize "Angle")}}
</div>
<div class="form-group">
<label>{{ localize "Distance" }} <span class="units">({{gridUnits}})</span></label>
{{numberInput data.distance name="distance" placeholder=(localize "Distance") min=0}}
</div>
<div class="form-group">
<label>{{ localize "Width" }} <span class="units">({{gridUnits}})</span></label>
{{numberInput data.width name="width" placeholder=(localize "Width") min=0}}
</div>
<div class="form-group">
<label>{{ localize "TEMPLATE.BorderColor" }}</label>
<div class="form-fields">
<color-picker name="borderColor" value="{{data.borderColor}}" placeholder="#000000"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{ localize "TEMPLATE.FillColor" }}</label>
<div class="form-fields">
<color-picker name="fillColor" value="{{data.fillColor}}" placeholder="{{userColor}}"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{ localize "TEMPLATE.FillTexture" }}</label>
<div class="form-fields">
<file-picker name="texture" type="image" value="{{data.texture}}"></file-picker>
</div>
</div>
<div class="form-group">
<label>{{localize "Hidden"}}</label>
<input type="checkbox" name="hidden" {{checked data.hidden}}/>
</div>
<button type="submit">
<i class="far fa-save"></i> {{ localize submitText }}
</button>
</form>

View File

@@ -0,0 +1,165 @@
<form autocomplete="off">
<!-- Tile Configuration Tabs -->
<nav class="sheet-tabs tabs" aria-role="{{localize 'SHEETS.FormNavLabel'}}">
<a class="item" data-tab="basic"><i class="fas fa-cubes"></i> {{localize "TILE.BasicHeader" }}</a>
<a class="item" data-tab="overhead"><i class="fas fa-home"></i> {{ localize "TILE.OverheadHeader" }}</a>
<a class="item" data-tab="animation"><i class="fas fa-play"></i> {{ localize "TILE.AnimationHeader" }}</a>
</nav>
<!-- Basic Configuration Tab -->
<div class="tab" data-tab="basic">
<p class="notes">{{ localize "TILE.BasicHint" }}</p>
<div class="form-group">
<label>{{ localize "TILE.Image"}}</label>
<div class="form-fields">
<file-picker name="texture.src" type="imagevideo" value="{{data.texture.src}}"></file-picker>
</div>
</div>
<div class="form-group">
<label for="x">{{ localize "XCoord" }} <span class="units">({{ localize "Pixels" }})</span></label>
<div class="form-fields">
{{numberInput data.x name="x" step=1}}
</div>
</div>
<div class="form-group">
<label for="y">{{ localize "YCoord" }} <span class="units">({{ localize "Pixels" }})</span></label>
<div class="form-fields">
{{numberInput data.y name="y" step=1}}
</div>
</div>
<div class="form-group">
<label for="sort">{{ localize "Sort" }}</label>
<div class="form-fields">
{{numberInput data.sort name="sort" step=1}}
</div>
</div>
<div class="form-group">
<label for="width">{{ localize "Width" }} <span class="units">({{ localize "Pixels" }})</span></label>
<div class="form-fields">
{{numberInput data.width name="width" min=0 step=1}}
</div>
</div>
<div class="form-group">
<label for="height">{{ localize "Height" }} <span class="units">({{ localize "Pixels" }})</span></label>
<div class="form-fields">
{{numberInput data.height name="height" min=0 step=1}}
</div>
</div>
<div class="form-group slim">
<label>{{ localize "TILE.Scale" }} <span class="units">({{localize "Ratio"}})</span></label>
<div class="form-fields">
<label>{{ localize "TILE.ScaleX" }}</label>
{{numberInput data.texture.scaleX name="texture.scaleX"}}
<label>{{ localize "TILE.ScaleY" }}</label>
{{numberInput data.texture.scaleY name="texture.scaleY"}}
</div>
<p class="hint">{{ localize "TILE.ScaleHint" }}</p>
</div>
<div class="form-group">
<label for="height">{{ localize "Rotation" }} <span class="units">({{ localize "Degrees" }})</span></label>
<div class="form-fields">
{{numberInput data.rotation name="rotation"}}
</div>
</div>
<div class="form-group">
<label>{{ localize "TILE.Opacity" }}</label>
<div class="form-fields">
{{ rangePicker name="alpha" value=data.alpha min="0" max="1" step="0.05" }}
</div>
</div>
<div class="form-group">
<label>{{ localize "TILE.Tint" }}</label>
<div class="form-fields">
<color-picker name="texture.tint" value="{{data.texture.tint}}" placeholder="#ffffff"></color-picker>
</div>
</div>
</div>
<!-- Overhead Tab -->
<div class="tab" data-tab="overhead">
<p class="notes">{{ localize "TILE.OverheadHint" }}</p>
<div class="form-group slim">
<label>{{localize "Elevation"}} <span class="units">({{gridUnits}})</span></label>
<div class="form-fields">
{{numberInput data.elevation name="elevation" placeholder=gridUnits}}
</div>
</div>
<div class="form-group">
<label>{{localize "TILE.OcclusionMode"}}</label>
<div class="form-fields">
<select name="occlusion.mode" data-dtype="Number">
{{ selectOptions occlusionModes selected=data.occlusion.mode }}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "TILE.OcclusionAlpha"}}</label>
<div class="form-fields">
{{ rangePicker name="occlusion.alpha" value=data.occlusion.alpha min="0" max="1" step="0.05" }}
</div>
</div>
<div class="form-group">
<label>{{localize "TILE.RestrictsLight"}}</label>
<div class="form-fields">
<input type="checkbox" name="restrictions.light" {{ checked data.restrictions.light }}>
</div>
<p class="hint">{{ localize "TILE.RestrictsLightHint" }}</p>
</div>
<div class="form-group">
<label>{{localize "TILE.RestrictsWeather"}}</label>
<div class="form-fields">
<input type="checkbox" name="restrictions.weather" {{ checked data.restrictions.weather }}>
</div>
<p class="hint">{{ localize "TILE.RestrictsWeatherHint" }}</p>
</div>
</div>
<!-- Video Tab -->
<div class="tab" data-tab="animation">
<p class="notes">{{ localize "TILE.AnimationHint" }}</p>
<div class="form-group">
<label>{{localize "TILE.VideoLoop"}}</label>
<div class="form-fields">
<input type="checkbox" name="video.loop" {{ checked data.video.loop }}>
</div>
</div>
<div class="form-group">
<label>{{localize "TILE.VideoAutoplay"}}</label>
<div class="form-fields">
<input type="checkbox" name="video.autoplay" {{ checked data.video.autoplay }}>
</div>
</div>
<div class="form-group">
<label>{{localize "TILE.VideoVolume"}}</label>
<div class="form-fields">
{{ rangePicker name="video.volume" value=data.video.volume min="0" max="1" step="0.05" }}
</div>
</div>
</div>
<!-- Sheet Footer -->
<footer class="sheet-footer flexrow">
<button type="submit">
<i class="far fa-save"></i> {{submitText}}
</button>
</footer>
</form>

View File

@@ -0,0 +1,238 @@
<form class="flexcol {{cssClasses}}" autocomplete="off">
<!-- Token Configuration Tabs -->
<nav class="sheet-tabs tabs" data-group="main" aria-role="{{localize 'SHEETS.FormNavLabel'}}">
<a class="item" data-tab="character"><i class="fas fa-user"></i> {{localize "TOKEN.HeaderIdentity"}}</a>
<a class="item" data-tab="appearance"><i class="fas fa-expand"></i> {{localize "TOKEN.HeaderAppearance"}}</a>
<a class="item" data-tab="vision"><i class="fas fa-eye"></i> {{localize "TOKEN.HeaderVision"}}</a>
<a class="item" data-tab="light"><i class="fas fa-lightbulb"></i> {{localize "TOKEN.HeaderLight"}}</a>
<a class="item" data-tab="resources"><i class="fas fa-heart"></i> {{localize "TOKEN.HeaderResources"}}</a>
</nav>
<!-- Token Character -->
<div class="tab" data-group="main" data-tab="character">
<div class="form-group">
<label>{{localize "TOKEN.CharNameplate"}}</label>
<input type="text" name="name" placeholder="{{ localize 'Name' }}" value="{{object.name}}"/>
</div>
<div class="form-group">
<label>{{localize "TOKEN.CharShowNameplate"}}</label>
<select name="displayName" data-dtype="Number">
{{selectOptions displayModes selected=object.displayName }}
</select>
</div>
{{#unless isPrototype}}
<div class="form-group">
<label>{{localize "TOKEN.CharActor"}}</label>
<select class="actor-template" name="actorId">
{{selectOptions actors selected=object.actorId valueAttr="_id" labelAttr="name" blank=(localize 'None')}}
</select>
</div>
{{/unless}}
<div class="form-group">
<label>{{localize "TOKEN.CharLink"}}</label>
<input type="checkbox" name="actorLink" {{checked object.actorLink}}/>
</div>
{{#if isPrototype}}
<hr>
<div class="form-group">
<label>{{localize "TOKEN.AppendNumber"}}</label>
<input type="checkbox" name="appendNumber" {{checked object.appendNumber}}/>
<p class="notes">{{localize "TOKEN.AppendNumberHint" name=object.name}}</p>
</div>
<div class="form-group">
<label>{{localize "TOKEN.PrependAdjective"}}</label>
<input type="checkbox" name="prependAdjective" {{checked object.prependAdjective}}/>
<p class="notes">{{localize "TOKEN.PrependAdjectiveHint" name=object.name}}</p>
</div>
<hr>
{{/if}}
{{#unless isPrototype}}
<div class="form-group slim">
<label>{{localize "TOKEN.Coordinates"}} <span class="units">({{localize "Pixels"}})</span></label>
<div class="form-fields">
<label>X</label>
{{numberInput object.x name="x" step=1 disabled=(not isGM) placeholder=(localize "Pixels")}}
<label>Y</label>
{{numberInput object.y name="y" step=1 disabled=(not isGM) placeholder=(localize "Pixels")}}
</div>
</div>
<div class="form-group slim">
<label>{{localize "Elevation"}} <span class="units">({{gridUnits}})</span></label>
<div class="form-fields">
{{numberInput object.elevation name="elevation" placeholder=gridUnits}}
</div>
</div>
<div class="form-group slim">
<label>{{ localize "Sort" }}</label>
<div class="form-fields">
{{numberInput object.sort name="sort" step=1}}
</div>
</div>
{{/unless}}
<div class="form-group slim">
<label>{{localize "Rotation"}} <span class="units">({{localize "Degrees"}})</span></label>
<div class="form-fields">
<label>{{localize "TOKEN.Lock"}}</label>
<input type="checkbox" name="lockRotation" {{checked object.lockRotation}}/>
<label>{{localize "Rotation"}}</label>
{{numberInput object.rotation name="rotation" placeholder=(localize "Degrees")}}
</div>
</div>
<div class="form-group slim">
<label>{{localize "TOKEN.OcclusionRadius"}} <span class="units">({{gridUnits}})</span></label>
<div class="form-fields">
{{numberInput object.occludable.radius name="occludable.radius" placeholder=gridUnits min="0" step="any"}}
</div>
<p class="notes">{{localize "TOKEN.OcclusionRadiusHint" name=object.name}}</p>
</div>
<div class="form-group">
<label>{{localize "TOKEN.Disposition"}}</label>
<select name="disposition" data-dtype="Number">
{{selectOptions dispositions selected=object.disposition }}
</select>
</div>
</div>
<!-- Token Image -->
<div class="tab" data-group="main" data-tab="appearance">
<div class="form-group">
<label>{{localize "TOKEN.ImagePath"}}</label>
<div class="form-fields">
<file-picker name="texture.src" type="imagevideo" value="{{object.texture.src}}"></file-picker>
</div>
</div>
{{#if randomImgEnabled}}
<div class="form-group">
<label>{{localize "TOKEN.RandomImg"}}</label>
<input type="checkbox" name="randomImg" {{checked object.randomImg}}/>
</div>
{{else if hasAlternates}}
<div class="form-group">
<label>{{localize "TOKEN.ImageAlts"}}</label>
<select class="alternate-images" name="alternateImages">
{{selectOptions alternateImages selected=object.texture.src blank=""}}
</select>
</div>
{{/if}}
<div class="form-group slim">
<label>{{localize "TOKEN.Dimensions"}} <span class="units">({{localize "GridSpaces"}})</span></label>
<div class="form-fields">
<label>{{localize "Width"}}</label>
{{numberInput object.width name="width" placeholder=(localize "spaces")}}
<label>{{localize "Height"}}</label>
{{numberInput object.height name="height" placeholder=(localize "spaces")}}
</div>
<p class="hint">{{localize "TOKEN.DimensionsHint"}}</p>
</div>
{{#if showHexagonalShapes}}
<div class="form-group slim">
<label>{{localize "TOKEN.HexagonalShape"}}</label>
<div class="form-fields">
<select name="hexagonalShape">
{{selectOptions hexagonalShapes selected=object.hexagonalShape}}
</select>
</div>
<p class="hint">{{localize "TOKEN.HexagonalShapeHint"}}</p>
</div>
{{/if}}
<div class="form-group slim">
<label>{{localize "TOKEN.ImageFitMode"}}</label>
<div class="form-fields">
<select name="texture.fit">
{{selectOptions textureFitModes selected=object.texture.fit}}
</select>
</div>
<p class="hint">{{localize "TOKEN.ImageFitModeHint"}}</p>
</div>
<div class="form-group slim">
<label>{{localize "Anchor"}}</label>
<div class="form-fields">
<label>X</label>
{{numberInput object.texture.anchorX name="texture.anchorX" placeholder="0.5"}}
<label>Y</label>
{{numberInput object.texture.anchorY name="texture.anchorY" placeholder="0.5"}}
</div>
<p class="hint">{{localize "TOKEN.AnchorHint"}}</p>
</div>
<div class="form-group">
<label>{{localize "Scale"}} <span class="units">({{localize "Ratio"}})</span></label>
<div class="form-fields">
{{ rangePicker name="scale" value=scale min="0.2" max="3.0" step="0.1" }}
</div>
</div>
<div class="form-group slim">
<label>{{localize "TOKEN.Mirror"}}</label>
<div class="form-fields">
<label>{{localize "TOKEN.MirrorX"}}</label>
<input type="checkbox" name="mirrorX" {{checked mirrorX}}/>
<label>{{localize "TOKEN.MirrorY"}}</label>
<input type="checkbox" name="mirrorY" {{checked mirrorY}}/>
</div>
</div>
<div class="form-group">
<label>{{ localize "TOKEN.TintColor" }}</label>
<div class="form-fields">
<color-picker name="texture.tint" value="{{object.texture.tint}}" placeholder="#ffffff"></color-picker>
</div>
</div>
<div class="form-group">
<label>{{localize "TOKEN.Opacity"}}</label>
<div class="form-fields">
{{ rangePicker name="alpha" value=object.alpha min="0" max="1" step="0.05" }}
</div>
</div>
<fieldset>
<legend>{{localize "TOKEN.RING.SHEET.legend"}}</legend>
{{formField fields.ring.fields.enabled value=object.ring.enabled}}
{{formField fields.ring.fields.colors.fields.ring value=object.ring.colors.ring}}
{{formField fields.ring.fields.colors.fields.background value=object.ring.colors.background}}
{{formField fields.ring.fields.subject.fields.texture value=object.ring.subject.texture}}
{{formField fields.ring.fields.subject.fields.scale value=object.ring.subject.scale max=3 min=0.8 step=0.02}}
{{formField fields.ring.fields.effects value=object.ring.effects input=ringEffectsInput stacked=true}}
</fieldset>
</div>
<!-- Vision -->
{{> "templates/scene/parts/token-vision.html"}}
<!-- Light -->
{{> "templates/scene/parts/token-lighting.hbs"}}
<!-- Resource Bars -->
{{> "templates/scene/parts/token-resources.html"}}
<!-- Token Sheet Footer -->
<footer class="sheet-footer flexrow">
{{#if isPrototype}}
<button type="button" class="assign-token"><i class="fas fa-user"></i> {{localize "TOKEN.Assign"}}</button>
{{/if}}
<button type="submit">
<i class="far fa-save"></i> {{localize "TOKEN.Update"}}
</button>
</footer>
</form>

View File

@@ -0,0 +1,102 @@
<form autocomplete="off">
<p class="notes">{{localize "WALLS.Instructions"}}</p>
<div class="form-group">
<label>{{localize "WALLS.Coordinates"}}</label>
<div class="form-fields">
<input type="text" value="({{p0.x}}, {{p0.y}}) to ({{p1.x}}, {{p1.y}})" disabled/>
</div>
</div>
<div class="form-group">
<label>{{localize "WALLS.Movement"}}</label>
<div class="form-fields">
<select name="move" data-dtype="Number">
{{selectOptions moveTypes selected=source.move}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "WALLS.Light"}}</label>
<div class="form-fields">
<select name="light" data-dtype="Number">
{{selectOptions senseTypes selected=source.light }}
</select>
<input class="proximity" type="number" name="threshold.light" placeholder="{{gridUnits}}" min="0"
value="{{source.threshold.light}}" step="any"/>
</div>
</div>
<div class="form-group">
<label>{{localize "WALLS.Sight"}}</label>
<div class="form-fields">
<select name="sight" data-dtype="Number">
{{selectOptions senseTypes selected=source.sight }}
</select>
<input class="proximity" type="number" name="threshold.sight" placeholder="{{gridUnits}}" min="0"
value="{{source.threshold.sight}}" step="any"/>
</div>
</div>
<div class="form-group">
<label>{{localize "WALLS.Sound"}}</label>
<div class="form-fields">
<select name="sound" data-dtype="Number">
{{selectOptions senseTypes selected=source.sound }}
</select>
<input class="proximity" type="number" name="threshold.sound" placeholder="{{gridUnits}}" min="0"
value="{{source.threshold.sound}}" step="any"/>
</div>
</div>
<div class="form-group">
<label>{{localize "WALLS.Direction"}}</label>
<div class="form-fields">
<select name="dir" data-dtype="Number">
{{selectOptions dirTypes selected=source.dir}}
</select>
</div>
</div>
<div class="form-group">
<label>{{localize "WALLS.ThresholdAttenuation"}} <i class="tip fas fa-info-circle" data-tooltip="WALLS.ThresholdAttenuationHint"></i></label>
<input type="checkbox" name="threshold.attenuation" {{checked source.threshold.attenuation}}/>
</div>
<div class="form-group">
<label>{{localize "WALLS.Door"}}</label>
<div class="form-fields">
<select name="door" data-dtype="Number">
{{selectOptions doorTypes selected=source.door}}
</select>
</div>
</div>
<fieldset class="door-options">
<legend>{{ localize "WALLS.DoorOptions" }}</legend>
<div class="form-group">
<label>{{ localize "WALLS.DoorState" }}</label>
<div class="form-fields">
<select name="ds" data-dtype="Number">
{{selectOptions doorStates selected=source.ds}}
</select>
</div>
</div>
<div class="form-group">
<label>{{ localize "WALLS.DoorSoundLabel" }}</label>
<div class="form-fields">
<select name="doorSound">
{{selectOptions doorSounds selected=source.doorSound labelAttr="label" blank="" localize=true}}
</select>
<i data-tooltip="{{localize 'Preview'}}" class="fas fa-play audio-preview"></i>
</div>
</div>
</fieldset>
<footer class="form-footer">
<button type="submit">
<i class="fa-solid fa-save"></i> {{localize "WALLS.Submit"}}
</button>
</footer>
</form>