package greenfoot.importer.scratch;
import java.util.LinkedList;
import java.util.List;
| Mirrors the Scratch ScratchStageMorph class, which is the equivalent of World.
| @author neil
|
public class ScratchStageMorph
extends ScriptableScratchMorph{
public ScratchStageMorph(int version, List<ScratchObject> scratchObjects)
{
super(ScratchUserObject.SCRATCH_STAGE_MORPH, version, scratchObjects);
}
@Override public int fields()
{
return super.fields() + 9;
}
ScratchObjectArray getSprites()
{
return (ScratchObjectArray)scratchObjects.get(super.fields() + 4);
}
@Override
protected void constructorContents(StringBuilder acc)
{
ImageMedia image = getCostume();
acc.append("super(").append(image.getWidth()).append(", ").append(image.getHeight()).append(", 1);\n");
LinkedList<String> classes = new LinkedList<String>();
ScratchObjectArray sprites = getSprites();
for (ScratchObject o : sprites.getValue()) {
ScratchSpriteMorph sprite = (ScratchSpriteMorph)o;
String spriteName = sprite.getObjNameJava();
acc.append("addObject(new ").append(spriteName).append("(), ");
acc.append(sprite.getGreenfootCentre().x.intValue());
acc.append(", ");
acc.append(sprite.getGreenfootCentre().y.intValue());
acc.append(");\n");
classes.addFirst(spriteName);
}
if (!classes.isEmpty()) {
acc.append("setPaintOrder(Bubble.class");
for (String cls : classes) {
acc.append(", ").append(cls).append(".class");
}
acc.append(");\n");
}
}
@Override
protected String greenfootSuperClass()
{
return "World";
}
}
top,
use,
map,
class ScratchStageMorph
. ScratchStageMorph
. fields
. constructorContents
. greenfootSuperClass
79 neLoCode
+ 2 LoComm