write room to bitsy data
This commit is contained in:
parent
3425659d70
commit
984c639309
|
@ -2,6 +2,7 @@ $(document).ready(function() {
|
||||||
var bitsyData = {};
|
var bitsyData = {};
|
||||||
|
|
||||||
var palette = {
|
var palette = {
|
||||||
|
id: 0,
|
||||||
background: {
|
background: {
|
||||||
red: 62,
|
red: 62,
|
||||||
green: 43,
|
green: 43,
|
||||||
|
@ -112,7 +113,7 @@ $(document).ready(function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
bitsyData.palettes[name] = {
|
bitsyData.palettes[name] = {
|
||||||
sortOrder: n,
|
id: n,
|
||||||
background: colours[0],
|
background: colours[0],
|
||||||
tile: colours[1],
|
tile: colours[1],
|
||||||
sprite: colours[2],
|
sprite: colours[2],
|
||||||
|
@ -140,7 +141,7 @@ $(document).ready(function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// set palette to first imported palette and redraw
|
// set palette to first imported palette and redraw
|
||||||
palette = _.first(_.sortBy(bitsyData.palettes, 'sortOrder'));
|
palette = _.first(_.sortBy(bitsyData.palettes, 'id'));
|
||||||
|
|
||||||
renderResult();
|
renderResult();
|
||||||
|
|
||||||
|
@ -150,7 +151,10 @@ $(document).ready(function() {
|
||||||
_.each(bitsyData.palettes, function(palette, name) {
|
_.each(bitsyData.palettes, function(palette, name) {
|
||||||
$('#palette tbody').append(
|
$('#palette tbody').append(
|
||||||
'<tr class="palette">'
|
'<tr class="palette">'
|
||||||
+ '<td><input type="radio" name="palette" id="palette-' + name + '"></td>'
|
+ '<td>'
|
||||||
|
+ '<input type="radio" name="palette" id="palette-' + name + '">'
|
||||||
|
+ '<input type="hidden" name="id" value="' + palette.id + '">'
|
||||||
|
+ '</td>'
|
||||||
+ '<td><label for="palette-' + name + '">' + name + '</label></td>'
|
+ '<td><label for="palette-' + name + '">' + name + '</label></td>'
|
||||||
+ '<td><input type="color" name="background" value="' + colourToHex(palette.background) + '"></td>'
|
+ '<td><input type="color" name="background" value="' + colourToHex(palette.background) + '"></td>'
|
||||||
+ '<td><input type="color" name="tile" value="' + colourToHex(palette.tile) + '"></td>'
|
+ '<td><input type="color" name="tile" value="' + colourToHex(palette.tile) + '"></td>'
|
||||||
|
@ -311,6 +315,7 @@ $(document).ready(function() {
|
||||||
readFile(this);
|
readFile(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// these inputs get added and removed from the DOM so the event handler needs to be on the document
|
||||||
$(document).on('change', '#palette input', function() {
|
$(document).on('change', '#palette input', function() {
|
||||||
// if this is a colour input, update the palette
|
// if this is a colour input, update the palette
|
||||||
if ($(this).attr('type') === 'color') {
|
if ($(this).attr('type') === 'color') {
|
||||||
|
@ -319,10 +324,32 @@ $(document).ready(function() {
|
||||||
|
|
||||||
// if this is a radio button, pick this palette
|
// if this is a radio button, pick this palette
|
||||||
if ($(this).attr('type') === 'radio') {
|
if ($(this).attr('type') === 'radio') {
|
||||||
palette.background = hexToColour($(this).closest('.palette').find('input[type="color"][name="background"]').val());
|
palette.id = parseInt( $(this).closest('.palette').find('input[name="id"]' ).val());
|
||||||
palette.tile = hexToColour($(this).closest('.palette').find('input[type="color"][name="tile"]').val());
|
palette.background = hexToColour($(this).closest('.palette').find('input[name="background"]').val());
|
||||||
|
palette.tile = hexToColour($(this).closest('.palette').find('input[name="tile"]' ).val());
|
||||||
|
// sprite colour is not currently used
|
||||||
}
|
}
|
||||||
|
|
||||||
renderResult();
|
renderResult();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#save').on('click touchend', function() {
|
||||||
|
var newGameData = $('textarea').val();
|
||||||
|
|
||||||
|
// need to import IDs so we don't give the new room a conflicting ID
|
||||||
|
var roomNames = newGameData.match(/ROOM \d+/g);
|
||||||
|
|
||||||
|
var newRoomId = parseInt(_.last(roomNames).replace(/[^\d]+/g, "")) + 1;
|
||||||
|
|
||||||
|
var newRoom = "ROOM " + newRoomId + "\n";
|
||||||
|
|
||||||
|
_.each(room, function(row) {
|
||||||
|
newRoom += _.toString(row) + "\n";
|
||||||
|
});
|
||||||
|
|
||||||
|
newRoom += "PAL " + palette.id + "\n";
|
||||||
|
|
||||||
|
// write
|
||||||
|
$('textarea').val(newGameData.replace(/(ROOM .*\n(.*\n)*PAL .*)/g, '$1\n\n' + newRoom));
|
||||||
|
});
|
||||||
});
|
});
|
Loading…
Reference in New Issue