[Feature] Homebrew Domains (#639)

* Split into tabs

* Finished homebrew settings

* .

* Improved domainremoval cleanup
This commit is contained in:
WBHarry 2025-08-06 13:58:17 +02:00 committed by GitHub
parent d186c62ee5
commit 02958f9574
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 560 additions and 49 deletions

View file

@ -0,0 +1,45 @@
<section
class="tab {{tabs.domains.cssClass}} {{tabs.domains.id}}"
data-tab="{{tabs.domains.id}}"
data-group="{{tabs.domains.group}}"
>
<div class="title-wrapper">
<side-line-div class="invert top-lines"></side-line-div>
<h2>{{localize "DAGGERHEART.SETTINGS.Homebrew.domains.domainsTitle"}}</h2>
<side-line-div class="top-lines"></side-line-div>
</div>
<div class="domains-container">
{{#each configDomains as | domain |}}
<div class="domain-container">
<div class="domain-label">{{localize domain.label}}</div>
<img src="{{domain.src}}" class="domain-icon" />
</div>
{{/each}}
</div>
<div class="title-wrapper">
<side-line-div class="invert"></side-line-div>
<h2>
{{localize "DAGGERHEART.SETTINGS.Homebrew.domains.homebrewDomains"}}
<button class="add-button" data-action="addDomain"><i class="fa-solid fa-plus"></i></button>
</h2>
<side-line-div></side-line-div>
</div>
<div class="domains-container">
{{#each homebrewDomains as | domain id |}}
<button class="domain-container selectable {{#unless (eq @root.selectedDomain.id id)}}inactive{{/unless}}" id="{{id}}" data-action="toggleSelectedDomain">
<div class="domain-label">{{localize domain.label}}</div>
<img src="{{domain.src}}" class="domain-icon" style="--domain-icon: url({{domain.src}})" />
</button>
{{/each}}
</div>
<div class="domain-edit-container {{#if @root.selectedDomain}}extended{{/if}}">
<fieldset>
<legend>{{localize "DAGGERHEART.SETTINGS.Homebrew.domains.editDomain"}} <button class="add-button" data-action="deleteDomain"><i class="fa-solid fa-x"></i></button></legend>
<div class="domain-filepicker-row">{{formGroup settingFields.schema.fields.domains.element.fields.src value=selectedDomain.src name=(concat "domains." selectedDomain.id ".src") localize=true}}</div>
<textarea name="{{concat "domains." selectedDomain.id ".description"}}">{{selectedDomain.description}}</textarea>
</fieldset>
</div>
</section>

View file

@ -0,0 +1,51 @@
<section
class="tab {{tabs.downtime.cssClass}} {{tabs.downtime.id}}"
data-tab="{{tabs.downtime.id}}"
data-group="{{tabs.downtime.group}}"
>
<fieldset class="two-columns even">
<legend>{{localize "DAGGERHEART.SETTINGS.Homebrew.downtimeMoves"}}</legend>
<fieldset class="start-align">
<legend>
{{localize "DAGGERHEART.APPLICATIONS.Downtime.longRest.title"}}
<a data-action="addItem" data-type="longRest"><i class="fa-solid fa-plus"></i></a>
<a data-action="resetMoves" data-type="longRest"><i class="fa-solid fa-arrow-rotate-left"></i></a>
</legend>
<div class="form-group setting-group-field">
<label>{{localize "DAGGERHEART.SETTINGS.Homebrew.nrChoices"}}</label>
<div class="form-fields">
<input type="text" name="restMoves.longRest.nrChoices" value="{{settingFields._source.restMoves.longRest.nrChoices}}" />
</div>
</div>
<div class="settings-items">
{{#each settingFields._source.restMoves.longRest.moves as |move id|}}
{{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" this type="longRest" id=id }}
{{/each}}
</div>
</fieldset>
<fieldset class="start-align">
<legend>
{{localize "DAGGERHEART.APPLICATIONS.Downtime.shortRest.title"}}
<a data-action="addItem" data-type="shortRest"><i class="fa-solid fa-plus"></i></a>
<a data-action="resetMoves" data-type="shortRest"><i class="fa-solid fa-arrow-rotate-left"></i></a>
</legend>
<div class="form-group setting-group-field">
<label>{{localize "DAGGERHEART.SETTINGS.Homebrew.nrChoices"}}</label>
<div class="form-fields">
<input type="text" name="restMoves.shortRest.nrChoices" value="{{settingFields._source.restMoves.shortRest.nrChoices}}" />
</div>
</div>
<div class="settings-items">
{{#each settingFields._source.restMoves.shortRest.moves as |move id|}}
{{> "systems/daggerheart/templates/settings/components/settings-item-line.hbs" this type="shortRest" id=id }}
{{/each}}
</div>
</fieldset>
</fieldset>
</section>

View file

@ -0,0 +1,10 @@
<footer class="form-footer">
<button type="button" data-action="reset">
<i class="fa-solid fa-arrow-rotate-left"></i>
<span>{{localize "Reset"}}</span>
</button>
<button type="button" data-action="save" >
<i class="fa-solid fa-floppy-disk"></i>
<span>{{localize "Save Changes"}}</span>
</button>
</footer>

View file

@ -0,0 +1,38 @@
<section
class="tab {{tabs.settings.cssClass}} {{tabs.settings.id}}"
data-tab="{{tabs.settings.id}}"
data-group="{{tabs.settings.group}}"
>
<div class="scrollable">
<header class="dialog-header">
<h1>{{localize 'DAGGERHEART.SETTINGS.Menu.homebrew.name'}}</h1>
</header>
{{formGroup settingFields.schema.fields.maxFear value=settingFields._source.maxFear localize=true}}
{{formGroup settingFields.schema.fields.maxDomains value=settingFields._source.maxDomains localize=true}}
{{formGroup settingFields.schema.fields.maxLoadout value=settingFields._source.maxLoadout localize=true}}
<div class="settings-hint"><label>{{localize "DAGGERHEART.SETTINGS.Homebrew.FIELDS.maxLoadout.hint"}}</label></div>
<h4>{{localize "DAGGERHEART.SETTINGS.Homebrew.FIELDS.traitArray.label"}}</h4>
<div class="trait-array-container">
{{#each settingFields._source.traitArray as |trait index|}}
<div class="trait-array-item">
<label>{{localize "DAGGERHEART.GENERAL.Modifier.single"}} {{add index 1}}</label>
<input type="text" data-dtype="Number" name="{{concat "traitArray." index}}" value="{{this}}" />
</div>
{{/each}}
</div>
<fieldset>
<legend>
{{localize "DAGGERHEART.SETTINGS.Homebrew.currency.title"}}
</legend>
{{formGroup settingFields.schema.fields.currency.fields.enabled value=settingFields._source.currency.enabled localize=true}}
{{formGroup settingFields.schema.fields.currency.fields.title value=settingFields._source.currency.title localize=true}}
{{formGroup settingFields.schema.fields.currency.fields.coins value=settingFields._source.currency.coins localize=true}}
{{formGroup settingFields.schema.fields.currency.fields.handfulls value=settingFields._source.currency.handfulls localize=true}}
{{formGroup settingFields.schema.fields.currency.fields.bags value=settingFields._source.currency.bags localize=true}}
{{formGroup settingFields.schema.fields.currency.fields.chests value=settingFields._source.currency.chests localize=true}}
</fieldset>
</div>
</section>