239 lines
10 KiB
HTML
239 lines
10 KiB
HTML
|
|
<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>
|