Path: blob/main/public/games/files/garbage-collector/js/editor-main.js
1036 views
/*globals requirejs, define*/1requirejs.config({2shim: {3box2d: {4exports: 'Box2D'5}6},7paths: {8box2d: 'Box2dWeb/Box2dWeb-2.1.a.3.min'9}10});1112define(function( require ) {13'use strict';1415var Polygon = require( 'geometry/polygon' );16var Editor = require( 'editor/editor' );171819var editor = new Editor({20el: '#editor',21scaleEl: '#scale',22historyEl: '#history'23});2425document.addEventListener( 'keydown', editor.onKeyDown.bind( editor ) );26document.addEventListener( 'keyup', editor.onKeyUp.bind( editor ) );2728// Disable all keys on blur.29window.addEventListener( 'blur', function() {30Object.keys( editor.keys ).forEach(function( key ) {31editor.keys[ key ] = false;32});33});3435var polygon = new Polygon();36polygon.vertices = [ 100, 50, -100, 50, 0, -100 ];37polygon.angle = 0.5 * Math.PI;38editor.add( polygon );39editor.draw();4041// Translate all.42var translateXEl = document.getElementById( 'translate-x' ),43translateYEl = document.getElementById( 'translate-y' );4445var translateBtn = document.getElementById( 'translate-btn' );46translateBtn.addEventListener( 'click', function() {47var tx = parseFloat( translateXEl.value ),48ty = parseFloat( translateYEl.value );4950editor.translateAll( tx, ty );51editor.draw();52});5354// History buttons.55var loadHistoryBtn = document.getElementById( 'load-history-btn' );56loadHistoryBtn.addEventListener( 'click', editor.loadSelected.bind( editor ) );5758var removeHistoryBtn = document.getElementById( 'remove-history-btn' );59removeHistoryBtn.addEventListener( 'click', editor.removeSelected.bind( editor ) );6061var clearBtn = document.getElementById( 'clear-history-btn' );62clearBtn.addEventListener( 'click', editor.clearHistory.bind( editor ) );6364// Text area buttons.65function loadDataFn( fnName ) {66return function() {67var data = editor.textarea.value;68var scale = parseFloat( document.getElementById( 'load-scale' ).value );69if ( data.length ) {70editor[ fnName ]( data, scale );71}72};73}7475var loadDataBtn = document.getElementById( 'load-data-btn' );76loadDataBtn.addEventListener( 'click', loadDataFn( 'loadData' ) );7778var loadBatchBtn = document.getElementById( 'load-batch-btn' );79loadBatchBtn.addEventListener( 'click', loadDataFn( 'loadBatchData' ) );80});818283