private void addScriptToProject(int position, ScriptBrick scriptBrick) { Sprite currentSprite = ProjectManager.getInstance().getCurrentSprite(); int[] temp = getScriptAndBrickIndexFromProject(position); int scriptPosition = temp[0]; int brickPosition = temp[1]; Script newScript = scriptBrick.getScriptSafe(); if (currentSprite.getNumberOfBricks() > 0) { int addScriptTo = position == 0 ? 0 : scriptPosition + 1; currentSprite.addScript(addScriptTo, newScript); } else { currentSprite.addScript(newScript); } Script previousScript = currentSprite.getScript(scriptPosition); if (previousScript != null) { Brick brick; int size = previousScript.getBrickList().size(); for (int i = brickPosition; i < size; i++) { brick = previousScript.getBrick(brickPosition); previousScript.removeBrick(brick); newScript.addBrick(brick); } } ProjectManager.getInstance().setCurrentScript(newScript); }
public void removeFromBrickListAndProject(int index, boolean removeScript) { if (addingNewBrick) { brickList.remove(draggedBrick); } else if (script == null) { int[] temp = getScriptAndBrickIndexFromProject(index); Script script = ProjectManager.getInstance().getCurrentSprite().getScript(temp[0]); if (script != null) { Brick brick = script.getBrick(temp[1]); if (brick instanceof NestingBrick) { for (NestingBrick tempBrick : ((NestingBrick) brick).getAllNestingBrickParts(true)) { script.removeBrick((Brick) tempBrick); } } else { script.removeBrick(brick); } if (removeScript) { brickList.remove(script); } } } else { Brick brick = script.getBrick(getPositionInUserScript(index)); if (brick instanceof NestingBrick) { for (NestingBrick tempBrick : ((NestingBrick) brick).getAllNestingBrickParts(true)) { script.removeBrick((Brick) tempBrick); } } else { script.removeBrick(brick); } } firstDrag = true; draggedBrick = null; addingNewBrick = false; initBrickList(); notifyDataSetChanged(); }
public void launchAddBrickAndSelectBrickAt(Context context, int index) { int[] temp = getScriptAndBrickIndexFromProject(index); Script script = ProjectManager.getInstance().getCurrentSprite().getScript(temp[0]); if (script != null) { Brick brick = script.getBrick(temp[1]); if (!viewSwitchLock.tryLock()) { return; } if (brick instanceof UserBrick) { AddBrickFragment.setBrickFocus(((UserBrick) brick)); } ScriptFragment theScriptFragment = ((ScriptFragment) scriptFragment); theScriptFragment.onCategorySelected(context.getString(R.string.category_user_bricks)); } }
private void moveExistingProjectBrick(int from, int to) { Sprite currentSprite = ProjectManager.getInstance().getCurrentSprite(); int[] tempFrom = getScriptAndBrickIndexFromProject(from); int scriptPositionFrom = tempFrom[0]; int brickPositionFrom = tempFrom[1]; Script fromScript = currentSprite.getScript(scriptPositionFrom); Brick brick = fromScript.getBrick(brickPositionFrom); if (draggedBrick != brick) { Log.e(TAG, "Want to save wrong brick"); return; } fromScript.removeBrick(brick); int[] tempTo = getScriptAndBrickIndexFromProject(to); int scriptPositionTo = tempTo[0]; int brickPositionTo = tempTo[1]; Script toScript = currentSprite.getScript(scriptPositionTo); toScript.addBrick(brickPositionTo, brick); }
private void moveUserBrick(int from, int to) { Brick brick = script.getBrick(getPositionInUserScript(from)); script.removeBrick(brick); script.addBrick(getPositionInUserScript(to), brick); }