First cut at turning lists into typed variables

This commit is contained in:
Karishma Chadha 2017-11-09 17:19:34 -05:00
parent a735459427
commit 70959cc7f5
9 changed files with 55 additions and 80 deletions

View file

@ -13,7 +13,6 @@ const log = require('../util/log');
const uid = require('../util/uid');
const specMap = require('./sb2_specmap');
const Variable = require('../engine/variable');
const List = require('../engine/list');
const {loadCostume} = require('../import/load-costume.js');
const {loadSound} = require('../import/load-sound.js');
@ -235,9 +234,10 @@ const parseScratchObject = function (object, runtime, extensions, topLevel) {
const newVariable = new Variable(
getVariableId(variable.name),
variable.name,
variable.value,
"",
variable.isPersistent
);
newVariable.value = variable.value;
target.variables[newVariable.id] = newVariable;
}
}
@ -251,10 +251,14 @@ const parseScratchObject = function (object, runtime, extensions, topLevel) {
for (let k = 0; k < object.lists.length; k++) {
const list = object.lists[k];
// @todo: monitor properties.
target.lists[list.listName] = new List(
const newVariable = new Variable(
getVariableId(list.listName),
list.listName,
list.contents
"list",
list.isPersistent
);
newVariable.value = list.contents;
target.variables[newVariable.id] = newVariable;
}
}
if (object.hasOwnProperty('scratchX')) {

View file

@ -1252,7 +1252,7 @@ const specMap = {
]
},
'contentsOfList:': {
opcode: 'data_list',
opcode: 'data_listcontents',
argMap: [
{
type: 'field',

View file

@ -8,7 +8,6 @@ const vmPackage = require('../../package.json');
const Blocks = require('../engine/blocks');
const Sprite = require('../sprites/sprite');
const Variable = require('../engine/variable');
const List = require('../engine/list');
const {loadCostume} = require('../import/load-costume.js');
const {loadSound} = require('../import/load-sound.js');
@ -125,22 +124,13 @@ const parseScratchObject = function (object, runtime, extensions) {
const newVariable = new Variable(
variable.id,
variable.name,
variable.value,
variable.type,
variable.isPersistent
);
newVariable.value = variable.value;
target.variables[newVariable.id] = newVariable;
}
}
if (object.hasOwnProperty('lists')) {
for (let k = 0; k < object.lists.length; k++) {
const list = object.lists[k];
// @todo: monitor properties.
target.lists[list.listName] = new List(
list.listName,
list.contents
);
}
}
if (object.hasOwnProperty('x')) {
target.x = object.x;
}