Skip to content

Commit 1e0ca33

Browse files
authored
Merge pull request #5 from jrod-disco/develop
DEVELOP v0.2.0 to MASTER
2 parents e8f92ff + 4f36ebe commit 1e0ca33

30 files changed

+1636
-487
lines changed

.eslintrc.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
module.exports = {
2-
parser: "@typescript-eslint/parser", // Specifies the ESLint parser
2+
parser: '@typescript-eslint/parser', // Specifies the ESLint parser
33
extends: [
4-
"plugin:@typescript-eslint/recommended", // Uses the recommended rules from the @typescript-eslint/eslint-plugin
4+
'plugin:@typescript-eslint/recommended', // Uses the recommended rules from the @typescript-eslint/eslint-plugin
55
],
66
parserOptions: {
77
ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features
8-
sourceType: "module", // Allows for the use of imports
8+
sourceType: 'module', // Allows for the use of imports
99
},
1010
rules: {
1111
// Place to specify ESLint rules. Can be used to overwrite rules specified from the extended configs
1212
// e.g. "@typescript-eslint/explicit-function-return-type": "off",
13+
'no-use-before-define': 'off',
14+
'@typescript-eslint/no-use-before-define': 'warn',
1315
},
1416
};

.gitignore

Lines changed: 2 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ lib-cov
5555
coverage
5656
*.lcov
5757

58-
# nyc test coverage
59-
.nyc_output
60-
6158
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
6259
.grunt
6360

@@ -120,18 +117,6 @@ dist/
120117
.out
121118
.storybook-out
122119

123-
# vuepress build output
124-
.vuepress/dist
125-
126-
# Serverless directories
127-
.serverless/
128-
129-
# FuseBox cache
130-
.fusebox/
131-
132-
# DynamoDB Local files
133-
.dynamodb/
134-
135120
# Temporary folders
136121
tmp/
137122
temp/
@@ -179,95 +164,9 @@ GitHub.sublime-settings
179164
# Ignore all local history of files
180165
.history
181166

182-
### WebStorm ###
183-
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
184-
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
185-
186-
# User-specific stuff
187-
.idea/**/workspace.xml
188-
.idea/**/tasks.xml
189-
.idea/**/usage.statistics.xml
190-
.idea/**/dictionaries
191-
.idea/**/shelf
192-
193-
# Generated files
194-
.idea/**/contentModel.xml
195-
196-
# Sensitive or high-churn files
197-
.idea/**/dataSources/
198-
.idea/**/dataSources.ids
199-
.idea/**/dataSources.local.xml
200-
.idea/**/sqlDataSources.xml
201-
.idea/**/dynamic.xml
202-
.idea/**/uiDesigner.xml
203-
.idea/**/dbnavigator.xml
204-
205-
# Gradle
206-
.idea/**/gradle.xml
207-
.idea/**/libraries
208-
209-
# Gradle and Maven with auto-import
210-
# When using Gradle or Maven with auto-import, you should exclude module files,
211-
# since they will be recreated, and may cause churn. Uncomment if using
212-
# auto-import.
213-
# .idea/modules.xml
214-
# .idea/*.iml
215-
# .idea/modules
216-
# *.iml
217-
# *.ipr
218-
219-
# CMake
220-
cmake-build-*/
221-
222-
# Mongo Explorer plugin
223-
.idea/**/mongoSettings.xml
224-
225-
# File-based project format
226-
*.iws
227-
228-
# IntelliJ
229-
out/
230-
231-
# mpeltonen/sbt-idea plugin
232-
.idea_modules/
233167

234168
# JIRA plugin
235169
atlassian-ide-plugin.xml
236170

237-
# Cursive Clojure plugin
238-
.idea/replstate.xml
239-
240-
# Crashlytics plugin (for Android Studio and IntelliJ)
241-
com_crashlytics_export_strings.xml
242-
crashlytics.properties
243-
crashlytics-build.properties
244-
fabric.properties
245-
246-
# Editor-based Rest Client
247-
.idea/httpRequests
248-
249-
# Android studio 3.1+ serialized cache file
250-
.idea/caches/build_file_checksums.ser
251-
252-
### WebStorm Patch ###
253-
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
254-
255-
# *.iml
256-
# modules.xml
257-
# .idea/misc.xml
258-
# *.ipr
259-
260-
# Sonarlint plugin
261-
.idea/**/sonarlint/
262-
263-
# SonarQube Plugin
264-
.idea/**/sonarIssues.xml
265-
266-
# Markdown Navigator plugin
267-
.idea/**/markdown-navigator.xml
268-
.idea/**/markdown-navigator/
269-
270-
# End of https://www.gitignore.io/api/node,macos,webstorm,sublimetext,visualstudiocode
271-
272-
# Dist files
273-
dist/
171+
# Working Asset Folders
172+
working-assets/

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2020 Jose R. Rodriguez, JRVisuals LLC
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,55 @@
1-
# DCollage (Digital Collage Boilerplate)
1+
### Bootstrapped with DCollage (Digital Collage Boilerplate w/ PIXIJS)
22

3-
The goal of DCollage is to facilitate the creation of multi-layered, interactive, collages similar to those I created back in the days of Flash.
3+
The goal of DCollage is to facilitate the creation of multi-layered, interactive, collages similar to those I created back in the days of Flash. Surprise it works for simple games too!
4+
5+
# Project Title
6+
7+
Project description may appear here.
8+
9+
## Concept and Mechanics
10+
11+
TBD
12+
13+
## Roadmap
14+
15+
- [x] Bootstraping
16+
17+
- [x] create repo
18+
- [x] clean-up remnants from past usage
19+
- [x] get it running the game loop bare bones
20+
21+
- [ ] TBD
22+
- [ ] TBD
23+
24+
### Completed!
25+
26+
Nothing yet
27+
28+
## Libraries Used
29+
30+
- PIXIJS - WebGL renderer with Canvas fallback and so much more [https://github.com/pixijs/pixi.js](https://github.com/pixijs/pixi.js)
31+
- pixi-filters - Collection of community-authored custom display filters for PixiJS [https://github.com/pixijs/pixi-filters](https://github.com/pixijs/pixi-filters) Currently yarn linked to a local version of the repo in order to use the as of yet un-merged changes to the godray filter which add alpha functionality.
32+
- GSAP - tween animation library [https://greensock.com/docs/v2/Plugins/PixiPlugin](https://greensock.com/docs/v2/Plugins/PixiPlugin)
33+
34+
## Tools Used
35+
36+
- Visual Studio Code
37+
- Sublime Text
38+
- Aesprite
39+
- Audacity
40+
- Reason
41+
42+
# Build Scripts
43+
44+
- `yarn start` to go into development mode with live reload
45+
- `yarn clean` to clean the `/dist` directory
46+
- `yarn build` to create a distributable bundle in `/dist`
47+
- `yarn docs` to generate markdown documentation in `/docs`
48+
49+
# The Stack
50+
51+
- Pixi.JS
52+
- TypeScript
53+
- Prettier
54+
- Rollup
55+
- TSDoc / TypeDoc

markdownStyles.css

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
body {
2+
background: #303341;
3+
color: #ffffff;
4+
}
5+
6+
.vscode-dark a {
7+
color: #61afef;
8+
}
9+
10+
.vscode-dark h1,
11+
.vscode-dark h2,
12+
.vscode-dark h3,
13+
.vscode-dark h4,
14+
.vscode-dark h5,
15+
.vscode-dark h6 {
16+
font-weight: 600;
17+
color: #964653;
18+
}
19+
20+
.vscode-dark,
21+
.vscode-dark pre code {
22+
color: #abb2bf;
23+
}
24+
25+
.vscode-dark code {
26+
color: #90c378;
27+
}
28+
29+
.vscode-dark pre:not(.hljs),
30+
.vscode-dark code > div {
31+
background-color: #2c323c;
32+
}
33+
34+
.vscode-dark table > thead > tr > th {
35+
border-color: #2c323c;
36+
}
37+
38+
.vscode-dark h1,
39+
.vscode-dark hr,
40+
.vscode-dark table > tbody > tr + tr > td {
41+
border-color: #2c323c;
42+
}
43+
44+
.vscode-dark blockquote {
45+
color: #5c6370;
46+
font-style: italic;
47+
background: transparent;
48+
border-color: #2c323c;
49+
}

package.json

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
{
22
"name": "dcollage",
3-
"version": "0.1.0",
3+
"version": "0.2.0",
44
"description": "A digital collage boilerplate.",
55
"main": "main.js",
66
"repository": "https://github.com/jrod-disco/dcollage",
77
"author": "jrod-disco <[email protected]>",
88
"license": "MIT",
99
"private": false,
10-
"dependencies": {},
1110
"devDependencies": {
12-
"gsap": "^3.2.5",
13-
"pixi-sound": "^3.0.4",
14-
"pixi.js": "^5.1.6",
15-
"@pixi/filter-glitch": "^3.1.1",
11+
"@microsoft/tsdoc": "^0.12.19",
12+
"@pixi/filter-shockwave": "^3.1.1",
13+
"@rollup/plugin-json": "^4.1.0",
1614
"@rollup/plugin-node-resolve": "^7.1.1",
17-
"@typescript-eslint/eslint-plugin": "^2.24.0",
18-
"@typescript-eslint/parser": "^2.24.0",
15+
"@rollup/plugin-replace": "^2.3.3",
16+
"@typescript-eslint/eslint-plugin": "2.34.0",
17+
"@typescript-eslint/parser": "2.34.0",
1918
"eslint": "^6.8.0",
19+
"gsap": "^3.2.5",
20+
"pixi-particles": "^4.2.1",
21+
"pixi-sound": "^3.0.4",
22+
"pixi.js": "5.2.0",
2023
"prettier": "^2.0.1",
2124
"rimraf": "^3.0.2",
2225
"rollup": "^2.1.0",
@@ -26,13 +29,19 @@
2629
"rollup-plugin-livereload": "^1.1.0",
2730
"rollup-plugin-scss": "^2.1.0",
2831
"rollup-plugin-serve": "^1.0.1",
32+
"rollup-plugin-terser": "^5.3.0",
2933
"rollup-plugin-typescript2": "^0.26.0",
3034
"sass": "^1.26.3",
31-
"typescript": "^3.8.3"
35+
"tslib": "^2.0.0",
36+
"typedoc": "^0.17.6",
37+
"typedoc-plugin-markdown": "^2.2.17",
38+
"typescript": "3.9.7"
3239
},
40+
"dependencies": {},
3341
"scripts": {
34-
"start": "rollup -c -w",
42+
"start": "rollup -c -w --environment BUILD:dev",
3543
"clean": "rimraf dist",
36-
"build": "rollup -c"
44+
"build": "rimraf dist && rollup -c --environment BUILD:prod",
45+
"docs": "rimraf docs && npx typedoc --excludeExternals --entryPoint 'main' --stripInternal --readme none"
3746
}
3847
}

rollup.config.js

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,44 @@ import serve from 'rollup-plugin-serve';
44
import livereload from 'rollup-plugin-livereload';
55
import typescript from 'rollup-plugin-typescript2';
66
import commonjs from 'rollup-plugin-commonjs';
7+
import json from '@rollup/plugin-json';
78
import resolve from '@rollup/plugin-node-resolve';
9+
import replace from '@rollup/plugin-replace';
810
import copy from 'rollup-plugin-copy';
11+
import { terser } from 'rollup-plugin-terser';
12+
13+
import pkg from './package.json';
14+
15+
const isProd = process.env.BUILD === 'prod';
16+
const isDev = process.env.BUILD === 'dev';
917

1018
export default [
1119
{
12-
input: './src/index.ts',
20+
input: './src/main.ts',
1321
output: [
1422
{
1523
file: './dist/app.js',
1624
format: 'iife',
25+
globals: {
26+
'pixi.js': 'PIXI',
27+
},
1728
},
1829
],
1930

2031
plugins: [
21-
resolve({ browser: true, preferBuiltins: false }),
32+
resolve({ base: 'src', browser: true, preferBuiltins: false }),
33+
replace({
34+
__VERSION__: JSON.stringify(pkg.version),
35+
}),
2236
typescript({}),
2337
commonjs({
2438
namedExports: {
2539
'node_modules/pixi.js/lib/pixi.es.js': ['sound'],
2640
},
2741
}),
2842
scss(),
29-
html({ template: './src/index.html' }),
43+
html({ template: './src/index.html', inject: false }),
44+
isProd && terser(),
3045
copy({
3146
targets: [
3247
{
@@ -35,8 +50,10 @@ export default [
3550
},
3651
],
3752
}),
38-
serve('dist/'),
39-
livereload(),
53+
isDev && serve('dist/'),
54+
isDev && livereload(),
4055
],
56+
// Don't bundle PIXI -- coming via CDN in index.html
57+
external: ['pixi.js'],
4158
},
4259
];

src/assets/favicon.ico

15 KB
Binary file not shown.
1.04 MB
Binary file not shown.

0 commit comments

Comments
 (0)