diff --git a/game/love_src/asset/image/book/StoryMode.png b/game/love_src/asset/image/book/StoryMode.png
deleted file mode 100644
index 34c42f4..0000000
Binary files a/game/love_src/asset/image/book/StoryMode.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook.png b/game/love_src/asset/image/book/StoryModeBook.png
deleted file mode 100644
index ab27944..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook11.png b/game/love_src/asset/image/book/StoryModeBook11.png
deleted file mode 100644
index 544d671..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook11.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook16.png b/game/love_src/asset/image/book/StoryModeBook16.png
deleted file mode 100644
index 749c209..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook16.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook2.png b/game/love_src/asset/image/book/StoryModeBook2.png
deleted file mode 100644
index bd0dfab..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook2.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook3.png b/game/love_src/asset/image/book/StoryModeBook3.png
deleted file mode 100644
index d36aaad..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook3.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook4.png b/game/love_src/asset/image/book/StoryModeBook4.png
deleted file mode 100644
index 749c209..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook4.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook5.png b/game/love_src/asset/image/book/StoryModeBook5.png
deleted file mode 100644
index c66f873..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook5.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook6.png b/game/love_src/asset/image/book/StoryModeBook6.png
deleted file mode 100644
index 2a1a397..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook6.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook7.png b/game/love_src/asset/image/book/StoryModeBook7.png
deleted file mode 100644
index 140c11a..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook7.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook8.png b/game/love_src/asset/image/book/StoryModeBook8.png
deleted file mode 100644
index d3f5bdb..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook8.png and /dev/null differ
diff --git a/game/love_src/asset/image/book/StoryModeBook9.png b/game/love_src/asset/image/book/StoryModeBook9.png
deleted file mode 100644
index 544d671..0000000
Binary files a/game/love_src/asset/image/book/StoryModeBook9.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/LICENSE b/game/love_src/asset/image/sample/javascript-racer-master/LICENSE
deleted file mode 100644
index efec39d..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012, 2013, 2014, 2015, 2016 Jake Gordon and contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-===============================================================================
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/README.md b/game/love_src/asset/image/sample/javascript-racer-master/README.md
deleted file mode 100644
index b765bff..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/README.md
+++ /dev/null
@@ -1,111 +0,0 @@
-Javascript Pseudo 3D Racer
-==========================
-
-An Outrun-style pseudo-3d racing game in HTML5 and Javascript
-
- * [play the game](https://jakesgordon.com/games/racer/)
- * view the [source](https://github.com/jakesgordon/javascript-racer)
- * read about [how it works](https://jakesgordon.com/writing/javascript-racer/)
-
-Incrementally built up in 4 parts:
-
- * play the [straight road demo](https://jakesgordon.com/games/racer/v1-straight/)
- * play the [curves demo](https://jakesgordon.com/games/racer/v2-curves/)
- * play the [hills demo](https://jakesgordon.com/games/racer/v3-hills/)
- * play the [final version](https://jakesgordon.com/games/racer/)
-
-With detailed descriptions of how each part works:
-
- * read more about [v1 - straight roads](https://jakesgordon.com/writing/javascript-racer-v1-straight/)
- * read more about [v2 - curves](https://jakesgordon.com/writing/javascript-racer-v2-curves/)
- * read more about [v3 - hills](https://jakesgordon.com/writing/javascript-racer-v3-hills/)
- * read more about v4 - final (coming soon)
-
-A note on performance
-=====================
-
-The performance of this game is **very** machine/browser dependent. It works quite well in modern
-browsers, especially those with GPU canvas acceleration, but a bad graphics driver can kill it stone
-dead. So your mileage may vary. There are controls provided to change the rendering resolution
-and the draw distance to scale to fit your machine.
-
-Currently supported browsers include:
-
- * Firefox (v12+) works great, 60fps at high res - Nice!
- * Chrome (v19+) works great, 60fps at high res... provided you dont have a bad GPU driver
- * IE9 - ok, 30fps at medium res... not great, but at least it works
-
-The current state of mobile browser performance is pretty dismal. Dont expect this to be playable on
-any mobile device.
-
->> _NOTE: I havent actually spent anytime optimizing for performance yet. So it might be possible to
- make it play well on older browsers, but that's not really what this project is about._
-
-A note on code structure
-========================
-
-This project happens to be implemented in javascript (because its easy for prototyping) but
-is not intended to demonstrate javascript techniques or best practices. In fact, in order to
-keep it simple to understand it embeds the javascript for each example directly in the HTML
-page (horror!) and, even worse, uses global variables and functions (OMG!).
-
-If I was building a real game I would have much more structure and organization to the
-code, but since its just a racing game tech demo, I have elected to [KISS](http://en.wikipedia.org/wiki/KISS_principle).
-
-FUTURE
-======
-
-It's quite astounding what it takes to actually [finish](https://jakesgordon.com/writing/defining-finished/)
-a game, even a simple one. And this is not a project that I plan on polishing into a finished state. It should
-really be considered just how to get started with a pseudo-3d racing game.
-
-If we were to try to turn it into a real game we would have to consider:
-
- * car sound fx
- * better synchronized music
- * full screen mode
- * HUD fx (flash on fastest lap, confetti, color coded speedometer, etc)
- * more accurate sprite collision
- * better car AI (steering, braking etc)
- * an actual crash when colliding at high speed
- * more bounce when car is off road
- * screen shake when off-road or collision
- * throw up dirt particles when off road
- * more dynamic camera (lower at faster speed, swoop over hills etc)
- * automatic resolution & drawDistance detection
- * projection based curves ? x,y rotation
- * sub-pixel aliasing artifacts on curves
- * smarter fog to cover sprites (blue against sky, cover sprites)
- * multiple stages, different maps
- * a lap map, with current position indicator
- * road splits and joins
- * day/night cycle
- * weather effects
- * tunnels, bridges, clouds, walls, buildings
- * city, desert, ocean
- * add city of seattle and space needle to background
- * 'bad guys' - add some competetor drivers to race against as well as the 'traffic'
- * different game modes - fastest lap, 1-on-1 racing, collect coins ? shoot bad guys ?
- * a whole lot of gameplay tuning
- * ...
- * ...
-
-Related Links
-=============
-
- * [Lou's Pseudo-3d Page](http://www.extentofthejam.com/pseudo/) - high level how-to guide
- * [Racer 10k](https://github.com/onaluf/RacerJS) - another javascript racing game
-
-License
-=======
-
-[MIT](http://en.wikipedia.org/wiki/MIT_License) license.
-
->> NOTE: the music tracks included in this project are royalty free resources paid for and licensed
-from [Lucky Lion Studios](http://luckylionstudios.com/). They are licensed ONLY for use in this
-project and should not be reproduced.
-
->> NOTE: the sprite graphics are placeholder graphics [borrowed](http://pixel.garoux.net/game/44) from the old
-genesis version of outrun and used here as teaching examples. If there are any pixel artists out there who want to
-provide original art to turn this into a real game please get in touch!
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/Rakefile b/game/love_src/asset/image/sample/javascript-racer-master/Rakefile
deleted file mode 100644
index c02a1df..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/Rakefile
+++ /dev/null
@@ -1,36 +0,0 @@
-
-desc 'recreate sprite sheets'
-task 'resprite' do
- require 'sprite_factory'
-
- SpriteFactory.run!('images/sprites', :layout => :packed, :output_style => 'images/sprites.js', :margin => 5, :nocomments => true) do |images|
- SpriteHelper.javascript_style("SPRITES", images)
- end
-
- SpriteFactory.run!('images/background', :layout => :vertical, :output_style => 'images/background.js', :margin => 5, :nocomments => true) do |images|
- SpriteHelper.javascript_style("BACKGROUND", images)
- end
-
-end
-
-#------------------------------------------------------------------------------
-
-module SpriteHelper
-
- # slightly unusual use of sprite-factory to generate a javascript object structure instead of CSS attributes...
- def self.javascript_style(variable, images)
- maxname = images.keys.inject(0) {|n,key| [n,key.length].max }
- rules = []
- images.each do |name, i|
- name = name.upcase
- whitespace = ' '*(maxname-name.length)
- x = '%4d' % i[:cssx]
- y = '%4d' % i[:cssy]
- w = '%4d' % i[:cssw]
- h = '%4d' % i[:cssh]
- rules << " #{name}: #{whitespace}{ x: #{x}, y: #{y}, w: #{w}, h: #{h} }"
- end
- "var #{variable} = {\n#{rules.join(",\n")}\n};"
- end
-
-end
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/common.css b/game/love_src/asset/image/sample/javascript-racer-master/common.css
deleted file mode 100644
index 5bb2d2b..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/common.css
+++ /dev/null
@@ -1,28 +0,0 @@
-
-/****************************************/
-/* common styles used for v1 through v4 */
-/****************************************/
-
-body { font-family: Arial, Helvetica, sans-serif; }
-#stats { border: 2px solid black; }
-#controls { width: 28em; float: left; padding: 1em; font-size: 0.7em; }
-#controls th { text-align: right; vertical-align: middle; }
-#instructions { clear: left; float: left; width: 17em; padding: 1em; border: 1px solid black; box-shadow: 0 0 5px black; }
-#racer { position: relative; z-index: 0; width: 640px; height: 480px; margin-left: 20em; border: 2px solid black; }
-#canvas { position: absolute; z-index: 0; width: 640px; height: 480px; z-index: 0; background-color: #72D7EE; }
-#mute { background-position: 0px 0px; width: 32px; height: 32px; background: url(images/mute.png); display: inline-block; cursor: pointer; position: absolute; margin-left: 20em; }
-#mute.on { background-position: -32px 0px; }
-
-/**************************************************/
-/* rudimentary heads up display (only used in v4) */
-/**************************************************/
-
-#hud { position: absolute; z-index: 1; width: 640px; padding: 5px 0; font-family: Verdana, Geneva, sans-serif; font-size: 0.8em; background-color: rgba(255,0,0,0.4); color: black; border-bottom: 2px solid black; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
-#hud .hud { background-color: rgba(255,255,255,0.6); padding: 5px; border: 1px solid black; margin: 0 5px; transition-property: background-color; transition-duration: 2s; -webkit-transition-property: background-color; -webkit-transition-duration: 2s; }
-#hud #speed { float: right; }
-#hud #current_lap_time { float: left; }
-#hud #last_lap_time { float: left; display: none; }
-#hud #fast_lap_time { display: block; width: 12em; margin: 0 auto; text-align: center; transition-property: background-color; transition-duration: 2s; -webkit-transition-property: background-color; -webkit-transition-duration: 2s; }
-#hud .value { color: black; font-weight: bold; }
-#hud .fastest { background-color: rgba(255,215,0,0.5); }
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/common.js b/game/love_src/asset/image/sample/javascript-racer-master/common.js
deleted file mode 100644
index a0eb697..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/common.js
+++ /dev/null
@@ -1,414 +0,0 @@
-//=========================================================================
-// minimalist DOM helpers
-//=========================================================================
-
-var Dom = {
-
- get: function(id) { return ((id instanceof HTMLElement) || (id === document)) ? id : document.getElementById(id); },
- set: function(id, html) { Dom.get(id).innerHTML = html; },
- on: function(ele, type, fn, capture) { Dom.get(ele).addEventListener(type, fn, capture); },
- un: function(ele, type, fn, capture) { Dom.get(ele).removeEventListener(type, fn, capture); },
- show: function(ele, type) { Dom.get(ele).style.display = (type || 'block'); },
- blur: function(ev) { ev.target.blur(); },
-
- addClassName: function(ele, name) { Dom.toggleClassName(ele, name, true); },
- removeClassName: function(ele, name) { Dom.toggleClassName(ele, name, false); },
- toggleClassName: function(ele, name, on) {
- ele = Dom.get(ele);
- var classes = ele.className.split(' ');
- var n = classes.indexOf(name);
- on = (typeof on == 'undefined') ? (n < 0) : on;
- if (on && (n < 0))
- classes.push(name);
- else if (!on && (n >= 0))
- classes.splice(n, 1);
- ele.className = classes.join(' ');
- },
-
- storage: window.localStorage || {}
-
-}
-
-//=========================================================================
-// general purpose helpers (mostly math)
-//=========================================================================
-
-var Util = {
-
- timestamp: function() { return new Date().getTime(); },
- toInt: function(obj, def) { if (obj !== null) { var x = parseInt(obj, 10); if (!isNaN(x)) return x; } return Util.toInt(def, 0); },
- toFloat: function(obj, def) { if (obj !== null) { var x = parseFloat(obj); if (!isNaN(x)) return x; } return Util.toFloat(def, 0.0); },
- limit: function(value, min, max) { return Math.max(min, Math.min(value, max)); },
- randomInt: function(min, max) { return Math.round(Util.interpolate(min, max, Math.random())); },
- randomChoice: function(options) { return options[Util.randomInt(0, options.length-1)]; },
- percentRemaining: function(n, total) { return (n%total)/total; },
- accelerate: function(v, accel, dt) { return v + (accel * dt); },
- interpolate: function(a,b,percent) { return a + (b-a)*percent },
- easeIn: function(a,b,percent) { return a + (b-a)*Math.pow(percent,2); },
- easeOut: function(a,b,percent) { return a + (b-a)*(1-Math.pow(1-percent,2)); },
- easeInOut: function(a,b,percent) { return a + (b-a)*((-Math.cos(percent*Math.PI)/2) + 0.5); },
- exponentialFog: function(distance, density) { return 1 / (Math.pow(Math.E, (distance * distance * density))); },
-
- increase: function(start, increment, max) { // with looping
- var result = start + increment;
- while (result >= max)
- result -= max;
- while (result < 0)
- result += max;
- return result;
- },
-
- project: function(p, cameraX, cameraY, cameraZ, cameraDepth, width, height, roadWidth) {
- p.camera.x = (p.world.x || 0) - cameraX;
- p.camera.y = (p.world.y || 0) - cameraY;
- p.camera.z = (p.world.z || 0) - cameraZ;
- p.screen.scale = cameraDepth/p.camera.z;
- p.screen.x = Math.round((width/2) + (p.screen.scale * p.camera.x * width/2));
- p.screen.y = Math.round((height/2) - (p.screen.scale * p.camera.y * height/2));
- p.screen.w = Math.round( (p.screen.scale * roadWidth * width/2));
- },
-
- overlap: function(x1, w1, x2, w2, percent) {
- var half = (percent || 1)/2;
- var min1 = x1 - (w1*half);
- var max1 = x1 + (w1*half);
- var min2 = x2 - (w2*half);
- var max2 = x2 + (w2*half);
- return ! ((max1 < min2) || (min1 > max2));
- }
-
-}
-
-//=========================================================================
-// POLYFILL for requestAnimationFrame
-//=========================================================================
-
-if (!window.requestAnimationFrame) { // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
- window.requestAnimationFrame = window.webkitRequestAnimationFrame ||
- window.mozRequestAnimationFrame ||
- window.oRequestAnimationFrame ||
- window.msRequestAnimationFrame ||
- function(callback, element) {
- window.setTimeout(callback, 1000 / 60);
- }
-}
-
-//=========================================================================
-// GAME LOOP helpers
-//=========================================================================
-
-var Game = { // a modified version of the game loop from my previous boulderdash game - see https://jakesgordon.com/writing/javascript-boulderdash/#gameloop
-
- run: function(options) {
-
- Game.loadImages(options.images, function(images) {
-
- options.ready(images); // tell caller to initialize itself because images are loaded and we're ready to rumble
-
- Game.setKeyListener(options.keys);
-
- var canvas = options.canvas, // canvas render target is provided by caller
- update = options.update, // method to update game logic is provided by caller
- render = options.render, // method to render the game is provided by caller
- step = options.step, // fixed frame step (1/fps) is specified by caller
- stats = options.stats, // stats instance is provided by caller
- now = null,
- last = Util.timestamp(),
- dt = 0,
- gdt = 0;
-
- function frame() {
- now = Util.timestamp();
- dt = Math.min(1, (now - last) / 1000); // using requestAnimationFrame have to be able to handle large delta's caused when it 'hibernates' in a background or non-visible tab
- gdt = gdt + dt;
- while (gdt > step) {
- gdt = gdt - step;
- update(step);
- }
- render();
- stats.update();
- last = now;
- requestAnimationFrame(frame, canvas);
- }
- frame(); // lets get this party started
- Game.playMusic();
- });
- },
-
- //---------------------------------------------------------------------------
-
- loadImages: function(names, callback) { // load multiple images and callback when ALL images have loaded
- var result = [];
- var count = names.length;
-
- var onload = function() {
- if (--count == 0)
- callback(result);
- };
-
- for(var n = 0 ; n < names.length ; n++) {
- var name = names[n];
- result[n] = document.createElement('img');
- Dom.on(result[n], 'load', onload);
- result[n].src = "images/" + name + ".png";
- }
- },
-
- //---------------------------------------------------------------------------
-
- setKeyListener: function(keys) {
- var onkey = function(keyCode, mode) {
- var n, k;
- for(n = 0 ; n < keys.length ; n++) {
- k = keys[n];
- k.mode = k.mode || 'up';
- if ((k.key == keyCode) || (k.keys && (k.keys.indexOf(keyCode) >= 0))) {
- if (k.mode == mode) {
- k.action.call();
- }
- }
- }
- };
- Dom.on(document, 'keydown', function(ev) { onkey(ev.keyCode, 'down'); } );
- Dom.on(document, 'keyup', function(ev) { onkey(ev.keyCode, 'up'); } );
- },
-
- //---------------------------------------------------------------------------
-
- stats: function(parentId, id) { // construct mr.doobs FPS counter - along with friendly good/bad/ok message box
-
- var result = new Stats();
- result.domElement.id = id || 'stats';
- Dom.get(parentId).appendChild(result.domElement);
-
- var msg = document.createElement('div');
- msg.style.cssText = "border: 2px solid gray; padding: 5px; margin-top: 5px; text-align: left; font-size: 1.15em; text-align: right;";
- msg.innerHTML = "Your canvas performance is ";
- Dom.get(parentId).appendChild(msg);
-
- var value = document.createElement('span');
- value.innerHTML = "...";
- msg.appendChild(value);
-
- setInterval(function() {
- var fps = result.current();
- var ok = (fps > 50) ? 'good' : (fps < 30) ? 'bad' : 'ok';
- var color = (fps > 50) ? 'green' : (fps < 30) ? 'red' : 'gray';
- value.innerHTML = ok;
- value.style.color = color;
- msg.style.borderColor = color;
- }, 5000);
- return result;
- },
-
- //---------------------------------------------------------------------------
-
- playMusic: function() {
- var music = Dom.get('music');
- music.loop = true;
- music.volume = 0.05; // shhhh! annoying music!
- music.muted = (Dom.storage.muted === "true");
- music.play();
- Dom.toggleClassName('mute', 'on', music.muted);
- Dom.on('mute', 'click', function() {
- Dom.storage.muted = music.muted = !music.muted;
- Dom.toggleClassName('mute', 'on', music.muted);
- });
- }
-
-}
-
-//=========================================================================
-// canvas rendering helpers
-//=========================================================================
-
-var Render = {
-
- polygon: function(ctx, x1, y1, x2, y2, x3, y3, x4, y4, color) {
- ctx.fillStyle = color;
- ctx.beginPath();
- ctx.moveTo(x1, y1);
- ctx.lineTo(x2, y2);
- ctx.lineTo(x3, y3);
- ctx.lineTo(x4, y4);
- ctx.closePath();
- ctx.fill();
- },
-
- //---------------------------------------------------------------------------
-
- segment: function(ctx, width, lanes, x1, y1, w1, x2, y2, w2, fog, color) {
-
- var r1 = Render.rumbleWidth(w1, lanes),
- r2 = Render.rumbleWidth(w2, lanes),
- l1 = Render.laneMarkerWidth(w1, lanes),
- l2 = Render.laneMarkerWidth(w2, lanes),
- lanew1, lanew2, lanex1, lanex2, lane;
-
- ctx.fillStyle = color.grass;
- ctx.fillRect(0, y2, width, y1 - y2);
-
- Render.polygon(ctx, x1-w1-r1, y1, x1-w1, y1, x2-w2, y2, x2-w2-r2, y2, color.rumble);
- Render.polygon(ctx, x1+w1+r1, y1, x1+w1, y1, x2+w2, y2, x2+w2+r2, y2, color.rumble);
- Render.polygon(ctx, x1-w1, y1, x1+w1, y1, x2+w2, y2, x2-w2, y2, color.road);
-
- if (color.lane) {
- lanew1 = w1*2/lanes;
- lanew2 = w2*2/lanes;
- lanex1 = x1 - w1 + lanew1;
- lanex2 = x2 - w2 + lanew2;
- for(lane = 1 ; lane < lanes ; lanex1 += lanew1, lanex2 += lanew2, lane++)
- Render.polygon(ctx, lanex1 - l1/2, y1, lanex1 + l1/2, y1, lanex2 + l2/2, y2, lanex2 - l2/2, y2, color.lane);
- }
-
- Render.fog(ctx, 0, y1, width, y2-y1, fog);
- },
-
- //---------------------------------------------------------------------------
-
- background: function(ctx, background, width, height, layer, rotation, offset) {
-
- rotation = rotation || 0;
- offset = offset || 0;
-
- var imageW = layer.w/2;
- var imageH = layer.h;
-
- var sourceX = layer.x + Math.floor(layer.w * rotation);
- var sourceY = layer.y
- var sourceW = Math.min(imageW, layer.x+layer.w-sourceX);
- var sourceH = imageH;
-
- var destX = 0;
- var destY = offset;
- var destW = Math.floor(width * (sourceW/imageW));
- var destH = height;
-
- ctx.drawImage(background, sourceX, sourceY, sourceW, sourceH, destX, destY, destW, destH);
- if (sourceW < imageW)
- ctx.drawImage(background, layer.x, sourceY, imageW-sourceW, sourceH, destW-1, destY, width-destW, destH);
- },
-
- //---------------------------------------------------------------------------
-
- sprite: function(ctx, width, height, resolution, roadWidth, sprites, sprite, scale, destX, destY, offsetX, offsetY, clipY) {
-
- // scale for projection AND relative to roadWidth (for tweakUI)
- var destW = (sprite.w * scale * width/2) * (SPRITES.SCALE * roadWidth);
- var destH = (sprite.h * scale * width/2) * (SPRITES.SCALE * roadWidth);
-
- destX = destX + (destW * (offsetX || 0));
- destY = destY + (destH * (offsetY || 0));
-
- var clipH = clipY ? Math.max(0, destY+destH-clipY) : 0;
- if (clipH < destH)
- ctx.drawImage(sprites, sprite.x, sprite.y, sprite.w, sprite.h - (sprite.h*clipH/destH), destX, destY, destW, destH - clipH);
-
- },
-
- //---------------------------------------------------------------------------
-
- player: function(ctx, width, height, resolution, roadWidth, sprites, speedPercent, scale, destX, destY, steer, updown) {
-
- var bounce = (1.5 * Math.random() * speedPercent * resolution) * Util.randomChoice([-1,1]);
- var sprite;
- if (steer < 0)
- sprite = (updown > 0) ? SPRITES.PLAYER_UPHILL_LEFT : SPRITES.PLAYER_LEFT;
- else if (steer > 0)
- sprite = (updown > 0) ? SPRITES.PLAYER_UPHILL_RIGHT : SPRITES.PLAYER_RIGHT;
- else
- sprite = (updown > 0) ? SPRITES.PLAYER_UPHILL_STRAIGHT : SPRITES.PLAYER_STRAIGHT;
-
- Render.sprite(ctx, width, height, resolution, roadWidth, sprites, sprite, scale, destX, destY + bounce, -0.5, -1);
- },
-
- //---------------------------------------------------------------------------
-
- fog: function(ctx, x, y, width, height, fog) {
- if (fog < 1) {
- ctx.globalAlpha = (1-fog)
- ctx.fillStyle = COLORS.FOG;
- ctx.fillRect(x, y, width, height);
- ctx.globalAlpha = 1;
- }
- },
-
- rumbleWidth: function(projectedRoadWidth, lanes) { return projectedRoadWidth/Math.max(6, 2*lanes); },
- laneMarkerWidth: function(projectedRoadWidth, lanes) { return projectedRoadWidth/Math.max(32, 8*lanes); }
-
-}
-
-//=============================================================================
-// RACING GAME CONSTANTS
-//=============================================================================
-
-var KEY = {
- LEFT: 37,
- UP: 38,
- RIGHT: 39,
- DOWN: 40,
- A: 65,
- D: 68,
- S: 83,
- W: 87
-};
-
-var COLORS = {
- SKY: '#72D7EE',
- TREE: '#005108',
- FOG: '#005108',
- LIGHT: { road: '#6B6B6B', grass: '#10AA10', rumble: '#555555', lane: '#CCCCCC' },
- DARK: { road: '#696969', grass: '#009A00', rumble: '#BBBBBB' },
- START: { road: 'white', grass: 'white', rumble: 'white' },
- FINISH: { road: 'black', grass: 'black', rumble: 'black' }
-};
-
-var BACKGROUND = {
- HILLS: { x: 5, y: 5, w: 1280, h: 480 },
- SKY: { x: 5, y: 495, w: 1280, h: 480 },
- TREES: { x: 5, y: 985, w: 1280, h: 480 }
-};
-
-var SPRITES = {
- PALM_TREE: { x: 5, y: 5, w: 215, h: 540 },
- BILLBOARD08: { x: 230, y: 5, w: 385, h: 265 },
- TREE1: { x: 625, y: 5, w: 360, h: 360 },
- DEAD_TREE1: { x: 5, y: 555, w: 135, h: 332 },
- BILLBOARD09: { x: 150, y: 555, w: 328, h: 282 },
- BOULDER3: { x: 230, y: 280, w: 320, h: 220 },
- COLUMN: { x: 995, y: 5, w: 200, h: 315 },
- BILLBOARD01: { x: 625, y: 375, w: 300, h: 170 },
- BILLBOARD06: { x: 488, y: 555, w: 298, h: 190 },
- BILLBOARD05: { x: 5, y: 897, w: 298, h: 190 },
- BILLBOARD07: { x: 313, y: 897, w: 298, h: 190 },
- BOULDER2: { x: 621, y: 897, w: 298, h: 140 },
- TREE2: { x: 1205, y: 5, w: 282, h: 295 },
- BILLBOARD04: { x: 1205, y: 310, w: 268, h: 170 },
- DEAD_TREE2: { x: 1205, y: 490, w: 150, h: 260 },
- BOULDER1: { x: 1205, y: 760, w: 168, h: 248 },
- BUSH1: { x: 5, y: 1097, w: 240, h: 155 },
- CACTUS: { x: 929, y: 897, w: 235, h: 118 },
- BUSH2: { x: 255, y: 1097, w: 232, h: 152 },
- BILLBOARD03: { x: 5, y: 1262, w: 230, h: 220 },
- BILLBOARD02: { x: 245, y: 1262, w: 215, h: 220 },
- STUMP: { x: 995, y: 330, w: 195, h: 140 },
- SEMI: { x: 1365, y: 490, w: 122, h: 144 },
- TRUCK: { x: 1365, y: 644, w: 100, h: 78 },
- CAR03: { x: 1383, y: 760, w: 88, h: 55 },
- CAR02: { x: 1383, y: 825, w: 80, h: 59 },
- CAR04: { x: 1383, y: 894, w: 80, h: 57 },
- CAR01: { x: 1205, y: 1018, w: 80, h: 56 },
- PLAYER_UPHILL_LEFT: { x: 1383, y: 961, w: 80, h: 45 },
- PLAYER_UPHILL_STRAIGHT: { x: 1295, y: 1018, w: 80, h: 45 },
- PLAYER_UPHILL_RIGHT: { x: 1385, y: 1018, w: 80, h: 45 },
- PLAYER_LEFT: { x: 995, y: 480, w: 80, h: 41 },
- PLAYER_STRAIGHT: { x: 1085, y: 480, w: 80, h: 41 },
- PLAYER_RIGHT: { x: 995, y: 531, w: 80, h: 41 }
-};
-
-SPRITES.SCALE = 0.3 * (1/SPRITES.PLAYER_STRAIGHT.w) // the reference sprite width should be 1/3rd the (half-)roadWidth
-
-SPRITES.BILLBOARDS = [SPRITES.BILLBOARD01, SPRITES.BILLBOARD02, SPRITES.BILLBOARD03, SPRITES.BILLBOARD04, SPRITES.BILLBOARD05, SPRITES.BILLBOARD06, SPRITES.BILLBOARD07, SPRITES.BILLBOARD08, SPRITES.BILLBOARD09];
-SPRITES.PLANTS = [SPRITES.TREE1, SPRITES.TREE2, SPRITES.DEAD_TREE1, SPRITES.DEAD_TREE2, SPRITES.PALM_TREE, SPRITES.BUSH1, SPRITES.BUSH2, SPRITES.CACTUS, SPRITES.STUMP, SPRITES.BOULDER1, SPRITES.BOULDER2, SPRITES.BOULDER3];
-SPRITES.CARS = [SPRITES.CAR01, SPRITES.CAR02, SPRITES.CAR03, SPRITES.CAR04, SPRITES.SEMI, SPRITES.TRUCK];
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/background.js b/game/love_src/asset/image/sample/javascript-racer-master/images/background.js
deleted file mode 100644
index cae8fa6..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/images/background.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var BACKGROUND = {
- HILLS: { x: 5, y: 5, w: 1280, h: 480 },
- SKY: { x: 5, y: 495, w: 1280, h: 480 },
- TREES: { x: 5, y: 985, w: 1280, h: 480 }
-};
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/background.png b/game/love_src/asset/image/sample/javascript-racer-master/images/background.png
deleted file mode 100644
index 6590b02..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/background.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/background/background.svg b/game/love_src/asset/image/sample/javascript-racer-master/images/background/background.svg
deleted file mode 100644
index 0bbcd8d..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/images/background/background.svg
+++ /dev/null
@@ -1,1921 +0,0 @@
-
-
-
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/background/hills.png b/game/love_src/asset/image/sample/javascript-racer-master/images/background/hills.png
deleted file mode 100644
index f1d2be5..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/background/hills.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/background/sky.png b/game/love_src/asset/image/sample/javascript-racer-master/images/background/sky.png
deleted file mode 100644
index 26c332d..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/background/sky.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/background/trees.png b/game/love_src/asset/image/sample/javascript-racer-master/images/background/trees.png
deleted file mode 100644
index 57fb422..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/background/trees.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/mute.png b/game/love_src/asset/image/sample/javascript-racer-master/images/mute.png
deleted file mode 100644
index 5ee7f91..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/mute.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites.js b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites.js
deleted file mode 100644
index 2cd9324..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites.js
+++ /dev/null
@@ -1,36 +0,0 @@
-var SPRITES = {
- PALM_TREE: { x: 5, y: 5, w: 215, h: 540 },
- BILLBOARD08: { x: 230, y: 5, w: 385, h: 265 },
- TREE1: { x: 625, y: 5, w: 360, h: 360 },
- DEAD_TREE1: { x: 5, y: 555, w: 135, h: 332 },
- BILLBOARD09: { x: 150, y: 555, w: 328, h: 282 },
- BOULDER3: { x: 230, y: 280, w: 320, h: 220 },
- COLUMN: { x: 995, y: 5, w: 200, h: 315 },
- BILLBOARD01: { x: 625, y: 375, w: 300, h: 170 },
- BILLBOARD06: { x: 488, y: 555, w: 298, h: 190 },
- BILLBOARD05: { x: 5, y: 897, w: 298, h: 190 },
- BILLBOARD07: { x: 313, y: 897, w: 298, h: 190 },
- BOULDER2: { x: 621, y: 897, w: 298, h: 140 },
- TREE2: { x: 1205, y: 5, w: 282, h: 295 },
- BILLBOARD04: { x: 1205, y: 310, w: 268, h: 170 },
- DEAD_TREE2: { x: 1205, y: 490, w: 150, h: 260 },
- BOULDER1: { x: 1205, y: 760, w: 168, h: 248 },
- BUSH1: { x: 5, y: 1097, w: 240, h: 155 },
- CACTUS: { x: 929, y: 897, w: 235, h: 118 },
- BUSH2: { x: 255, y: 1097, w: 232, h: 152 },
- BILLBOARD03: { x: 5, y: 1262, w: 230, h: 220 },
- BILLBOARD02: { x: 245, y: 1262, w: 215, h: 220 },
- STUMP: { x: 995, y: 330, w: 195, h: 140 },
- SEMI: { x: 1365, y: 490, w: 122, h: 144 },
- TRUCK: { x: 1365, y: 644, w: 100, h: 78 },
- CAR03: { x: 1383, y: 760, w: 88, h: 55 },
- CAR02: { x: 1383, y: 825, w: 80, h: 59 },
- CAR04: { x: 1383, y: 894, w: 80, h: 57 },
- CAR01: { x: 1205, y: 1018, w: 80, h: 56 },
- PLAYER_UPHILL_LEFT: { x: 1383, y: 961, w: 80, h: 45 },
- PLAYER_UPHILL_STRAIGHT: { x: 1295, y: 1018, w: 80, h: 45 },
- PLAYER_UPHILL_RIGHT: { x: 1385, y: 1018, w: 80, h: 45 },
- PLAYER_LEFT: { x: 995, y: 480, w: 80, h: 41 },
- PLAYER_STRAIGHT: { x: 1085, y: 480, w: 80, h: 41 },
- PLAYER_RIGHT: { x: 995, y: 531, w: 80, h: 41 }
-};
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites.png
deleted file mode 100644
index 0b302ae..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard01.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard01.png
deleted file mode 100644
index 9c100cd..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard01.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard02.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard02.png
deleted file mode 100644
index 1db594e..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard02.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard03.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard03.png
deleted file mode 100644
index 9a43480..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard03.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard04.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard04.png
deleted file mode 100644
index abfd4b1..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard04.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard05.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard05.png
deleted file mode 100644
index c470e0d..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard05.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard06.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard06.png
deleted file mode 100644
index 0ba9efb..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard06.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard07.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard07.png
deleted file mode 100644
index 646c95b..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard07.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard08.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard08.png
deleted file mode 100644
index 50f59eb..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard08.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard09.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard09.png
deleted file mode 100644
index 976f6e5..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/billboard09.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder1.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder1.png
deleted file mode 100644
index fe98901..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder1.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder2.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder2.png
deleted file mode 100644
index 67b62f6..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder2.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder3.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder3.png
deleted file mode 100644
index 637d69a..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/boulder3.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/bush1.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/bush1.png
deleted file mode 100644
index b22d74d..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/bush1.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/bush2.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/bush2.png
deleted file mode 100644
index 61d4b3c..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/bush2.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/cactus.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/cactus.png
deleted file mode 100644
index a52df7e..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/cactus.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car01.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car01.png
deleted file mode 100644
index 8efdb84..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car01.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car02.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car02.png
deleted file mode 100644
index 54ab5a1..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car02.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car03.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car03.png
deleted file mode 100644
index dbc629e..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car03.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car04.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car04.png
deleted file mode 100644
index 611b7ab..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/car04.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/column.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/column.png
deleted file mode 100644
index 6b1e058..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/column.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/dead_tree1.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/dead_tree1.png
deleted file mode 100644
index 399c9f6..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/dead_tree1.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/dead_tree2.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/dead_tree2.png
deleted file mode 100644
index ad7e52e..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/dead_tree2.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/palm_tree.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/palm_tree.png
deleted file mode 100644
index 8044b5c..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/palm_tree.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_left.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_left.png
deleted file mode 100644
index 457d943..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_left.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_right.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_right.png
deleted file mode 100644
index ca26b0a..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_right.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_straight.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_straight.png
deleted file mode 100644
index ef1c8cd..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_straight.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_left.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_left.png
deleted file mode 100644
index 8aaa6cf..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_left.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_right.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_right.png
deleted file mode 100644
index 3e3dfdb..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_right.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_straight.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_straight.png
deleted file mode 100644
index 634d7a0..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/player_uphill_straight.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/semi.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/semi.png
deleted file mode 100644
index f679c1b..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/semi.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/stump.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/stump.png
deleted file mode 100644
index 6319df2..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/stump.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/tree1.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/tree1.png
deleted file mode 100644
index 9544094..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/tree1.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/tree2.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/tree2.png
deleted file mode 100644
index d3c8a12..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/tree2.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/truck.png b/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/truck.png
deleted file mode 100644
index d72b520..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/images/sprites/truck.png and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/index.html b/game/love_src/asset/image/sample/javascript-racer-master/index.html
deleted file mode 100644
index e61ae58..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- Javascript Racer
-
-
-
-
-
-
-
-
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/music/racer.mp3 b/game/love_src/asset/image/sample/javascript-racer-master/music/racer.mp3
deleted file mode 100644
index 15a5c83..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/music/racer.mp3 and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/music/racer.ogg b/game/love_src/asset/image/sample/javascript-racer-master/music/racer.ogg
deleted file mode 100644
index d85ddfe..0000000
Binary files a/game/love_src/asset/image/sample/javascript-racer-master/music/racer.ogg and /dev/null differ
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/stats.js b/game/love_src/asset/image/sample/javascript-racer-master/stats.js
deleted file mode 100644
index e9fa9c6..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/stats.js
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
- * @author mrdoob / http://mrdoob.com/
- */
-
-var Stats = function () {
-
- var startTime = Date.now(), prevTime = startTime;
- var ms = 0, msMin = 1000, msMax = 0;
- var fps = 0, fpsMin = 1000, fpsMax = 0;
- var frames = 0, mode = 0;mode
- var container = document.createElement( 'div' );
- container.id = 'stats';
- container.addEventListener( 'mousedown', function ( event ) { event.preventDefault(); setMode( ++ mode % 2 ) }, false );
- container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer';
-
- var fpsDiv = document.createElement( 'div' );
- fpsDiv.id = 'fps';
- fpsDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#002';
- container.appendChild( fpsDiv );
-
- var fpsText = document.createElement( 'div' );
- fpsText.id = 'fpsText';
- fpsText.style.cssText = 'color:#0ff;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
- fpsText.innerHTML = 'FPS';
- fpsDiv.appendChild( fpsText );
-
- var fpsGraph = document.createElement( 'div' );
- fpsGraph.id = 'fpsGraph';
- fpsGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0ff';
- fpsDiv.appendChild( fpsGraph );
-
- while ( fpsGraph.children.length < 74 ) {
-
- var bar = document.createElement( 'span' );
- bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#113';
- fpsGraph.appendChild( bar );
-
- }
-
- var msDiv = document.createElement( 'div' );
- msDiv.id = 'ms';
- msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#020;display:none';
- container.appendChild( msDiv );
-
- var msText = document.createElement( 'div' );
- msText.id = 'msText';
- msText.style.cssText = 'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
- msText.innerHTML = 'MS';
- msDiv.appendChild( msText );
-
- var msGraph = document.createElement( 'div' );
- msGraph.id = 'msGraph';
- msGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0f0';
- msDiv.appendChild( msGraph );
-
- while ( msGraph.children.length < 74 ) {
-
- var bar = document.createElement( 'span' );
- bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#131';
- msGraph.appendChild( bar );
-
- }
-
- var setMode = function ( value ) {
-
- mode = value;
-
- switch ( mode ) {
-
- case 0:
- fpsDiv.style.display = 'block';
- msDiv.style.display = 'none';
- break;
- case 1:
- fpsDiv.style.display = 'none';
- msDiv.style.display = 'block';
- break;
- }
-
- }
-
- var updateGraph = function ( dom, value ) {
-
- var child = dom.appendChild( dom.firstChild );
- child.style.height = value + 'px';
-
- }
-
- return {
-
- domElement: container,
-
- setMode: setMode,
-
- current: function() { return fps; },
-
- begin: function () {
-
- startTime = Date.now();
-
- },
-
- end: function () {
-
- var time = Date.now();
-
- ms = time - startTime;
- msMin = Math.min( msMin, ms );
- msMax = Math.max( msMax, ms );
-
- msText.textContent = ms + ' MS (' + msMin + '-' + msMax + ')';
- updateGraph( msGraph, Math.min( 30, 30 - ( ms / 200 ) * 30 ) );
-
- frames ++;
-
- if ( time > prevTime + 1000 ) {
-
- fps = Math.round( ( frames * 1000 ) / ( time - prevTime ) );
- fpsMin = Math.min( fpsMin, fps );
- fpsMax = Math.max( fpsMax, fps );
-
- fpsText.textContent = fps + ' FPS (' + fpsMin + '-' + fpsMax + ')';
- updateGraph( fpsGraph, Math.min( 30, 30 - ( fps / 100 ) * 30 ) );
-
- prevTime = time;
- frames = 0;
-
- }
-
- return time;
-
- },
-
- update: function () {
-
- startTime = this.end();
-
- }
-
- }
-
-};
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/v1.straight.html b/game/love_src/asset/image/sample/javascript-racer-master/v1.straight.html
deleted file mode 100644
index 112a7b0..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/v1.straight.html
+++ /dev/null
@@ -1,314 +0,0 @@
-
-
-
-
- Javascript Racer - v1 (straight)
-
-
-
-
-
-
-
-
-
-
Use the arrow keys to drive the car.
-
-
-
-
- Loading...
-
-
-
-
-
-
-
-
-
-
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/v2.curves.html b/game/love_src/asset/image/sample/javascript-racer-master/v2.curves.html
deleted file mode 100644
index 0ef0915..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/v2.curves.html
+++ /dev/null
@@ -1,387 +0,0 @@
-
-
-
-
- Javascript Racer - v2 (curves)
-
-
-
-
-
-
-
-
-
-
Use the arrow keys to drive the car.
-
-
-
-
- Loading...
-
-
-
-
-
-
-
-
-
-
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/v3.hills.html b/game/love_src/asset/image/sample/javascript-racer-master/v3.hills.html
deleted file mode 100644
index 1881035..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/v3.hills.html
+++ /dev/null
@@ -1,419 +0,0 @@
-
-
-
-
- Javascript Racer - v3 (hills)
-
-
-
-
-
-
-
-
-
-
Use the arrow keys to drive the car.
-
-
-
-
- Loading...
-
-
-
-
-
-
-
-
-
-
diff --git a/game/love_src/asset/image/sample/javascript-racer-master/v4.final.html b/game/love_src/asset/image/sample/javascript-racer-master/v4.final.html
deleted file mode 100644
index 81d6935..0000000
--- a/game/love_src/asset/image/sample/javascript-racer-master/v4.final.html
+++ /dev/null
@@ -1,688 +0,0 @@
-
-
-
-
- Javascript Racer - v4 (final)
-
-
-
-
-
-
-
-
-
-
Use the arrow keys to drive the car.
-
-
-
-
- 0 mph
- Time: 0.0
- Last Lap: 0.0
- Fastest Lap: 0.0
-
-
- Loading...
-
-
-
-
-
-
-
-
-
-
-
diff --git a/game/love_src/asset/video/1_intro.ogv b/game/love_src/asset/video/1_intro.ogv
deleted file mode 100644
index f79380d..0000000
Binary files a/game/love_src/asset/video/1_intro.ogv and /dev/null differ
diff --git a/game/love_src/data/character/light_novel.lua b/game/love_src/data/character/light_novel.lua
deleted file mode 100644
index b30bcbd..0000000
--- a/game/love_src/data/character/light_novel.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-return {
-
-}
diff --git a/game/love_src/data/map/segment.json b/game/love_src/data/map/segment.json
deleted file mode 100644
index b34da57..0000000
--- a/game/love_src/data/map/segment.json
+++ /dev/null
@@ -1,82 +0,0 @@
-[
- {
- "enter": 1,
- "hold" : 1,
- "leave": 90,
- "curve": 9,
- "height": 80,
- "width" : 3000
- },
- {
- "enter": 25,
- "hold" : 25,
- "leave": 25,
- "curve": 0,
- "height": 0,
- "width" : 1000
- },
- {
- "enter": 50,
- "hold" : 50,
- "leave": 50,
- "curve": 2,
- "height": 0,
- "width" : 2000
- },
- {
- "enter": 50,
- "hold" : 50,
- "leave": 50,
- "curve": 2,
- "height": 20,
- "width" : 2000
- },
- {
- "enter": 100,
- "hold" : 100,
- "leave": 100,
- "curve": 4,
- "height": 40,
- "width" : 4000
- },
- {
- "enter": 50,
- "hold" : 50,
- "leave": 50,
- "curve": 0,
- "height": 0,
- "width" : 1000
- },
- {
- "enter": 50,
- "hold" : 50,
- "leave": 50,
- "curve": 6,
- "height": 60,
- "width" : 3000
- },
- {
- "enter": 50,
- "hold" : 50,
- "leave": 50,
- "curve": 0,
- "height": 60,
- "width" : 2000
- },
- {
- "enter": 50,
- "hold" : 50,
- "leave": 50,
- "curve": 0,
- "height": 20,
- "width" : 3000
- },
- {
- "enter": 100,
- "hold" : 100,
- "leave": 100,
- "curve": 0,
- "height": -280,
- "width" : 4000
- }
-]
diff --git a/game/love_src/data/map/sprites.json b/game/love_src/data/map/sprites.json
deleted file mode 100644
index b89a207..0000000
--- a/game/love_src/data/map/sprites.json
+++ /dev/null
@@ -1,17 +0,0 @@
-[
- {
- "index" : 200,
- "texture" : "love_src/asset/image/sample/javascript-racer-master/images/sprites/column.png",
- "offset" : -0.1
- },
- {
- "index" : 200,
- "texture" : "love_src/asset/image/sample/javascript-racer-master/images/sprites/cactus.png",
- "offset" : 4
- },
- {
- "index" : 150,
- "texture" : "love_src/asset/image/sample/javascript-racer-master/images/sprites/stump.png",
- "offset" : 0
- }
-]
diff --git a/game/love_src/src/entities/racing/racer.lua b/game/love_src/src/entities/racing/racer.lua
deleted file mode 100644
index ec25927..0000000
--- a/game/love_src/src/entities/racing/racer.lua
+++ /dev/null
@@ -1,55 +0,0 @@
-local racing = require("love_src.src.system.racing_phy")
-
-local entity = {}
-
-entity.__index = entity
-
-function entity.load(actor, finish)
- local self = setmetatable({}, entity)
- self.data = {
- pos = {0, 100, 0},
- color = {255/255, 255/255, 255/255},
-
- actor = actor,
-
- race = {
- speed = 0.0,
- accel = 10.0,
- },
-
- finish = finish
- }
- return self
-end
-
-function entity:update(dt)
- if (self.data.pos[1] > self.data.finish[1]) then
- self.data.pos[1] = 0
- self.data.race.speed = 0
- self.data.race.accel = 10.0
- end
- self.data.race.speed = racing.accelerate(dt, 1, self.data.race.speed, self.data.actor.data.max_speed, self.data.race.accel)
- -- self:accel(dt)
- self.data.pos[1] = self.data.pos[1] + self.data.race.speed * dt
-end
-
--- function entity:accel(dt)
--- if (self.data.current_accel <= self.data.actor.data.accel) then
--- self.data.current_accel = self.data.current_accel + dt
--- end
--- if (self.data.current_speed <= self.data.actor.data.max_speed) then
--- self.data.current_speed = self.data.current_speed + self.data.current_accel * dt
--- end
--- end
-
-function entity:draw()
- love.graphics.push()
- love.graphics.setColor(self.data.color[1], self.data.color[2], self.data.color[3])
- love.graphics.points(self.data.pos[1], self.data.pos[2])
- love.graphics.print(self.data.race.speed, self.data.pos[1], self.data.pos[2])
- -- love.graphics.print(string.format("Current Accel : %s", self.data.current_accel), 0, 40)
- love.graphics.pop()
- self.data.actor:draw()
-end
-
-return entity
diff --git a/game/love_src/src/entities/raising/trainee.lua b/game/love_src/src/entities/raising/trainee.lua
deleted file mode 100644
index c7f8cb1..0000000
--- a/game/love_src/src/entities/raising/trainee.lua
+++ /dev/null
@@ -1,41 +0,0 @@
-local entity = {}
-
-entity.__index = entity
-
-function entity.load(actor)
- local self = setmetatable({}, entity)
- self.data = {
- actor = actor,
-
- increase_max_speed = 1,
- increase_accel = 1
- }
- return self
-end
-
-function entity:update(dt)
-
-end
-
-function entity:draw()
- love.graphics.push()
- love.graphics.print(string.format("[(a)-Max Speed+(d)] : %s", self.data.increase_max_speed), 0, 40)
- love.graphics.print(string.format("[(q)-Accel+(e)] : %s", self.data.increase_accel), 0, 60)
- love.graphics.pop()
- self.data.actor:draw()
-end
-
-function entity:keyreleased(key, scancode)
- if (key == "a") then
- self.data.actor.data.max_speed = self.data.actor.data.max_speed - self.data.increase_max_speed
- elseif (key == "d") then
- self.data.actor.data.max_speed = self.data.actor.data.max_speed + self.data.increase_max_speed
- elseif (key == "q") then
- self.data.actor.data.accel = self.data.actor.data.accel - self.data.increase_accel
- elseif (key == "e") then
- self.data.actor.data.accel = self.data.actor.data.accel + self.data.increase_accel
- end
-end
-
-
-return entity
diff --git a/game/love_src/src/entities/shared/actor.lua b/game/love_src/src/entities/shared/actor.lua
deleted file mode 100644
index 075c1d3..0000000
--- a/game/love_src/src/entities/shared/actor.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local entity = {}
-
-entity.__index = entity
-
-_data = {
- name = "p1",
-
- max_speed = 100.0,
- accel = 2.0,
- grip = 2.0,
- brake = 2.0,
-
- ui = {0, 0}
-}
-
-function entity.load(data)
- local self = setmetatable({}, entity)
- self.data = data or _data
- return self
-end
-
-function entity:update(dt)
-end
-
-function entity:draw()
- love.graphics.push()
- love.graphics.print(string.format("Name : %s", self.data.name, self.data.ui[1], self.data.ui[2]))
- love.graphics.print(string.format("Max Speed : %s", self.data.max_speed), self.data.ui[1], self.data.ui[2] + 20)
- love.graphics.print(string.format("Accel : %s", self.data.accel),self.data.ui[1], self.data.ui[2] + 40)
- love.graphics.print(string.format("Grip : %s", self.data.grip), self.data.ui[1], self.data.ui[2] + 60)
- love.graphics.print(string.format("Brake : %s", self.data.brake), self.data.ui[1], self.data.ui[2] + 80)
- love.graphics.pop()
-end
-
-
-
-return entity
diff --git a/game/love_src/src/modes/mode.lua b/game/love_src/src/modes/mode.lua
deleted file mode 100644
index 52cc2da..0000000
--- a/game/love_src/src/modes/mode.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-local mode = {}
-
-
-function mode.load(player)
-
-end
-
-function mode.update(dt)
-end
-
-function mode.draw()
-end
-
-function mode.keyreleased(key, scancode)
-end
-
-function mode.keypressed(key, scancode, isrepeat)
-end
-
-function mode.mousereleased(x, y, button, istouch, presses)
-end
-
-
-return mode
diff --git a/game/love_src/src/modes/racing.lua b/game/love_src/src/modes/racing.lua
deleted file mode 100644
index e02b05b..0000000
--- a/game/love_src/src/modes/racing.lua
+++ /dev/null
@@ -1,80 +0,0 @@
-local slick = require("love_src.lib.slick")
-
-local racer = require("love_src.src.entities.racing.racer")
-local player = require("love_src.src.entities.shared.actor").load()
-
-local mode = {}
-
-local finish = {100, 100, 0}
-
-local time = 0
-
-
-local w, h = 800, 600
-
-function mode:load()
- self.entities = {}
- self.level = {}
- self.world = slick.newWorld(w, h, {
- quadTreeX = 0,
- quadTreeY = 0
- })
-
- local new_racer = racer.load(player, finish)
-
- self.world:add(new_racer, 200, 500, slick.newCircleShape(0, 0, 16))
-
- table.insert(self.entities, new_racer)
-
- self.world:add(self.level, 0, 0, slick.newShapeGroup(
- -- Boxes surrounding the map
- slick.newRectangleShape(0, 0, w, 8), -- top
- slick.newRectangleShape(0, 0, 8, h), -- left
- slick.newRectangleShape(w - 8, 0, 8, h), -- right
- slick.newRectangleShape(0, h - 8, w, 8), -- bottom
- -- Triangles in corners
- slick.newPolygonShape({ 8, h - h / 8, w / 4, h - 8, 8, h - 8 }),
- slick.newPolygonShape({ w - w / 4, h, w - 8, h / 2, w - 8, h }),
- -- Convex shape
- slick.newPolygonMeshShape({ w / 2 + w / 4, h / 4, w / 2 + w / 4 + w / 8, h / 4 + h / 8, w / 2 + w / 4, h / 4 + h / 4, w / 2 + w / 4 + w / 16, h / 4 + h / 8 })
- ))
-end
-
-local function movePlayer(p, dt)
- local goalX, goalY = p.x + dt * p.velocityX, p.y + dt * p.velocityY
- p.x, p.y = world:move(p, goalX, goalY)
-end
-
-function mode:update(dt)
- for _,e in pairs(self.entities) do
- e:update(dt)
-
- -- local goalX, goalY = w / 2, -1000
-
- -- local actualX, actualY, collisions, count = self.world:move(e, goalX, goalY, function(item, other, shape, otherShape)
- -- return "slide"
- -- end)
- -- print(actualX, actualY)
- -- movePlayer(e, dt)
- end
- time = time + dt
-end
-
-function mode:draw()
- for _,e in pairs(self.entities) do
- e:draw()
- end
- slick.drawWorld(self.world)
- love.graphics.print(time, love.graphics.getWidth() / 2, love.graphics.getHeight()/ 2)
-end
-
-function mode:keyreleased(key, scancode)
-end
-
-function mode:keypressed(key, scancode, isrepeat)
-end
-
-function mode:mousereleased(x, y, button, istouch, presses)
-end
-
-return mode
diff --git a/game/love_src/src/modes/raising_sim.lua b/game/love_src/src/modes/raising_sim.lua
deleted file mode 100644
index f9c3d17..0000000
--- a/game/love_src/src/modes/raising_sim.lua
+++ /dev/null
@@ -1,31 +0,0 @@
-
-local trainee = require("love_src.src.entities.raising.trainee")
-
-local mode = {}
-
-local entities = {}
-
-function mode.load(player)
- entities.trainee = trainee.load(player)
-end
-
-function mode.update(dt)
- entities.trainee:update(dt)
-end
-
-function mode.draw()
- entities.trainee:draw()
-end
-
-function mode.keyreleased(key, scancode)
- entities.trainee:keyreleased(key, scancode)
-end
-
-function mode.keypressed(key, scancode, isrepeat)
-end
-
-function mode.mousereleased(x, y, button, istouch, presses)
-end
-
-
-return mode
diff --git a/game/love_src/src/system/racing_phy.lua b/game/love_src/src/system/racing_phy.lua
deleted file mode 100644
index 25f482d..0000000
--- a/game/love_src/src/system/racing_phy.lua
+++ /dev/null
@@ -1,58 +0,0 @@
-local function accelerate(dt, gas_input, speed, max_speed, accel, min_speed)
- if (min_speed == nil) then
- min_speed = 0
- end
- local new_speed = speed + accel * dt * gas_input
- if (new_speed >= max_speed) then
- new_speed = max_speed
- elseif (new_speed <= min_speed) then
- new_speed = min_speed
- elseif(new_speed <= -max_speed) then
- new_speed = -max_speed
- end
- return new_speed
-end
-
-local function centrifugal_force(dt, mass, speed, max_speed)
- local speed_percent = (speed/max_speed)
- local dx = dt * 2 * speed_percent
- local dy = dt * 2 * speed_percent
- return mass * dy * speed * speed
-end
-
-local function drift(dt, pos_x, pos_y, speed, max_speed, angle, scale_x, scale_y)
- local speed_percent = (speed/max_speed)
- local dx = dt * 2.0 * speed_percent -- at top speed, should be able to cross from left to right (-1 to 1) in 1 second
- local dy = dt * 2.0 * speed_percent
- cos = math.cos(angle)
- sin = math.sin(angle)
-
- return pos_x + (dx * speed_percent * cos) * (scale_x or 1),
- pos_y + (dy * speed_percent * sin) * (scale_y or 1)
-end
-
--- local function gas(accel, drag, friction)
--- friction = friction or 0
--- return accel - drag - friction
--- end
-
--- local function brake(decel, drag, grip, friction)
--- friction = friction or 0
--- return - decel - drag - grip - friction
--- end
-
--- local function roam(decel, drag, friction)
--- friction = friction or 0
--- return - decel - drag - friction
--- end
-
--- local function steer(_steer, grip, drag, velocity, friction)
--- friction = friction or 0
--- return _steer + grip + drag - velocity + friction
--- end
-
-return {
- accelerate = accelerate,
- drift = drift,
- centrifugal_force = centrifugal_force
-}
diff --git a/game/love_src/src/world/1_intro/init.lua b/game/love_src/src/world/1_intro/init.lua
deleted file mode 100644
index b14ed21..0000000
--- a/game/love_src/src/world/1_intro/init.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local reap = require("lib.reap")
-
-local BASE = reap.base_path(...)
-
-local world = require("love_src.wrapper.Concord.world")
-
-local debug_entity = require("love_src.src.world.common.template.debug_entity")
-local button = require("love_src.src.world.common.template.button")
-local video = require("love_src.src.world.common.template.video")
-local c_video = require("love_src.src.world.common.component.video")
-local wm = require("world_map")
-
-local wrapper = world:extend()
-
-local function button_func()
- load_world(wm["2_town_square"])
-end
-
-function wrapper:new()
- wrapper.super.new(self, BASE, ".1_intro")
-end
-
-function wrapper:load(_args)
- wrapper.super.load(self, {
- "love_src/src/world/common/system/"
- }, {
- {
- assemblage = debug_entity.assembleDebug,
- data = {
- position = {0, 0},
- label = "1_intro"
- }
- },
- {
- assemblage = button.assemble,
- data = {
- collider = {
- x = 20,
- y = 20,
- w = 20,
- h = 20
- },
- func = button_func,
- label = "skip"
- }
- },
- {
- assemblage = video.assemble,
- data = {
- path = "love_src/asset/video/1_intro.ogv"
- }
- }
- })
-end
-
-function wrapper:update(dt)
- wrapper.super.update(self, dt)
- for k, v in pairs(self.entities) do
- local c_v = v[c_video.dict.video]
- if c_v ~= nil then
- if (not c_v.data.video:isPlaying()) then
- load_world(wm["2_town_square"])
- end
- end
- end
-end
-
-return wrapper
diff --git a/game/love_src/src/world/2_town_square/component/perspective.lua b/game/love_src/src/world/2_town_square/component/perspective.lua
deleted file mode 100644
index 822bf08..0000000
--- a/game/love_src/src/world/2_town_square/component/perspective.lua
+++ /dev/null
@@ -1,69 +0,0 @@
-local components = {}
-
-components.dict = {
- resolution = "perspective.resolution",
- lanes = "perspective.lanes",
- draw_distance = "perspective.draw_distance",
- road_width = "perspective.road_width",
- fog_density = "perspective.fog_density",
-
- field_of_view = "perspective.field_of_view",
- camera_height = "perspective.camera_height",
-
- segment_length = "perspective.segment_length",
- segment_count = "perspective.segment_count",
- rumble_length = "perspective.rumble_length",
-
- segment_path = "perspective.segment_path",
- segment_sprite_map_path = "perspective.segment_sprite_map_path"
-}
-
-function components.resolution (c, x, y)
- c.data = {love.graphics.getDimensions()}
-end
-
-function components.lanes (c, x)
- c.data = x
-end
-
-function components.draw_distance (c, x)
- c.data = x
-end
-
-function components.road_width (c, x)
- c.data = x
-end
-
-function components.fog_density (c, x)
- c.data = x
-end
-
-function components.field_of_view (c, x)
- c.data = x
-end
-
-function components.camera_height (c, x)
- c.data = x
-end
-
-function components.segment_length (c, x)
- c.data = x
-end
-
-function components.segment_count (c, x)
- c.data = x
-end
-
-function components.rumble_length (c, x)
- c.data = x
-end
-
-function components.segment_path (c, x)
- c.data = x
-end
-
-function components.segment_sprite_map_path (c, x)
- c.data = x
-end
-
-return components
diff --git a/game/love_src/src/world/2_town_square/component/pos3d.lua b/game/love_src/src/world/2_town_square/component/pos3d.lua
deleted file mode 100644
index 4ea4347..0000000
--- a/game/love_src/src/world/2_town_square/component/pos3d.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-local vm = require("lib.vornmath")
-
-local components = {}
-
-components.dict = {
- pos = "pos3d.pos"
-}
-
-function components.pos (c, x, y, z)
- c.data = vm.vec3({x, y, z})
-end
-
-return components
diff --git a/game/love_src/src/world/2_town_square/init.lua b/game/love_src/src/world/2_town_square/init.lua
deleted file mode 100644
index 10367f4..0000000
--- a/game/love_src/src/world/2_town_square/init.lua
+++ /dev/null
@@ -1,37 +0,0 @@
-local reap = require("lib.reap")
-
-local BASE = reap.base_path(...)
-
-local world = require("love_src.wrapper.Concord.world")
-
-local debug_entity = require("love_src.src.world.common.template.debug_entity")
-local road = require("love_src.src.world.2_town_square.template.road")
-
-local wm = require("world_map")
-
-local wrapper = world:extend()
-
-function wrapper:new()
- wrapper.super.new(self, BASE, ".2_town_square")
-end
-
-function wrapper:load(_args)
- wrapper.super.load(self, {
- "love_src/src/world/common/system/",
- "love_src/src/world/2_town_square/system"
- }, {
- {
- assemblage = debug_entity.assembleDebug,
- data = {
- position = {0, 0},
- label = "2_town_square"
- }
- },
- {
- assemblage = road.assemble,
- data = road.default_data
- },
- })
-end
-
-return wrapper
diff --git a/game/love_src/src/world/2_town_square/pseudo3d/collide.lua b/game/love_src/src/world/2_town_square/pseudo3d/collide.lua
deleted file mode 100644
index adf8b3d..0000000
--- a/game/love_src/src/world/2_town_square/pseudo3d/collide.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local utils = {}
-
-function utils.overlap(x1, w1, x2, w2, percent)
- local half = (percent or 1)/2;
- local min1 = x1 - (w1*half);
- local max1 = x1 + (w1*half);
- local min2 = x2 - (w2*half);
- local max2 = x2 + (w2*half);
- return not ((max1 < min2) or (min1 > max2));
-end
-
-return utils
diff --git a/game/love_src/src/world/2_town_square/pseudo3d/ease.lua b/game/love_src/src/world/2_town_square/pseudo3d/ease.lua
deleted file mode 100644
index 60c2943..0000000
--- a/game/love_src/src/world/2_town_square/pseudo3d/ease.lua
+++ /dev/null
@@ -1,55 +0,0 @@
-local vm = require("lib.vornmath")
-
-local utils = {}
-
-function utils.easeIn(a,b,percent)
- return a + (b-a)*math.pow(percent,2);
-end
-
-function utils.easeOut(a,b,percent)
- return a + (b-a)*(1-math.pow(1-percent,2));
-end
-
-function utils.easeInOut(a,b,percent)
- return a + (b-a)*((-math.cos(percent*math.pi)/2) + 0.5);
-end
-
-function utils.percentRemaining(n, total)
- return (n%total)/total;
-end
-
-function utils.interpolate(a, b, percent)
- return a + (b-a)*percent
-end
-
-function utils.randomInt(min, max)
- return vm.round(utils.interpolate(min, max, math.random()));
-end
-
-function utils.randomChoice(options)
- return options[utils.randomInt(1, #options)]
-end
-
-function utils.limit(value, min, max)
- return math.max(min, math.min(value, max))
-end
-
-function utils.accelerate(v, accel, dt)
- return v + (accel * dt)
-end
-
-function utils.exponentialFog(distance, density)
- return 1 / (math.exp(distance * distance * density))
-end
-
-function utils.increase(start, increment, max, is_loop) -- with looping
- local result = start + increment
- if (result > max) and is_loop then
- result = 1
- elseif result <= 0 and is_loop then
- result = max - 1
- end
- return result
-end
-
-return utils
diff --git a/game/love_src/src/world/2_town_square/pseudo3d/render/road.lua b/game/love_src/src/world/2_town_square/pseudo3d/render/road.lua
deleted file mode 100644
index ace58b7..0000000
--- a/game/love_src/src/world/2_town_square/pseudo3d/render/road.lua
+++ /dev/null
@@ -1,89 +0,0 @@
-local ease = require("love_src.src.world.2_town_square.pseudo3d.ease")
-
-local utils = {}
-
-local function drawQuad(slice, image, quads, x1, y1, x2, y2, w1, w2, h1, h2, sw, sh)
- for i = 1, #quads do
- local percent = ease.percentRemaining(i, #quads)
- local destY = ease.interpolate(y1, y2, percent)
- local destX = ease.interpolate(x1, x2, percent)
- local destW = ease.interpolate(w1, w2, percent)
- local destH = ease.interpolate(h1, h2, percent)
-
- if (slice == "vertical") then
- love.graphics.draw(image,quads[i],
- destX, destY, 0, destW / sw, 1
- )
- elseif (slice == "horizontal") then
- love.graphics.draw(image,quads[i],
- destX, destY, 0, 1, destH / sh
- )
- end
- end
-end
-
-local function drawSection(texture, key, x1, y1, x2, y2, w1, w2, h1, h2, resolution)
- local image = texture[key].image
- local quads = texture[key].quads
-
- local sw, sh = image:getDimensions()
-
- if (key == "floor") then
- drawQuad("vertical", image, quads,
- x1, y1,
- x2, y2,
- w1, w2,
- h1, h2,
- sw, sh
- )
- elseif (key == "ceil") then
- drawQuad("vertical", image, quads,
- x1, -y1 + resolution[2]/2,
- x2, -y2 + resolution[2]/2,
- w1, w2,
- h1, h2,
- sw, sh
- )
- elseif (key == "wallL") then
- drawQuad("horizontal", image, quads,
- x1, -y1 + h1,
- x2, -y2 + h2,
- w1, w2,
- h1, h2,
- sw, sh
- )
- elseif (key == "wallR") then
- drawQuad("horizontal", image, quads,
- x1 + w1, -y1,
- x2 + w2, -y2,
- w1, w2,
- h1 + y1,
- h2 + y2,
- sw, sh
- )
- end
-end
-
-function utils.draw(p1screenpos, p2screenpos, p1screensize, p2screensize, texture, resolution, maxy)
- local x1 = p1screenpos[1]
- local y1 = p1screenpos[2]
- local x2 = p2screenpos[1]
- local y2 = p2screenpos[2]
-
- local w1 = p1screensize[1]
- local w2 = p2screensize[1]
-
- local h1 = (y1)
- local h2 = (y2)
-
- local x1e = x1 + w1
- local x2e = x2 + w2
-
- drawSection(texture, "wallL", x1 , y1, x2, y2, w1, w2, h1, h2, resolution)
- drawSection(texture, "wallR", x1 , y1, x2, y2, w1, w2, h1, h2, resolution)
- drawSection(texture, "floor", x1 , y1, x2, y2, w1, w2, h1, h2, resolution)
- drawSection(texture, "ceil", x1 , y1, x2, y2, w1, w2, h1, h2, resolution)
-
-end
-
-return utils
diff --git a/game/love_src/src/world/2_town_square/pseudo3d/render/sprite.lua b/game/love_src/src/world/2_town_square/pseudo3d/render/sprite.lua
deleted file mode 100644
index 43409dc..0000000
--- a/game/love_src/src/world/2_town_square/pseudo3d/render/sprite.lua
+++ /dev/null
@@ -1,72 +0,0 @@
-local projection = require("lib.choro.projection")
-
-local UV = require("engine.utils.obj3d.texture.uv")
-local quadToUV = UV.quadToUV
-local imageToUV = UV.imageToUV
-
-local QuadCache = require("engine.cache.loveapi.quadcache").obj
-
-local utils = {}
-
-function utils.drawstatic(segment, roadWidth, resolution)
- -- render roadside sprites
- local w2 = resolution[1]/2
- for i = 1, #segment.sprites do
- local sprite = segment.sprites[i].source;
- local spriteoffset = segment.sprites[i].offset;
-
- local spritePath = segment.sprites[i].data.path;
- local spriteType = segment.sprites[i].data.type;
- local spriteState = segment.sprites[i].data.state;
-
- local quad
- local img
- if (spriteType == "aseprite") then
- img = sprite.image
- quad = sprite.frame.quad
- else
- img = sprite
- quad = QuadCache:load(spritePath, 0, 0, 1, 1, img:getWidth(), img:getHeight(), spriteType)
- end
-
- local u, v, nu, nv = quadToUV(quad)
-
- local spriteScale = segment.p1.screen.scale;
- local spriteX = segment.p1.screen.pos.x + (spriteScale * spriteoffset * roadWidth * w2);
- local spriteY = segment.p1.screen.pos.y;
-
- local offsetX
- if (spriteoffset < 0) then
- offsetX = -1
- else
- offsetX = 0
- end
- local offsetY = -1
-
- -- scale for projection AND relative to roadWidth (for tweakUI)
- local destW = (img:getWidth() * spriteScale * w2) * (projection.getSpriteScale(resolution[1]/3) * roadWidth);
- local destH = (img:getHeight() * spriteScale * w2) * (projection.getSpriteScale(resolution[1]/3) * roadWidth);
-
- local destX = spriteX + (destW * (offsetX or 0));
- local destY = spriteY + (destH * (offsetY or 0));
-
- local clipH = 0;
- if (segment.clip) then
- clipH = math.max(0, destY+destH-segment.clip)
- end
-
- if (clipH < destH) then
- local _nv = nv - (nv * clipH/destH)
-
- local _destH = destH - clipH
-
- local _quad = quad
- if (_nv ~= nv) then
- _quad = QuadCache:load(spritePath, u, v, nu, _nv, img:getWidth(), img:getHeight(), spriteType, spriteState)
- end
- love.graphics.draw(img, _quad, destX, destY, 0, destW, _destH)
- end
- end
-end
-
-return utils
diff --git a/game/love_src/src/world/2_town_square/pseudo3d/render/uv.lua b/game/love_src/src/world/2_town_square/pseudo3d/render/uv.lua
deleted file mode 100644
index 70546b9..0000000
--- a/game/love_src/src/world/2_town_square/pseudo3d/render/uv.lua
+++ /dev/null
@@ -1,37 +0,0 @@
---- get texture UV
----@param x number y
----@param y number x
----@param frameSizeX number size Frame X
----@param frameSizeY number size Frame Y
----@param sw number size Width
----@param sh number size Height
----@return number, number, number, number
-local function getUV(x, y, frameSizeX, frameSizeY, sw, sh)
- return
- x / sw,
- y / sh,
- (x + 1 * frameSizeX) / sw,
- (y + 1 * frameSizeY) / sh
-end
-
---- get uv from quad
----@param quad love.Quad
-local function quadToUV(quad)
- local sw, sh = quad:getTextureDimensions()
- local x, y, w, h = quad:getViewport()
- local u, v, nu, nv = getUV(x, y, w, h, sw, sh)
- return u, v, nu, nv
-end
-
---- get uv from image
----@param image love.Image
-local function imageToUV(image)
- local u, v, nu, nv = getUV(0, 0, image:getWidth(), image:getHeight(),image:getWidth(), image:getHeight())
- return u, v, nu, nv
-end
-
-return {
- getUV = getUV,
- imageToUV = imageToUV,
- quadToUV = quadToUV
-}
diff --git a/game/love_src/src/world/2_town_square/pseudo3d/roadsegment.lua b/game/love_src/src/world/2_town_square/pseudo3d/roadsegment.lua
deleted file mode 100644
index f34775e..0000000
--- a/game/love_src/src/world/2_town_square/pseudo3d/roadsegment.lua
+++ /dev/null
@@ -1,332 +0,0 @@
-local reap = require("lib.reap")
-
-local BASE = reap.base_path(...)
-
-local easeFN = require(BASE .. ".ease")
-local json = require("lib.json")
-local QuadCache = require("love_src.wrapper.lappy.new.quad").obj
-local ImageCache = require("love_src.wrapper.lappy.new.image").obj
-
-local utils = {}
-
-local function loadJSON(path)
- local data = json.decode(love.filesystem.read(path))
- return data
-end
-
-local ROAD = {
- LENGTH= { NONE= 0, SHORT= 25, MEDIUM= 50, LONG= 100 }, -- num segments
- HILL= { NONE= 0, LOW= 20, MEDIUM= 40, HIGH= 60 },
- CURVE= { NONE= 0, EASY= 2, MEDIUM= 4, HARD= 6 }
-};
-
--- function utils.getRumbleColor(index, rumbleLength)
--- local colorDark = hex2color("#1a1d33")
--- local colorBright = hex2color("#c8d0fa")
--- if (math.floor(index/rumbleLength)%2 == 0) then
--- return colorBright
--- else
--- return colorDark
--- end
--- end
-
--- function utils.getFinishStartColor()
--- local colorDark = hex2color("#CCFFCC")
--- local colorBright = hex2color("#FFCCFF")
-
--- return colorDark, colorBright
--- end
-
-local function lastY(segments)
- if (#segments == 0) then
- return 0
- else
- return segments[#segments].p2.world.y
- end
-end
-
-local function lastWidth(segments, fallback)
- if (#segments == 0) then
- return fallback
- else
- return segments[#segments].p2.world.w
- end
-end
-
-function utils.findSegment(zPosition, segments, segmentLength)
- local index = (math.floor(zPosition/segmentLength) % #segments) + 1
- if (index >= #segments) then
- index = #segments
- end
- return segments[index];
-end
-
---- add quad and image
----@param path string
----@param slice "horizontal" | "vertical"
----@param w1 number
----@param w2 number
-function utils.addQuads(path, slice, w1, w2)
- local image = ImageCache:load_to(path, path)
-
- local sw, sh = image:getDimensions()
-
- local quads = {}
- if (slice == "vertical") then
- for i = 0, sh - 1 do
- local percent = easeFN.percentRemaining(i, sh - 1)
- local destW = easeFN.interpolate(w1, w2, percent)
- table.insert(quads,
- QuadCache:load_to(string.format("%s_%s_%s_%s_%s_%s_%s",
- path, 0, i, sw, 1, sw, sh),
- 0, i, sw, 1, sw, sh)
- )
- end
- elseif (slice == "horizontal") then
- for i = 0, sw - 1 do
- local percent = easeFN.percentRemaining(i, sw - 1)
- local destH = easeFN.interpolate(w1, w2, percent)
- table.insert(quads,
- QuadCache:load_to(
- string.format("%s_%s_%s_%s_%s_%s_%s",
- path, i, 0, 1, sh, sw, sh),
- i, 0, 1, sh, sw, sh)
- )
- end
- end
- return quads, image
-end
-
---- add new segment to segments
----@param segments any
----@param segmentLength number z coord length
----@param rumbleLength number for debug purpose only
----@param curve number curve degree
----@param y number height
----@param width number
----@return table segment it's basically part that are drawn
-function utils.addSegment(segments, segmentLength, rumbleLength, curve, y, width)
- local index = #segments
-
- local w1 = lastWidth(segments, width)
- local w2 = width
-
- local y1 = lastY(segments)
- local y2 = y
-
- local fQuads, fImage = utils.addQuads("love_src/asset/image/sample/javascript-racer-master/images/sprites/column.png", "vertical", w1, w2)
- local cQuads, cImage = utils.addQuads("love_src/asset/image/sample/javascript-racer-master/images/sprites/column.png", "vertical", w1, w2)
-
- local lQuads, lImage = utils.addQuads("love_src/asset/image/sample/javascript-racer-master/images/sprites/column.png", "horizontal", y1, y2)
- local rQuads, rImage = utils.addQuads("love_src/asset/image/sample/javascript-racer-master/images/sprites/column.png", "horizontal", y1, y2)
-
- return {
- --- index for seeking
- index= index + 1,
- --- part 1 start
- p1 = {
- world =
- {
- w = w1,
- y = y1,
- z = index * segmentLength,
- },
- camera = {},
- screen = {}
- },
- --- part 2 end
- p2 = {
- world = {
- w = w2,
- y = y2,
- z = (index+1)* segmentLength,
- },
- camera = {},
- screen = {}
- },
- --- curve to follow along
- curve = curve,
- sprites= {},
- ---p1 -> p2 quads
- texture = {
- floor = {
- image = fImage,
- quads = fQuads
- },
- ceil = {
- image = cImage,
- quads = cQuads
- },
- wallL = {
- image = lImage,
- quads = lQuads
- },
- wallR = {
- image = rImage,
- quads = rQuads
- },
- }
- }
-end
-
-function utils.addRoad(segments, segmentLength, rumbleLength, enter, hold, leave, curve, y, roadWidth)
- local startY = lastY(segments);
- local endY = startY + ((y or 0) * segmentLength);
-
- local startWidth = lastWidth(segments, (roadWidth or 0));
- local endWidth = (roadWidth or 0)
-
- local total = enter + hold + leave;
- for n = 1, enter do
- table.insert(
- segments,
- utils.addSegment(
- segments,
- segmentLength,
- rumbleLength,
- easeFN.easeIn(0, curve, n/enter),
- easeFN.easeInOut(startY, endY, n/total),
- easeFN.easeInOut(startWidth, endWidth, n/total)
- )
- )
- end
- for n = 1, hold do
- table.insert(
- segments,
- utils.addSegment(
- segments,
- segmentLength,
- rumbleLength,
- curve,
- easeFN.easeInOut(startY, endY, (enter + n)/total),
- easeFN.easeInOut(startWidth, endWidth, (enter + n)/total)
- )
- )
- end
- for n = 1, leave do
- table.insert(
- segments,
- utils.addSegment(
- segments,
- segmentLength,
- rumbleLength,
- easeFN.easeInOut(curve, 0, n/leave),
- easeFN.easeInOut(startY, endY, (enter+hold+n)/total),
- easeFN.easeInOut(startWidth, endWidth, (enter + hold + n)/total)
- )
- )
- end
- return segments
-end
-
-function utils.addStraight(segments, segmentLength, rumbleLength, num)
- num = num or ROAD.LENGTH.MEDIUM;
- return utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, 0, 2000);
-end
-
-function utils.addHill(segments, segmentLength, rumbleLength, num, height)
- num = num or ROAD.LENGTH.MEDIUM;
- height = height or ROAD.HILL.MEDIUM;
- return utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, 0, height, 2000);
-end
-
-function utils.addCurve(segments, segmentLength, rumbleLength, num, curve, height)
- num = num or ROAD.LENGTH.MEDIUM;
- curve = curve or ROAD.CURVE.MEDIUM;
- height = height or ROAD.HILL.NONE;
- return utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, curve, height, 2000);
-end
-
-function utils.addLowRollingHills(segments, segmentLength, rumbleLength, num, height)
- num = num or ROAD.LENGTH.SHORT;
- height = height or ROAD.HILL.LOW;
- utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, 0, height/2, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, 0, -height, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, 0, height, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, 0, 0, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, 0, height/2, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, 0, 0, 2000);
- return segments
-end
-
-function utils.addSCurves(segments, segmentLength, rumbleLength)
- utils.addRoad(segments, segmentLength, rumbleLength, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, -ROAD.CURVE.EASY, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, ROAD.CURVE.MEDIUM, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, ROAD.CURVE.EASY, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, -ROAD.CURVE.EASY, 2000);
- utils.addRoad(segments, segmentLength, rumbleLength, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, ROAD.LENGTH.MEDIUM, -ROAD.CURVE.MEDIUM, 2000);
- return segments
-end
-
-function utils.addDownhillToEnd(segments, segmentLength, rumbleLength, num)
- num = num or 200;
- utils.addRoad(segments, segmentLength, rumbleLength, num, num, num, -ROAD.CURVE.EASY, -lastY(segments)/segmentLength, 2000);
- return segments
-end
-
-function utils.resetCars(cars, segments, segmentLength, totalCars, maxSpeed)
- local n, car, segment, offset, z, sprite, speed;
- for n = 0, totalCars do
- offset = math.random() * easeFN.randomChoice({-0.8, 0.8});
- z = math.floor(math.random() * segments.length) * segmentLength;
- sprite = easeFN.randomChoice({
- ImageCache:load_to("asset/image/sample/javascript-racer-master/images/sprites/bush1.png",
- "asset/image/sample/javascript-racer-master/images/sprites/bush1.png")
- });
-
- speed = maxSpeed/4 + math.random() * maxSpeed;
- car = { offset = offset, z = z, sprite = sprite, speed = speed };
- segment = utils.findSegment(car.z, segments, segmentLength);
- table.insert(segment.cars, car);
- table.insert(cars, car);
- end
-end
-
-function utils.loadRoad(segments, segmentLength, rumbleLength, path)
- local segmentData = loadJSON(path)
- for _, v in ipairs(segmentData) do
- local enter = v.enter
- local hold = v.hold
- local leave = v.leave
- local curve = v.curve
- local height = v.height
- local width = v.width
- utils.addRoad(segments, segmentLength, rumbleLength, enter, hold, leave, curve, height, width);
- end
-end
-
-function utils.resetRoad(path, pathSprite, segmentLength, rumbleLength, playerZ)
- local segments = {}
- utils.loadRoad(segments, segmentLength, rumbleLength, path)
- if (pathSprite) then
- utils.loadSpriteMapData(segments, pathSprite);
- end
- local trackLength = #segments * segmentLength;
- return segments, trackLength
-end
-
-function utils.loadSpriteMapData(segments, path)
- local segmentData = loadJSON(path)
- for _, v in ipairs(segmentData) do
- local index = v.index
- local texture = v.texture
- local offset = v.offset
- utils.addSprite(segments, index, ImageCache:load_to(texture, texture), offset, texture);
- end
-end
-
-function utils.addSprite(segments, index, sprite, offset, key)
- table.insert(segments[index].sprites, {
- source= sprite,
- offset= offset,
- data = {}
- })
- local _sIndex = #segments[index].sprites
- segments[index].sprites[_sIndex].data = {
- path = key,
- type = "static"
- }
-end
-
-
-return utils
diff --git a/game/love_src/src/world/2_town_square/system/perspective.lua b/game/love_src/src/world/2_town_square/system/perspective.lua
deleted file mode 100644
index f1f3894..0000000
--- a/game/love_src/src/world/2_town_square/system/perspective.lua
+++ /dev/null
@@ -1,252 +0,0 @@
-local system_constructor = require("love_src.wrapper.Concord.system")
-
-local roadsegment = require("love_src.src.world.2_town_square.pseudo3d.roadsegment")
-
-local perspective = require("love_src.src.world.2_town_square.component.perspective")
-local pos3d = require("love_src.src.world.2_town_square.component.pos3d")
-
-local projection = require("lib.choro.projection")
-local ease = require("love_src.src.world.2_town_square.pseudo3d.ease")
-local vm = require("lib.vornmath")
-local roaddraw = require("love_src.src.world.2_town_square.pseudo3d.render.road")
-
-local system = {}
-
-system.__index = system
-
-system.pool = {
- pool = {
- perspective.dict.camera_height,
- perspective.dict.draw_distance,
- perspective.dict.field_of_view,
- perspective.dict.fog_density,
- perspective.dict.lanes,
- perspective.dict.resolution,
- perspective.dict.road_width,
- perspective.dict.rumble_length,
- perspective.dict.segment_count,
- perspective.dict.segment_length,
- perspective.dict.segment_path,
- perspective.dict.segment_sprite_map_path,
-
- pos3d.dict.pos,
- }
-}
-
-system.components = {
- [perspective.dict.camera_height] = perspective.camera_height,
- [perspective.dict.draw_distance] = perspective.draw_distance,
- [perspective.dict.field_of_view] = perspective.field_of_view,
- [perspective.dict.fog_density] = perspective.fog_density,
- [perspective.dict.lanes] = perspective.lanes,
- [perspective.dict.resolution] = perspective.resolution,
- [perspective.dict.road_width] = perspective.road_width,
- [perspective.dict.rumble_length] = perspective.rumble_length,
- [perspective.dict.segment_count] = perspective.segment_count,
- [perspective.dict.segment_length] = perspective.segment_length,
- [perspective.dict.segment_path] = perspective.segment_path,
- [perspective.dict.segment_sprite_map_path] = perspective.segment_sprite_map_path,
-
- [pos3d.dict.pos] = pos3d.pos,
-}
-function system.new()
- local new_system = system_constructor.new("perspective", system.pool)
- if (new_system) then
- for k, v in pairs(system) do
- new_system[k] = v
- end
- return new_system
- else
- return nil
- end
-end
-
-function system:load()
- for _, e in ipairs(self.pool) do
- local segment_path = e[perspective.dict.segment_path].data
- local segment_sprite_map_path = e[perspective.dict.segment_sprite_map_path].data
- local segment_length = e[perspective.dict.segment_length].data
- local rumble_length = e[perspective.dict.rumble_length].data
-
- local player_y = e[pos3d.dict.pos].data
-
- local segments, track_length = roadsegment.resetRoad(segment_path, segment_sprite_map_path, segment_length, rumble_length, scroll)
- -- entityBuilder.setComponent(e, "segments", segments)
- -- entityBuilder.setComponent(e, "track_length", track_length)
-
- local field_of_view = e[perspective.dict.field_of_view].data
- local camera_height = e[perspective.dict.camera_height].data
- local camera_depth = projection.distanceCamToProjection(field_of_view)
- local player_z = camera_depth * camera_height
-
- e[pos3d.dict.pos].data[3] = player_z
-
- e.segments = segments
- e.track_length = track_length
-
- e.camera_depth = camera_depth
- end
-end
-
-function system:update(dt)
- for _, e in ipairs(self.pool) do
- if love.keyboard.isDown("up") then
- e[pos3d.dict.pos].data[3] = e[pos3d.dict.pos].data[3] + 1000 * dt
- elseif love.keyboard.isDown("down") then
- e[pos3d.dict.pos].data[3] = e[pos3d.dict.pos].data[3] - 1000 * dt
- end
- if love.keyboard.isDown("left") then
- e[pos3d.dict.pos].data[1] = e[pos3d.dict.pos].data[1] - 1 * dt
- elseif love.keyboard.isDown("right") then
- e[pos3d.dict.pos].data[1] = e[pos3d.dict.pos].data[1] + 1 * dt
- end
- if love.keyboard.isDown("w") then
- e[pos3d.dict.pos].data[2] = e[pos3d.dict.pos].data[2] + 1000 * dt
- elseif love.keyboard.isDown("s") then
- e[pos3d.dict.pos].data[2] = e[pos3d.dict.pos].data[2] - 1000 * dt
-
- end
- end
-end
-
-local function drawRoad(
- zPosition, drawDistance,
- segments,
- segment_length, track_length,
- playerX, cameraHeight, cameraDepth,
- resolution, lanes,
- playerZ, fogDensity
-)
- if (zPosition == 0) then
- zPosition = 1
- end
- local baseSegment = roadsegment.findSegment(zPosition, segments, segment_length);
- local basePercent = ease.percentRemaining(zPosition, segment_length);
-
- local playerSegment = roadsegment.findSegment(zPosition + playerZ, segments, segment_length);
- local playerPercent = ease.percentRemaining(zPosition+playerZ, segment_length);
- local playerY = ease.interpolate(playerSegment.p1.world.y, playerSegment.p2.world.y, playerPercent);
- local maxy = resolution[2];
-
- local x = 0;
- local dx = - ((baseSegment.curve or 0) * basePercent);
-
- local n, segment;
- for n = 0, drawDistance do
- local index = (baseSegment.index + n) % #segments
-
- if (index >= #segments) then
- index = n + 1
- elseif (index <= 0) then
- index = #segments - (n + 1)
- end
-
- segment = segments[index];
- local loopPos = 0
- if (segment.index < baseSegment.index) then
- loopPos = track_length
- end
-
- local p1Width = segment.p1.world.w
- local p2Width = segment.p2.world.w
-
- local camera1 = vm.vec3({
- (playerX * p1Width) - x, --x
- playerY + cameraHeight, --y
- zPosition - loopPos --z
- })
-
- local camera2 = vm.vec3({
- (playerX * p2Width) - x - dx, --x
- playerY + cameraHeight, --y
- zPosition - loopPos --z
- })
-
- segment.fog = ease.exponentialFog(n/drawDistance, fogDensity);
- segment.clip = maxy
-
- local p1cam, p1screenpos, p1screensize = projection.projectWorldToCam({
- segment.p1.world.w,
- segment.p1.world.y,
- segment.p1.world.z
- }, camera1, cameraDepth, resolution, {
- p1Width,
- 1
- });
- local p2cam, p2screenpos, p2screensize = projection.projectWorldToCam({
- segment.p2.world.w,
- segment.p2.world.y,
- segment.p2.world.z
- }, camera2, cameraDepth, resolution, {
- p2Width,
- 1
- });
-
- x = x + dx;
- dx = dx + (segment.curve or 0);
-
- if ((p1cam[3] <= cameraDepth) or -- behind us
- (p2screenpos[2] >= p1screenpos[2]) or -- back face cull
- (p2screenpos[2] >= maxy)) -- clip by (already rendered) segment
- then
- else
- -- segmentdebugdraw.draw(segment, resolution, maxy)
- roaddraw.draw(p1screenpos, p2screenpos, p1screensize, p2screensize, segment.texture, resolution, maxy)
-
- maxy = p1screenpos[2];
- end
- end
-
- for n = (drawDistance), 0, -1 do
- local index = (baseSegment.index + n) % #segments
-
- if (index >= #segments) then
- index = n + 1
- elseif (index <= 0) then
- index = #segments - (n + 1)
- end
-
- segment = segments[index];
-
- local p1Width = segment.p1.world.w
-
- -- for i = 1, #segment.sprites do
- -- drawstatic.drawstatic(
- -- segment, p1Width, resolution)
- -- end
-
- end
-end
-
-function system:draw()
- for _, e in ipairs(self.pool) do
- local player_y = e[pos3d.dict.pos].data[2] -- pos[2]
- local draw_distance = e[perspective.dict.draw_distance].data
- local camera_height = e[perspective.dict.camera_height].data
- local resolution = e[perspective.dict.resolution].data
- local lanes = e[perspective.dict.lanes].data
- local segment_length = e[perspective.dict.segment_length].data
- local fogDensity = e[perspective.dict.fog_density].data
-
- local segments = e.segments
- local player_x = e[pos3d.dict.pos].data[1] -- pos[1]
- local camera_depth = e.camera_depth
- local track_length = e.track_length
- local player_z = e[pos3d.dict.pos].data[3] -- pos[3]
-
- love.graphics.push()
- drawRoad(
- player_y, draw_distance,
- segments,
- segment_length, track_length,
- player_x, camera_height, camera_depth,
- resolution, lanes,
- player_z,
- fogDensity
- )
- love.graphics.pop()
- love.graphics.print(string.format("%s,%s,%s",player_x, player_y, player_z), 20, 20)
- end
-end
-
-return system
diff --git a/game/love_src/src/world/2_town_square/template/road.lua b/game/love_src/src/world/2_town_square/template/road.lua
deleted file mode 100644
index b6bb94f..0000000
--- a/game/love_src/src/world/2_town_square/template/road.lua
+++ /dev/null
@@ -1,53 +0,0 @@
-local perspective = require("love_src.src.world.2_town_square.component.perspective")
-local pos3d = require("love_src.src.world.2_town_square.component.pos3d")
-
-local template = {}
-
-template.default_data = {
- resolution = {love.graphics.getDimensions()}, -- resolution x, y
- lanes = 3,
- draw_distance = 300,
- road_width = 2000,
-
- fog_density = 0,
-
- -- player
- pos = {0, 1, 0},
- player_width = 50,
- centrifugal = 0.3,
- player_speed = 0,
- player_max_speed = 5000,
- player_accel = 100,
-
- -- camera
- field_of_view = 140, -- field of view
- camera_height = 1000,
-
- -- road segment
- segment_length = 200,
- segment_count = 500,
- rumble_length = 3,
-
-
- segment_path = "love_src/data/map/segment.json",
- segment_sprite_map_path = "love_src/data/map/sprites.json",
-}
-
-function template.assemble(e, data)
- e:give(perspective.dict.camera_height, data.camera_height)
- e:give(perspective.dict.draw_distance, data.draw_distance)
- e:give(perspective.dict.field_of_view, data.field_of_view)
- e:give(perspective.dict.fog_density, data.fog_density)
- e:give(perspective.dict.lanes, data.lanes)
- e:give(perspective.dict.resolution, data.resolution.x, data.resolution.y)
- e:give(perspective.dict.road_width, data.road_width)
- e:give(perspective.dict.rumble_length, data.rumble_length)
- e:give(perspective.dict.segment_count, data.segment_count)
- e:give(perspective.dict.segment_length, data.segment_length)
- e:give(perspective.dict.segment_path, data.segment_path)
- e:give(perspective.dict.segment_sprite_map_path, data.segment_sprite_map_path)
-
- e:give(pos3d.dict.pos, data.pos[1], data.pos[2], data.pos[3])
-end
-
-return template
diff --git a/game/love_src/src/world/common/component/animation.lua b/game/love_src/src/world/common/component/animation.lua
deleted file mode 100644
index 40de9c0..0000000
--- a/game/love_src/src/world/common/component/animation.lua
+++ /dev/null
@@ -1,49 +0,0 @@
-local image = require("love_src.wrapper.lappy.new.image").obj
-
-local components = {}
-
-components.dict = {
- image_frame = "image_frame",
- trigger_frame = "trigger_frame",
- frame_i = "frame_i",
- run_time = "run_time",
- anim_direction = "anim_direction",
- next_trigger_frame = "next_trigger_frame",
- fps = "fps"
-}
-
-function components.image_frame (c, paths)
- c.data = {
- images = {},
- path = paths or {}
- }
- for k, v in ipairs(paths) do
- table.insert(c.data.images, image:load_to(v, v))
- end
-end
-
-function components.trigger_frame (c, array)
- c.data = array or {}
-end
-
-function components.frame_i (c, index)
- c.data = index or 1
-end
-
-function components.run_time (c, float)
- c.data = float or 0
-end
-
-function components.anim_direction (c, one)
- c.data = one or 1
-end
-
-function components.next_trigger_frame (c, index)
- c.data = index or 1
-end
-
-function components.fps (c, frame_per_second)
- c.data = frame_per_second or 12
-end
-
-return components
diff --git a/game/love_src/src/world/common/component/audio.lua b/game/love_src/src/world/common/component/audio.lua
deleted file mode 100644
index 4e2d041..0000000
--- a/game/love_src/src/world/common/component/audio.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-local source = require("love_src.wrapper.lappy.new.source").obj
-
-local components = {}
-
-components.dict = {
- bgm = "bgm",
- sfx = "sfx",
-}
-
-function components.bgm (c, path)
- c.data = {
- source = source:load_to(path, path, "stream"),
- path = path
- }
-end
-
-function components.sfx (c, path)
- c.data = {
- source = source:load_to(path, path, "static"),
- path = path
- }
-end
-
-return components
diff --git a/game/love_src/src/world/common/component/button.lua b/game/love_src/src/world/common/component/button.lua
deleted file mode 100644
index e299f6d..0000000
--- a/game/love_src/src/world/common/component/button.lua
+++ /dev/null
@@ -1,30 +0,0 @@
-local components = {}
-
-components.dict = {
- collider = "button.collider",
- func = "button.func",
- label = "button.label"
-}
-
-function components.collider (c, x, y, w, h)
- c.data = {
- x = x or 0,
- y = y or 0,
- w = w or 0,
- h = h or 0
- }
-end
-
-function default()
- print("click")
-end
-
-function components.func (c, func)
- c.data = func or default
-end
-
-function components.label (c, label)
- c.data = label or ""
-end
-
-return components
diff --git a/game/love_src/src/world/common/component/debug_label.lua b/game/love_src/src/world/common/component/debug_label.lua
deleted file mode 100644
index 6b1e39c..0000000
--- a/game/love_src/src/world/common/component/debug_label.lua
+++ /dev/null
@@ -1,11 +0,0 @@
-local components = {}
-
-components.dict = {
- debug_label = "debug_label",
-}
-
-function components.debug_label (c, label)
- c.data = label
-end
-
-return components
diff --git a/game/love_src/src/world/common/component/image.lua b/game/love_src/src/world/common/component/image.lua
deleted file mode 100644
index 91d63c4..0000000
--- a/game/love_src/src/world/common/component/image.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-local quad = require("love_src.wrapper.lappy.new.quad").obj
-local image = require("love_src.wrapper.lappy.new.image").obj
-
-local components = {}
-
-components.dict = {
- quad = "quad",
- texture = "texture",
-}
-
-local function load_image(path)
- image:put_to(love.graphics.newImage(path), path)
-end
-
-local function load_quad(x, y, w, h, path, key)
- load_image(path)
- local i = image:load_from(path)
- local iw, ih = i:getDimensions()
- quad:put_to(love.graphics.newQuad(x or 0, y or 0, w or iw, h or ih, i), key)
-end
-
-function components.quad (c, quads)
- c.data = {}
- for _, q_data in pairs(quads) do
- for k_q, q in pairs(q_data.quad) do
- load_quad(q[1], q[2], q[3], q[4], q_data.image, k_q)
- c.data[k_q] = {}
- c.data[k_q].quad = quad:load_from(k_q)
- c.data[k_q].image = image:load_from(q_data.image)
- end
- end
-end
-
-function components.texture (c, images)
- c[components.dict.texture] = {}
- for k, i in pairs(images) do
- load_image(i)
- c[components.dict.texture][k] = image:load_from(i)
- end
-end
-
-return components
diff --git a/game/love_src/src/world/common/component/transform.lua b/game/love_src/src/world/common/component/transform.lua
deleted file mode 100644
index a5c4e1c..0000000
--- a/game/love_src/src/world/common/component/transform.lua
+++ /dev/null
@@ -1,23 +0,0 @@
-local vm = require("lib.vornmath")
-
-local components = {}
-
-components.dict = {
- position = "position",
- scale = "scale",
- rotation = "rotation"
-}
-
-function components.position (c, x, y, z)
- c.data = vm.vec3(x or 0, y or 0, z or 0)
-end
-
-function components.scale (c, sx, sy, sz)
- c.data = vm.vec3(sx or 1, sy or 1, sz or 1)
-end
-
-function components.rotation (c, rx, ry, rz)
- c.data = vm.vec3(rx or 0, ry or 0, rz or 0)
-end
-
-return components
diff --git a/game/love_src/src/world/common/component/video.lua b/game/love_src/src/world/common/component/video.lua
deleted file mode 100644
index 95a0480..0000000
--- a/game/love_src/src/world/common/component/video.lua
+++ /dev/null
@@ -1,16 +0,0 @@
-local video = require("love_src.wrapper.lappy.new.video").obj
-
-local components = {}
-
-components.dict = {
- video = "video",
-}
-
-function components.video (c, path)
- c.data = {
- video = video:load_to(path, path),
- path = path
- }
-end
-
-return components
diff --git a/game/love_src/src/world/common/system/debug_world_draw.lua b/game/love_src/src/world/common/system/debug_world_draw.lua
deleted file mode 100644
index a381383..0000000
--- a/game/love_src/src/world/common/system/debug_world_draw.lua
+++ /dev/null
@@ -1,48 +0,0 @@
-local system_constructor = require("love_src.wrapper.Concord.system")
-local debug_label = require("love_src.src.world.common.component.debug_label")
-local transform = require("love_src.src.world.common.component.transform")
-
-local system = {}
-
-system.__index = system
-
-system.pool = {
- pool = {
- debug_label.dict.debug_label,
- transform.dict.position
- }
-}
-
-system.components = {
- [debug_label.dict.debug_label] = debug_label.debug_label,
- [transform.dict.position] = transform.position
-}
-
-function system.new()
- local new_system = system_constructor.new("debug_world_draw", system.pool)
- if (new_system) then
- for k, v in pairs(system) do
- new_system[k] = v
- end
- return new_system
- else
- return nil
- end
-end
-
-local function draw(text, x, y)
- love.graphics.push()
- love.graphics.print(text, x, y)
- love.graphics.pop()
-end
-
-function system:draw()
- for _, e in ipairs(self.pool) do
- local text = e[debug_label.dict.debug_label].data
- local x = e[transform.dict.position].data[1]
- local y = e[transform.dict.position].data[2]
- --draw(text, x, y)
- end
-end
-
-return system
diff --git a/game/love_src/src/world/common/system/flip.lua b/game/love_src/src/world/common/system/flip.lua
deleted file mode 100644
index de10491..0000000
--- a/game/love_src/src/world/common/system/flip.lua
+++ /dev/null
@@ -1,97 +0,0 @@
-local floor = math.floor
-
-local system_constructor = require("love_src.wrapper.Concord.system")
-local audio = require("love_src.src.world.common.component.audio")
-local animation = require("love_src.src.world.common.component.animation")
-
-local system = {}
-
-system.__index = system
-
-system.pool = {
- pool = {
- audio.dict.sfx,
- animation.dict.anim_direction,
- animation.dict.fps,
- animation.dict.frame_i,
- animation.dict.image_frame,
- animation.dict.next_trigger_frame,
- animation.dict.run_time,
- animation.dict.trigger_frame,
- }
-}
-
-system.components = {
- [audio.dict.sfx] = audio.sfx,
- [animation.dict.anim_direction] = animation.anim_direction,
- [animation.dict.fps] = animation.fps,
- [animation.dict.frame_i] = animation.frame_i,
- [animation.dict.image_frame] = animation.image_frame,
- [animation.dict.next_trigger_frame] = animation.next_trigger_frame,
- [animation.dict.run_time] = animation.run_time,
- [animation.dict.trigger_frame] = animation.trigger_frame,
-}
-
-function system.new()
- local new_system = system_constructor.new("flip", system.pool)
- if (new_system) then
- for k, v in pairs(system) do
- new_system[k] = v
- end
- return new_system
- else
- return nil
- end
-end
-
---- system frame
-local function update_time(time, delta, indicator)
- return time + (delta * indicator)
-end
-
-local function get_loop(index, _max)
- local md = index % _max
- if (md == 0) then
- return _max
- else
- return index % _max
- end
-end
-
-local function update_fps_time(time, fps)
- -- floor time to 1. check x fps per second
- return floor(time / (1 / fps))
-end
-
--- system trigger frame
-local function is_trigger(trigger_frames, trigger_id, frame_id)
- return (trigger_frames[trigger_id] == frame_id)
-end
-
-function system:update(dt)
- for _, e in ipairs(self.pool) do
- e[animation.dict.run_time].data = update_time(
- e[animation.dict.run_time].data, dt, e[animation.dict.anim_direction].data
- )
- local new_index = update_fps_time(
- e[animation.dict.run_time].data, e[animation.dict.fps].data
- )
- e[animation.dict.frame_i].data = get_loop(
- new_index,
- #e[animation.dict.image_frame].data.images
- )
-
- if (is_trigger(
- e[animation.dict.trigger_frame].data,
- e[animation.dict.next_trigger_frame].data,
- e[animation.dict.frame_i].data
- )) then
- e[animation.dict.next_trigger_frame].data = get_loop(
- e[animation.dict.next_trigger_frame].data + 1, #e[animation.dict.trigger_frame].data
- )
- e[audio.dict.sfx].data.source:play()
- end
- end
-end
-
-return system
diff --git a/game/love_src/src/world/common/system/trigger_button.lua b/game/love_src/src/world/common/system/trigger_button.lua
deleted file mode 100644
index ff8713b..0000000
--- a/game/love_src/src/world/common/system/trigger_button.lua
+++ /dev/null
@@ -1,81 +0,0 @@
-local system_constructor = require("love_src.wrapper.Concord.system")
-local c_button = require("love_src.src.world.common.component.button")
-
-local system = {}
-
-system.__index = system
-
-system.pool = {
- pool = {
- c_button.dict.collider,
- c_button.dict.func,
- c_button.dict.label
- }
-}
-
-system.components = {
- [c_button.dict.collider] = c_button.collider,
- [c_button.dict.func] = c_button.func,
- [c_button.dict.label] = c_button.label
-}
-
-function system.new()
- local new_system = system_constructor.new("trigger_button", system.pool)
- if (new_system) then
- for k, v in pairs(system) do
- new_system[k] = v
- end
- return new_system
- else
- return nil
- end
-end
-
--- x1 y1 -- (x1 + w1) y1
--- x2 y2
--- x1 (y1 + h1) -- (x1 + w1) (y1 + h1)
-local function is_inside(x1,y1,w1,h1, x2,y2)
- return x1 < x2 and
- x2 < x1+w1 and
- y1 < y2 and
- y2 < y1+h1
-end
-
-function system:mousereleased(x, y, button, istouch, presses)
- for _, e in ipairs(self.pool) do
- local x1 = e[c_button.dict.collider].data.x
- local y1 = e[c_button.dict.collider].data.y
- local w1 = e[c_button.dict.collider].data.w
- local h1 = e[c_button.dict.collider].data.h
- local func = e[c_button.dict.func].data
- if (is_inside(x1, y1, w1, h1, x, y) and button == 1) then
- func()
- end
- end
-end
-
-local function draw(text, x, y, w, h)
- love.graphics.push()
- love.graphics.line(
- x, y,
- x + w, y,
- x + w, y + h,
- x, y + h,
- x, y
- )
- love.graphics.print(text, x, y)
- love.graphics.pop()
-end
-
-function system:draw()
- for _, e in ipairs(self.pool) do
- local x = e[c_button.dict.collider].data.x
- local y = e[c_button.dict.collider].data.y
- local w = e[c_button.dict.collider].data.w
- local h = e[c_button.dict.collider].data.h
- local label = e[c_button.dict.label].data
- --draw(label, x, y, w, h)
- end
-end
-
-return system
diff --git a/game/love_src/src/world/common/system/video_render.lua b/game/love_src/src/world/common/system/video_render.lua
deleted file mode 100644
index 22006c7..0000000
--- a/game/love_src/src/world/common/system/video_render.lua
+++ /dev/null
@@ -1,50 +0,0 @@
-local system_constructor = require("love_src.wrapper.Concord.system")
-local c_video = require("love_src.src.world.common.component.video")
-
-local system = {}
-
-system.__index = system
-
-system.pool = {
- pool = {
- c_video.dict.video,
- }
-}
-
-system.components = {
- [c_video.dict.video] = c_video.video,
-}
-
-function system.new()
- local new_system = system_constructor.new("video_render", system.pool)
- if (new_system) then
- for k, v in pairs(system) do
- new_system[k] = v
- end
- return new_system
- else
- return nil
- end
-end
-
-function system:load()
- for _, e in ipairs(self.pool) do
- video = e[c_video.dict.video].data.video
- video:play()
- end
-end
-
-function system:update(dt)
- for _, e in ipairs(self.pool) do
- video = e[c_video.dict.video].data.video
- end
-end
-
-function system:draw()
- for _, e in ipairs(self.pool) do
- video = e[c_video.dict.video].data.video
- --love.graphics.draw(video, 0, 0)
- end
-end
-
-return system
diff --git a/game/love_src/src/world/common/template/book.lua b/game/love_src/src/world/common/template/book.lua
deleted file mode 100644
index cd04245..0000000
--- a/game/love_src/src/world/common/template/book.lua
+++ /dev/null
@@ -1,42 +0,0 @@
-local flip = require("love_src.src.world.common.system.flip")
-local transform = require("love_src.src.world.common.component.transform")
-
-local template = {}
-
-template.default_data = {
- sfx = "love_src/asset/audio/sfx/book_flip.1.ogg",
- anim_direction = 1,
- fps = 12,
- frame_i = 1,
- image_frame = {
- "love_src/asset/image/book/StoryMode.png",
- "love_src/asset/image/book/StoryModeBook.png",
- "love_src/asset/image/book/StoryModeBook2.png",
- "love_src/asset/image/book/StoryModeBook3.png",
- "love_src/asset/image/book/StoryModeBook4.png",
- "love_src/asset/image/book/StoryModeBook5.png",
- "love_src/asset/image/book/StoryModeBook6.png",
- "love_src/asset/image/book/StoryModeBook7.png",
- "love_src/asset/image/book/StoryModeBook8.png",
- "love_src/asset/image/book/StoryModeBook9.png",
- "love_src/asset/image/book/StoryModeBook11.png",
- "love_src/asset/image/book/StoryModeBook16.png",
- },
- next_trigger_frame = 1,
- run_time = 0,
- trigger_frame = {1},
- position = {0, 0, 0}
-}
-function template.assemble(e, data)
- e:give(flip.pool.pool[1], data.sfx)
- e:give(flip.pool.pool[2], data.anim_direction)
- e:give(flip.pool.pool[3], data.fps)
- e:give(flip.pool.pool[4], data.frame_i)
- e:give(flip.pool.pool[5], data.image_frame)
- e:give(flip.pool.pool[6], data.next_trigger_frame)
- e:give(flip.pool.pool[7], data.run_time)
- e:give(flip.pool.pool[8], data.trigger_frame)
- e:give(transform.dict.position, data.position)
-end
-
-return template
diff --git a/game/love_src/src/world/common/template/button.lua b/game/love_src/src/world/common/template/button.lua
deleted file mode 100644
index 36ae583..0000000
--- a/game/love_src/src/world/common/template/button.lua
+++ /dev/null
@@ -1,24 +0,0 @@
-local button = require("love_src.src.world.common.component.button")
-
-local template = {}
-
-local function default()
-end
-
-template.default_data = {
- collider = {
- x = 0,
- y = 0,
- w = 20,
- h = 20
- },
- func = default,
- label = "debug"
-}
-function template.assemble(e, data)
- e:give(button.dict.collider, data.collider.x, data.collider.y, data.collider.w, data.collider.h)
- e:give(button.dict.func, data.func)
- e:give(button.dict.label, data.label)
-end
-
-return template
diff --git a/game/love_src/src/world/common/template/debug_entity.lua b/game/love_src/src/world/common/template/debug_entity.lua
deleted file mode 100644
index e0bc1dc..0000000
--- a/game/love_src/src/world/common/template/debug_entity.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-local debug_world_draw = require("love_src.src.world.common.system.debug_world_draw")
-
-local template = {}
-
-template.default_data = {
- position = {0, 0},
- label = "debug"
-}
-function template.assembleDebug(e, data)
- e:give(debug_world_draw.pool.pool[1], data.label)
- e:give(debug_world_draw.pool.pool[2], data.position[1], data.position[2])
-end
-
-return template
diff --git a/game/love_src/src/world/common/template/video.lua b/game/love_src/src/world/common/template/video.lua
deleted file mode 100644
index d036897..0000000
--- a/game/love_src/src/world/common/template/video.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local video = require("love_src.src.world.common.component.video")
-
-local template = {}
-
-template.default_data = {
- path = ""
-}
-function template.assemble(e, data)
- e:give(video.dict.video, data.path)
-end
-
-return template
diff --git a/game/love_src/src/world/main_menu/init.lua b/game/love_src/src/world/main_menu/init.lua
deleted file mode 100644
index d01aa24..0000000
--- a/game/love_src/src/world/main_menu/init.lua
+++ /dev/null
@@ -1,48 +0,0 @@
-local reap = require("lib.reap")
-
-local BASE = reap.base_path(...)
-
-local world = require("love_src.wrapper.Concord.world")
-
-local debug_entity = require("love_src.src.world.common.template.debug_entity")
-local button = require("love_src.src.world.common.template.button")
-local wm = require("world_map")
-
-local wrapper = world:extend()
-
-local function button_func()
- load_world(wm["1_intro"])
-end
-
-function wrapper:new()
- wrapper.super.new(self, BASE, ".main_menu")
-end
-
-function wrapper:load(_args)
- wrapper.super.load(self, {
- "love_src/src/world/common/system/"
- }, {
- {
- assemblage = debug_entity.assembleDebug,
- data = {
- position = {0, 0},
- label = "main_menu"
- }
- },
- {
- assemblage = button.assemble,
- data = {
- collider = {
- x = 20,
- y = 20,
- w = 20,
- h = 20
- },
- func = button_func,
- label = "play"
- }
- }
- })
-end
-
-return wrapper
diff --git a/game/love_src/src/world/race/init.lua b/game/love_src/src/world/race/init.lua
deleted file mode 100644
index fc635b8..0000000
--- a/game/love_src/src/world/race/init.lua
+++ /dev/null
@@ -1,52 +0,0 @@
-local reap = require("lib.reap")
-
-local BASE = reap.base_path(...)
-local image = require("love_src.wrapper.lappy.new.image").obj
-
-local world = require("love_src.wrapper.Concord.world")
-
-local debug_entity = require("love_src.src.world.common.template.debug_entity")
-local book = require("love_src.src.world.common.template.book")
-
-local animation = require("love_src.src.world.common.component.animation")
-local transform = require("love_src.src.world.common.component.transform")
-
-local wrapper = world:extend()
-
-function wrapper:new()
- wrapper.super.new(self, BASE, ".race")
-end
-
-function wrapper:load(_args)
- wrapper.super.load(self, {
- "love_src/src/world/common/system/"
- }, {
- {
- assemblage = debug_entity.assembleDebug,
- data = {
- position = {0, 0},
- label = "race world"
- }
- },
- {
- assemblage = book.assemble,
- data = book.default_data
- }
- })
-end
-
-function wrapper:draw()
- wrapper.super.draw(self)
-
- for k, v in pairs(self.entities) do
- if v[animation.dict.frame_i] ~= nil then
- local frame_i = v[animation.dict.frame_i].data
- local img = v[animation.dict.image_frame].data.images
- if (img ~= nil) then
- --love.graphics.draw(img[frame_i], v[transform.dict.position].data[1], v[transform.dict.position].data[2])
- end
- end
- end
-end
-
-return wrapper
diff --git a/game/love_src/src/world/top_down_race/component/race.lua b/game/love_src/src/world/top_down_race/component/race.lua
deleted file mode 100644
index 87c4fda..0000000
--- a/game/love_src/src/world/top_down_race/component/race.lua
+++ /dev/null
@@ -1,63 +0,0 @@
-local vm = require("lib.vornmath")
-
-local components = {}
-
-components.dict = {
- forward = "race.forward",
- velocity = "race.velocity",
- max_speed = "race.max_speed",
- min_speed = "race.min_speed",
- accel = "race.accel",
- grip = "race.grip",
- steer = "race.steer",
- brake = "race.brake",
- mass = "race.mass",
- inertia = "race.inertia",
- streamline = "race.streamline",
-}
-
-function components.forward (c, x, y)
- c.data = vm.vec2(x, y)
-end
-
-function components.velocity (c, x, y)
- c.data = vm.vec2(x, y)
-end
-
-function components.max_speed (c, x)
- c.data = x
-end
-
-function components.min_speed (c, x)
- c.data = x
-end
-
-function components.accel (c, x)
- c.data = x
-end
-
-function components.grip (c, x)
- c.data = x
-end
-
-function components.steer (c, x)
- c.data = x
-end
-
-function components.brake (c, x)
- c.data = x
-end
-
-function components.mass (c, x)
- c.data = x
-end
-
-function components.inertia (c, x, y)
- c.data = vm.vec2(x, y)
-end
-
-function components.streamline (c, x)
- c.data = x
-end
-
-return components
diff --git a/game/love_src/src/world/top_down_race/init.lua b/game/love_src/src/world/top_down_race/init.lua
deleted file mode 100644
index fac4278..0000000
--- a/game/love_src/src/world/top_down_race/init.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-local reap = require("lib.reap")
-
-local BASE = reap.base_path(...)
-
-local world = require("love_src.wrapper.Concord.world")
-
-local debug_entity = require("love_src.src.world.common.template.debug_entity")
-local racer = require("love_src.src.world.top_down_race.template.racer")
-local wm = require("world_map")
-
-local wrapper = world:extend()
-
-local name = "top_down_race"
-
-function wrapper:new()
- wrapper.super.new(self, BASE, name)
-end
-
-function wrapper:load(_args)
- wrapper.super.load(self, {
- "love_src/src/world/common/system/",
- "love_src/src/world/top_down_race/system/"
- }, {
- {
- assemblage = debug_entity.assembleDebug,
- data = {
- position = {0, 0},
- label = name
- }
- },
- {
- assemblage = racer.assemble,
- data = {
- velocity = {0.0, 0.0},
- forward = {0.0, 0.0},
- max_speed = 1.0,
- min_speed = 0.0,
- inertia = {0.0, 0.0},
-
- accel = 0.1,
- brake = 0.1,
- grip = 0.0,
- steer = 0.1,
- mass = 0.0,
- streamline = 0.0
- }
- }
- })
-end
-
-return wrapper
diff --git a/game/love_src/src/world/top_down_race/system/velocity.lua b/game/love_src/src/world/top_down_race/system/velocity.lua
deleted file mode 100644
index 16156e3..0000000
--- a/game/love_src/src/world/top_down_race/system/velocity.lua
+++ /dev/null
@@ -1,324 +0,0 @@
-local system_constructor = require("love_src.wrapper.Concord.system")
-local race = require("love_src.src.world.top_down_race.component.race")
-local racing_phy = require("love_src.src.system.racing_phy")
-local racing_force = require("love_src.src.system.racing_force")
-
-local component = require("love_src.wrapper.Concord.component")
-
-local vm = require("lib.vornmath")
-
-local system = {}
-
-system.__index = system
-
-system.pool = {
- pool = {
- race.dict.max_speed,
- race.dict.min_speed,
- race.dict.velocity,
- race.dict.forward,
- race.dict.accel,
- race.dict.brake,
- race.dict.grip,
- race.dict.steer,
- race.dict.inertia,
- race.dict.mass,
- race.dict.streamline
- }
-}
-
-system.components = {
- [race.dict.max_speed] = race.max_speed,
- [race.dict.min_speed] = race.min_speed,
- [race.dict.velocity] = race.velocity,
- [race.dict.forward] = race.forward,
-
- [race.dict.accel] = race.accel,
- [race.dict.brake] = race.brake,
- [race.dict.grip] = race.grip,
- [race.dict.steer] = race.steer,
- [race.dict.inertia] = race.inertia,
- [race.dict.mass] = race.mass,
- [race.dict.streamline] = race.streamline
-}
-
-function system.new()
- local new_system = system_constructor.new("velocity", system.pool)
- if (new_system) then
- for k, v in pairs(system) do
- new_system[k] = v
- end
- return new_system
- else
- return nil
- end
-end
-
-local function get(e)
- return
- e[race.dict.max_speed].data,
- e[race.dict.min_speed].data,
- e[race.dict.velocity].data,
- e[race.dict.forward].data,
- e[race.dict.accel].data,
- e[race.dict.brake].data,
- e[race.dict.grip].data,
- e[race.dict.steer].data,
- e[race.dict.inertia].data,
- e[race.dict.mass].data,
- e[race.dict.streamline].data
-end
-
-function system:load()
- component.component("race.pos", function (c, x, y)
- c.data = vm.vec2(x, y)
- end)
- component.component("race.scale", function (c, x, y)
- c.data = vm.vec2(x, y)
- end)
- component.component("race.angle", function (c, x)
- c.data = x
- end)
- component.component("race.image", function (c, x)
- c.data = {
- image = love.graphics.newImage(x)
- }
- c.data.origin = vm.vec2(c.data.image:getWidth()/2, c.data.image:getHeight()/2)
- end)
-
- for _, e in ipairs(self.pool) do
- e:give("race.pos", 44.64, 10.87)
- e:give("race.scale", 1, 1)
- e:give("race.angle", 0)
- e:give("race.image", "love_src/asset/image/arrow_right.png")
- end
-end
-
-local lw, lh = love.graphics.getDimensions()
-local frictions = {
- {
- name = "grass",
- colliders = {
- -- x, y, w, h
- 0, 0, lw/2, lh
- },
- color = {0, 255/255, 0},
- friction = 2
- },
- {
- name = "pavement",
- colliders = {
- -- x, y, w, h
- lw/2, 0, lw/2, lh
- },
- color = {0, 255/255, 255/255},
- friction = 1
- }
-}
-
-local drags = {
- {
- drag = vm.vec2(1.0, 0.0)
- }
-}
-
--- x1 y1 -- (x1 + w1) y1
--- x2 y2
--- x1 (y1 + h1) -- (x1 + w1) (y1 + h1)
-local function is_inside(x1,y1,w1,h1, x2,y2)
- return x1 < x2 and
- x2 < x1+w1 and
- y1 < y2 and
- y2 < y1+h1
-end
-
-local function get_friction(pos_x, pos_y, floors)
- local friction = 0
- for _,f in ipairs(floors) do
- local fx, fy, fw, fh = f.colliders[1], f.colliders[2], f.colliders[3], f.colliders[4]
- if (is_inside(fx, fy, fw, fh, pos_x, pos_y)) then
- friction = f.friction
- break
- end
- end
- return friction
-end
-
-local magic_w = {
- tire = 0.0,
- floor = 0.0,
- forward = 0.01,
- steer = 0.1,
- drag_boost = 0.0,
- drag_halt = 0.0,
- inertia = 0.0,
- centrifugal = 0.0,
- drag_movement = 0.0
-}
-
-local function handle_input(accel, brake, steer)
- local up = love.keyboard.isDown("up")
- local down = love.keyboard.isDown("down")
- local left = love.keyboard.isDown("left")
- local right = love.keyboard.isDown("right")
-
- local desire_forward = 0
- local desire_steer = 0
- if (up) then
- desire_forward = accel
- elseif (down) then
- desire_forward = - brake
- end
- if (left) then
- desire_steer = steer
- elseif (right) then
- desire_steer = - steer
- end
- return desire_forward, desire_steer
-end
-
-local debug_current = 1
-local p_up = love.keyboard.isDown("i")
-local p_down = love.keyboard.isDown("k")
-local p_left = love.keyboard.isDown("j")
-local p_right = love.keyboard.isDown("l")
-
-dict_debugs = {
- race.dict.max_speed,
- race.dict.min_speed,
- race.dict.velocity,
- race.dict.forward,
- race.dict.accel,
- race.dict.brake,
- race.dict.grip,
- race.dict.steer,
- race.dict.inertia,
- race.dict.mass,
- race.dict.streamline,
-}
-
--- local function
-
-function system:update(dt)
- local i_up = love.keyboard.isDown("i")
- local i_down = love.keyboard.isDown("k")
- local i_left = love.keyboard.isDown("j")
- local i_right = love.keyboard.isDown("l")
-
- if (i_down and not p_down) then
- debug_current = debug_current + 1
- elseif (i_up and not p_up) then
- debug_current = debug_current - 1
- end
-
- local dict_debug_current = dict_debugs[1]
- if (debug_current > 0 and debug_current <= #dict_debugs) then
- dict_debug_current = dict_debugs[debug_current]
- end
-
- p_up = i_up
- p_down = i_down
- p_left = i_left
- p_right = i_right
-
- for _, e in ipairs(self.pool) do
- if (i_left) then
- e[dict_debug_current].data = e[dict_debug_current].data - 1
- elseif (i_right) then
- e[dict_debug_current].data = e[dict_debug_current].data + 1
- end
-
- local max_speed, min_speed, velocity, forward, accel, brake, grip, steer, inertia, mass, streamline = get(e)
-
- local pos_x, pos_y = e["race.pos"].data[1], e["race.pos"].data[2]
-
- local friction = frictions[1].friction
- local drag = drags[1].drag
-
- local desire_forward, desire_steer = handle_input(accel, brake, steer)
-
- local force = racing_force(
- desire_forward, desire_steer,
- grip, friction,
- drag, magic_w.drag_movement, streamline,
- inertia,
- mass,
- magic_w.forward, magic_w.steer,
- magic_w.tire, magic_w.floor,
- magic_w.drag_boost, magic_w.drag_halt,
- magic_w.inertia, magic_w.centrifugal
- )
-
- if (mass == 0) then
- mass = 1
- end
- local a = force * dt / mass
-
- e[race.dict.velocity].data = e[race.dict.velocity].data + a
- e[race.dict.velocity].data[1] = vm.clamp(e[race.dict.velocity].data[1], min_speed, max_speed)
- if (e[race.dict.velocity].data[1] ~= 0) then
- e["race.pos"].data = e["race.pos"].data + e[race.dict.velocity].data
- end
-
- e[race.dict.inertia].data = force
- end
-end
-
-local function draw_debug(x, y, r, g, b, texts)
- local font_ix = test.draw_font_start()
- test.draw_font_set_base_color(r, g, b)
- for _, t in ipairs(texts) do
- y = y + test.draw_font(font_ix, t, x, y)
- end
-end
-
-function system:draw()
- for _, e in ipairs(self.pool) do
- local x, y = e["race.pos"].data[1], e["race.pos"].data[2]
- local vx = e[race.dict.velocity].data[1]
- local vy = e[race.dict.velocity].data[2]
- test.set_sphere(x, y, vx, vy)
- end
-end
-
-function system:ui_draw()
- for _, e in ipairs(self.pool) do
- local max_speed, min_speed, velocity, forward, accel, brake, grip, steer, inertia, mass, streamline = get(e)
- test.draw_line_quad_start()
- test.draw_set_color(1.0, 0.0, 0.0) -- r, g, b (0.0 to 1.0)
- test.draw_line(lw/2, lh/2, velocity[1], velocity[2]) -- x1, y1, x2, y2
-
- draw_debug(640, 0, 1.0, 0.0, 1.0, {
- string.format("%s max_speed : %s", (debug_current == 1 and ">") or "", max_speed),
- string.format("%s max_speed : %s", (debug_current == 21 and ">") or "", min_speed),
- string.format("%s velocity : %s", (debug_current == 2 and ">") or "", velocity),
- string.format("%s forward : %s", (debug_current == 22 and ">") or "", forward),
- string.format("%s accel : %s", (debug_current == 3 and ">") or "", accel),
- string.format("%s brake : %s", (debug_current == 4 and ">") or "", brake),
- string.format("%s grip : %s", (debug_current == 5 and ">") or "", grip),
- string.format("%s steer : %s", (debug_current == 6 and ">") or "", steer),
- string.format("%s inertia : %s", (debug_current == 7 and ">") or "", inertia),
- string.format("%s mass : %s", (debug_current == 8 and ">") or "", mass),
- string.format("%s streamline : %s", (debug_current == 9 and ">") or "", streamline)
- })
-
- draw_debug(640, 300, 1.0, 0.0, 1.0, {
- string.format("%s weight tire : %s", (debug_current == 10 and ">") or "", magic_w.tire),
- string.format("%s weight floor : %s", (debug_current == 11 and ">") or "", magic_w.floor),
- string.format("%s weight forward : %s", (debug_current == 12 and ">") or "", magic_w.forward),
- string.format("%s weight steer : %s", (debug_current == 13 and ">") or "", magic_w.steer),
- string.format("%s weight drag boost : %s", (debug_current == 14 and ">") or "", magic_w.drag_boost),
- string.format("%s weight drag halt : %s", (debug_current == 15 and ">") or "", magic_w.drag_halt),
- string.format("%s weight inertia : %s", (debug_current == 16 and ">") or "", magic_w.inertia),
- string.format("%s weight centrifugal : %s", (debug_current == 17 and ">") or "", magic_w.centrifugal),
- string.format("%s magic drag movement : %s", (debug_current == 18 and ">") or "", magic_w.drag_movement)
- })
-
- draw_debug(640,600, 1.0, 0.0, 1.0, {
- string.format("%s friction : %s", (debug_current == 19 and ">") or "", frictions[1].friction),
- string.format("%s drag : %s", (debug_current == 20 and ">") or "", drags[1].drag),
- })
- end
-end
-
-return system
diff --git a/game/love_src/src/world/top_down_race/template/racer.lua b/game/love_src/src/world/top_down_race/template/racer.lua
deleted file mode 100644
index c6928c7..0000000
--- a/game/love_src/src/world/top_down_race/template/racer.lua
+++ /dev/null
@@ -1,34 +0,0 @@
-local race = require("love_src.src.world.top_down_race.component.race")
-
-local template = {}
-
-template.default_data = {
- velocity = {0.0, 0.0},
- forward = {0.0, 0.0},
- max_speed = 10.0,
- min_speed = 0.0,
-
- accel = 10.0,
- brake = 10.0,
- grip = 10.0,
- steer = 10.0,
- inertia = {0.0, 0.0},
- mass = 10.0,
- streamline = 1.0
-}
-function template.assemble(e, data)
- e:give(race.dict.max_speed, data.max_speed)
- e:give(race.dict.min_speed, data.min_speed)
- e:give(race.dict.velocity, data.velocity[1], data.velocity[2])
- e:give(race.dict.velocity, data.forward[1], data.forward[2])
-
- e:give(race.dict.accel, data.accel)
- e:give(race.dict.brake, data.brake)
- e:give(race.dict.grip, data.grip)
- e:give(race.dict.steer, data.steer)
- e:give(race.dict.inertia, data.inertia[1], data.inertia[2])
- e:give(race.dict.mass, data.mass)
- e:give(race.dict.streamline, data.streamline)
-end
-
-return template
diff --git a/game/love_src/src/world/train/init.lua b/game/love_src/src/world/train/init.lua
deleted file mode 100644
index d7181b6..0000000
--- a/game/love_src/src/world/train/init.lua
+++ /dev/null
@@ -1,29 +0,0 @@
-local reap = require("lib.reap")
-
-local BASE = reap.base_path(...)
-
-local world = require("love_src.wrapper.Concord.world")
-
-local debug_entity = require("love_src.src.world.common.template.debug_entity")
-
-local wrapper = world:extend()
-
-function wrapper:new()
- wrapper.super.new(self, BASE, ".train")
-end
-
-function wrapper:load(_args)
- wrapper.super.load(self, {
- "love_src/src/world/common/system/"
- }, {
- {
- assemblage = debug_entity.assembleDebug,
- data = {
- position = {0, 0},
- label = "train world"
- }
- }
- })
-end
-
-return wrapper