* chore: add npm + vite for progressive enhancement
* fix: update Dockerfile to copy only the dist folder contents
* fix: update Dockerfile to use multi-stage build for optimized production image
* fix: correct nginx config file copy command in Dockerfile
* chore: add netlify configuration for build and redirects
* fix: add NODE_VERSION to environment in Netlify configuration
* remove wrong dist folder
* Update package.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* chore: split public and src
* migrating all util files from js to ts
* feat: Implement HeightmapGenerator and Voronoi module
- Added HeightmapGenerator class for generating heightmaps with various tools (Hill, Pit, Range, Trough, Strait, etc.).
- Introduced Voronoi class for creating Voronoi diagrams using Delaunator.
- Updated index.html to include new modules.
- Created index.ts to manage module imports.
- Enhanced arrayUtils and graphUtils with type definitions and improved functionality.
- Added utility functions for generating grids and calculating Voronoi cells.
* chore: add GitHub Actions workflow for deploying to GitHub Pages
* fix: update branch name in GitHub Actions workflow from 'main' to 'master'
* chore: update package.json to specify Node.js engine version and remove unused launch.json
* Initial plan
* Update copilot guidelines to reflect NPM/Vite/TypeScript migration
Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com>
* Update src/modules/heightmap-generator.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/utils/graphUtils.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/modules/heightmap-generator.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: Add TIME and ERROR variables to global scope in HeightmapGenerator
* fix: Update base path in vite.config.ts for Netlify deployment
* fix: Update Node.js version in Dockerfile to 24-alpine
---------
Co-authored-by: Marc Emmanuel <marc.emmanuel@tado.com>
Co-authored-by: Marc Emmanuel <marcwissler@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com>
* removed priority queue in favor of simple array extension as it will be easier to migrate to esm
* patch: bump version
* spacing
* moved references to globalThis
* demonstrate module interop
* added version to priority-queue and moved to utils to follow dom loading pattern
* removed PriorityQueue in favor of FlatQueue
* update index.html
* never mind that force push I don't know how to amend commits right
* missing capitalization
* priority set to 0 on 541
---------
Co-authored-by: RyanGuild <ryan.guild@us-ignite.org>
* Scale bar styling (#1025)
* feat: style scale bar
* feat: style scale bar - style presets
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* Ocean heightmap to v1.96 (#1044)
* feat: allow to render ocean heightmap
* feat: allow to render ocean heightmap - test
* feat: allow to render ocean heightmap - fix issue
* feat: allow to render ocean heightmap - cleanup
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* fix: scale bar size
* fix: remove mask on terrs lavel
* fix: regenerate heigtmap preview to use current graph size
* Add the name of culture and namesbase in the name editor dialog (#1033)
* Add the name of culture and namesbase in the name editor dialog
Added the name of the culture and namesbase in the dialog "name editor".
This tells information on the "click to generate a culture-specific name"
It tells you the culture before changing name.
* cultureName into cultureId + cultureName
And deleted the incomplete code of showing culture name on datatip
* refactor: leave culture name only
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* Added Burgs column to province editor (#1031)
* Added Burgs column to province editor
Added to province editor:
+ Burgs column
+ the number of Burgs, p.burgs.length
+ "icon-dot-circled" to go to overviewBurgs.
+ overviewBurgs Filtered by state id.
+ Fixed some typos.
* fixed code as Azgaar suggested
+ Corrected provincesHeader distance in em.
+ const stateId = pack.provinces[p].state;
- Deleted cell count.
* deleted HTML code for provincesFooter cells
- Deleted Total land cells number HTML from provincesFooter.
* deleting totalCells in the code, maybe i will add provinceCells in the future.
Deleted lines for const totalCells and for (+cells / totalCells) * 100 + "%";
* refactor: cleanup
* refactor: cleanup
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
* fix: burgs overview - add MFCG link back
* feat: add more details to burgs export
* feat: don't show auto-update dialog
* feat: pump version
* fix: #1041
* feat: update style presets
---------
Co-authored-by: Azgaar <azgaar.fmg@yandex.com>
Co-authored-by: Ángel Montero Lamas <angel.montero1@gmail.com>
* preparatory bugfixes
* restructure religion generator for extensibility
* Add culture-like update functions and UI
* Syntax / Typo
* PR Versioning
* Relig Editor UI: hide on brush, limit -> potential
* add / remove Culture creates / removes Folk religion
* Religions UX: stable abbr, Folk non-selectable type & not separately removed
* Folk religions follow cultures through regeneration; extinct religion centers draw, folk centers are immutable and do not
* style
* regenerate bugs fixing
* when cultures regenerate a different number
* ability to lock culture in a easy-defined set
fixes uncaught error in commit dada419 from PR #910
* what is locked folk?
* New Map ignores old locked things
* No auto-update of religion on culture regeneration
* typo
* Bugfixes
* Refactor toward modern style
* Prepare to lock - Further refactor
* Complete locked religions functionality
* Prepare for live updates
* Editors fixing + re-versioning
* Fix merge snafu
* Bugs, toungue-twisting
* indexing bugfix
* Manual Add prefers to create missing Folk
* Locked origin regen; deterministic expansion
* version update; fix add wild folk
---------
Co-authored-by: A C James <james.ander31@gmail.com>
Co-authored-by: Azgaar <maxganiev@yandex.ru>
* Add the ability to lock states, provinces, cultures, and religions (#902)
* Add the basis for locking everything, code and test the culture locking
* Got the religion generator working, but not the tree. There are cycles being generated
* Religions work now, including the tree view
* Got the states and provinces working as well, all good and ready
* Refresh the province editor when regenerating
* Implement the versioning steps
* Fix the state naming and color changing even when locked
* The fix did not work with loaded maps, fix that too
* Fix a few more bugs and address the PR feedback
* Fix the state expanding event when they're locked bug
* Implement some logic to ignore state being locked when regenerating provinces directly.
* refactor(#902): start with states regenertion
* refactor(#902): locked states cells to be assigned on start
* refactor(#902): lock state - keep label
* refactor(#902): lock provinces
* refactor(#902): regenerate states - update provinces
* refactor(#902): regenerate cultures
* refactor(#902): regenerate religions
Co-authored-by: Guillaume St-Pierre <gstpierre01@gmail.com>
Co-authored-by: Azgaar <maxganiev@yandex.com>
* Suggesting Levantine as a new default namebase
Levantine namebase has 203 names of Phoenician, punic, hebrew and aramean origin. Names of places in real live.
the excerpt is: {name: "Levantine", i: 42, min: 4, max: 12, d: "krs-pn", m: 0, b: "namebase"}
This will allow to better represent some cultures.
- Carthaginian culture should have levantine namebase instead of berber.
Or maybe make two carthaginian, one with levantine and one with berber. Another option is to add Numidian culture with berber base.
_ In the namebase there are included some names for carthage. Keret Chadeshet and Kart-Hadasht are names for Carthage.
- This will allow phoenician and punic culture in an antique set.
- This will allow hebrew, and other levantine. (Urushalim is a name for Jerusalem).
There are questions with the number: i: 42, and what happens with old maps that have custom languages added in that spot.
* updated levantine namebase
Deleted the '-'. Reordered repeated letters.
* Added levantine cultures
Added Hebrew culture into: European set and all-world set.
Changed namebase of Carthaginian in Antique set from Berber (17) to Levantine (42) as per the conversation on discord thread FMG suggestions > Punic culture set.
This leaves the antique set with no native speaker of berber. If you want to have a culture that represent north-african people and berber different than carthage, we can add one.
Included Phoenician as a distinct culture with similar culture center formula than carthage "sort: i => n(i) / td(i, 20) / sf(i)" but with td(i, 20) because is the temperature of beirut and gives a difference with carthaginian.
Hebrew is included with " n(i) / td(i, 18) * sf(i) " because hebrew are pastoralists, and to differentiate the culture center from the phoenician that are near sea harbor.