DC City Redux

Amélioration graphique de la ville de Dreadcast

  1. // ==UserScript==
  2. // @name DC City Redux
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1.7
  5. // @description Amélioration graphique de la ville de Dreadcast
  6. // @author M0lly
  7. // @match https://www.dreadcast.net/Main
  8. // @grant none
  9. // @license A definir
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // URL des fichiers .gif avec les bâtiments personnalisés
  16. const newBuildingGif = 'https://dc-buldings.netlify.app/carte_batiments.gif';
  17. const newRoadGif = 'https://dc-buldings.netlify.app/carte_rues_s1.png';
  18.  
  19. //Fonction updateImages() pour remplacer à la fois les lignes avec la classe .case_map (pour les batiments) et la div avec l'url de la map des rues du S1
  20. const updateImages = () => {
  21. document.querySelectorAll('.case_map').forEach(el => {
  22. el.style.backgroundImage = `url(${newBuildingGif})`;
  23. });
  24. document.querySelectorAll('div[style*="images/carte/carte_rues_s1.png"]').forEach(div => {
  25. div.style.backgroundImage = `url(${newRoadGif})`;
  26. });
  27. };
  28.  
  29. // Initialisaton de l'update des images au lancement du script.
  30. updateImages();
  31. // Observer pour vérifier si au moins une mutation a ajouté des nœuds.
  32. // Si la const 'shouldUpdate = true' alors on relance la fonction updateImages() pour refresh les images. (utile lors des entrées/sorties de batiments.)
  33. const observer = new MutationObserver(mutations => {
  34. const shouldUpdate = mutations.some(mutation => mutation.addedNodes.length > 0);
  35. if (shouldUpdate) updateImages();
  36. });
  37.  
  38. observer.observe(document.body, { childList: true, subtree: true });
  39. })();