summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/rooms/_walls.js
blob: f5ef6bee235647de23c9e85aded5c8a8ecc559a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
(function(){

	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._
	}
	else {
		vec2 = require('../../models/vec2')
		Rect = require('../../models/rect')
		Room = require('../../models/room')
		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
		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 Walls = new function(){

		var base = this
		
		base.list = []
		base.lookup = {}
		base.colors = {}

		base.first = function(){
		  for (var i in base.list) {
		    if (base.list.hasOwnProperty(i)) { 
          return base.list[i]
		    }
		  }
		}
		
		base.assign = function(list){
		  base.list = list
		  base.lookup = {}
		  list.forEach(function(wall){
		    base.lookup[wall.id] = wall
		  })
		}
		
		base.bind = function(){
			base.list.forEach(function(wall){
				wall.bind()
			})
		}

		base.count = function(){
			return this.list.length
		}
	
		base.forEach = function(f){
			return base.list.forEach(f)
		}
	
		base.map = function(f){
			return base.list.map(f)
		}
		
		base.serialize = function(){
			return []
		}
	
		base.deserialize = function(walls_data){
			return []
		}
		
  }

	if ('window' in this) {
		window.Walls = Walls
	}
	else {
		module.exports = Walls
	}
})()