summaryrefslogtreecommitdiff
path: root/src/SMAPI.Web/wwwroot
diff options
context:
space:
mode:
Diffstat (limited to 'src/SMAPI.Web/wwwroot')
-rw-r--r--src/SMAPI.Web/wwwroot/Content/css/mods.css5
-rw-r--r--src/SMAPI.Web/wwwroot/Content/js/mods.js24
-rw-r--r--src/SMAPI.Web/wwwroot/SMAPI.metadata.json10
-rw-r--r--src/SMAPI.Web/wwwroot/schemas/content-patcher.json8
4 files changed, 31 insertions, 16 deletions
diff --git a/src/SMAPI.Web/wwwroot/Content/css/mods.css b/src/SMAPI.Web/wwwroot/Content/css/mods.css
index 1c2b8056..697ba514 100644
--- a/src/SMAPI.Web/wwwroot/Content/css/mods.css
+++ b/src/SMAPI.Web/wwwroot/Content/css/mods.css
@@ -86,6 +86,11 @@ table.wikitable > caption {
font-size: 0.9em;
}
+#mod-list thead tr {
+ position: sticky;
+ top: 0;
+}
+
#mod-list th.header {
background-repeat: no-repeat;
background-position: center right;
diff --git a/src/SMAPI.Web/wwwroot/Content/js/mods.js b/src/SMAPI.Web/wwwroot/Content/js/mods.js
index 0394ac4f..35098b60 100644
--- a/src/SMAPI.Web/wwwroot/Content/js/mods.js
+++ b/src/SMAPI.Web/wwwroot/Content/js/mods.js
@@ -102,7 +102,7 @@ smapi.modList = function (mods, enableBeta) {
app = new Vue({
el: "#app",
data: data,
- mounted: function() {
+ mounted: function () {
// enable table sorting
$("#mod-list").tablesorter({
cssHeader: "header",
@@ -115,11 +115,7 @@ smapi.modList = function (mods, enableBeta) {
$("#search-box").focus();
// jump to anchor (since table is added after page load)
- if (location.hash) {
- var row = $(location.hash).get(0);
- if (row)
- row.scrollIntoView();
- }
+ this.fixHashPosition();
},
methods: {
/**
@@ -144,6 +140,18 @@ smapi.modList = function (mods, enableBeta) {
}
},
+ /**
+ * Fix the window position for the current hash.
+ */
+ fixHashPosition: function () {
+ if (!location.hash)
+ return;
+
+ var row = $(location.hash);
+ var target = row.prev().get(0) || row.get(0);
+ if (target)
+ target.scrollIntoView();
+ },
/**
* Get whether a mod matches the current filters.
@@ -151,7 +159,7 @@ smapi.modList = function (mods, enableBeta) {
* @param {string[]} searchWords The search words to match.
* @returns {bool} Whether the mod matches the filters.
*/
- matchesFilters: function(mod, searchWords) {
+ matchesFilters: function (mod, searchWords) {
var filters = data.filters;
// check hash
@@ -249,7 +257,9 @@ smapi.modList = function (mods, enableBeta) {
}
});
app.applyFilters();
+ app.fixHashPosition();
window.addEventListener("hashchange", function () {
app.applyFilters();
+ app.fixHashPosition();
});
};
diff --git a/src/SMAPI.Web/wwwroot/SMAPI.metadata.json b/src/SMAPI.Web/wwwroot/SMAPI.metadata.json
index 78918bac..3101fdf1 100644
--- a/src/SMAPI.Web/wwwroot/SMAPI.metadata.json
+++ b/src/SMAPI.Web/wwwroot/SMAPI.metadata.json
@@ -112,7 +112,7 @@
"Default | UpdateKey": "Nexus:2341"
},
- "TMX Loader": {
+ "TMXL Map Toolkit": {
"ID": "Platonymous.TMXLoader",
"Default | UpdateKey": "Nexus:1820"
},
@@ -129,7 +129,7 @@
"Bee House Flower Range Fix": {
"ID": "kirbylink.beehousefix",
"~ | Status": "Obsolete",
- "~ | StatusReasonPhrase": "the bee house flower range was fixed in Stardew Valley 1.4."
+ "~ | StatusReasonPhrase": "the bee house flower range was fixed in Stardew Valley 1.4."
},
"Colored Chests": {
@@ -153,9 +153,9 @@
/*********
** Broke in SDV 1.4
*********/
- "Fix Dice": {
- "ID": "ashley.fixdice",
- "~1.1.2 | Status": "AssumeBroken" // crashes game on startup
+ "Auto Quality Patch": {
+ "ID": "SilentOak.AutoQualityPatch",
+ "~2.1.3-unofficial.7 | Status": "AssumeBroken" // runtime errors
},
"Fix Dice": {
diff --git a/src/SMAPI.Web/wwwroot/schemas/content-patcher.json b/src/SMAPI.Web/wwwroot/schemas/content-patcher.json
index 7e00c28e..e6cd4e65 100644
--- a/src/SMAPI.Web/wwwroot/schemas/content-patcher.json
+++ b/src/SMAPI.Web/wwwroot/schemas/content-patcher.json
@@ -142,7 +142,7 @@
},
"FromFile": {
"title": "Source file",
- "description": "The relative file path in your content pack folder to load instead (like 'assets/dinosaur.png'). This can be a .json (data), .png (image), .tbin (map), or .xnb file. This field supports tokens and capitalization doesn't matter.",
+ "description": "The relative file path in your content pack folder to load instead (like 'assets/dinosaur.png'). This can be a .json (data), .png (image), .tbin or .tmx (map), or .xnb file. This field supports tokens and capitalization doesn't matter.",
"type": "string",
"allOf": [
{
@@ -151,12 +151,12 @@
}
},
{
- "pattern": "\\.(json|png|tbin|xnb) *$"
+ "pattern": "\\.(json|png|tbin|tmx|xnb) *$"
}
],
"@errorMessages": {
"allOf:indexes: 0": "Invalid value; must not contain directory climbing (like '../').",
- "allOf:indexes: 1": "Invalid value; must be a file path ending with .json, .png, .tbin, or .xnb."
+ "allOf:indexes: 1": "Invalid value; must be a file path ending with .json, .png, .tbin, .tmx, or .xnb."
}
},
"FromArea": {
@@ -325,7 +325,7 @@
"then": {
"properties": {
"FromFile": {
- "description": "The relative path to the map in your content pack folder from which to copy (like assets/town.tbin). This can be a .tbin or .xnb file. This field supports tokens and capitalization doesn't matter.\nContent Patcher will handle tilesheets referenced by the FromFile map for you:\n - If a tilesheet isn't referenced by the target map, Content Patcher will add it for you (with a z_ ID prefix to avoid conflicts with hardcoded game logic). If the source map has a custom version of a tilesheet that's already referenced, it'll be added as a separate tilesheet only used by your tiles.\n - If you include the tilesheet file in your mod folder, Content Patcher will use that one automatically; otherwise it will be loaded from the game's Content/Maps folder."
+ "description": "The relative path to the map in your content pack folder from which to copy (like assets/town.tbin). This can be a .tbin, .tmx, or .xnb file. This field supports tokens and capitalization doesn't matter.\nContent Patcher will handle tilesheets referenced by the FromFile map for you:\n - If a tilesheet isn't referenced by the target map, Content Patcher will add it for you (with a z_ ID prefix to avoid conflicts with hardcoded game logic). If the source map has a custom version of a tilesheet that's already referenced, it'll be added as a separate tilesheet only used by your tiles.\n - If you include the tilesheet file in your mod folder, Content Patcher will use that one automatically; otherwise it will be loaded from the game's Content/Maps folder."
},
"FromArea": {
"description": "The part of the source map to copy. Defaults to the whole source map."