summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/models
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/rectangles/models')
-rw-r--r--public/assets/javascripts/rectangles/models/rect.js8
-rw-r--r--public/assets/javascripts/rectangles/models/room.js8
-rw-r--r--public/assets/javascripts/rectangles/models/vec2.js7
-rw-r--r--public/assets/javascripts/rectangles/models/wall.js8
4 files changed, 30 insertions, 1 deletions
diff --git a/public/assets/javascripts/rectangles/models/rect.js b/public/assets/javascripts/rectangles/models/rect.js
index 500ee6d..5952f6a 100644
--- a/public/assets/javascripts/rectangles/models/rect.js
+++ b/public/assets/javascripts/rectangles/models/rect.js
@@ -39,6 +39,10 @@
Rect.prototype.clone = function(){
return new Rect( this.x.clone(), this.y.clone() )
}
+ Rect.prototype.assign = function(r) {
+ this.x.assign(r.x)
+ this.y.assign(r.y)
+ }
Rect.prototype.center = function(){
return new vec2(this.x.midpoint(), this.y.midpoint())
}
@@ -110,6 +114,10 @@
Rect.prototype.fits = function(v){
return this.x.length() >= v.a && this.y.length() >= v.b
}
+ Rect.prototype.zero = function(){
+ this.a.zero()
+ this.b.zero()
+ }
Rect.prototype.nearEdge = function (x, y, r) {
var edges = 0
if (x < this.x.a+r) {
diff --git a/public/assets/javascripts/rectangles/models/room.js b/public/assets/javascripts/rectangles/models/room.js
index 937c928..33a94d0 100644
--- a/public/assets/javascripts/rectangles/models/room.js
+++ b/public/assets/javascripts/rectangles/models/room.js
@@ -40,6 +40,14 @@
this.focused = false
}
+ Room.prototype.copy = function(){
+ return {
+ id: this.id,
+ rect: this.rect.clone(),
+ height: this.height,
+ }
+ }
+
Room.prototype.toString = function(){
return this.rect.toString()
}
diff --git a/public/assets/javascripts/rectangles/models/vec2.js b/public/assets/javascripts/rectangles/models/vec2.js
index 2bf286b..214feb9 100644
--- a/public/assets/javascripts/rectangles/models/vec2.js
+++ b/public/assets/javascripts/rectangles/models/vec2.js
@@ -17,6 +17,10 @@
vec2.prototype.clone = function(){
return new vec2(this.a, this.b)
}
+ vec2.prototype.assign = function(v){
+ this.a = v.a
+ this.b = v.b
+ }
vec2.prototype.abs = function(){
if (this.b < this.a) {
this.invert()
@@ -55,6 +59,9 @@
this.b /= n
return this
}
+ vec2.prototype.zero = function(){
+ this.a = this.b = 0
+ }
vec2.prototype.setPosition = function(n){
var len = this.length()
this.a = n
diff --git a/public/assets/javascripts/rectangles/models/wall.js b/public/assets/javascripts/rectangles/models/wall.js
index fdc91fd..f015a44 100644
--- a/public/assets/javascripts/rectangles/models/wall.js
+++ b/public/assets/javascripts/rectangles/models/wall.js
@@ -52,7 +52,13 @@
// base.randomize_colors()
// console.log(sidesToString(base.side))
if (Scenery.nextMedia) {
- Scenery.addNextToWall(base, mx)
+ var scenery = Scenery.addNextToWall(base)
+
+ UndoStack.push({
+ type: 'create-scenery',
+ undo: { id: scenery.id },
+ redo: scenery.serialize(),
+ })
}
else if (Scenery.nextWallpaper) {
base.wallpaper()