diff options
Diffstat (limited to 'public/assets')
6 files changed, 30 insertions, 14 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js index f7fad3e..4ad3e2c 100644 --- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js +++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js @@ -13,8 +13,8 @@ vec2 = require('../../models/vec2') Rect = require('../../models/rect') Room = require('../../models/room') - sort = require('../../util/sort') UidGenerator = require('../../util/uid') + sort = require('../../util/sort') _ = require('lodash') FRONT = 0x1, BACK = 0x2, LEFT = 0x4, RIGHT = 0x8, FLOOR = 0x10, CEILING = 0x20 TOP = CEILING, BOTTOM = FLOOR @@ -38,6 +38,8 @@ base.walls = {} base.regions = [] + UidGenerator.setList(base.list) + base.init = function(){ Rooms.builder.init() Rooms.clipper.init() @@ -116,8 +118,6 @@ return [] } - base.uid = UidGenerator(base.list) - base.sorted_by_position = function(){ return sort.rooms_by_position( base.values() ) } diff --git a/public/assets/javascripts/rectangles/engine/rooms/clipper.js b/public/assets/javascripts/rectangles/engine/rooms/clipper.js index cd45479..365ae8c 100644 --- a/public/assets/javascripts/rectangles/engine/rooms/clipper.js +++ b/public/assets/javascripts/rectangles/engine/rooms/clipper.js @@ -41,7 +41,7 @@ app.tube("clip") } - var rooms, regions + var regions // Given a set of overlapping rooms, clip any intersections, then cull any duplicate polygons base.solve_rects = function(){ @@ -59,6 +59,7 @@ // Reset the clipping/culling states of each of the rooms base.reset_rects = function(){ + regions = [] Rooms.forEach(function(room){ room.reset() }) @@ -67,7 +68,6 @@ // Compare each room to the rooms it overlaps, and subdivide base.clip_rects = function(){ var rooms = Rooms.sorted_by_position() - regions = [] var left, right for (var i = 0; i < rooms.length; i++) { @@ -89,6 +89,8 @@ rooms[i].regions = rooms[i].regions.filter(function(r){ return !!r }) regions = regions.concat(rooms[i].regions) } + + return regions } // Find overlapping regions (of the same size) and dedupe @@ -125,6 +127,8 @@ ttx.data = new Tree (regions[i].y.a, [regions[i]]) } } + + return regions } return base diff --git a/public/assets/javascripts/rectangles/models/room.js b/public/assets/javascripts/rectangles/models/room.js index 748b244..e5f42fe 100644 --- a/public/assets/javascripts/rectangles/models/room.js +++ b/public/assets/javascripts/rectangles/models/room.js @@ -1,14 +1,16 @@ (function(){ - var vec2, Rect, sort + var vec2, Rect, UidGenerator, sort if ('window' in this) { vec2 = window.vec2 Rect = window.Rect + UidGenerator = window.UidGenerator sort = window.sort } else { vec2 = require('./vec2') Rect = require('./rect') + UidGenerator = require('../util/uid') sort = require('../util/sort') FRONT = 0x1, BACK = 0x2, LEFT = 0x4, RIGHT = 0x8, FLOOR = 0x10, CEILING = 0x20 TOP = CEILING, BOTTOM = FLOOR @@ -25,7 +27,7 @@ } var Room = function(opt){ - this.id = opt.id || Rooms.uid("room_") + this.id = opt.id || UidGenerator("room_") this.rect = opt.rect this.regions = [] this.walls = [] diff --git a/public/assets/javascripts/rectangles/models/vec2.js b/public/assets/javascripts/rectangles/models/vec2.js index 5c2b519..b0c88c1 100644 --- a/public/assets/javascripts/rectangles/models/vec2.js +++ b/public/assets/javascripts/rectangles/models/vec2.js @@ -7,7 +7,7 @@ return this.b-this.a } vec2.prototype.length = function(){ - return abs(this.b-this.a) + return Math.abs(this.b-this.a) } vec2.prototype.dist = function(){ return dist(0,this.a,0,this.b) diff --git a/public/assets/javascripts/rectangles/util/colors.js b/public/assets/javascripts/rectangles/util/colors.js index c590072..95827cc 100644 --- a/public/assets/javascripts/rectangles/util/colors.js +++ b/public/assets/javascripts/rectangles/util/colors.js @@ -3,6 +3,12 @@ alpha: [ "rgba(0,0,0,0.1)", ], + alphaQuad: [ + "rgba(0,0,0,0.1)", + "rgba(0,0,0,0.1)", + "rgba(0,0,0,0.1)", + "rgba(0,0,0,0.1)", + ], redblue: [ "rgba(0,0,0,0.2)", "rgba(255,0,0,0.2)", @@ -52,9 +58,9 @@ select.blur() }) - window.colors = color_palettes[select ? select.value : 'bone'] + window.colors = color_palettes[select ? select.value : 'alphaQuad'] window.grayColors = {} - _.zip([FRONT, LEFT, BACK, RIGHT], color_palettes.bone).map(function(pair){ + _.zip([FRONT, LEFT, BACK, RIGHT], color_palettes.alphaQuad).map(function(pair){ window.grayColors[pair[0]] = pair[1] }) window.palettes = color_palettes diff --git a/public/assets/javascripts/rectangles/util/uid.js b/public/assets/javascripts/rectangles/util/uid.js index 648bf0c..50d18c5 100644 --- a/public/assets/javascripts/rectangles/util/uid.js +++ b/public/assets/javascripts/rectangles/util/uid.js @@ -1,9 +1,8 @@ - (function(){ var UidGenerator = function(list){ var id = 0 - return function(s){ + var generator = function(s){ s = s || "" var ss while (1) { @@ -13,13 +12,18 @@ } } } + generator.setList = function(newList){ + list = newList + } + return generator } if ('window' in this) { - window.UidGenerator = UidGenerator + window.UidGenerator = new UidGenerator } else { - module.exports = UidGenerator + module.exports = new UidGenerator } })() + |
