예제 #1
0
  private void addBrickToPositionInProject(int position, Brick brick) {
    Sprite currentSprite = ProjectManager.getInstance().getCurrentSprite();

    int[] temp = getScriptAndBrickIndexFromProject(position);

    int scriptPosition = temp[0];
    int brickPosition = temp[1];

    Script script = currentSprite.getScript(scriptPosition);

    if (brick instanceof NestingBrick) {
      ((NestingBrick) draggedBrick).initialize();
      List<NestingBrick> nestingBrickList =
          ((NestingBrick) draggedBrick).getAllNestingBrickParts(true);
      for (int i = 0; i < nestingBrickList.size(); i++) {
        if (nestingBrickList.get(i) instanceof DeadEndBrick) {
          if (i < nestingBrickList.size() - 1) {
            Log.w(TAG, "Adding a DeadEndBrick in the middle of the NestingBricks");
          }
          position = getPositionForDeadEndBrick(position);
          temp = getScriptAndBrickIndexFromProject(position);
          script.addBrick(temp[1], (Brick) nestingBrickList.get(i));
        } else {
          script.addBrick(brickPosition + i, (Brick) nestingBrickList.get(i));
        }
      }
    } else {
      script.addBrick(brickPosition, brick);
    }
  }
예제 #2
0
 private void addBrickToPositionInUserScript(int position, Brick brick) {
   position = getPositionInUserScript(position);
   if (brick instanceof NestingBrick) {
     ((NestingBrick) draggedBrick).initialize();
     List<NestingBrick> nestingBrickList =
         ((NestingBrick) draggedBrick).getAllNestingBrickParts(true);
     for (int i = 0; i < nestingBrickList.size(); i++) {
       script.addBrick(position + i, (Brick) nestingBrickList.get(i));
     }
   } else {
     script.addBrick(position, brick);
   }
 }