[a] initial work on improved modlist

This commit is contained in:
Sangelo 2024-06-11 13:51:21 +02:00
parent dbfb10e3b4
commit 1b2e90e1f3
8 changed files with 265 additions and 1868 deletions

1669
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,140 @@
<script>
import { onMount } from "svelte";
let mods = { mods: [], optional_mods: [] };
let searchQuery = "";
let selectedFile = "modlist-rekindled.json";
let fileList = [];
async function fetchData(file) {
const response = await fetch(`/assets/json/${file}`);
const data = await response.json();
mods = data;
}
onMount(async () => {
const response = await fetch("/assets/json/modlist-items.json");
const data = await response.json();
fileList = data;
await fetchData(selectedFile);
});
function fuzzySearch(query, mods) {
const regex = new RegExp(query, "i");
return mods.filter(
(mod) => regex.test(mod.name) || regex.test(mod.description),
);
}
function handleFileChange(event) {
selectedFile = event.target.value;
fetchData(selectedFile);
}
</script>
<div class="search-container">
<input type="search" placeholder="Search the mod-verse..." bind:value={searchQuery} />
<select bind:value={selectedFile} on:change={handleFileChange}>
{#each fileList as file}
<option value={file.file}>{file.name}</option>
{/each}
</select>
</div>
<hr />
<div class="grid">
{#each Array(Math.ceil(fuzzySearch(searchQuery, mods.mods).length / 3)) as _, index}
{#each fuzzySearch(searchQuery, mods.mods).slice(index * 3, (index + 1) * 3) as mod}
<a
role="button"
class="mod-card contrast"
href={mod.link}
target="_blank"
rel="noopener noreferrer"
>
<img src={mod.logo} alt={mod.name + "'s Icon"} class="mod-card-logo" />
<div class="mod-card-text-ct">
<p class="mod-card-name">{mod.name}</p>
<p class="mod-card-desc">{mod.description}</p>
</div>
</a>
{/each}
{/each}
</div>
<details open>
<!-- svelte-ignore a11y-no-redundant-roles -->
<summary role="button" class="secondary">Optional Mods</summary>
<div class="grid">
{#each Array(Math.ceil(fuzzySearch(searchQuery, mods.optional_mods).length / 3)) as _, index}
{#each fuzzySearch(searchQuery, mods.optional_mods).slice(index * 3, (index + 1) * 3) as mod}
<a
role="button"
class="mod-card contrast"
href={mod.link}
target="_blank"
rel="noopener noreferrer"
>
<img src={mod.logo} alt={mod.name + "'s Icon"} class="mod-card-logo" />
<div class="mod-card-text-ct">
<p class="mod-card-name">{mod.name}</p>
<p class="mod-card-desc">{mod.description}</p>
</div>
</a>
{/each}
{/each}
</div>
</details>
<style lang="scss">
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
margin-bottom: 1em;
gap: 1em;
}
.grid-item {
display: flex;
flex-direction: column;
align-items: center;
padding: 1em;
}
.search-container {
display: flex;
gap: 1em;
select {
width: 40%;
}
}
.mod-card {
display: flex;
justify-content: center;
align-items: center;
padding: 0.5em 1em 0.5em 1em;
img.mod-card-logo {
height: 4em;
width: 4em;
margin-right: 1em;
border-radius: 8px;
cursor: pointer;
}
.mod-card-text-ct {
text-align: left;
p {
padding: 0;
margin: 0;
cursor: pointer;
}
p.mod-card-name {
font-weight: 700;
font-size: 1.2em;
}
}
}
</style>

View file

@ -1,185 +1,22 @@
<script>
import ModCard from "../../lib/modules/ModCard.svelte";
</script>
<h1>Modlist</h1>
<div class="container">
<div class="column">
<ul>
<ul>
<li>Accurate Maps</li>
<li>Ad Astra!</li>
<li>Ada Paxels</li>
<li>Adorn</li>
<li>Advancement Plaques</li>
<li>AdventureZ</li>
<li>Alloy Forgery</li>
<li>Amethyst Tools</li>
<li>Angling Mod</li>
<li>Another Furniture</li>
<li>AntiGhost</li>
<li>Applied Energistics 2</li>
<li>Architectury</li>
<li>Auditory</li>
<li>Balm</li>
<li>Biome Makeover</li>
<li>Blocks</li>
<li>Boat Item View Fabric</li>
<li>Botarium</li>
<li>Chisel Refabricated</li>
<li>Chunky</li>
<li>Cloth Config v8</li>
<li>Continuity</li>
<li>Controlling For Fabric</li>
<li>Crafting Tweaks</li>
<li>Create Crafts and Additions</li>
<li>Croptopia</li>
<li>Detail Armor Bar</li>
<li>Eating Animaton</li>
<li>EldritchMobs</li>
<li>Enchanted Vertical Slabs</li>
<li>Enchanting Infuser</li>
<li>EntityCulling-Fabric</li>
<li>Extractinator</li>
<li>ExtrasSounds</li>
<li>Fabric language Kotlin</li>
<li>Fabric Waystones</li>
<li>Factory Blocks Mod</li>
<li>Falling Leaves</li>
<li>Fastback</li>
<li>FerriteCore</li>
<li>Frame</li>
<li>Global Packs</li>
<li>Hold That Chunk</li>
<li>Icarus</li>
<li>Iceberg</li>
<li>Indium</li>
<li>Interactic</li>
<li>Jade Addons</li>
<li>Konkrete</li>
<li>Ksyxis</li>
<li>Labels</li>
<li>Language Reload</li>
</ul>
</ul>
</div>
<div class="column">
<ul>
<li>Legendary Tooltips</li>
<li>Limits' Grapple</li>
<li>Ma Enchants</li>
<li>Macaw's Bridges</li>
<li>Macaw's Bridges BYG</li>
<li>Macaw's Doors</li>
<li>Macaw's Fences and Walls</li>
<li>Macaw's Furniture</li>
<li>Macaw's Paintings</li>
<li>Macaw's Paths and Pavings</li>
<li>Macaw's Roofs BYG</li>
<li>Macaw's Trapdoors</li>
<li>Macaw's Trapdoors</li>
<li>Macaw's Windows</li>
<li>Main Menu Credits</li>
<li>Mimic</li>
<li>Missing Wilds</li>
<li>MixinTrace</li>
<li>Mod Menu</li>
<li>Moonlight</li>
<li>More Chat History</li>
<li>MoreCreativeTabs</li>
<li>Mythic Metals</li>
<li>Mythic Upgrades</li>
<li>Naturalist</li>
<li>Nature's Compass</li>
<li>NiceLoad</li>
<li>No chat Reports</li>
<li>No Mob Farm</li>
<li>NotEnoughAnimations</li>
<li>Numismatic Overhaul</li>
<li>OPAC Create Mod Support</li>
<li>Open parties and claims</li>
<li>Pehkui</li>
<li>Polymorph</li>
<li>Powah!</li>
<li>Prism</li>
<li>Puzzle</li>
<li>Quartz Elevator</li>
<li>Quilt Loading Screen</li>
<li>Quiltgoslightyfasterlol</li>
<li>Recipe Book Is Pain</li>
<li>Reesse's Sodium Options</li>
<li>Resourcefulconfig</li>
<li>Roughly Enough Items</li>
<li>Satin</li>
<li>ServerCore</li>
<li>Sky Villages</li>
<li>Smooth boot</li>
<li>Sodium</li>
<li>Sodium Extra</li>
<li>Sound physics Remastered</li>
<li>Starlight</li>
<li>TerraBlender</li>
<li>Travaler's Backpack</li>
<li>Twigs</li>
<li>Villager Hats</li>
<li>Xareo's Minimap</li>
<li>Xareo's World Map</li>
<li>Your'e in Grave Danger</li>
<li>Your Reputation</li>
<li>YUNG's Better Desert Temples</li>
<li>YUNG's Better Dungeons</li>
<li>YUNG's Better Mineshaft</li>
<li>YUNG's Better Ocean Monuments</li>
<li>YUNG's Better Strongholds</li>
</ul>
</div>
</div>
<details>
<summary role="button" class="secondary">Optional Mods</summary>
<div class="container">
<div class="column">
<ul>
<li>3D Skin Layers</li>
<li>Animatica</li>
<li>AppleSkin</li>
<li>Better F3</li>
<li>CapeTweaks</li>
<li>Chat Heads</li>
<li>Chunks fade in</li>
<li>CIT Resewn</li>
<li>ClickTrough</li>
<li>DashLoader</li>
<li>Draggable Resource Packs</li>
<li>Dynamic FPS</li>
</ul>
</div>
<div class="column">
<ul>
<li>Effective 💦</li>
<li>EmuNO</li>
<li>Iris shaders</li>
<li>Jade 🔍</li>
<li>Kappa</li>
<li>LambdaBetterGrass</li>
<li>LambDynamicLights</li>
<li>Mouse Wheelie</li>
<li>Ok Zoomer</li>
<li>Presence Footsteps</li>
<li>Reeses Sodium Options</li>
<li>Too many Binds</li>
</ul>
</div>
</div>
</details>
<p>
Here's ExploreCraft's modlist! We will keep this list as up-to-date as possible.<br>
Choose an ExploreCraft version in the dropdown next to the search field.
</p>
<style>
<ModCard />
.container {
overflow: auto;
}
<style lang="scss">
.grid {
width: 100%;
}
.column {
width: 50%;
float: left;
}
</style>
.column {
width: 50%;
float: left;
}
</style>

View file

View file

@ -0,0 +1,4 @@
[
{ "name": "ExploreCraft: Rekindled", "file": "modlist-rekindled.json" },
{ "name": "ExploreCraft: Marbled", "file": "modlist-marbled.json" }
]

View file

@ -0,0 +1,18 @@
{
"mods": [
{
"name": "Adorn",
"description": "Adorn is a decoration and furniture mod that adds many decoration blocks.",
"logo": "https://cdn.modrinth.com/data/E6FUtRJh/icon.png",
"link": "https://modrinth.com/mod/adorn"
}
],
"optional_mods": [
{
"name": "Adorn",
"description": "Adorn is a decoration and furniture mod that adds many decoration blocks.",
"logo": "https://cdn.modrinth.com/data/E6FUtRJh/icon.png",
"link": "https://modrinth.com/mod/adorn"
}
]
}

View file

@ -0,0 +1,60 @@
{
"mods": [
{
"name": "Adorn",
"description": "Adorn is a decoration and furniture mod that adds many decoration blocks.",
"logo": "https://cdn.modrinth.com/data/E6FUtRJh/icon.png",
"link": "https://modrinth.com/mod/adorn"
},
{
"name": "Amendments",
"description": "Amendments is a very configurable mod focused around tweaks to many of existing vanilla blocks.",
"logo": "https://cdn.modrinth.com/data/6iTJugQR/0f0af8eb01acd1da0947c6f9fa6790e558f7aad3.png",
"link": "https://modrinth.com/mod/amendments"
},
{
"name": "Anvil Repairing",
"description": "Allows players to repair their chipped and damaged anvils.",
"logo": "https://cdn.modrinth.com/data/gY0sChT6/92e1eeaede1e8be49665b7e32f35d515d52b82a7.png",
"link": "https://modrinth.com/mod/anvil-repairing"
},
{
"name": "Archeology Plus",
"description": "Archeology Plus is a small 1.20 mod that aims to add to the new Archeology feature.",
"logo": "https://cdn.modrinth.com/data/xJ3jwmS6/a670cbb71c71f25c23000115c1a9711a387b6725.png",
"link": "https://modrinth.com/mod/archeology-plus"
},
{
"name": "Autocrafter Early",
"description": "This mod is a backport for the crafter seen in 1.21.",
"logo": "https://cdn.modrinth.com/data/pAONjoSH/bef3876a9d93e73e768859ded39323fd29d1bcef.png",
"link": "https://modrinth.com/mod/autocrafter-early"
},
{
"name": "Backported Wolves",
"description": "Backports the wolf variants from the latest version to older versions of the game.",
"logo": "https://cdn.modrinth.com/data/yasXoQpR/6b128b1a9297d433aac70a8caaa177694a6f9577.png",
"link": "https://modrinth.com/mod/backported-wolves"
}
],
"optional_mods": [
{
"name": "Animatica",
"description": "A mod implementing the OptiFine/MCPatcher animated texture format.",
"logo": "https://cdn.modrinth.com/data/PRN43VSY/icon.png",
"link": "https://modrinth.com/mod/animatica"
},
{
"name": "AppleSkin",
"description": "Adds various food-related HUD improvements.",
"logo": "https://cdn.modrinth.com/data/EsAfCjCV/icon.png",
"link": "https://modrinth.com/mod/appleskin"
},
{
"name": "Auditory Continued",
"description": "A mod that expands and improves upon the sound and audio aspects of Minecraft!",
"logo": "https://cdn.modrinth.com/data/UafsfA4K/d7d9f7c844ec886c7a313ae40b85b71cb3b7a691.png",
"link": "https://modrinth.com/mod/auditory-continued"
}
]
}

View file

@ -297,11 +297,11 @@ brace-expansion@^2.0.1:
balanced-match "^1.0.0"
braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
version "3.0.3"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies:
fill-range "^7.0.1"
fill-range "^7.1.1"
buffer-crc32@^0.2.5:
version "0.2.13"
@ -408,10 +408,10 @@ estree-walker@^2.0.2:
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
fill-range@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
dependencies:
to-regex-range "^5.0.1"
@ -483,9 +483,9 @@ hasown@^2.0.0:
function-bind "^1.1.2"
immutable@^4.0.0:
version "4.3.5"
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0"
integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==
version "4.3.6"
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447"
integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==
import-meta-resolve@^4.0.0:
version "4.0.0"
@ -560,13 +560,20 @@ kleur@^4.1.5:
resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
magic-string@^0.30.0, magic-string@^0.30.3, magic-string@^0.30.5:
magic-string@^0.30.0, magic-string@^0.30.3:
version "0.30.8"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.8.tgz#14e8624246d2bedba70d5462aa99ac9681844613"
integrity sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
magic-string@^0.30.5:
version "0.30.10"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e"
integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
min-indent@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
@ -712,9 +719,9 @@ sander@^0.5.0:
rimraf "^2.5.2"
sass@^1.62.0:
version "1.74.1"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.74.1.tgz#686fc227d3707dd25cb2925e1db8e4562be29319"
integrity sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA==
version "1.77.4"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.4.tgz#92059c7bfc56b827c56eb116778d157ec017a5cd"
integrity sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
@ -767,9 +774,9 @@ svelte-hmr@^0.15.3:
integrity sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==
svelte-preprocess@^5.0.3:
version "5.1.3"
resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-5.1.3.tgz#7682239fe53f724c845b53026816fdfe15d028f9"
integrity sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==
version "5.1.4"
resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz#14ada075c94bbd2b71c5ec70ff72f8ebe1c95b91"
integrity sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==
dependencies:
"@types/pug" "^2.0.6"
detect-indent "^6.1.0"