[Feature] Custom Resources (#1714)

* Initial

* .

* Fixed positioning

* .

* Only showing the menu if there are extra resources

* Improved resourceManager clickable

* .

* Changed variable name

* Refactor resources selection and data prep (#1721)

* Move resources select to scrolly text and accept actor object

* Convert isReversed to prepared data and add label

* Removed unused imports

---------

Co-authored-by: WBHarry <williambjrklund@gmail.com>

* Naming

* [Feature] Custom Homebrew Resources (#1718)

* Added resources to the Homebrew Menu

* Fixed translations

* .

* Inverted from isImage to isIcon. Should be more logical for users

* Removed testing resources

* Refactor resource settings to not be a method (#1723)

* Fix editing homebrew resources with a custom ResourcesField

* Fix removing homebrew resources

* Remove vestigial code

* Use custom config for module data instead of including in all (#1724)

* Use custom config for module data instead of including in all

* More simple

* base highest priority

---------

Co-authored-by: Carlos Fernandez <CarlosFdez@users.noreply.github.com>
Co-authored-by: Carlos Fernandez <cfern1990@gmail.com>
This commit is contained in:
WBHarry 2026-03-11 11:10:28 +01:00 committed by GitHub
parent af04fb33d0
commit 552c62adc1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 970 additions and 189 deletions

View file

@ -133,8 +133,19 @@
padding: 0;
margin-bottom: 15px;
.hope-section {
.resource-section {
display: flex;
align-items: center;
gap: 4px;
margin-right: 20px;
.resource-manager {
transition: all 0.1s ease;
&.inverted {
transform: rotate(180deg);
}
}
}
.downtime-section {

View file

@ -27,6 +27,7 @@
@import './settings/settings.less';
@import './settings/homebrew-settings/domains.less';
@import './settings/homebrew-settings/types.less';
@import './settings/homebrew-settings/resources.less';
@import './sidebar/tabs.less';
@import './sidebar/daggerheartMenu.less';

View file

@ -0,0 +1,87 @@
.daggerheart.dh-style.setting.homebrew-settings .resources.tab {
.resource-types-container {
display: flex;
flex-direction: column;
gap: 16px;
overflow: auto;
max-height: 570px;
fieldset legend {
display: flex;
align-items: center;
gap: 4px;
}
.resource-type-container {
width: 100%;
.resources-container {
display: flex;
flex-direction: column;
gap: 4px;
.resource-container {
.resource-icons-container {
display: flex;
justify-content: space-between;
gap: 8px;
width: 100%;
.resource-icon-container {
display: flex;
flex-direction: column;
gap: 4px;
flex: 1;
.resource-icon-title-container {
display: flex;
align-items: center;
justify-content: center;
gap: 4px;
&::before,
&::after {
color: @dark-blue;
content: '';
flex: 1;
height: 2px;
}
&::before {
background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, @golden 100%);
}
&::after {
background: linear-gradient(90deg, @golden 0%, rgba(0, 0, 0, 0) 100%);
}
.resource-icon-title {
font-size: var(--font-size-16);
white-space: nowrap;
display: flex;
align-items: center;
gap: 4px;
color: light-dark(@dark-blue, @golden);
i {
font-size: 14px;
}
}
}
}
}
}
}
}
}
.two-columns {
width: 100%;
}
.form-group.vertical {
> * {
flex: 0 0 100%;
}
}
}

View file

@ -4,3 +4,5 @@
@import './tooltip/domain-cards.less';
@import './autocomplete/autocomplete.less';
@import './tooltip/resource-management.less';

View file

@ -0,0 +1,56 @@
.bordered-tooltip.locked-tooltip .daggerheart.resource-management-container,
#tooltip .daggerheart.resource-management-container {
display: flex;
flex-direction: column;
gap: 16px;
.resource-section {
position: relative;
display: flex;
gap: 10px;
background-color: light-dark(transparent, @dark-blue);
color: light-dark(@dark-blue, @golden);
padding: 5px 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
align-items: center;
width: fit-content;
height: 30px;
h4 {
font-family: var(--dh-font-body, 'Montserrat'), sans-serif;
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
margin: 0;
}
.resource-value {
display: flex;
cursor: pointer;
.hidden {
display: none;
}
img {
width: 14px;
height: 14px;
&.empty {
opacity: 0.4;
}
&.filter {
filter: @golden-filter;
}
&.non-transparent {
border-radius: 50%;
border: 1px solid @golden;
}
}
}
}
}