diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-04-16 15:08:44 -0400 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-04-16 15:08:44 -0400 |
| commit | 3412cc42a9fa5e42d47073a2fa05a39712ad40f7 (patch) | |
| tree | 016356ab239e51b1948ee2e2252bc847e13b17ba /assets/javascripts/rectangles/room.js | |
| parent | e50348e6d5af52d0fcc51d0ca30e21594aee6cbf (diff) | |
layer of indirection for rooms
Diffstat (limited to 'assets/javascripts/rectangles/room.js')
| -rw-r--r-- | assets/javascripts/rectangles/room.js | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/assets/javascripts/rectangles/room.js b/assets/javascripts/rectangles/room.js index cc7af8f..795ef29 100644 --- a/assets/javascripts/rectangles/room.js +++ b/assets/javascripts/rectangles/room.js @@ -1,9 +1,38 @@ window.room = (function(){ - var room = function (x0,y0,x1,y1){ + var room = function(opt){ + this.id = opt.id + this.rect = opt.rect + this.regions = [] + this.height = 500 + this.focused = false } - - + room.prototype.toString = function(){ + return this.rect.toString() + } + + room.prototype.reset = function(){ + var copy = this.rect.clone() + copy.sides = FRONT | BACK | LEFT | RIGHT + this.regions = [ copy ] + } + + room.prototype.clipTo = function(r){ + // for each of this rect's regions split the region if necessary + var regions = this.regions + var splits + + for (var i = 0, len = regions.length; i < len; i++) { + if (regions[i] && regions[i].intersects(r)) { + splits = regions[i].split(r) + regions = regions.concat(splits) + regions[i] = null + } + } + this.regions = regions + } + + return room })() |
