diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b7dab5e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+build
\ No newline at end of file
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..0b98632
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,4 @@
+{
+ "indent": 4,
+ "esversion": 6
+}
diff --git a/app/canvas.js b/app/canvas.js
new file mode 100644
index 0000000..80dc4b7
--- /dev/null
+++ b/app/canvas.js
@@ -0,0 +1,49 @@
+(function() {
+
+ 'use strict';
+
+
+ let Canvas = function(container, width, height) {
+
+ this.container = container;
+ this.width = width;
+ this.height = height;
+ this.images = {};
+
+ /* canvas element */
+ let canvas = document.createElement('canvas');
+ canvas.setAttribute('width', this.width);
+ canvas.setAttribute('height', this.height);
+ canvas.setAttribute('id', 'canvas');
+ this.container.appendChild(canvas);
+ this.context = canvas.getContext("2d");
+
+ /* load images */
+ const requireImages = function (requireContext) {
+ return requireContext.keys().reduce(function(accumulator, filename) {
+ let framename = filename.match(/\.\/(\S+)\.png$/)[1];
+ accumulator[framename] = requireContext(filename);
+ return accumulator;
+ }, {});
+ };
+ this.images = requireImages(require.context("../assets/images", true, /\.png$/));
+
+ };
+
+ Canvas.prototype.showImage = function(name) {
+
+ if (!(name in this.images)) {
+ throw new Error('image ' + name + ' unknown');
+ }
+
+ var image = new Image();
+ image.onload = () => {
+ this.context.drawImage(image, 0, 0);
+ };
+ image.src = this.images[name];
+
+ };
+
+ module.exports = Canvas;
+
+})();
\ No newline at end of file
diff --git a/app/index.js b/app/index.js
new file mode 100644
index 0000000..e44dff8
--- /dev/null
+++ b/app/index.js
@@ -0,0 +1,14 @@
+(function() {
+
+ 'use strict';
+
+ require('../assets/style.css');
+
+ const scenes = require('./scenes.json');
+ const Canvas = require('./canvas');
+
+ let canvas = new Canvas(document.getElementById("canvasDiv"), 512, 272);
+
+ canvas.show('room');
+
+})();
diff --git a/app/scenes.json b/app/scenes.json
new file mode 100644
index 0000000..2b6ee24
--- /dev/null
+++ b/app/scenes.json
@@ -0,0 +1,71 @@
+{
+ "vaginal": {
+ "frames": [
+ {
+ "name": "vaginal_initial",
+ "images": [
+ "room",
+ "vaginal_base",
+ "vaginal_frame1"
+ ]
+ },
+ {
+ "name": "vaginal_frame1",
+ "images": [
+ "vaginal_frame1"
+ ]
+ },
+ {
+ "name": "vaginal_frame2",
+ "images": [
+ "vaginal_frame2"
+ ]
+ },
+ {
+ "name": "vaginal_balloon_venho",
+ "images": [
+ "vaginal_balloon_venho"
+ ]
+ }
+ ],
+ "scene": [
+ {
+ "frame": "vaginal_initial",
+ "duration": 750
+ },
+ [
+ {
+ "repeat": 19
+ },
+ {
+ "frame": "vaginal_frame1",
+ "duration": 750
+ },
+ {
+ "frame": "vaginal_frame2",
+ "duration": 750
+ }
+ ],
+ {
+ "frame": "vaginal_balloon_venho"
+ },
+ [
+ {
+ "repeat": 6
+ },
+ {
+ "frame": "vaginal_frame1",
+ "duration": 750
+ },
+ {
+ "frame": "vaginal_frame2",
+ "duration": 750
+ }
+ ],
+ {
+ "frame": "vaginal_initial",
+ "duration": 2500
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/anal_balloon_aaaa.png b/assets/images/anal_balloon_aaaa.png
old mode 100755
new mode 100644
similarity index 100%
rename from anal_balloon_aaaa.png
rename to assets/images/anal_balloon_aaaa.png
diff --git a/anal_balloon_clear.png b/assets/images/anal_balloon_clear.png
old mode 100755
new mode 100644
similarity index 100%
rename from anal_balloon_clear.png
rename to assets/images/anal_balloon_clear.png
diff --git a/anal_balloon_grosso.png b/assets/images/anal_balloon_grosso.png
old mode 100755
new mode 100644
similarity index 100%
rename from anal_balloon_grosso.png
rename to assets/images/anal_balloon_grosso.png
diff --git a/anal_base.png b/assets/images/anal_base.png
old mode 100755
new mode 100644
similarity index 100%
rename from anal_base.png
rename to assets/images/anal_base.png
diff --git a/anal_frame1.png b/assets/images/anal_frame1.png
old mode 100755
new mode 100644
similarity index 100%
rename from anal_frame1.png
rename to assets/images/anal_frame1.png
diff --git a/anal_frame2.png b/assets/images/anal_frame2.png
old mode 100755
new mode 100644
similarity index 100%
rename from anal_frame2.png
rename to assets/images/anal_frame2.png
diff --git a/balloon_anal.png b/assets/images/balloon_anal.png
old mode 100755
new mode 100644
similarity index 100%
rename from balloon_anal.png
rename to assets/images/balloon_anal.png
diff --git a/balloon_choose.png b/assets/images/balloon_choose.png
old mode 100755
new mode 100644
similarity index 100%
rename from balloon_choose.png
rename to assets/images/balloon_choose.png
diff --git a/balloon_oral.png b/assets/images/balloon_oral.png
old mode 100755
new mode 100644
similarity index 100%
rename from balloon_oral.png
rename to assets/images/balloon_oral.png
diff --git a/balloon_vaginal.png b/assets/images/balloon_vaginal.png
old mode 100755
new mode 100644
similarity index 100%
rename from balloon_vaginal.png
rename to assets/images/balloon_vaginal.png
diff --git a/hero.png b/assets/images/hero.png
old mode 100755
new mode 100644
similarity index 100%
rename from hero.png
rename to assets/images/hero.png
diff --git a/oral_balloon_chupa.png b/assets/images/oral_balloon_chupa.png
old mode 100755
new mode 100644
similarity index 100%
rename from oral_balloon_chupa.png
rename to assets/images/oral_balloon_chupa.png
diff --git a/oral_base.png b/assets/images/oral_base.png
old mode 100755
new mode 100644
similarity index 100%
rename from oral_base.png
rename to assets/images/oral_base.png
diff --git a/oral_frame1.png b/assets/images/oral_frame1.png
old mode 100755
new mode 100644
similarity index 100%
rename from oral_frame1.png
rename to assets/images/oral_frame1.png
diff --git a/oral_frame2.png b/assets/images/oral_frame2.png
old mode 100755
new mode 100644
similarity index 100%
rename from oral_frame2.png
rename to assets/images/oral_frame2.png
diff --git a/room.png b/assets/images/room.png
old mode 100755
new mode 100644
similarity index 100%
rename from room.png
rename to assets/images/room.png
diff --git a/vaginal_balloon_venho.png b/assets/images/vaginal_balloon_venho.png
old mode 100755
new mode 100644
similarity index 100%
rename from vaginal_balloon_venho.png
rename to assets/images/vaginal_balloon_venho.png
diff --git a/vaginal_base.png b/assets/images/vaginal_base.png
old mode 100755
new mode 100644
similarity index 100%
rename from vaginal_base.png
rename to assets/images/vaginal_base.png
diff --git a/vaginal_frame1.png b/assets/images/vaginal_frame1.png
old mode 100755
new mode 100644
similarity index 100%
rename from vaginal_frame1.png
rename to assets/images/vaginal_frame1.png
diff --git a/vaginal_frame2.png b/assets/images/vaginal_frame2.png
old mode 100755
new mode 100644
similarity index 100%
rename from vaginal_frame2.png
rename to assets/images/vaginal_frame2.png
diff --git a/whore.png b/assets/images/whore.png
old mode 100755
new mode 100644
similarity index 100%
rename from whore.png
rename to assets/images/whore.png
diff --git a/index.html b/assets/index.hbs
old mode 100755
new mode 100644
similarity index 50%
rename from index.html
rename to assets/index.hbs
index b726e9d..a87090e
--- a/index.html
+++ b/assets/index.hbs
@@ -1,25 +1,18 @@
-
-
-
- Paradise Café
-
-
-
-
-
-
-
-
- Teclas:
-
-
c - anal
-
f - vaginal
-
b - oral
-
-
-
-
-
+
+
+
+ Paradise Café
+
+
+
+
+
+ Teclas:
+
+
c - anal
+
f - vaginal
+
b - oral
+
+
+
\ No newline at end of file
diff --git a/paradise.css b/assets/style.css
old mode 100755
new mode 100644
similarity index 92%
rename from paradise.css
rename to assets/style.css
index 7ae1936..0646986
--- a/paradise.css
+++ b/assets/style.css
@@ -1,17 +1,17 @@
-body {
- background-color: #0000C8;
- color: #FFF;
-}
-
-div.main {
- border-style: solid;
- border-color: #C80000;
- height: 272px;
-}
-
-div.center {
- width: 512px;
- padding: 0;
- margin: 0 auto;
-}
-
+body {
+ background-color: #0000C8;
+ color: #FFF;
+}
+
+div.main {
+ border-style: solid;
+ border-color: #C80000;
+ height: 272px;
+}
+
+div.center {
+ width: 512px;
+ padding: 0;
+ margin: 0 auto;
+}
+
diff --git a/excanvas.js b/excanvas.js
deleted file mode 100755
index 597ed5c..0000000
--- a/excanvas.js
+++ /dev/null
@@ -1,924 +0,0 @@
-// Copyright 2006 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-
-// Known Issues:
-//
-// * Patterns are not implemented.
-// * Radial gradient are not implemented. The VML version of these look very
-// different from the canvas one.
-// * Clipping paths are not implemented.
-// * Coordsize. The width and height attribute have higher priority than the
-// width and height style values which isn't correct.
-// * Painting mode isn't implemented.
-// * Canvas width/height should is using content-box by default. IE in
-// Quirks mode will draw the canvas using border-box. Either change your
-// doctype to HTML5
-// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
-// or use Box Sizing Behavior from WebFX
-// (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html)
-// * Non uniform scaling does not correctly scale strokes.
-// * Optimize. There is always room for speed improvements.
-
-// Only add this code if we do not already have a canvas implementation
-if (!document.createElement('canvas').getContext) {
-
-(function() {
-
- // alias some functions to make (compiled) code shorter
- var m = Math;
- var mr = m.round;
- var ms = m.sin;
- var mc = m.cos;
- var abs = m.abs;
- var sqrt = m.sqrt;
-
- // this is used for sub pixel precision
- var Z = 10;
- var Z2 = Z / 2;
-
- /**
- * This funtion is assigned to the