160 lines
6.4 KiB
HTML
160 lines
6.4 KiB
HTML
<form class="qbm-app">
|
|
<section class="qbm-section">
|
|
<h2>New Scene</h2>
|
|
<div class="qbm-grid qbm-grid-2">
|
|
<label>
|
|
<span>Scene Name</span>
|
|
<input type="text" name="sceneName" value="{{defaults.sceneName}}" />
|
|
</label>
|
|
<label>
|
|
<span>Scene Folder</span>
|
|
<input type="text" name="sceneFolder" value="{{defaults.sceneFolder}}" />
|
|
</label>
|
|
<label>
|
|
<span>Grid Layout</span>
|
|
<select name="gridPreset">
|
|
{{#each gridOptions as |option|}}
|
|
<option value="{{option.value}}" {{#if option.selected}}selected{{/if}}>{{option.label}}</option>
|
|
{{/each}}
|
|
</select>
|
|
</label>
|
|
<label>
|
|
<span>Terrain</span>
|
|
<select name="terrain">
|
|
{{#each terrainOptions as |option|}}
|
|
<option value="{{option.value}}" {{#if option.selected}}selected{{/if}}>{{option.label}}</option>
|
|
{{/each}}
|
|
</select>
|
|
</label>
|
|
<label>
|
|
<span>Generator</span>
|
|
<select name="generatorType">
|
|
{{#each generatorOptions as |option|}}
|
|
<option value="{{option.value}}" {{#if option.selected}}selected{{/if}}>{{option.label}}</option>
|
|
{{/each}}
|
|
</select>
|
|
</label>
|
|
<label>
|
|
<span>Columns</span>
|
|
<input type="number" name="columns" min="4" max="80" value="{{defaults.columns}}" />
|
|
</label>
|
|
<label>
|
|
<span>Rows</span>
|
|
<input type="number" name="rows" min="4" max="80" value="{{defaults.rows}}" />
|
|
</label>
|
|
<label>
|
|
<span>Grid Size (px)</span>
|
|
<input type="number" name="gridSize" min="40" max="256" step="10" value="{{defaults.gridSize}}" />
|
|
</label>
|
|
<label>
|
|
<span>Distance per Cell</span>
|
|
<input type="number" name="distance" min="1" max="100" step="1" value="{{defaults.distance}}" />
|
|
</label>
|
|
<label>
|
|
<span>Units</span>
|
|
<input type="text" name="units" value="{{defaults.units}}" />
|
|
</label>
|
|
<label>
|
|
<span>Coordinate Labels</span>
|
|
<select name="coordinates">
|
|
{{#each coordinateOptions as |option|}}
|
|
<option value="{{option.value}}" {{#if option.selected}}selected{{/if}}>{{option.label}}</option>
|
|
{{/each}}
|
|
</select>
|
|
</label>
|
|
<label>
|
|
<span>Room Count</span>
|
|
<input type="number" name="generatorRooms" min="3" max="20" value="{{defaults.generatorRooms}}" />
|
|
</label>
|
|
</div>
|
|
<div class="qbm-checks">
|
|
<label><input type="checkbox" name="activateScene" {{#if defaults.activateScene}}checked{{/if}} /> Activate and view scene</label>
|
|
<label><input type="checkbox" name="applyOutlineOnCreate" {{#if defaults.applyOutlineOnCreate}}checked{{/if}} /> Generate a layout when creating the scene</label>
|
|
<label><input type="checkbox" name="addBorderWalls" {{#if defaults.addBorderWalls}}checked{{/if}} /> Add border walls</label>
|
|
<label><input type="checkbox" name="enableTokenVision" {{#if defaults.enableTokenVision}}checked{{/if}} /> Enable token vision</label>
|
|
</div>
|
|
<div class="qbm-actions">
|
|
<button type="button" class="qbm-create-scene"><i class="fas fa-map"></i> Create Generated Scene</button>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="qbm-section">
|
|
<h2>Layout Generator</h2>
|
|
<div class="qbm-grid qbm-grid-2">
|
|
<label>
|
|
<span>Target Scene</span>
|
|
<select name="sceneId">
|
|
{{#each sceneOptions as |option|}}
|
|
<option value="{{option.value}}" {{#if option.selected}}selected{{/if}}>{{option.label}}</option>
|
|
{{/each}}
|
|
</select>
|
|
</label>
|
|
<label>
|
|
<span>Start X (cells)</span>
|
|
<input type="number" name="startX" min="0" max="200" value="{{defaults.startX}}" />
|
|
</label>
|
|
<label>
|
|
<span>Start Y (cells)</span>
|
|
<input type="number" name="startY" min="0" max="200" value="{{defaults.startY}}" />
|
|
</label>
|
|
<label>
|
|
<span>Width (cells)</span>
|
|
<input type="number" name="stampWidth" min="1" max="200" value="{{defaults.stampWidth}}" />
|
|
</label>
|
|
<label>
|
|
<span>Height (cells)</span>
|
|
<input type="number" name="stampHeight" min="1" max="200" value="{{defaults.stampHeight}}" />
|
|
</label>
|
|
<label>
|
|
<span>Quick Stamp</span>
|
|
<select name="stampType">
|
|
{{#each stampOptions as |option|}}
|
|
<option value="{{option.value}}" {{#if option.selected}}selected{{/if}}>{{option.label}}</option>
|
|
{{/each}}
|
|
</select>
|
|
</label>
|
|
</div>
|
|
<div class="qbm-actions">
|
|
<button type="button" class="qbm-generate-layout"><i class="fas fa-wand-magic-sparkles"></i> Generate On Target Scene</button>
|
|
<button type="button" class="qbm-add-stamp"><i class="fas fa-draw-polygon"></i> Add Wall Stamp</button>
|
|
<button type="button" class="qbm-add-perimeter"><i class="fas fa-border-all"></i> Add Scene Border</button>
|
|
<button type="button" class="qbm-clear-generated"><i class="fas fa-eraser"></i> Remove Generated Geometry</button>
|
|
</div>
|
|
<p class="qbm-note">Use this for random buildings with rooms, doors, and windows, or dungeons with rooms, corridors, and door openings. Quick Stamps remain as simple manual tools.</p>
|
|
</section>
|
|
|
|
<section class="qbm-section">
|
|
<h2>Legacy Manual Shapes</h2>
|
|
<div class="qbm-grid qbm-grid-2">
|
|
<label>
|
|
<span>Outline Preset</span>
|
|
<select name="outlineType">
|
|
{{#each outlineOptions as |option|}}
|
|
<option value="{{option.value}}" {{#if option.selected}}selected{{/if}}>{{option.label}}</option>
|
|
{{/each}}
|
|
</select>
|
|
</label>
|
|
<div class="qbm-note-block">
|
|
<strong>Quick Use</strong>
|
|
<span>These add a visible outline drawing and matching walls together, so buildings and dungeon shells are immediately playable.</span>
|
|
</div>
|
|
</div>
|
|
<div class="qbm-actions">
|
|
<button type="button" class="qbm-add-outline"><i class="fas fa-city"></i> Add Outline + Walls</button>
|
|
</div>
|
|
<p class="qbm-note">These older shell presets stay here as a fallback. The new generator above is the recommended path for buildings and dungeons.</p>
|
|
</section>
|
|
|
|
<section class="qbm-section">
|
|
<h2>Presets</h2>
|
|
<div class="qbm-preset-list">
|
|
{{#each presetNotes as |note|}}
|
|
<div class="qbm-preset-card">
|
|
<strong>{{note.title}}</strong>
|
|
<span>{{note.copy}}</span>
|
|
</div>
|
|
{{/each}}
|
|
</div>
|
|
</section>
|
|
</form>
|