diff --git a/.editorconfig b/.editorconfig
index 005d2d3..2d7973b 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -34,6 +34,10 @@ indent_size = 2
indent_style = tab
indent_size = 4
+[.gitconfig]
+indent_style = tab
+indent_size = 4
+
# JavaScript
[*.js]
indent_style = space
@@ -42,3 +46,12 @@ indent_size = 2
[package.json]
indent_style = space
indent_size = 2
+
+# Ignore paths for this project
+[{Solar2D/**,ssh/config}]
+charset = unset
+end_of_line = unset
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+indent_style = unset
+indent_size = unset
diff --git a/bash/.bashrc b/Bash/.bashrc
similarity index 100%
rename from bash/.bashrc
rename to Bash/.bashrc
diff --git a/bash/README.md b/Bash/README.md
similarity index 100%
rename from bash/README.md
rename to Bash/README.md
diff --git a/certbot/new.sh b/CertBot/certbot/new.sh
similarity index 100%
rename from certbot/new.sh
rename to CertBot/certbot/new.sh
diff --git a/certbot/renew.sh b/CertBot/certbot/renew.sh
similarity index 100%
rename from certbot/renew.sh
rename to CertBot/certbot/renew.sh
diff --git a/JavaScript/GameLoop/game.js b/JavaScript/GameLoop/game.js
index 57d4ae0..a432145 100644
--- a/JavaScript/GameLoop/game.js
+++ b/JavaScript/GameLoop/game.js
@@ -1,5 +1,3 @@
-'use strict';
-
// Main variables
let DEBUG = true;
let canvas;
@@ -15,83 +13,101 @@ let fps;
let dragging = false;
function mMove(e) {
- if (dragging) {
- point.pX = e.offsetX * cW / canvas.clientWidth | 0;
- point.pY = e.offsetY * cH / canvas.clientHeight | 0;
- };
+ 'use strict';
+
+ if (dragging) {
+ point.pX = e.offsetX * cW / canvas.clientWidth | 0;
+ point.pY = e.offsetY * cH / canvas.clientHeight | 0;
+ };
}
function mDown(e) {
- dragging = true;
+ 'use strict';
+
+ dragging = true;
}
function mUp(e) {
- dragging = false;
+ 'use strict';
+
+ dragging = false;
}
function clearContext() {
- context.fillStyle = '#b27e56';
- context.fillRect(0, 0, cW, cH);
+ 'use strict';
+
+ context.fillStyle = '#b27e56';
+ context.fillRect(0, 0, cW, cH);
}
// Init
window.onload = function() {
- canvas = document.getElementById('game');
- context = canvas.getContext('2d');
- cW = canvas.width;
- cH = canvas.height;
+ 'use strict';
- canvas.style.height = window.innerHeight + "px";
- if (DEBUG) {
- console.log('Canvas set size to ' + window.innerHeight + 'px');
- console.log(canvas.getBoundingClientRect());
- };
+ canvas = document.getElementById('game');
+ context = canvas.getContext('2d');
+ cW = canvas.width;
+ cH = canvas.height;
- canvas.addEventListener('mousedown', mDown, false);
- canvas.addEventListener('mouseup', mUp, false);
- canvas.addEventListener('mousemove', mMove, false);
+ canvas.style.height = window.innerHeight + "px";
+ if (DEBUG) {
+ console.log('Canvas set size to ' + window.innerHeight + 'px');
+ console.log(canvas.getBoundingClientRect());
+ };
- canvas.addEventListener('touchstart', mDown, false);
- canvas.addEventListener('touchend', mUp, false);
- canvas.addEventListener('touchmove', mMove, false);
+ canvas.addEventListener('mousedown', mDown, false);
+ canvas.addEventListener('mouseup', mUp, false);
+ canvas.addEventListener('mousemove', mMove, false);
- window.requestAnimationFrame(gameLoop);
+ canvas.addEventListener('touchstart', mDown, false);
+ canvas.addEventListener('touchend', mUp, false);
+ canvas.addEventListener('touchmove', mMove, false);
+
+ window.requestAnimationFrame(gameLoop);
};
window.addEventListener('resize', function() {
- let canvas = document.getElementById('game');
- canvas.style.height = window.innerHeight + "px";
+ 'use strict';
- if (DEBUG) {
- console.log('Canvas resized to ' + window.innerHeight + 'px');
- console.log(canvas.getBoundingClientRect());
- };
+ let canvas = document.getElementById('game');
+ canvas.style.height = window.innerHeight + "px";
+
+ if (DEBUG) {
+ console.log('Canvas resized to ' + window.innerHeight + 'px');
+ console.log(canvas.getBoundingClientRect());
+ };
}, true);
// GameLoop
function gameLoop(timeStamp) {
- // fps counter
- secondsPassed = (timeStamp - oldTimeStamp) / 1000;
- oldTimeStamp = timeStamp;
- fps = Math.round(1 / secondsPassed);
- // end fps counter
+ 'use strict';
- update();
- draw();
+ // fps counter
+ secondsPassed = (timeStamp - oldTimeStamp) / 1000;
+ oldTimeStamp = timeStamp;
+ fps = Math.round(1 / secondsPassed);
+ // end fps counter
- if (DEBUG) {
- context.font = '15px Arial';
- context.fillStyle = '#101024';
- context.fillText('FPS: ' + fps, 10, 20);
- };
+ update();
+ draw();
- window.requestAnimationFrame(gameLoop);
+ if (DEBUG) {
+ context.font = '15px Arial';
+ context.fillStyle = '#101024';
+ context.fillText('FPS: ' + fps, 10, 20);
+ };
+
+ window.requestAnimationFrame(gameLoop);
}
function update() {
+ 'use strict';
+ //
}
function draw() {
- clearContext();
+ 'use strict';
+
+ clearContext();
}
diff --git a/JavaScript/GameLoop/index.html b/JavaScript/GameLoop/index.html
index b73797a..396aff3 100644
--- a/JavaScript/GameLoop/index.html
+++ b/JavaScript/GameLoop/index.html
@@ -1,15 +1,15 @@
-
+
-
- JS Game
-
+
+ JS Game
+
-
-
-
+
+
+
-
+
diff --git a/JavaScript/GameLoop/styles.css b/JavaScript/GameLoop/styles.css
index 60d661c..3bb170b 100644
--- a/JavaScript/GameLoop/styles.css
+++ b/JavaScript/GameLoop/styles.css
@@ -1,20 +1,20 @@
html { height: 100%; }
body {
- background-color: #101024;
- padding: 0;
- margin: 0;
- height: 100%;
+ background-color: #101024;
+ padding: 0;
+ margin: 0;
+ height: 100%;
}
div.wrap {
- display: flex;
- height: 100%;
- align-items: center;
- justify-content: center;
+ display: flex;
+ height: 100%;
+ align-items: center;
+ justify-content: center;
}
canvas#game {
- border: 2px solid #ec8a4b;
- display: block;
+ border: 2px solid #ec8a4b;
+ display: block;
}
diff --git a/JavaScript/README.md b/JavaScript/README.md
index 2afb997..e203427 100644
--- a/JavaScript/README.md
+++ b/JavaScript/README.md
@@ -7,15 +7,15 @@ canvas { image-rendering: crisp-edges; image-rendering: pixelated; }
`packages.json`
```json
"scripts": {
- "serve": "webpack serve",
+ "serve": "webpack serve",
"html": "html-minifier --collapse-whitespace --remove-comments src/index.html --output dist/index.html",
"css": "csso src/styles.css --output dist/styles.css",
"build": "npm run html && npm run css && webpack --mode=production"
},
"devDependencies": {
- "webpack": "^5.42.0",
- "webpack-cli": "^4.7.2",
- "webpack-dev-server": "^3.11.2"
+ "webpack": "^5.42.0",
+ "webpack-cli": "^4.7.2",
+ "webpack-dev-server": "^3.11.2"
}
```
`webpack.config.js`
@@ -23,16 +23,16 @@ canvas { image-rendering: crisp-edges; image-rendering: pixelated; }
const path = require('path');
module.exports = {
- mode: 'development',
- entry: './src/index.js',
- output: {
- path: path.resolve(__dirname, 'dist'),
- filename: 'engine.js',
- },
- devServer: {
- contentBase: path.join(__dirname, 'src'),
- compress: false,
- port: 55555,
- },
+ mode: 'development',
+ entry: './src/index.js',
+ output: {
+ path: path.resolve(__dirname, 'dist'),
+ filename: 'engine.js',
+ },
+ devServer: {
+ contentBase: path.join(__dirname, 'src'),
+ compress: false,
+ port: 55555,
+ },
};
```
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..68a087b
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,278 @@
+{
+ "name": "config",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "devDependencies": {
+ "editorconfig-checker": "^4.0.2"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dev": true,
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/editorconfig-checker": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/editorconfig-checker/-/editorconfig-checker-4.0.2.tgz",
+ "integrity": "sha512-tUI7ABIzMB1kfwTUQmX+gaZGCMNuUgGuRHJ+Xu4Tk9T8lV8Vy5w/EaQsSZ7NKrOgLxbekptw6MUgrzHTvhceLw==",
+ "dev": true,
+ "dependencies": {
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.0",
+ "tar": "^6.0.0"
+ },
+ "bin": {
+ "ec": "dist/index.js",
+ "editorconfig-checker": "dist/index.js"
+ }
+ },
+ "node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dev": true,
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
+ "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dev": true,
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
+ "dev": true,
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ }
+ },
+ "node_modules/tar": {
+ "version": "6.1.11",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
+ "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
+ "dev": true,
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^3.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ },
+ "dependencies": {
+ "agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dev": true,
+ "requires": {
+ "debug": "4"
+ }
+ },
+ "chownr": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
+ "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "editorconfig-checker": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/editorconfig-checker/-/editorconfig-checker-4.0.2.tgz",
+ "integrity": "sha512-tUI7ABIzMB1kfwTUQmX+gaZGCMNuUgGuRHJ+Xu4Tk9T8lV8Vy5w/EaQsSZ7NKrOgLxbekptw6MUgrzHTvhceLw==",
+ "dev": true,
+ "requires": {
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.0",
+ "tar": "^6.0.0"
+ }
+ },
+ "fs-minipass": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
+ "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "dev": true,
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
+ "minipass": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
+ "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+ "dev": true,
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node-fetch": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
+ "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
+ "dev": true
+ },
+ "tar": {
+ "version": "6.1.11",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
+ "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
+ "dev": true,
+ "requires": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^3.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..9c66b8d
--- /dev/null
+++ b/package.json
@@ -0,0 +1,8 @@
+{
+ "scripts": {
+ "editorconfig-checker": "editorconfig-checker -exclude node_modules"
+ },
+ "devDependencies": {
+ "editorconfig-checker": "^4.0.2"
+ }
+}