mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 09:41:24 +01:00
Added randomly generated marker placement (#966)
* Add option to generate and place marker of type * remove unecessary console.log * versioning * Update versioning.js * Update index.html * removed redundant functions and changed addMarker functionality * changed marker type selection behavior * fixed button toggling * changed type selection to button + dropdown menu * versioning
This commit is contained in:
parent
bd01090c3c
commit
e542574324
5 changed files with 83 additions and 6 deletions
|
|
@ -14,6 +14,8 @@ function overviewMarkers() {
|
|||
const markersGenerationConfig = document.getElementById("markersGenerationConfig");
|
||||
const markersRemoveAll = document.getElementById("markersRemoveAll");
|
||||
const markersExport = document.getElementById("markersExport");
|
||||
const markerTypeInput = document.getElementById("addedMarkerType");
|
||||
const markerTypeSelector = document.getElementById("markerTypeSelector");
|
||||
|
||||
addLines();
|
||||
|
||||
|
|
@ -33,9 +35,24 @@ function overviewMarkers() {
|
|||
listen(markersAddFromOverview, "click", toggleAddMarker),
|
||||
listen(markersGenerationConfig, "click", configMarkersGeneration),
|
||||
listen(markersRemoveAll, "click", triggerRemoveAll),
|
||||
listen(markersExport, "click", exportMarkers)
|
||||
listen(markersExport, "click", exportMarkers),
|
||||
listen(markerTypeSelector, "click", toggleMarkerTypeMenu),
|
||||
//listen(markerTypeInput, "change", changeMarkerType),
|
||||
];
|
||||
|
||||
[{type: "empty", icon: "❓"}, ...Markers.getConfig()].forEach(markerConfig => {
|
||||
const option = document.createElement("button");
|
||||
option.textContent = `${markerConfig.icon} ${markerConfig.type}`;
|
||||
markerTypeSelectMenu.appendChild(option);
|
||||
console.log(option.textContent);
|
||||
listeners.push(listen(option, "click", () => {
|
||||
markerTypeSelector.textContent = markerConfig.icon;
|
||||
markerTypeInput.value = markerConfig.type;
|
||||
changeMarkerType();
|
||||
toggleMarkerTypeMenu();
|
||||
}));
|
||||
});
|
||||
|
||||
function handleLineClick(ev) {
|
||||
const el = ev.target;
|
||||
const i = +el.parentNode.dataset.i;
|
||||
|
|
@ -139,11 +156,22 @@ function overviewMarkers() {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
function toggleMarkerTypeMenu() {
|
||||
document.getElementById("markerTypeSelectMenu").classList.toggle("visible");
|
||||
}
|
||||
|
||||
function toggleAddMarker() {
|
||||
markersAddFromOverview.classList.toggle("pressed");
|
||||
addMarker.click();
|
||||
}
|
||||
|
||||
function changeMarkerType() {
|
||||
if (!markersAddFromOverview.classList.contains("pressed")) {
|
||||
toggleAddMarker();
|
||||
}
|
||||
}
|
||||
|
||||
function removeMarker(i) {
|
||||
notes = notes.filter(note => note.id !== `marker${i}`);
|
||||
pack.markers = pack.markers.filter(marker => marker.i !== i);
|
||||
|
|
|
|||
|
|
@ -828,9 +828,17 @@ function addMarkerOnClick() {
|
|||
// Find the currently selected marker to use as a base
|
||||
const isMarkerSelected = markers.length && elSelected?.node()?.parentElement?.id === "markers";
|
||||
const selectedMarker = isMarkerSelected ? markers.find(marker => marker.i === +elSelected.attr("id").slice(6)) : null;
|
||||
const baseMarker = selectedMarker || {icon: "❓"};
|
||||
|
||||
const selectedType = document.getElementById("addedMarkerType").value;
|
||||
const selectedConfig = Markers.getConfig().find(({type}) => type === selectedType);
|
||||
|
||||
const baseMarker = selectedMarker || selectedConfig || {icon: "❓"};
|
||||
const marker = Markers.add({...baseMarker, x, y, cell});
|
||||
|
||||
if (selectedConfig && selectedConfig.add) {
|
||||
selectedConfig.add("marker"+marker.i, cell);
|
||||
}
|
||||
|
||||
const markersElement = document.getElementById("markers");
|
||||
const rescale = +markersElement.getAttribute("rescale");
|
||||
markersElement.insertAdjacentHTML("beforeend", drawMarker(marker, rescale));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue