summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2014-07-23 17:03:04 -0400
committerJulie Lala <jules@okfoc.us>2014-07-23 17:27:58 -0400
commitc7e27b743eb8488ec71adaf365056ff500b458ab (patch)
treeb806895981a752368bf294edc54d283911b993d3 /public/assets/javascripts/rectangles/engine/rooms/_rooms.js
parentc3d855b3f0b6af000c0d359da6a2b774bcd0a5d5 (diff)
preparing modules for clip test
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/rooms/_rooms.js')
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js196
1 files changed, 118 insertions, 78 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index e0033e3..f7fad3e 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -1,99 +1,139 @@
-var Rooms = new function(){
-
- var base = this
-
- base.list = {}
- base.walls = {}
- base.regions = []
+(function(){
- base.init = function(){
- Rooms.builder.init()
- Rooms.clipper.init()
- Rooms.mover.init()
+ var vec2, Rect, Room, sort, UidGenerator, _
+ if ('window' in this) {
+ vec2 = window.vec2
+ Rect = window.Rect
+ Room = window.Room
+ sort = window.sort
+ UidGenerator = window.UidGenerator
+ _ = window._
}
-
- base.filter = function(f){
- return _.values(base.list).filter(f)
+ else {
+ vec2 = require('../../models/vec2')
+ Rect = require('../../models/rect')
+ Room = require('../../models/room')
+ sort = require('../../util/sort')
+ UidGenerator = require('../../util/uid')
+ _ = require('lodash')
+ FRONT = 0x1, BACK = 0x2, LEFT = 0x4, RIGHT = 0x8, FLOOR = 0x10, CEILING = 0x20
+ TOP = CEILING, BOTTOM = FLOOR
+ function sidesToString(sides){
+ var s = ""
+ if (sides & FRONT) s += "front "
+ if (sides & BACK) s += "back "
+ if (sides & LEFT) s += "left "
+ if (sides & RIGHT) s += "right "
+ if (sides & TOP) s += "top "
+ if (sides & BOTTOM) s += "bottom "
+ return s
+ }
}
+
+ var Rooms = new function(){
+
+ var base = this
- base.add = function(room){
- base.list[room.id] = room
- }
+ base.list = {}
+ base.walls = {}
+ base.regions = []
+
+ base.init = function(){
+ Rooms.builder.init()
+ Rooms.clipper.init()
+ Rooms.mover.init()
+ }
- base.add_with_rect = function(rect){
- var room = new Room({
- rect: rect,
- height: 500
- })
- base.add(room)
- return room
- }
+ base.filter = function(f){
+ return _.values(base.list).filter(f)
+ }
- base.remove = function(room){
- delete base.list[room.id]
- Rooms.clipper.update()
- }
+ base.add = function(room){
+ base.list[room.id] = room
+ }
- base.removeAll = function(){
- base.list = {}
- base.regions = []
- Rooms.clipper.update()
- }
+ base.add_with_rect = function(rect){
+ var room = new Room({
+ rect: rect,
+ height: 500
+ })
+ base.add(room)
+ return room
+ }
- base.count = function(){
- return this.values().length
- }
+ base.remove = function(room){
+ delete base.list[room.id]
+ Rooms.clipper.update()
+ }
- base.forEach = function(f){
- return base.values().forEach(f)
- }
+ base.removeAll = function(){
+ base.list = {}
+ base.regions = []
+ Rooms.clipper.update()
+ }
- base.map = function(f){
- return base.values().map(f)
- }
+ base.count = function(){
+ return this.values().length
+ }
- base.values = function(){
- return _.values(base.list)
- }
+ base.forEach = function(f){
+ return base.values().forEach(f)
+ }
- base.serialize = function(){
- var rooms = base.map(function(room){
- return room.serialize()
- })
- return rooms
- }
+ base.map = function(f){
+ return base.values().map(f)
+ }
- base.deserialize = function(rooms_data){
- rooms_data.forEach(function(data){
- var rect = new Rect(data.rect.x[0], data.rect.y[0], data.rect.x[1], data.rect.y[1])
- var room = new Room({
- id: data.id,
- rect: rect,
- height: data.height
+ base.values = function(){
+ return _.values(base.list)
+ }
+
+ base.serialize = function(){
+ var rooms = base.map(function(room){
+ return room.serialize()
})
- base.add(room)
- })
- Rooms.clipper.update()
- }
+ return rooms
+ }
+
+ base.deserialize = function(rooms_data){
+ rooms_data.forEach(function(data){
+ var rect = new Rect(data.rect.x[0], data.rect.y[0], data.rect.x[1], data.rect.y[1])
+ var room = new Room({
+ id: data.id,
+ rect: rect,
+ height: data.height
+ })
+ base.add(room)
+ })
+ Rooms.clipper.update()
+ }
- base.serializeWalls = function(){
- return []
- }
+ base.serializeWalls = function(){
+ return []
+ }
- base.deserializeWalls = function(walls_data){
- return []
- }
+ base.deserializeWalls = function(walls_data){
+ return []
+ }
+
+ base.uid = UidGenerator(base.list)
- base.uid = UidGenerator(base.list)
+ base.sorted_by_position = function(){
+ return sort.rooms_by_position( base.values() )
+ }
+ base.sorted_by_height = function(){
+ return sort.rooms_by_height( base.values() )
+ }
+ base.sorted_by_area = function(){
+ return sort.rooms_by_area( base.values() )
+ }
- base.sorted_by_position = function(){
- return sort_rooms_by_position( base.values() )
}
- base.sorted_by_height = function(){
- return sort_rooms_by_height( base.values() )
+
+ if ('window' in this) {
+ window.Rooms = Rooms
}
- base.sorted_by_area = function(){
- return sort_rooms_by_area( base.values() )
+ else {
+ module.exports = Rooms
}
-
-}
+})()