summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-15 12:04:00 -0400
committerJules Laplace <jules@okfoc.us>2014-10-15 12:04:00 -0400
commitd50fa94e9b758270b15dfeb5100063c6d876d64c (patch)
tree9896fd92b6ffcd77cd4e6d17885d1cb755742051
parent72ea86e603793ac17a9113ab031d31b369f74a4f (diff)
cursor that follows mouse
-rw-r--r--public/assets/javascripts/mx/extensions/mx.movements.js14
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_walls.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/mover.js3
-rw-r--r--public/assets/javascripts/ui/editor/EditorView.js1
-rw-r--r--public/assets/javascripts/ui/editor/HelpCursor.js38
-rw-r--r--public/assets/javascripts/ui/editor/MediaViewer.js33
-rwxr-xr-xpublic/assets/stylesheets/app.css18
-rw-r--r--views/controls/editor/media-drawer.ejs13
-rw-r--r--views/controls/editor/settings.ejs2
-rw-r--r--views/partials/scripts.ejs1
10 files changed, 104 insertions, 21 deletions
diff --git a/public/assets/javascripts/mx/extensions/mx.movements.js b/public/assets/javascripts/mx/extensions/mx.movements.js
index 5ba5d69..b158625 100644
--- a/public/assets/javascripts/mx/extensions/mx.movements.js
+++ b/public/assets/javascripts/mx/extensions/mx.movements.js
@@ -226,12 +226,14 @@ MX.Movements = function (cam) {
},
mousewheel: function (e, deltaY, deltaX) {
- cam.rotationY += deltaX / 20
-
- pos.x += deltaY * Math.cos(cam.rotationY + Math.PI / 2) * 10
- pos.z += deltaY * Math.sin(cam.rotationY + Math.PI / 2) * 10
-
- app.tube("move", pos)
+ if (e.shiftKey) {
+ cam.rotationY -= deltaY / 150
+ }
+ else {
+ pos.x += deltaY * Math.cos(cam.rotationY + Math.PI / 2) * 10
+ pos.z += deltaY * Math.sin(cam.rotationY + Math.PI / 2) * 10
+ app.tube("move", pos)
+ }
},
update: function () {
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_walls.js b/public/assets/javascripts/rectangles/engine/rooms/_walls.js
index 119a659..f2348f0 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_walls.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_walls.js
@@ -135,7 +135,7 @@
}
base.luminance = function(rgb){
- rgb = rgb || Walls.colors.wall
+ rgb = rgb || Walls.colors.ceiling
var rgb_max = Math.max.apply(0, rgb)
var rgb_min = Math.min.apply(255, rgb)
return (rgb_max + rgb_min ) / 2
diff --git a/public/assets/javascripts/rectangles/engine/rooms/mover.js b/public/assets/javascripts/rectangles/engine/rooms/mover.js
index a2d2223..dd63db2 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/mover.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/mover.js
@@ -11,7 +11,8 @@ Rooms.mover = new function(){
base.bind = function(){
app.on("move", base.update)
- keys.on("backslash", function(){
+ keys.on("backslash", function(e){
+ if ( ! (e.ctrlKey || e.metaKey) ) return
base.noclip = ! base.noclip
base.room = null
app.movements.gravity( ! base.noclip )
diff --git a/public/assets/javascripts/ui/editor/EditorView.js b/public/assets/javascripts/ui/editor/EditorView.js
index ccd6c63..05d1bec 100644
--- a/public/assets/javascripts/ui/editor/EditorView.js
+++ b/public/assets/javascripts/ui/editor/EditorView.js
@@ -9,6 +9,7 @@ var EditorView = View.extend({
},
initialize: function(){
+ this.cursor = new HelpCursor ({ parent: this })
this.toolbar = new EditorToolbar ({ parent: this })
this.settings = new EditorSettings ({ parent: this })
this.info = new BuilderInfo ({ parent: this })
diff --git a/public/assets/javascripts/ui/editor/HelpCursor.js b/public/assets/javascripts/ui/editor/HelpCursor.js
new file mode 100644
index 0000000..842e871
--- /dev/null
+++ b/public/assets/javascripts/ui/editor/HelpCursor.js
@@ -0,0 +1,38 @@
+
+var HelpCursor = View.extend({
+ el: "#helpCursor",
+
+ messages: {
+ start: "Welcome to Vvalls!",
+ move: "Use the up and down keys to move around. Use left and right to pivot. WASD works too.",
+ },
+ shown: {},
+
+ initialize: function(){
+ $(window).mousemove(function(e){
+ this.el.style.left = e.pageX + "px"
+ this.el.style.top = e.pageY + "px"
+ }.bind(this))
+ this.show("start")
+ },
+
+ show: function(name){
+ if (name) this.showMessage(name)
+ this.$el.show()
+ },
+
+ hide: function(){
+ this.$el.hide()
+ },
+
+ showMessage: function(name){
+ if (+(this.shown[name] || 0) < 2) {
+ this.$el.html(this.messages[name])
+ this.shown[name] = (+this.shown[name] || 0) + 1
+ }
+ else {
+ this.$el.html("")
+ }
+ },
+
+})
diff --git a/public/assets/javascripts/ui/editor/MediaViewer.js b/public/assets/javascripts/ui/editor/MediaViewer.js
index 10819af..b270be5 100644
--- a/public/assets/javascripts/ui/editor/MediaViewer.js
+++ b/public/assets/javascripts/ui/editor/MediaViewer.js
@@ -20,29 +20,46 @@ var MediaViewer = ModalView.extend({
initialize: function(opt){
this.__super__.initialize.call(this)
this.parent = opt.parent
+
this.$myMedia = this.$(".myMedia")
this.$myMediaContainer = this.$(".myMedia > .container")
this.$userToggle = this.$(".userToggle")
+
this.$foundMedia = this.$(".foundMedia")
this.$foundMediaContainer = this.$(".foundMedia > .container")
this.$foundToggle = this.$(".foundToggle")
+
+ this.$wallpaperMedia = this.$(".wallpaperMedia")
+ this.$wallpaperMediaContainer = this.$(".wallpaperMedia > .container")
+ this.$wallpaperToggle = this.$(".wallpaperToggle")
+
this.$deleteMedia = this.$("#deleteMedia")
this.$viewMore = this.$(".viewMore")
this.$noMedia = this.$(".noMedia")
},
+ wallpaperToggle: function(){
+ this.$wallpaperMedia.addClass("active")
+ this.$foundMedia.addClass("inactive")
+ this.$myMedia.addClass("inactive")
+ this.$("a").removeClass("active")
+ this.$foundToggle.addClass("active")
+ },
+
foundToggle: function(){
- this.$foundMedia.addClass("active");
- this.$myMedia.addClass("inactive");
- this.$("a").removeClass("active");
- this.$foundToggle.addClass("active");
+ this.$wallpaperMedia.removeClass("active")
+ this.$foundMedia.addClass("active")
+ this.$myMedia.addClass("inactive")
+ this.$("a").removeClass("active")
+ this.$foundToggle.addClass("active")
},
userToggle: function(){
- this.$foundMedia.removeClass("active");
- this.$myMedia.removeClass("inactive");
- this.$("a").removeClass("active");
- this.$userToggle.addClass("active");
+ this.$wallpaperMedia.removeClass("active")
+ this.$foundMedia.removeClass("active")
+ this.$myMedia.removeClass("inactive")
+ this.$("a").removeClass("active")
+ this.$userToggle.addClass("active")
},
show: function(){
diff --git a/public/assets/stylesheets/app.css b/public/assets/stylesheets/app.css
index cf98170..0140dc6 100755
--- a/public/assets/stylesheets/app.css
+++ b/public/assets/stylesheets/app.css
@@ -901,7 +901,7 @@ border-left: 1px solid black;
.face {
background-color: #fff;
- transition: 0.1s background-color ease;
+ transition: 0.1s background-color ease, 0.05s background-color ease;
}
.front { background-color: #fff; }
.back { background-color: #fff; }
@@ -1271,7 +1271,7 @@ border-left: 1px solid black;
.noMedia {
margin: 40px;
}
-.foundMedia {
+.foundMedia, .wallpaperMedia {
position:absolute;
top:0;
left:0;
@@ -1282,8 +1282,7 @@ border-left: 1px solid black;
padding-top:40px;
width: 100%;
}
-
-.foundMedia.active {
+.foundMedia.active, .wallpaperMedia.active {
-webkit-transform: translateX(0%);
transform: translateX(0%);
}
@@ -1718,6 +1717,17 @@ input[type="range"]::-webkit-slider-thumb {
cursor: pointer;
}
+#helpCursor {
+ position: fixed;
+ max-width: 200px;
+ font-size: 13px;
+ color: black;
+ background: #fff;
+ margin: 8px 0 0 8px;
+ padding: 4px;
+ font-weight: 500;
+ z-index: 22;
+}
.settings.info {
right: auto;
diff --git a/views/controls/editor/media-drawer.ejs b/views/controls/editor/media-drawer.ejs
index 7996f84..d1e2c99 100644
--- a/views/controls/editor/media-drawer.ejs
+++ b/views/controls/editor/media-drawer.ejs
@@ -6,7 +6,13 @@
<span class="close" id="fixed_close">X</span>
<div class="mediaDrawer fixed animate mediaViewer">
- <h2><a href="#" class="userToggle active">Your Media</a> – <a href="#" class="foundToggle">Found Media</a></h2><br>
+ <h2>
+ <a href="#" class="userToggle active">Your Media</a>
+ – <a href="#" class="foundToggle">Found Media</a>
+<!--
+ – <a href="#" class="wallpaperToggle">Wallpaper</a>
+ -->
+ </h2><br>
<h3 class="editBtn warn" id="deleteMedia"></h3>
<div class="myMedia">
@@ -29,4 +35,9 @@
<div class="foundMedia">
<span class="container"></span>
</div>
+
+ <div class="wallpaperMedia">
+ <span class="container"></span>
+ </div>
+
</div> \ No newline at end of file
diff --git a/views/controls/editor/settings.ejs b/views/controls/editor/settings.ejs
index 7c40a75..8443abb 100644
--- a/views/controls/editor/settings.ejs
+++ b/views/controls/editor/settings.ejs
@@ -1,3 +1,5 @@
+<span id="helpCursor"></span>
+
<div class="vvbox settings" id="editorSettings">
<h4>Room Settings</h4>
<input type="hidden" name="_csrf" value="[[- token ]]">
diff --git a/views/partials/scripts.ejs b/views/partials/scripts.ejs
index 07ee7a5..05f4b58 100644
--- a/views/partials/scripts.ejs
+++ b/views/partials/scripts.ejs
@@ -102,6 +102,7 @@
<script type="text/javascript" src="/assets/javascripts/ui/editor/EditorView.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/editor/EditorSettings.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/editor/EditorToolbar.js"></script>
+<script type="text/javascript" src="/assets/javascripts/ui/editor/HelpCursor.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/editor/LightControl.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/editor/Collaborators.js"></script>
<script type="text/javascript" src="/assets/javascripts/ui/editor/MediaEditor.js"></script>