diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1a913e2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +# build output +dist/ + +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store + +# jetbrains setting folder +.idea/ + +# vscode settings +.vscode/ \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..882e651 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,4 @@ +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({}); diff --git a/dist/assets/r2mm.png b/dist/assets/r2mm.png deleted file mode 100644 index 7dbd693..0000000 Binary files a/dist/assets/r2mm.png and /dev/null differ diff --git a/dist/credits/index.html b/dist/credits/index.html deleted file mode 100644 index 23e97ee..0000000 --- a/dist/credits/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - Northstar - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-
Core
-
-
-
-
Contributors
-
-
-
-
Past contributors
-

We are ever greatful for past contributions by these developers and wish them all their best on their journey beyond Northstar

-
-
-
-
- Missing anyone on this list? Outdated entries? Feel free to open a pull request to make changes to this site. -
-
- This site or product includes IP2Location LITE data available from https://lite.ip2location.com. -
-
-
- - - - - diff --git a/dist/data/contrib.json b/dist/data/contrib.json deleted file mode 100644 index 0865e2a..0000000 --- a/dist/data/contrib.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "url": "https://github.com/BigSpice", - "icon": "https://avatars.githubusercontent.com/u/23240514?v=4&s=128", - "name": "juicy", - "description": "VTOL, Skins" - }, - { - "url": "https://github.com/taskinoz", - "icon": "https://avatars.githubusercontent.com/u/7439692?v=4&s=128", - "name": "taskinoz", - "description": "Moderator, NavMeshes" - }, - { - "url": "https://github.com/laundmo", - "icon": "https://avatars.githubusercontent.com/u/24855949?v=4&s=128", - "name": "laundmo", - "description": "Modding Docs, Chathooks" - }, - { - "url": "https://github.com/DBmaoha/", - "icon": "https://avatars.githubusercontent.com/u/56738369?v=4&s=128", - "name": "VoyageDB", - "description": "Frontier War, Bounty Hunt, Squirrel bug fixes" - }, - { - "url": "https://github.com/barnabwhy", - "icon": "https://avatars.githubusercontent.com/u/22575741?v=4&s=128", - "name": "barnaby", - "description": "Master Server, Website" - }, - { - "url": "https://github.com/Erlite", - "icon": "https://avatars.githubusercontent.com/u/25248023?v=4&s=128", - "name": "erlite", - "description": "Spyglass, WebSquirrel, Security" - }, - { - "url": "https://github.com/Mauler125", - "icon": "https://avatars.githubusercontent.com/u/48657826?v=4&s=128", - "name": "amos", - "description": "Source Genius, RCON, R5R, Security" - }, - { - "url": "https://github.com/cpdt", - "icon": "https://avatars.githubusercontent.com/u/16081865?v=4&s=128", - "name": "snnag", - "description": "Chathooks, Server Browser, Exploit fixes, Security" - }, - { - "url": "https://github.com/F1F7Y", - "icon": "https://avatars.githubusercontent.com/u/64418963?v=4&s=128", - "name": "f1f7y", - "description": "Server Browser, Attrition, Maps" - }, - { - "url": "https://github.com/snake-biscuits", - "icon": "https://avatars.githubusercontent.com/u/36507175?v=4&s=128", - "name": "b1scuit", - "description": "Maps" - }, - { - "url": "https://github.com/Legonzaur", - "icon": "https://avatars.githubusercontent.com/u/34353603?v=4&s=128", - "name": "legonzaur", - "description": "Discord Bot" - }, - { - "url": "https://github.com/catornot", - "icon": "https://avatars.githubusercontent.com/u/41955154?v=4&s=128", - "name": "cat_or_not", - "description": "Co-Op Singleplayer" - }, - { - "url": "https://github.com/x3Karma", - "icon": "https://avatars.githubusercontent.com/u/22678145?v=4&s=128", - "name": "x3karma", - "description": "Moderator, Modding, Frontier Defense" - }, - { - "url": "https://github.com/Alystrasz", - "icon": "https://avatars.githubusercontent.com/u/11993538?v=4&s=128", - "name": "alystrasz", - "description": "Localisations, Launchers, Documentation" - }, - { - "url": "https://github.com/Dinorush", - "icon": "https://avatars.githubusercontent.com/u/62536724?v=4&s=128", - "name": "dinorush", - "description": "Gamemodes" - }, - { - "url": "https://github.com/hummusbird", - "icon": "https://avatars.githubusercontent.com/u/38541651?v=4&s=128", - "name": "birb", - "description": "Server Bot" - }, - { - "url": "https://github.com/H0L0theBard", - "icon": "https://avatars.githubusercontent.com/u/97146561?v=4&s=128", - "name": "h0l0", - "description": "Moderator, Server Bot, Co-Op Singleplayer" - }, - { - "url": "https://github.com/uniboi", - "icon": "https://avatars.githubusercontent.com/u/64006268?v=4&s=128", - "name": "uniboi", - "description": "Modding Docs" - }, - { - "url": "https://github.com/EladNLG", - "icon": "https://avatars.githubusercontent.com/u/44613424?v=4&s=128", - "name": "eladnlg", - "description": "UI, Modding, Roguelike" - }, - { - "url": "https://github.com/r-ex", - "icon": "https://avatars.githubusercontent.com/u/67599507?v=4&s=128", - "name": "rexx", - "description": "Custom Models,
Legion, RePak" - }, - { - "url": "https://github.com/headassbtw", - "icon": "https://avatars.githubusercontent.com/u/16214950?v=4&s=128", - "name": "headass", - "description": "Custom Models" - }, - { - "url": "https://github.com/Masterliberty", - "icon": "https://avatars.githubusercontent.com/u/94194459?v=4&s=128", - "name": "masterliberty", - "description": "Custom Models" - }, - { - "url": "https://github.com/KyleGospo", - "icon": "https://avatars.githubusercontent.com/u/10704358?v=4&s=128", - "name": "kylegospo", - "description": "LatencyFlex" - }, - { - "url": "https://github.com/Zanieon", - "icon": "https://avatars.githubusercontent.com/u/11906641?v=4&s=128", - "name": "Zanieon", - "description": "Navmeshes, Frontier Defense" - }, - { - "url": "https://github.com/Jan200101/", - "icon": "https://avatars.githubusercontent.com/u/15076013?v=4&s=128", - "name": "Jan200101", - "description": "Linux support, Launcher development/code-cleanup" - }, - { - "url": "https://github.com/EM4Volts", - "icon": "https://avatars.githubusercontent.com/u/87427011?v=4&s=128", - "name": "EM4V", - "description": "Modding Docs, Doublebarrel Shotgun" - } -] \ No newline at end of file diff --git a/dist/data/core.json b/dist/data/core.json deleted file mode 100644 index ea361a4..0000000 --- a/dist/data/core.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "url": "https://github.com/BobTheBob9", - "icon": "https://avatars.githubusercontent.com/u/32057864?v=4&s=128", - "name": "bobthebob", - "description": "Big Man, Founder" - }, - { - "url": "https://github.com/emma-miler", - "icon": "https://avatars.githubusercontent.com/u/27428383?v=4&s=128", - "name": "emmam", - "description": "Plugins, Invites, DiscordRPC, Launcher, Moderator, Security" - }, - { - "url": "https://github.com/RoyalBlue1", - "icon": "https://avatars.githubusercontent.com/u/11448698?v=4&s=128", - "name": "royalblue", - "description": "Squirrel, Frontier Defense, Tool Developer" - }, - { - "url": "https://github.com/GeckoEidechse", - "icon": "https://avatars.githubusercontent.com/u/40122905?v=4&s=128", - "name": "gecko", - "description": "Release Management, Maintainer, Security, FlightCore" - }, - { - "url": "https://github.com/pg9182", - "icon": "https://avatars.githubusercontent.com/u/96569817?v=4&s=128", - "name": "pg9182", - "description": "Atlas, Server Container, Stubs, Linux, Security" - }, - { - "url": "https://github.com/wolf109909", - "icon": "https://avatars.githubusercontent.com/u/84360921?v=4&s=128", - "name": "wolf109909", - "description": "NorthstarCN" - }, - { - "url": "https://github.com/p0358", - "icon": "https://avatars.githubusercontent.com/u/5182588?v=4&s=128", - "name": "p0358", - "description": "Source Genius, TFO, DLL Injector, Origin LSX" - }, - { - "url": "https://github.com/ASpoonPlaysGames", - "icon": "https://avatars.githubusercontent.com/u/66967891?v=4&s=128", - "name": "spoon", - "description": "RPak/Starpak, Stats/Progression, Persistence, Advocate, Bug fixes" - } -] \ No newline at end of file diff --git a/dist/data/installers.json b/dist/data/installers.json deleted file mode 100644 index d9a7e1c..0000000 --- a/dist/data/installers.json +++ /dev/null @@ -1,81 +0,0 @@ -[ - { - "icon": "/assets/flightcore.png", - "name": "FlightCore", - "description": "Fast and easy to use Northstar installer, updater, launcher, and mod-manager. Features built-in mod browser and allows for easy installation of pre-release versions of Northstar.", - "featured": true, - "tags": [ - "Windows", - "Linux" - ], - "buttons": { - "Download": { - "icon": "/assets/manual.svg", - "url": "https://r2northstartools.github.io/FlightCore/index.html?win-setup" - }, - "Github": { - "icon": "/assets/github.svg", - "url": "https://github.com/R2NorthstarTools/FlightCore/" - } - } - }, - { - "icon": "/assets/vtol.png", - "name": "VTOL", - "description": "Easy to use and extensive Northstar installer and mod-manager. Supports installing from Thunderstore as well as from outside sources like GitHub/GitLab. Supports installing custom weapon/pilot skins and managing dedicated servers.", - "featured": true, - "tags": [ - "Windows" - ], - "buttons": { - "Download": { - "icon": "/assets/manual.svg", - "url": "https://github.com/BigSpice/VTOL/releases/latest/download/VTOL_Installer.msi" - }, - "Github": { - "icon": "/assets/github.svg", - "url": "https://github.com/BigSpice/VTOL" - } - } - }, - { - "icon": "/assets/viper.png", - "name": "Viper", - "description": "Simple and easy to use Northstar installer and auto-updater. Allows launching both Northstar and vanilla Titanfall 2. Features mod-manager and built-in mod browser for Thunderstore.", - "featured": true, - "tags": [ - "Windows", - "Linux" - ], - "buttons": { - "Download": { - "icon": "/assets/manual.svg", - "url": "https://0negal.github.io/viper" - }, - "Github": { - "icon": "/assets/github.svg", - "url": "https://github.com/0neGal/viper" - } - } - }, - { - "icon": "/assets/manual.svg", - "name": "Manual", - "description": "You can install Northstar manually if you want to. Note that Northstar does not automatically update when installed this way.", - "featured": true, - "tags": [ - "Windows", - "Linux" - ], - "buttons": { - "Download": { - "icon": "/assets/manual.svg", - "url": "https://github.com/R2Northstar/Northstar/releases/latest" - }, - "Guide": { - "icon": "/assets/icon_wiki.svg", - "url": "https://r2northstar.gitbook.io/r2northstar-wiki/installing-northstar/manual-installation" - } - } - } -] \ No newline at end of file diff --git a/dist/data/past-contrib.json b/dist/data/past-contrib.json deleted file mode 100644 index 27ceb8c..0000000 --- a/dist/data/past-contrib.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "url": "https://github.com/abarichello", - "icon": "https://avatars.githubusercontent.com/u/16687318?v=4&s=128", - "name": "barichello", - "description": "Code Formatting, Github-CI" - }, - { - "url": "https://github.com/KittenPopo", - "icon": "https://avatars.githubusercontent.com/u/28826980?v=4&s=128", - "name": "kittenpopo", - "description": "Exploit fixes, Security" - }, - { - "url": "https://github.com/geniiii", - "icon": "https://avatars.githubusercontent.com/u/24881499?v=4&s=128", - "name": "geni", - "description": "Early Fixes" - }, - { - "url": "https://github.com/warmist", - "icon": "https://avatars.githubusercontent.com/u/917145?v=4&s=128", - "name": "warmist", - "description": "NavMeshes" - } -] \ No newline at end of file diff --git a/dist/index.html b/dist/index.html deleted file mode 100644 index 5e8297f..0000000 --- a/dist/index.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - Northstar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -

titanfall 2 modding and custom server framework

- - -
-
-
-
Installation
-
-
-
-
-
Support
-

If you're having issues with running or setting up the Northstar client or are thinking of running a dedicated server you can find help and troubleshooting tips on the wiki and the Discord server:

- -
- -
- - - - - diff --git a/dist/installers/index.html b/dist/installers/index.html deleted file mode 100644 index c3725f1..0000000 --- a/dist/installers/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - Northstar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
All Installers
-
-
-
-
- Is anything missing from this list? Outdated entries? Feel free to open a pull request to make changes to this site. -
-
- -
- - - - - diff --git a/dist/roadmap/index.html b/dist/roadmap/index.html deleted file mode 100644 index ab4e41e..0000000 --- a/dist/roadmap/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - Northstar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
Roadmap
-
    -
  • Frontier Defense
  • -
  • Mod download on server join
  • -
  • Titanfall1 maps
  • -
  • Custom maps and corresponding tooling
  • -
  • Custom RUI
  • -
  • Modded persistence
  • -
  • Party system
  • -
  • ...and whatever else the future holds
  • -
-
- -
- - - - diff --git a/dist/script/credits.js b/dist/script/credits.js deleted file mode 100644 index 2412fa3..0000000 --- a/dist/script/credits.js +++ /dev/null @@ -1,55 +0,0 @@ -var template = ` -
- - USERNAME -
- DESCRIPTION -
-
-` - -function addContributor(group, url, icon, name, description) { - var x = template.replace("ICONNAME", icon); - x = x.replace("URL", url); - x = x.replace("USERNAME", name); - x = x.replace("DESCRIPTION", description); - document.getElementById(group).insertAdjacentHTML("beforeend", x); -} - -/** - * Loads the members of various categories from JSON - */ -function loadCredits() { - // Load core contributors - fetch('/data/core.json') - .then(response => response.json()) - .then(data => { - data.forEach(item => { - addContributor("core", item.url, item.icon, item.name, item.description); - }); - }) - .catch(error => console.error('Error fetching the JSON file:', error)); - - // Load contributors - fetch('/data/contrib.json') - .then(response => response.json()) - .then(data => { - data.forEach(item => { - addContributor("contrib", item.url, item.icon, item.name, item.description); - }); - }) - .catch(error => console.error('Error fetching the JSON file:', error)); - - // Load past contributors - fetch('/data/past-contrib.json') - .then(response => response.json()) - .then(data => { - data.forEach(item => { - addContributor("past-contrib", item.url, item.icon, item.name, item.description); - }); - }) - .catch(error => console.error('Error fetching the JSON file:', error)); -} - -loadCredits(); - diff --git a/dist/script/index.js b/dist/script/index.js deleted file mode 100644 index 42241d0..0000000 --- a/dist/script/index.js +++ /dev/null @@ -1,22 +0,0 @@ -function scrollHandler() { - if(window.scrollY > 0) { - document.querySelector('#top').classList.add('scroll'); - } else { - document.querySelector('#top').classList.remove('scroll'); - } -} - -window.addEventListener('scroll', scrollHandler); -window.addEventListener('resize', scrollHandler); - -function scrollToMain() { - var elem = document.getElementById("main") - var pos = elem.getBoundingClientRect().bottom - window.scrollTo({ - top: pos, - behavior: "smooth" - }) -} - -// Deobfuscate this if you dare, or just check the console -function _0xe6ea(){var _0x640589=['1555oGBNTZ','9CgkcxT','Interested\x20in\x20modding?\x20Join\x20the\x20Discord\x20(','12376pyAMuM','https://r2northstar.readthedocs.io/','href','9fQLFHO','10100490NZNwkU','4461162TlMdSc','discord)\x20and\x20have\x20a\x20look\x20at\x20the\x20modding\x20docs\x20(','log','7223992BtxUJz','2064209JWVbyU','286914NYeCpq','8653536OttIGJ'];_0xe6ea=function(){return _0x640589;};return _0xe6ea();}var _0x3f0821=_0x56b1;function _0x56b1(_0x2b5818,_0x5491bc){var _0xe6ea0d=_0xe6ea();return _0x56b1=function(_0x56b1ff,_0x153296){_0x56b1ff=_0x56b1ff-0x14f;var _0xa5bd01=_0xe6ea0d[_0x56b1ff];return _0xa5bd01;},_0x56b1(_0x2b5818,_0x5491bc);}(function(_0x195461,_0x4a80ec){var _0x3ee3f4=_0x56b1,_0x5badab=_0x195461();while(!![]){try{var _0xfe9d3f=parseInt(_0x3ee3f4(0x158))/0x1*(parseInt(_0x3ee3f4(0x155))/0x2)+-parseInt(_0x3ee3f4(0x150))/0x3+-parseInt(_0x3ee3f4(0x15a))/0x4*(-parseInt(_0x3ee3f4(0x157))/0x5)+-parseInt(_0x3ee3f4(0x156))/0x6+-parseInt(_0x3ee3f4(0x154))/0x7+-parseInt(_0x3ee3f4(0x153))/0x8*(-parseInt(_0x3ee3f4(0x15d))/0x9)+parseInt(_0x3ee3f4(0x14f))/0xa;if(_0xfe9d3f===_0x4a80ec)break;else _0x5badab['push'](_0x5badab['shift']());}catch(_0x270bc5){_0x5badab['push'](_0x5badab['shift']());}}}(_0xe6ea,0xe6076),console[_0x3f0821(0x152)](_0x3f0821(0x159)+location[_0x3f0821(0x15c)]+_0x3f0821(0x151)+_0x3f0821(0x15b)+')')); diff --git a/dist/script/installers.js b/dist/script/installers.js deleted file mode 100644 index 53b76eb..0000000 --- a/dist/script/installers.js +++ /dev/null @@ -1,82 +0,0 @@ -var tag_template = ` - - TAG - -` - -var button_template = ` - - - NAME - -` - -var template = ` -
-
- -
NAME
-
-
- DESCRIPTION -
-
- TAGS -
-
- BUTTONS -
-
-` - -function addInstaller(group, icon, name, description, tags, buttons, target) { - var tagsstr = ""; - var buttonsstr = ""; - - for (const tag of tags) { - tagsstr += tag_template.replace("TAG", tag); - } - - for (const name in buttons) { - buttonsstr += button_template - .replace("NAME", name) - .replace("URL", buttons[name].url) - .replace("ICON", buttons[name].icon) - .replace("TARGET", target); - } - - var x = template.replace("ICONNAME", icon) - .replace("NAME", name) - .replace("DESCRIPTION", description) - .replace("TAGS", tagsstr) - .replace("BUTTONS", buttonsstr); - - document.getElementById(group).insertAdjacentHTML("beforeend", x); -} - -function loadsInstallers(home) { - fetch('/data/installers.json') - .then(response => response.json()) - .then(data => { - data.forEach(item => { - if (home && !item.featured) return; - addInstaller("installers", item.icon, item.name, item.description, item.tags, item.buttons, "_blank"); - }); - if (home) - addInstaller( - "installers", - "/assets/icon_wiki.svg", - "Other Installers", - "See a full list of Northstar Installers", - [], - {"Other Installers": {"icon": "/assets/icon_wiki.svg", "url": "/installers"}}, - "" - ); - }) - .catch(error => console.error('Error fetching the JSON file:', error)); -} diff --git a/dist/servers/index.html b/dist/servers/index.html deleted file mode 100644 index 0e23b25..0000000 --- a/dist/servers/index.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - Northstar Servers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-
-
-
- - - - - - - - - - - -
- -
-
- -
-
Last updated
-
- servers listed, total -
-
- players listed, total -
-
- -
-
-
-
Region
-
Name
-
Players
-
Gamemode
-
Map
-
-
-

Loading, hold on...

-

Couldn't refresh the server list, try again later?

-
- - - - - - - diff --git a/dist/style/404.css b/dist/style/404.css deleted file mode 100644 index 72f5f39..0000000 --- a/dist/style/404.css +++ /dev/null @@ -1,26 +0,0 @@ -body { - text-align: center; -} - -h1 { - font-size: 40px; -} - -#centerlogo { - vertical-align: middle; - user-select: none !important; - pointer-events: none; - filter: drop-shadow(0px 4px 16px rgba(0, 0, 0, 0.75)); -} - -#mainbuttons { - margin: 3.6rem auto 8rem auto; - width: max-content; - user-select: none !important; -} - -a.button { - margin: 8px; - padding: 16px 32px; - height: 50px; -} diff --git a/dist/style/credits.css b/dist/style/credits.css deleted file mode 100644 index d127c07..0000000 --- a/dist/style/credits.css +++ /dev/null @@ -1,144 +0,0 @@ -.contributors { - display: flex; - justify-content: center; - width: 90%; - margin-left: 5%; - justify-items: center; - align-items: center; - flex-wrap: wrap; -} - -.contributor { - display: flex; - flex-direction: column; - justify-content: center; - margin: 1em; - padding: 0px; - font-size: 0.9em; - max-width: 12em; - pointer-events: none; -} - -.small > .contributor { - display: flex; - flex-direction: column; - justify-content: center; - margin-bottom: 2em; - font-size: 0.9em; - width: 7vw; -} - -@media screen and (max-width: 1280px) { - .contributor { - max-width: 12em; - min-width: 12em; - margin: 0.2em; - } - .small > .contributor { - min-width: 10em; - max-width: 10em; - margin-bottom: 0em; - } -} - -.contributor > img { - height: 6em; - width: 6em; - align-self: center; - border-radius: 100%; - margin: 1em; - pointer-events: all; - cursor: pointer; - transition: width 0.1s ease-in-out, height 0.1s ease-in-out, margin 0.1s ease-in-out; -} - -.contributor > img:hover { - filter: brightness(50%); - height: 7em; - width: 7em; - margin: 0.5em; - margin-bottom: 0.5em; - margin-top: 0.5em; - transition: width 0.1s ease-in-out, height 0.1s ease-in-out, margin 0.1s ease-in-out; -} - -.small > * > img { - height: 6em; - width: 6em; - margin: 1em; - align-self: center; - border-radius: 100%; - transition: width 0.1s ease-in-out, height 0.1s ease-in-out, margin 0.1s ease-in-out; -} - -.small > * > img:hover { - filter: brightness(50%); - height: 7em; - width: 7em; - margin: 0.5em; - margin-bottom: 0.5em; - margin-top: 0.5em; - transition: width 0.1s ease-in-out, height 0.1s ease-in-out, margin 0.1s ease-in-out; -} - -.header { - display: flex; - padding-top: 0.5em; - padding-bottom: 0.2em; - flex-direction: row; -} - -.name { - font-family: Titanfall; - font-size: 1.3em; - align-self: center; - margin-left: -0.1em; - font-weight: light; - white-space: wrap; -} -.blurb { - padding-bottom: 1em; - text-align: center; - color: #999; - text-overflow: wrap; - height: 3em; -} - -@media screen and (max-width: 1280px) { - .coreuser > .blurb { - padding-bottom: 1em; - min-height: 5em; - } -} - -.buttons { - display: flex; - position: relative; - left: -8px; -} - - -.coreuser > * > .button { - width: 100%; -} - -img { - vertical-align: middle; - width: 16px; - height: 16px; - margin-right: 12px; - pointer-events: none; - margin-top: -2px; -} - -.center { - display: flex; - justify-content: center; -} - -.attribution { - opacity: 0.5; - margin-top: 16px; - font-size: .875em; - text-align: center; -} diff --git a/dist/style/installers.css b/dist/style/installers.css deleted file mode 100644 index 4a7f3a5..0000000 --- a/dist/style/installers.css +++ /dev/null @@ -1,106 +0,0 @@ - -.installoptions { - display: flex; - justify-content: center; - width: 90%; - margin-left: 5%; - flex-wrap: wrap; - gap: 4em; -} - -.launcher { - width: 20%; - display: flex; - flex-direction: column; -} - -.launcher > * > img { - height: 4em; - width: 4em; - max-width: 100%; -} - -.header { - display: flex; - padding-top: 0.5em; - padding-bottom: 1em; -} - -.name { - font-family: Titanfall; - font-size: 1.8em; - align-self: center; - margin-left: -0.1em; - margin-top: 0.05em; -} - -.blurb { - padding-bottom: 1em; -} - -@media screen and (max-width: 1280px) { - .launcher > .header { - flex: 0 0 auto; - align-items: center; - justify-content: center; - margin-right: 3em; - } - .launcher > .header > .name { - margin-top: 0.5em; - } - .launcher > .buttons { - align-self: flex-center; - } - .installoptions { - display: flex; - justify-content: center; - flex-wrap: wrap; - gap: 2em; - width: 90%; - margin-left: 5%; - margin-top: 0px; - margin-bottom: 0px; - align-items: stretch; - } - .launcher { - flex: 1; - min-width: 18em; - max-width: 36em; - margin-top: 1em; - margin-bottom: 1em; - } -} - -.launcher > .buttons { - margin-top: 12px; - gap: 12px; -} -.launcher > .buttons > .button { - margin: 0px; -} - -.buttons { - display: flex; - margin-top: auto; -} - -.launcher > * > .button { - width: 100%; -} - -img { - vertical-align: middle; - width: 16px; - height: 16px; - margin-right: 12px; - pointer-events: none; - margin-top: -2px; -} - - -.missing { - opacity: 0.5; - margin-top: 16px; - font-size: .875em; - text-align: center; -} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e0f2cf5 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "", + "type": "module", + "version": "0.0.1", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "astro": "^4.11.5", + "@astrojs/check": "^0.8.0", + "typescript": "^5.5.3" + }, + "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" +} diff --git a/dist/.well-known/security.txt b/public/.well-known/security.txt similarity index 100% rename from dist/.well-known/security.txt rename to public/.well-known/security.txt diff --git a/dist/assets/NorthstarPromoPoster.jpg b/public/assets/NorthstarPromoPoster.jpg similarity index 100% rename from dist/assets/NorthstarPromoPoster.jpg rename to public/assets/NorthstarPromoPoster.jpg diff --git a/dist/assets/NorthstarPromoPosterOG.jpg b/public/assets/NorthstarPromoPosterOG.jpg similarity index 100% rename from dist/assets/NorthstarPromoPosterOG.jpg rename to public/assets/NorthstarPromoPosterOG.jpg diff --git a/dist/assets/NorthstarPromoVid.mp4 b/public/assets/NorthstarPromoVid.mp4 similarity index 100% rename from dist/assets/NorthstarPromoVid.mp4 rename to public/assets/NorthstarPromoVid.mp4 diff --git a/dist/assets/Titanfall-Regular.ttf b/public/assets/Titanfall-Regular.ttf similarity index 100% rename from dist/assets/Titanfall-Regular.ttf rename to public/assets/Titanfall-Regular.ttf diff --git a/dist/assets/favicon-128.png b/public/assets/favicon-128.png similarity index 100% rename from dist/assets/favicon-128.png rename to public/assets/favicon-128.png diff --git a/dist/assets/favicon-32.png b/public/assets/favicon-32.png similarity index 100% rename from dist/assets/favicon-32.png rename to public/assets/favicon-32.png diff --git a/dist/assets/favicon.ico b/public/assets/favicon.ico similarity index 100% rename from dist/assets/favicon.ico rename to public/assets/favicon.ico diff --git a/dist/assets/flightcore.png b/public/assets/flightcore.png similarity index 100% rename from dist/assets/flightcore.png rename to public/assets/flightcore.png diff --git a/public/assets/frontier-defense-poster.jpg b/public/assets/frontier-defense-poster.jpg new file mode 100644 index 0000000..a6da8ab Binary files /dev/null and b/public/assets/frontier-defense-poster.jpg differ diff --git a/dist/assets/github.svg b/public/assets/github.svg similarity index 100% rename from dist/assets/github.svg rename to public/assets/github.svg diff --git a/dist/assets/globe.svg b/public/assets/globe.svg similarity index 100% rename from dist/assets/globe.svg rename to public/assets/globe.svg diff --git a/dist/assets/icon_discord.svg b/public/assets/icon_discord.svg similarity index 100% rename from dist/assets/icon_discord.svg rename to public/assets/icon_discord.svg diff --git a/dist/assets/icon_download.svg b/public/assets/icon_download.svg similarity index 100% rename from dist/assets/icon_download.svg rename to public/assets/icon_download.svg diff --git a/dist/assets/icon_moddingdocs.svg b/public/assets/icon_moddingdocs.svg similarity index 100% rename from dist/assets/icon_moddingdocs.svg rename to public/assets/icon_moddingdocs.svg diff --git a/dist/assets/icon_wiki.svg b/public/assets/icon_wiki.svg similarity index 100% rename from dist/assets/icon_wiki.svg rename to public/assets/icon_wiki.svg diff --git a/dist/assets/logo.png b/public/assets/logo.png similarity index 100% rename from dist/assets/logo.png rename to public/assets/logo.png diff --git a/dist/assets/manual.svg b/public/assets/manual.svg similarity index 100% rename from dist/assets/manual.svg rename to public/assets/manual.svg diff --git a/dist/assets/menu.svg b/public/assets/menu.svg similarity index 100% rename from dist/assets/menu.svg rename to public/assets/menu.svg diff --git a/public/assets/screenshot-dust2-northstar.jpg b/public/assets/screenshot-dust2-northstar.jpg new file mode 100644 index 0000000..4f558c5 Binary files /dev/null and b/public/assets/screenshot-dust2-northstar.jpg differ diff --git a/public/assets/screenshot-mad-mod-download.jpg b/public/assets/screenshot-mad-mod-download.jpg new file mode 100644 index 0000000..b98e9c5 Binary files /dev/null and b/public/assets/screenshot-mad-mod-download.jpg differ diff --git a/public/assets/screenshot-runoff-northstar.jpg b/public/assets/screenshot-runoff-northstar.jpg new file mode 100644 index 0000000..eba3ef2 Binary files /dev/null and b/public/assets/screenshot-runoff-northstar.jpg differ diff --git a/dist/assets/scroll_down.svg b/public/assets/scroll_down.svg similarity index 100% rename from dist/assets/scroll_down.svg rename to public/assets/scroll_down.svg diff --git a/dist/assets/titanfall_new.ttf b/public/assets/titanfall_new.ttf similarity index 100% rename from dist/assets/titanfall_new.ttf rename to public/assets/titanfall_new.ttf diff --git a/dist/assets/viper.png b/public/assets/viper.png similarity index 100% rename from dist/assets/viper.png rename to public/assets/viper.png diff --git a/dist/assets/vtol.png b/public/assets/vtol.png similarity index 100% rename from dist/assets/vtol.png rename to public/assets/vtol.png diff --git a/dist/favicon.ico b/public/favicon.ico similarity index 100% rename from dist/favicon.ico rename to public/favicon.ico diff --git a/dist/redirects.json b/public/redirects.json similarity index 100% rename from dist/redirects.json rename to public/redirects.json diff --git a/dist/script/servers.js b/public/script/servers.js similarity index 100% rename from dist/script/servers.js rename to public/script/servers.js diff --git a/dist/style/common.css b/public/style/common.css similarity index 100% rename from dist/style/common.css rename to public/style/common.css diff --git a/dist/style/footer.css b/public/style/footer.css similarity index 100% rename from dist/style/footer.css rename to public/style/footer.css diff --git a/dist/style/header.css b/public/style/header.css similarity index 100% rename from dist/style/header.css rename to public/style/header.css diff --git a/dist/style/servers.css b/public/style/servers.css similarity index 100% rename from dist/style/servers.css rename to public/style/servers.css diff --git a/src/components/Contributors.astro b/src/components/Contributors.astro new file mode 100644 index 0000000..c81a31a --- /dev/null +++ b/src/components/Contributors.astro @@ -0,0 +1,139 @@ +--- +import { Image } from "astro:assets"; +import { contributors, ContributorType } from "../data/contributors.ts"; + +const { type, small } = Astro.props as { + type: ContributorType; + small?: boolean; +}; +--- + +
+ { + contributors + .filter((c) => c.type == type) + .map((contributor) => ( +
+ + + + {contributor.name} +
{contributor.description}
+
+ )) + } +
+ + diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..7976c0c --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,37 @@ +--- + +--- + + + + diff --git a/src/components/Header.astro b/src/components/Header.astro new file mode 100644 index 0000000..7e9757c --- /dev/null +++ b/src/components/Header.astro @@ -0,0 +1,159 @@ + + +
+ + + +
+ + diff --git a/src/components/Installer.astro b/src/components/Installer.astro new file mode 100644 index 0000000..0f4e651 --- /dev/null +++ b/src/components/Installer.astro @@ -0,0 +1,141 @@ +--- +import { type Installer } from "../data/installers.ts"; + +const { installer } = Astro.props as { installer: Installer }; +--- + +
+
+ +
{installer.name}
+
+
{installer.description}
+
+ {installer.tags.map((tag) => {tag})} +
+
+ { + installer.buttons.map((button) => ( + + + {button.text} + + )) + } +
+
+ + diff --git a/src/components/Installers.astro b/src/components/Installers.astro new file mode 100644 index 0000000..83f41a2 --- /dev/null +++ b/src/components/Installers.astro @@ -0,0 +1,78 @@ +--- +import Installer from "./Installer.astro"; +import { installers } from "../data/installers.ts"; +--- + +
+
+ { + installers + .filter((i) => i.featured) + .map((installer) => ) + } +
+ { + installers.filter((i) => !i.featured).length > 0 && ( +
+ Other installers +
+ {installers + .filter((i) => !i.featured) + .map((installer) => ( + + ))} +
+
+ ) + } +
+ + diff --git a/src/components/Roadmap.astro b/src/components/Roadmap.astro new file mode 100644 index 0000000..11ae270 --- /dev/null +++ b/src/components/Roadmap.astro @@ -0,0 +1,108 @@ +--- +import { Image } from "astro:assets"; +import { roadmap } from "../data/roadmap.ts"; +--- + +
+ { + roadmap.map((stage) => ( +
+ {stage.title} +
+ {stage.items.map((item) => ( +
+ {item.alt} + {item.title} + {item.description} +
+ ))} +
+
+ )) + } +
+ + diff --git a/src/data/contributors.ts b/src/data/contributors.ts new file mode 100644 index 0000000..1cf495f --- /dev/null +++ b/src/data/contributors.ts @@ -0,0 +1,288 @@ +export enum ContributorType { + CORE, + CONTRIBUTOR, + PAST, +} + +export interface Contributor { + url?: string; + icon: string; + name: string; + description?: string; + type: ContributorType; +} + +// Sorry this is big :3 +export const contributors: Contributor[] = [ + // Core + { + url: "https://github.com/BobTheBob9", + icon: "https://avatars.githubusercontent.com/u/32057864?v=4&s=128", + name: "bobthebob", + description: "Big Man, Founder", + type: ContributorType.CORE, + }, + { + url: "https://github.com/emma-miler", + icon: "https://avatars.githubusercontent.com/u/27428383?v=4&s=128", + name: "emmam", + description: "Plugins, Invites, DiscordRPC, Launcher, Moderator, Security", + type: ContributorType.CORE, + }, + { + url: "https://github.com/RoyalBlue1", + icon: "https://avatars.githubusercontent.com/u/11448698?v=4&s=128", + name: "royalblue", + description: "Squirrel, Frontier Defense, Tool Developer", + type: ContributorType.CORE, + }, + { + url: "https://github.com/GeckoEidechse", + icon: "https://avatars.githubusercontent.com/u/40122905?v=4&s=128", + name: "gecko", + description: "Release Management, Maintainer, Security, FlightCore", + type: ContributorType.CORE, + }, + { + url: "https://github.com/pg9182", + icon: "https://avatars.githubusercontent.com/u/96569817?v=4&s=128", + name: "pg9182", + description: "Atlas, Server Container, Stubs, Linux, Security", + type: ContributorType.CORE, + }, + { + url: "https://github.com/wolf109909", + icon: "https://avatars.githubusercontent.com/u/84360921?v=4&s=128", + name: "wolf109909", + description: "NorthstarCN", + type: ContributorType.CORE, + }, + { + url: "https://github.com/p0358", + icon: "https://avatars.githubusercontent.com/u/5182588?v=4&s=128", + name: "p0358", + description: "Source Genius, TFO, DLL Injector, Origin LSX", + type: ContributorType.CORE, + }, + { + url: "https://github.com/ASpoonPlaysGames", + icon: "https://avatars.githubusercontent.com/u/66967891?v=4&s=128", + name: "spoon", + description: "RPak/Starpak, Stats/Progression, Persistence, Advocate, Bug fixes", + type: ContributorType.CORE, + }, + + // Contributors + { + url: "https://github.com/BigSpice", + icon: "https://avatars.githubusercontent.com/u/23240514?v=4&s=128", + name: "juicy", + description: "VTOL, Skins", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/taskinoz", + icon: "https://avatars.githubusercontent.com/u/7439692?v=4&s=128", + name: "taskinoz", + description: "Moderator, NavMeshes", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/laundmo", + icon: "https://avatars.githubusercontent.com/u/24855949?v=4&s=128", + name: "laundmo", + description: "Modding Docs, Chathooks", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/DBmaoha/", + icon: "https://avatars.githubusercontent.com/u/56738369?v=4&s=128", + name: "VoyageDB", + description: "Frontier War, Bounty Hunt, Squirrel bug fixes", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/barnabwhy", + icon: "https://avatars.githubusercontent.com/u/22575741?v=4&s=128", + name: "barnaby", + description: "Master Server, Website, TFO", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/Erlite", + icon: "https://avatars.githubusercontent.com/u/25248023?v=4&s=128", + name: "erlite", + description: "Spyglass, WebSquirrel, Security", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/Mauler125", + icon: "https://avatars.githubusercontent.com/u/48657826?v=4&s=128", + name: "amos", + description: "Source Genius, RCON, R5R, Security", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/cpdt", + icon: "https://avatars.githubusercontent.com/u/16081865?v=4&s=128", + name: "snnag", + description: "Chathooks, Server Browser, Exploit fixes, Security", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/F1F7Y", + icon: "https://avatars.githubusercontent.com/u/64418963?v=4&s=128", + name: "f1f7y", + description: "Server Browser, Attrition, Maps", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/snake-biscuits", + icon: "https://avatars.githubusercontent.com/u/36507175?v=4&s=128", + name: "b1scuit", + description: "Maps", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/Legonzaur", + icon: "https://avatars.githubusercontent.com/u/34353603?v=4&s=128", + name: "legonzaur", + description: "Discord Bot", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/catornot", + icon: "https://avatars.githubusercontent.com/u/41955154?v=4&s=128", + name: "cat_or_not", + description: "Co-Op Singleplayer", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/x3Karma", + icon: "https://avatars.githubusercontent.com/u/22678145?v=4&s=128", + name: "x3karma", + description: "Moderator, Modding, Frontier Defense", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/Alystrasz", + icon: "https://avatars.githubusercontent.com/u/11993538?v=4&s=128", + name: "alystrasz", + description: "Localisations, Launchers, Documentation", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/Dinorush", + icon: "https://avatars.githubusercontent.com/u/62536724?v=4&s=128", + name: "dinorush", + description: "Gamemodes", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/hummusbird", + icon: "https://avatars.githubusercontent.com/u/38541651?v=4&s=128", + name: "birb", + description: "Server Bot", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/H0L0theBard", + icon: "https://avatars.githubusercontent.com/u/97146561?v=4&s=128", + name: "h0l0", + description: "Moderator, Server Bot, Co-Op Singleplayer", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/uniboi", + icon: "https://avatars.githubusercontent.com/u/64006268?v=4&s=128", + name: "uniboi", + description: "Modding Docs", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/EladNLG", + icon: "https://avatars.githubusercontent.com/u/44613424?v=4&s=128", + name: "eladnlg", + description: "UI, Modding, Roguelike", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/r-ex", + icon: "https://avatars.githubusercontent.com/u/67599507?v=4&s=128", + name: "rexx", + description: "Custom Models,
Legion, RePak", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/headassbtw", + icon: "https://avatars.githubusercontent.com/u/16214950?v=4&s=128", + name: "headass", + description: "Custom Models", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/Masterliberty", + icon: "https://avatars.githubusercontent.com/u/94194459?v=4&s=128", + name: "masterliberty", + description: "Custom Models", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/KyleGospo", + icon: "https://avatars.githubusercontent.com/u/10704358?v=4&s=128", + name: "kylegospo", + description: "LatencyFlex", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/Zanieon", + icon: "https://avatars.githubusercontent.com/u/11906641?v=4&s=128", + name: "Zanieon", + description: "Navmeshes, Frontier Defense", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/Jan200101/", + icon: "https://avatars.githubusercontent.com/u/15076013?v=4&s=128", + name: "Jan200101", + description: "Linux support, Launcher development/code-cleanup", + type: ContributorType.CONTRIBUTOR, + }, + { + url: "https://github.com/EM4Volts", + icon: "https://avatars.githubusercontent.com/u/87427011?v=4&s=128", + name: "EM4V", + description: "Modding Docs, Doublebarrel Shotgun", + type: ContributorType.CONTRIBUTOR, + }, + + // Past + { + url: "https://github.com/abarichello", + icon: "https://avatars.githubusercontent.com/u/16687318?v=4&s=128", + name: "barichello", + description: "Code Formatting, Github-CI", + type: ContributorType.PAST, + }, + { + url: "https://github.com/KittenPopo", + icon: "https://avatars.githubusercontent.com/u/28826980?v=4&s=128", + name: "kittenpopo", + description: "Exploit fixes, Security", + type: ContributorType.PAST, + }, + { + url: "https://github.com/geniiii", + icon: "https://avatars.githubusercontent.com/u/24881499?v=4&s=128", + name: "geni", + description: "Early Fixes", + type: ContributorType.PAST, + }, + { + url: "https://github.com/warmist", + icon: "https://avatars.githubusercontent.com/u/917145?v=4&s=128", + name: "warmist", + description: "NavMeshes", + type: ContributorType.PAST, + }, +]; \ No newline at end of file diff --git a/src/data/installers.ts b/src/data/installers.ts new file mode 100644 index 0000000..e8eb38f --- /dev/null +++ b/src/data/installers.ts @@ -0,0 +1,98 @@ + +export interface Installer { + icon?: string; + name: string; + description?: string; + featured: boolean; + tags: string[]; + buttons: InstallerButton[]; +} + +export interface InstallerButton { + text: string; + icon: string; + href: string; +} + +export const installers: Installer[] = [ + { + icon: "/assets/flightcore.png", + name: "FlightCore", + description: + "Fast and easy to use Northstar installer, updater, launcher, and mod-manager. Features built-in mod browser and allows for easy installation of pre-release versions of Northstar.", + featured: true, + tags: ["Windows", "Linux"], + buttons: [ + { + text: "Download", + icon: "/assets/manual.svg", + href: "https://r2northstartools.github.io/FlightCore/index.html?win-setup", + }, + { + text: "Github", + icon: "/assets/github.svg", + href: "https://github.com/R2NorthstarTools/FlightCore/", + }, + ], + }, + { + icon: "/assets/vtol.png", + name: "VTOL", + description: + "Easy to use and extensive Northstar installer and mod-manager. Supports installing from Thunderstore as well as from outside sources like GitHub/GitLab. Supports installing custom weapon/pilot skins and managing dedicated servers.", + featured: true, + tags: ["Windows"], + buttons: [ + { + text: "Download", + icon: "/assets/manual.svg", + href: "https://github.com/BigSpice/VTOL/releases/latest/download/VTOL_Installer.msi", + }, + { + text: "Github", + icon: "/assets/github.svg", + href: "https://github.com/BigSpice/VTOL", + }, + ], + }, + { + icon: "/assets/viper.png", + name: "Viper", + description: + "Simple and easy to use Northstar installer and auto-updater. Allows launching both Northstar and vanilla Titanfall 2. Features mod-manager and built-in mod browser for Thunderstore.", + featured: true, + tags: ["Windows", "Linux"], + buttons: [ + { + text: "Download", + icon: "/assets/manual.svg", + href: "https://0negal.github.io/viper", + }, + { + text: "Github", + icon: "/assets/github.svg", + href: "https://github.com/0neGal/viper", + }, + ], + }, + { + icon: "/assets/manual.svg", + name: "Manual", + description: + "You can install Northstar manually if you want to. Note that Northstar does not automatically update when installed this way.", + featured: true, + tags: ["Windows", "Linux"], + buttons: [ + { + text: "Download", + icon: "/assets/manual.svg", + href: "https://github.com/R2Northstar/Northstar/releases/latest", + }, + { + text: "Guide", + icon: "/assets/icon_wiki.svg", + href: "https://r2northstar.gitbook.io/r2northstar-wiki/installing-northstar/manual-installation", + }, + ], + }, +]; \ No newline at end of file diff --git a/src/data/roadmap.ts b/src/data/roadmap.ts new file mode 100644 index 0000000..37d6c42 --- /dev/null +++ b/src/data/roadmap.ts @@ -0,0 +1,82 @@ +export interface RoadmapItem { + title: string; + description: string; + image: string; + alt: string; +} + +export interface RoadmapStage { + title: string; + items: RoadmapItem[]; +} + +export const roadmap: RoadmapStage[] = [ + { + title: "Gameplay", + items: [ + { + title: "Frontier Defense", + description: "The beloved PvE mode in Northstar. Both in its vanilla version as well as extended with cut content and extra features.", + image: "/assets/frontier-defense-poster.jpg", + alt: "Two Tians in front of the Frontier Defense harvester with another two Titans in the back." + }, + { + title: "Mod Auto Download", + description: "Download custom mods such as gamemodes and maps when joining a server in a safe way.", + image: "/assets/screenshot-mad-mod-download.jpg", + alt: "A screenshot showing mod auto download in action." + }, + { + title: "Party System", + description: "Implement the vanilla party system so you can group up with friends and join servers together.", + image: "/assets/NorthstarPromoPoster.jpg", + alt: "The Northstar Promo poster showing a Northstar Titan using their FlightCore ability." + }, + ], + }, + { + title: "Mapping tools", + items: [ + { + title: "Titanfall 1 maps", + description: "Bringing maps from Titanfall 1 into Northstar.", + image: "/assets/screenshot-runoff-northstar.jpg", + alt: "A screenshot of the Runoff map from Titanfall1 loaded into Titanfall2 using Northstar." + }, + { + title: "Custom maps", + description: "Create tools for building custom maps so that the community can create their own maps.", + image: "/assets/screenshot-dust2-northstar.jpg", + alt: "A screenshot of a development version of the dust2 map in Northstar." + }, + ], + }, + { + title: "Modding improvements", + items: [ + { + title: "Custom RUI", + description: "Reverse Respawn's UI system to allow for custom crosshairs and UI elements.", + image: "/assets/NorthstarPromoPoster.jpg", + alt: "The Northstar Promo poster showing a Northstar Titan using their FlightCore ability." + }, + { + title: "Modded Persistence", + description: "Reverse and extend the persistence system to allow players to store custom weapons and Titans in their loadouts.", + image: "/assets/NorthstarPromoPoster.jpg", + alt: "The Northstar Promo poster showing a Northstar Titan using their FlightCore ability." + }, + ], + }, + { + title: "...", + items: [ + { + title: "...whatever the future holds", + description: "Do you have an idea for Northstar? Wanna help? Join our Discord and talk to us!", + image: "/assets/NorthstarPromoPoster.jpg", + alt: "The Northstar Promo poster showing a Northstar Titan using their FlightCore ability." + }, + ], + }, +]; \ No newline at end of file diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..f964fe0 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro new file mode 100644 index 0000000..0d0f475 --- /dev/null +++ b/src/layouts/Layout.astro @@ -0,0 +1,83 @@ +--- +import "../styles/global.css"; + +import Footer from "../components/Footer.astro"; +import Header from "../components/Header.astro"; + +interface Meta { + url: string; + title: string; + description: string; + image: string; +} + +const defaultMeta: Meta = { + url: "https://northstar.tf/", + title: "Northstar", + description: + "Northstar is a modding framework client that allows users to host their own Titanfall 2 servers using custom scripts and assets to create custom content, as well as being able to host vanilla content.", + image: "/assets/NorthstarPromoPosterOG.jpg", +}; + +interface Props { + title: string; + bgFade?: boolean; + meta?: Meta; +} + +const { title, bgFade, meta } = Astro.props as Props; + +const m = meta ?? defaultMeta; +--- + + + + + + + + + {title} + + + + + + + + + + + + + + + + + + + + + + + + + + {bgFade &&
} +
+
+ +
+