mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2026-02-04 17:41:23 +01:00
* 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>
74 lines
1.7 KiB
JavaScript
74 lines
1.7 KiB
JavaScript
{
|
|
const style = /* css */ `
|
|
fill-box:not([disabled]) {
|
|
cursor: pointer;
|
|
}
|
|
|
|
fill-box > svg {
|
|
vertical-align: middle;
|
|
pointer-events: none;
|
|
}
|
|
|
|
fill-box > svg > rect {
|
|
stroke: #666666;
|
|
stroke-width: 2;
|
|
}
|
|
`;
|
|
|
|
const styleElement = document.createElement("style");
|
|
styleElement.setAttribute("type", "text/css");
|
|
styleElement.innerHTML = style;
|
|
document.head.appendChild(styleElement);
|
|
}
|
|
|
|
{
|
|
const template = document.createElement("template");
|
|
template.innerHTML = /* html */ `
|
|
<svg>
|
|
<rect x="0" y="0" width="100%" height="100%">
|
|
</svg>
|
|
`;
|
|
|
|
class FillBox extends HTMLElement {
|
|
constructor() {
|
|
super();
|
|
|
|
this.appendChild(template.content.cloneNode(true));
|
|
this.querySelector("rect")?.setAttribute("fill", this.fill);
|
|
this.querySelector("svg")?.setAttribute("width", this.size);
|
|
this.querySelector("svg")?.setAttribute("height", this.size);
|
|
}
|
|
|
|
static showTip() {
|
|
tip(this.tip);
|
|
}
|
|
|
|
connectedCallback() {
|
|
this.addEventListener("mousemove", this.constructor.showTip);
|
|
}
|
|
|
|
disconnectedCallback() {
|
|
this.removeEventListener("mousemove", this.constructor.showTip);
|
|
}
|
|
|
|
get fill() {
|
|
return this.getAttribute("fill") || "#333";
|
|
}
|
|
|
|
set fill(newFill) {
|
|
this.setAttribute("fill", newFill);
|
|
this.querySelector("rect")?.setAttribute("fill", newFill);
|
|
}
|
|
|
|
get size() {
|
|
return this.getAttribute("size") || "1em";
|
|
}
|
|
|
|
get tip() {
|
|
return this.dataset.tip || "Fill style. Click to change";
|
|
}
|
|
}
|
|
|
|
// cannot use Shadow DOM here as need an access to svg hatches
|
|
customElements.define("fill-box", FillBox);
|
|
}
|