Skip to content

Commit 892d665

Browse files
authored
Merge pull request #11 from JakeLegendXIII/feature/showcase-filters
Add filter by tags to showcase
2 parents c507816 + a6f3b21 commit 892d665

File tree

5 files changed

+128
-208
lines changed

5 files changed

+128
-208
lines changed

index.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,6 @@ _title: MonoGame
5252
</div>
5353
</section>
5454

55-
<script src="/scripts/game-banners.js"/>
55+
<script src="/scripts/game-data.js"></script>
56+
<script src="/scripts/game-banners.js"></script>
5657

scripts/game-banners.js

+8-30
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,3 @@
1-
var banners = [
2-
3-
{"name":"sor4","logo":"sor4-logo.png","screenshot":"sor4-screenshot.jpg","url":"https:\/\/www.streets4rage.com\/","pixelart":false,"tags":["2D","Console","PlayStation4","XboxOne","NintendoSwitch","Featured"]},
4-
{"name":"paladin","logo":"paladin-logo.png","screenshot":"paladin-screenshot.jpg","url":"http:\/\/pumpkin-games.net\/paladin.php","pixelart":false,"tags":["2D","Console","Mac","Linux","Desktop","XboxOne","NintendoSwitch","Featured"]},
5-
{"name":"fhook","logo":"fhook-logo.png","screenshot":"fhook-screenshot.png","url":"http:\/\/flinthook.com\/","pixelart":true,"tags":["2D","Console","PlayStation4","XboxOne","NintendoSwitch","Featured"]},
6-
{"name":"daryl","logo":"daryl-logo.png","screenshot":"daryl-screenshot.jpg","url":"https:\/\/danandgarygames.com\/superdaryldeluxe","pixelart":false,"tags":["2D","Console","PlayStation4","NintendoSwitch","Featured"]},
7-
{"name":"chasm","logo":"chasm-logo.png","screenshot":"chasm-screenshot.png","url":"http:\/\/www.chasmgame.com\/","pixelart":true,"tags":["2D","Console","PlayStation4","PSVita","NintendoSwitch","Featured"]},
8-
{"name":"celeste","logo":"celeste-logo.png","screenshot":"celeste-screenshot.png","url":"http:\/\/www.celestegame.com\/","pixelart":true,"tags":["2D","Console","XboxOne","NintendoSwitch","PlayStation4","Featured"]},
9-
{"name":"redungeon","logo":"redungeon-logo.png","screenshot":"redungeon-screenshot.png","url":"http:\/\/www.eneminds.com\/redungeon\/","pixelart":true,"tags":["Mobile","iOS","Android","Featured"]},
10-
{"name":"squareheroes","logo":"squareheroes-logo.png","screenshot":"squareheroes-screenshot.png","url":"http:\/\/www.squareheroes.com\/","pixelart":false,"tags":["Console","PlayStation4","Featured"]},
11-
{"name":"wayward","logo":"wayward-logo.png","screenshot":"wayward-screenshot.jpg","url":"http:\/\/www.wtfrontier.com\/","pixelart":false,"tags":["Windows","Desktop","Featured"]},
12-
{"name":"skulls","logo":"skulls-logo.png","screenshot":"skulls-screenshot.jpg","url":"http:\/\/skullsoftheshogun.com\/","pixelart":false,"tags":["Console","PlayStation4","Mobile","Android","Featured"]},
13-
{"name":"ty","logo":"ty-logo.png","screenshot":"ty-screenshot.jpg","url":"http:\/\/www.kromestudios.com\/TY\/","pixelart":false,"tags":["Desktop","Windows","2D","Featured"]},
14-
{"name":"hockey","logo":"oth-logo.png","screenshot":"oldtimehockey-screenshot.jpg","url":"http:\/\/www.bushhockeyleague.com\/","pixelart":false,"tags":["Console","PlayStation4","XboxOne","3D","Featured"]},
15-
{"name":"flight","logo":"flight-logo.png","screenshot":"flight-screenshot.jpg","url":"http:\/\/www.infinite-flight.com\/","pixelart":false,"tags":["iOS","Android","Mobile","3D","Featured"]},
16-
{"name":"neurovoider","logo":"neurovoider-logo.png","screenshot":"neurovoider-screenshot.jpg","url":"http:\/\/www.neurovoider.com\/","pixelart":true,"tags":["Windows","Mac","Linux","XboxOne","PlayStation4","PSVita","NintendoSwitch","2D","Desktop","Console","Featured"]},
17-
{"name":"apotheon","logo":"apotheon-logo.png","screenshot":"apotheon-screenshot.jpg","url":"http:\/\/www.apotheongame.com\/","pixelart":false,"tags":["PlayStation4","2D","Console","Featured"]},
18-
{"name":"axiom","logo":"axiom-logo.png","screenshot":"axiom-screenshot.png","url":"http:\/\/www.axiomverge.com\/","pixelart":true,"tags":["PlayStation4","XboxOne","NintendoSwitch","PSVita","2D","Console","Featured"]},
19-
{"name":"towerfall","logo":"towerfall-logo.png","screenshot":"towerfall-screenshot.jpg","url":"http:\/\/www.towerfall-game.com\/","pixelart":true,"tags":["PlayStation4","XboxOne","NintendoSwitch","PSVita","2D","Console","Featured"]},
20-
{"name":"stardew","logo":"stardew-logo4.png","screenshot":"stardew-screenshot.png","url":"http:\/\/www.stardewvalley.net\/","pixelart":true,"tags":["PlayStation4","XboxOne","NintendoSwitch","PSVita","2D","Console","Mac","Linux","Desktop","Featured"]},
21-
{"name":"toothandtail","logo":"toothandtail-logo.png","screenshot":"toothandtail-screenshot.png","url":"http:\/\/www.toothandtailgame.com\/","pixelart":false,"tags":["PlayStation4","Windows","2D","Console","Desktop","Featured"]}
22-
23-
];
24-
251
var preload = new Array();
262
var shuffled = [];
273
function shuffle(a,b,c,d){c=a.length;while(c)b=Math.random()*(--c+1)|0,d=a[c],a[c]=a[b],a[b]=d}
@@ -51,11 +27,11 @@ function init_banner()
5127
if(result != null)
5228
{
5329
var name = result[1];
54-
for (var i=0; i < banners.length; i++)
30+
for (var i=0; i < games.length; i++)
5531
{
56-
if (banners[i].name == name)
32+
if (games[i].name == name)
5733
{
58-
show_banner(banners[i]);
34+
show_banner(games[i]);
5935
return;
6036
}
6137
}
@@ -67,9 +43,13 @@ function init_banner()
6743

6844
function random_banner()
6945
{
46+
var featuredBanners = games.filter(function(banner) {
47+
return banner.tags.includes('Featured');
48+
});
49+
7050
if (shuffled.length <= 1)
7151
{
72-
shuffled = shuffled.concat(banners);
52+
shuffled = shuffled.concat(featuredBanners);
7353
shuffled = unique(shuffled);
7454
shuffle(shuffled);
7555
}
@@ -102,6 +82,4 @@ function show_banner(title)
10282
logoImage.parentElement.href = title.url;
10383
}
10484

105-
var BannerPath = "/images/showcase-header/";
106-
10785
init_banner();

scripts/game-data.js

+35
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/showcase-filters.js

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
function init_filter() {
2+
var data = window.top.location.search;
3+
var container = document.getElementById('gamesList');
4+
var filterTag = data ? remove_questionmark(data) : null;
5+
6+
for (var i = 0; i < games.length; i++) {
7+
if (!filterTag || games[i].tags.includes(filterTag)) {
8+
add_to_screen(games[i], container);
9+
}
10+
}
11+
}
12+
13+
function add_to_screen(game, container) {
14+
var gameDiv = document.createElement('div');
15+
gameDiv.id = game.name;
16+
gameDiv.className = 'showcase-link-image';
17+
gameDiv.style.backgroundImage = "url('" + BannerPath + game.screenshot + "')";
18+
19+
if (game.pixelart == true)
20+
{
21+
gameDiv.style["image-rendering"] = "pixelated";
22+
gameDiv.style["-ms-interpolation-mode"] = "nearest-neighbor";
23+
}
24+
else
25+
{
26+
gameDiv.style["image-rendering"] = "auto";
27+
gameDiv.style["-ms-interpolation-mode"] = "bicubic";
28+
}
29+
30+
var link = document.createElement('a');
31+
link.href = game.url;
32+
33+
var logoDiv = document.createElement('div');
34+
logoDiv.style = "width:100%;height:100%;background:url('" + BannerPath + game.logo + "') center center no-repeat";
35+
logoDiv.title = game.title;
36+
37+
link.appendChild(logoDiv);
38+
gameDiv.appendChild(link);
39+
container.appendChild(gameDiv);
40+
}
41+
42+
function remove_questionmark(str) {
43+
var pattern = /\?/;
44+
var result = pattern.exec(str);
45+
if (result != null) {
46+
return str.replace('?', '');
47+
} else {
48+
return str;
49+
}
50+
}
51+
52+
init_filter();

0 commit comments

Comments
 (0)