Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
FogNetwork
GitHub Repository: FogNetwork/Tsunami
Path: blob/main/public/games/files/garbage-collector/js/editor-main.js
1036 views
1
/*globals requirejs, define*/
2
requirejs.config({
3
shim: {
4
box2d: {
5
exports: 'Box2D'
6
}
7
},
8
paths: {
9
box2d: 'Box2dWeb/Box2dWeb-2.1.a.3.min'
10
}
11
});
12
13
define(function( require ) {
14
'use strict';
15
16
var Polygon = require( 'geometry/polygon' );
17
var Editor = require( 'editor/editor' );
18
19
20
var editor = new Editor({
21
el: '#editor',
22
scaleEl: '#scale',
23
historyEl: '#history'
24
});
25
26
document.addEventListener( 'keydown', editor.onKeyDown.bind( editor ) );
27
document.addEventListener( 'keyup', editor.onKeyUp.bind( editor ) );
28
29
// Disable all keys on blur.
30
window.addEventListener( 'blur', function() {
31
Object.keys( editor.keys ).forEach(function( key ) {
32
editor.keys[ key ] = false;
33
});
34
});
35
36
var polygon = new Polygon();
37
polygon.vertices = [ 100, 50, -100, 50, 0, -100 ];
38
polygon.angle = 0.5 * Math.PI;
39
editor.add( polygon );
40
editor.draw();
41
42
// Translate all.
43
var translateXEl = document.getElementById( 'translate-x' ),
44
translateYEl = document.getElementById( 'translate-y' );
45
46
var translateBtn = document.getElementById( 'translate-btn' );
47
translateBtn.addEventListener( 'click', function() {
48
var tx = parseFloat( translateXEl.value ),
49
ty = parseFloat( translateYEl.value );
50
51
editor.translateAll( tx, ty );
52
editor.draw();
53
});
54
55
// History buttons.
56
var loadHistoryBtn = document.getElementById( 'load-history-btn' );
57
loadHistoryBtn.addEventListener( 'click', editor.loadSelected.bind( editor ) );
58
59
var removeHistoryBtn = document.getElementById( 'remove-history-btn' );
60
removeHistoryBtn.addEventListener( 'click', editor.removeSelected.bind( editor ) );
61
62
var clearBtn = document.getElementById( 'clear-history-btn' );
63
clearBtn.addEventListener( 'click', editor.clearHistory.bind( editor ) );
64
65
// Text area buttons.
66
function loadDataFn( fnName ) {
67
return function() {
68
var data = editor.textarea.value;
69
var scale = parseFloat( document.getElementById( 'load-scale' ).value );
70
if ( data.length ) {
71
editor[ fnName ]( data, scale );
72
}
73
};
74
}
75
76
var loadDataBtn = document.getElementById( 'load-data-btn' );
77
loadDataBtn.addEventListener( 'click', loadDataFn( 'loadData' ) );
78
79
var loadBatchBtn = document.getElementById( 'load-batch-btn' );
80
loadBatchBtn.addEventListener( 'click', loadDataFn( 'loadBatchData' ) );
81
});
82
83