Просмотр исходного кода

initial support for scripts.

loading and saving works, not wired up to the editor yet.
Lucas Stadler лет назад: 12
Родитель
Сommit
86cf6d152e
4 измененных файлов с 53 добавлено и 0 удалено
  1. 2 0
      js/pixl/.gitignore
  2. 1 0
      js/pixl/package.json
  3. 23 0
      js/pixl/public/trixl.html
  4. 27 0
      js/pixl/server.js

+ 2 - 0
js/pixl/.gitignore

1
/node_modules
1
/node_modules
2
2
3
/data
4
3
public/glmatrix.js
5
public/glmatrix.js
4
public/three.js
6
public/three.js
5
public/three.flycontrols.js
7
public/three.flycontrols.js

+ 1 - 0
js/pixl/package.json

4
	"version": "0.0.0-alpha",
4
	"version": "0.0.0-alpha",
5
	"dependencies": {
5
	"dependencies": {
6
		"express": "3.x",
6
		"express": "3.x",
7
		"body": "4.4.2",
7
		"ws": "0.4.31"
8
		"ws": "0.4.31"
8
	}
9
	}
9
}
10
}

+ 23 - 0
js/pixl/public/trixl.html

587
			}
587
			}
588
		});
588
		});
589
	</script>
589
	</script>
590
	<script>
591
		trixl.script = {};
592
593
		trixl.script.load = function(name) {
594
			var xhr = new XMLHttpRequest();
595
			xhr.open('GET', '/script/' + name);
596
			xhr.onreadystatechange = function(ev) {
597
				if (xhr.readyState == 4) {
598
					var scriptEl = document.createElement('script');
599
					scriptEl.textContent = xhr.responseText;
600
601
					document.body.appendChild(scriptEl);
602
				}
603
			}
604
			xhr.send();
605
		};
606
607
		trixl.script.save = function(name, script) {
608
			var xhr = new XMLHttpRequest();
609
			xhr.open('POST', '/script/' + name);
610
			xhr.send(script);
611
		}
612
	</script>
590
</body>
613
</body>
591
</html>
614
</html>

+ 27 - 0
js/pixl/server.js

1
var ws = require('ws');
1
var ws = require('ws');
2
var http = require('http');
2
var http = require('http');
3
var express = require('express');
3
var express = require('express');
4
var processBody = require('body');
4
var fs = require('fs');
5
var fs = require('fs');
5
var path = require('path');
6
var path = require('path');
6
7
65
	})
66
	})
66
});
67
});
67
68
69
app.get('/script/:name', function(req, res) {
70
  var file = req.params.name + '.js';
71
  var dir = './public';
72
  if (!fs.existsSync(path.join(dir, file))) {
73
    dir = './data/scripts';
74
  }
75
  res.sendfile(file, {root: dir});
76
});
77
78
app.post('/script/:name', function(req, res) {
79
  processBody(req, function(err, body) {
80
    if (err) {
81
      res.send(JSON.stringify({status: "error", error: err}));
82
    }
83
84
    fs.writeFile(path.join('./data/scripts/', req.params.name + '.js'), body, function(err) {
85
    if (err) {
86
      res.statusCode = 404;
87
      res.send(JSON.stringify({status: "error", error: err}));
88
    } else {
89
      res.send(JSON.stringify({status: "ok"}));
90
    }
91
  });
92
  });
93
});
94
68
var server = http.createServer(app);
95
var server = http.createServer(app);
69
server.listen(8001);
96
server.listen(8001);
70
97