Giter Site home page Giter Site logo

nwesterhausen / overseers-manual-df Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 2.0 4.79 MB

App to provide a searchable overview of the installed raws in a Dwarf Fortress installation

License: MIT License

HTML 0.17% Rust 17.34% TypeScript 81.42% JavaScript 0.72% CSS 0.06% PowerShell 0.14% Shell 0.14%
dwarf-fortress tauri-app solid

overseers-manual-df's Introduction

overseers-manual-df's People

Contributors

dependabot[bot] avatar nwesterhausen avatar renovate[bot] avatar semantic-release-bot avatar step-security-bot avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

overseers-manual-df's Issues

fill basedon during raw parsing

complete some raws by processing their 'basedOn' key if present.

if it has a based on value, we should look at what keys it has that are empty/undefined and then grab them from the basedOn creature.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository. View logs.

  • WARN: Package lookup failures

Warning

Renovate failed to look up the following dependencies: Could not determine new digest for update (github-tags package pnpm/action-setup), Could not determine new digest for update (github-tags package mozilla-actions/sccache-action).

Files affected: .github/workflows/semantic-release.yaml, .github/workflows/test-on-pr.yaml


Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

cargo
src-tauri/Cargo.toml
  • chrono 0.4
  • dotenvy_macro 0.15.7
  • itertools 0.12.1
  • log 0.4.21
  • serde_json 1.0
  • typetag 0.2
  • tauri 2.0.0-beta.14
  • serde 1.0
  • ts-rs 7.1
  • tauri-build 2.0.0-beta.11
  • built 0.7
github-actions
.github/workflows/dependency-review.yml
  • step-security/harden-runner v2.7.0@63c24ba6bd7ba022e95695ff85de572c04a18142
  • actions/checkout v4.1.1@b4ffde65f46336ab88eb53be808477a3936bae11
  • actions/dependency-review-action v4.2.5@5bbc3ba658137598168acb2ab73b21c432dd411b
.github/workflows/scorecard.yml
  • step-security/harden-runner v2.7.0@63c24ba6bd7ba022e95695ff85de572c04a18142
  • actions/checkout v4.1.1@b4ffde65f46336ab88eb53be808477a3936bae11
  • ossf/scorecard-action v2.3.1@0864cf19026789058feabb7e87baa5f140aac736
  • actions/upload-artifact v4.3.1@5d5d22a31266ced268874388b861e4b58bb5c2f3
  • github/codeql-action v3.24.10@4355270be187e1b672a7a1c7c7bae5afdc1ab94a
.github/workflows/semantic-release.yaml
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • pnpm/action-setup v3@a3252b78c470c02df07e9d59298aecedc3ccdd6d
  • actions/setup-node v4@60edb5dd545a775178f52524783378180af0d1f8
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • pnpm/action-setup v3@a3252b78c470c02df07e9d59298aecedc3ccdd6d
  • actions/setup-node v4@60edb5dd545a775178f52524783378180af0d1f8
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • pnpm/action-setup v3@a3252b78c470c02df07e9d59298aecedc3ccdd6d
  • actions/setup-node v4@60edb5dd545a775178f52524783378180af0d1f8
  • dtolnay/rust-toolchain bb45937a053e097f8591208d8e74c90db1873d07
  • mozilla-actions/sccache-action 0.0.4@2e7f9ec7921547d4b46598398ca573513895d0bd
  • tauri-apps/tauri-action 32165c22c317182abb119ad267da7eeb375cb8aa
.github/workflows/test-on-pr.yaml
  • step-security/harden-runner v2.7.0@63c24ba6bd7ba022e95695ff85de572c04a18142
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • pnpm/action-setup v3@a3252b78c470c02df07e9d59298aecedc3ccdd6d
  • actions/setup-node v4@60edb5dd545a775178f52524783378180af0d1f8
  • mozilla-actions/sccache-action 0.0.4@2e7f9ec7921547d4b46598398ca573513895d0bd
  • dtolnay/rust-toolchain bb45937a053e097f8591208d8e74c90db1873d07
  • step-security/harden-runner v2.7.0@63c24ba6bd7ba022e95695ff85de572c04a18142
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • pnpm/action-setup v3@a3252b78c470c02df07e9d59298aecedc3ccdd6d
  • actions/setup-node v4@60edb5dd545a775178f52524783378180af0d1f8
  • mozilla-actions/sccache-action 0.0.4@2e7f9ec7921547d4b46598398ca573513895d0bd
  • dtolnay/rust-toolchain bb45937a053e097f8591208d8e74c90db1873d07
npm
package.json
  • @aptabase/tauri ^0.4.1
  • @solidjs/router ^0.13.0
  • @tauri-apps/api 2.0.0-beta.7
  • solid-js ^1.8.7
  • @biomejs/biome 1.6.4
  • @kobalte/core 0.12.6
  • @kobalte/tailwindcss 0.9.0
  • @semantic-release/changelog 6.0.3
  • @semantic-release/commit-analyzer 12.0.0
  • @semantic-release/git 10.0.1
  • @semantic-release/npm 12.0.0
  • @solid-primitives/context 0.2.3
  • @solid-primitives/scheduled 1.4.3
  • @tailwindcss/typography 0.5.12
  • @tauri-apps/cli 2.0.0-beta.12
  • @types/node 20.12.7
  • @typescript-eslint/eslint-plugin 7.6.0
  • @typescript-eslint/parser 7.6.0
  • autoprefixer 10.4.19
  • conventional-changelog-conventionalcommits 7.0.2
  • daisyui 4.10.1
  • eslint 9.0.0
  • eslint-plugin-tsdoc 0.2.17
  • postcss 8.4.38
  • postcss-import 16.1.0
  • postcss-nesting 12.1.1
  • semantic-release 23.0.8
  • semantic-release-export-data 1.0.1
  • solid-icons 1.1.0
  • tailwindcss 3.4.3
  • typescript 5.4.5
  • vite 5.2.8
  • vite-plugin-solid 2.10.2
  • vite ^5.0.0
nvm
.nvmrc
  • node 20.12.1

  • Check this box to trigger a request for Renovate to run again on this repository

improve search string

currently, the calculated search string in the raws includes duplicate names when it should be able to include only unique names.

...
  "searchString": "yeti,yetis,yeti yeti,yetis,yeti  A large ape-like creature with white fur, found in the snowy wilds.  "
...

change installer to be per-user

On windows, create a custom WiX template to make the installer per-user. No real reason it needs to be installed in the ProgramFile directory..

improve caste handling

It has very poor handling of creatures with multiple castes.

For example:

  • Antman:
    • it only includes the general species name;
    • the growth patterns are badly marked, with only the first one given a specific caste, and even then it only says "Queen" rather than "queen ant woman".

Aboveground animal people don't have it much better, because their male name is treated as their "species" name, and their female name is treated as their "general" name. At least regular creatures with different caste names, like peregrine falcons, are treated correctly.

I think this is an important issue to fix because some mods, like ZM5's mods, have creatures with a lot of castes.

Support DF 50.xx

The premium version of dwarf fortress is released as 50.02 (currently). It doesn't store raws with saves. Update overseer's manualf to support that.

Plant Details

It would be useful for the plant details to include:

  • "useful" growths (i.e. food, brewing, building or crafting materials)
  • when grows naturally (what seasons)
  • name of the seed
  • brewing, milling, cooking, eating raw, dying, pressing, oil .. ?
  • biomes,
  • underground depth (if any)
  • what dwarves like (pref strings)

Biome Filter Options

It would be helpful to filter by Biome so I could limit to only see what is in my embark location. Would like to chose the exact biome or the few biomes that make it up.

include graphics raws

Add ability to display stuff based on the raws, using the graphics saved in the raws (no redistribution etc)

Improve Search - Separate a Search All and Browsing

It would be useful to be able to search all parsed raws at once and get only relevant results to display.

Suggest using lyra because should be able to run all inside the existing javascript environment (and we already have a json copy of all raw information). Note that in the future, maybe it will make sense to handle searching via the rust process (or a spawned mellisearch) but that's a bit more involved.

Exiting raw definition:

/**
 * The common similarities amongst all raw definitions.
 */
export type Raw = {
  objectId: string;
  identifier: string;
  name: string;
  parent_raw: string;
  searchString?: string[]; // Has to be changed to 'string' for lyra to search it..
  tags: string[];
  raw_module: string;
  raw_module_version: string;
  raw_type: string;
  raw_module_found_in: string;
  raw_module_display: string;
  raw_module_parents?: string[]; // has to be changed to 'string' for lyra to search it..
  all_tags?: string[];  // has to be changed to 'string' for lyra to search it.. although could be in searchString
};

Considering searchString, its generated differently based on the raw file:

  1. Make a string array of searchable terms
  2. Transform the string array into a long string
  3. Break string on white space into a string array of words/tokens
  4. Remove any invalid strings remaining (empty)
  5. Sort alphabetically

Creatures we add the following info:

  • name
  • 'eggs' & size of eggs if is egg layer
  • description text
  • 'flier' if flier
  • 'playable' if LOCAL_POPS_CONTROLLABLE
  • 'civilized' if LOCAL_POPS_CONTROLLABLE
  • 'gnawer' if gnawer
  • first encountered pet value if exists + 'pet value'
  • first encountered difficulty if exists + 'difficulty'
  • 'intelligent' 'learns' 'speaks' if intelligence tag on CASTE:ALL
  • all creature tags (this makes 'flier' and 'gnawer' redundant)
  • all caste tags
  • preference strings
  • parent raw module

Plants we add the following info:

  • name
  • material names
  • material tags
  • plant tags
  • material colors
  • preference strings
  • raw_module parent

For lyra search, suggest we do this:

  • store all parsed raws in the lyra database as themselves (since all extend the Raw type)
  • let lyra search via the raw type + searchString as a string
  • change the search string generation script to (1) not alphabetize and (2) restrict results via a new Set([ ...searchableTerms ]) type of deal; then turn into a long string
  • change the RawsProvider to utilize lyra search to restrict the displayed documents (and this also should enable us to use pagination for results

lyra search docs:

  1. Create a scheme for the database (in our case, use the compatible fields from Raw (must be strings))
  2. Use batch insert to insert the parsed raws data (need to trial & error with batch size to see if event loop locking up is an issue).
  3. Handle providing the search results (as raws) from RawsProvider (currently it holds all raws already so would be easy way to just shift the database into lyra instead, and utilize its search abilities)

scroll down to show entire accordian

When opening an accordion, scroll down (open accordion height or window height, whichever is smaller) so that you don't have to additionally scroll after opening the accordion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.