@Override public Sprite clone() { final Sprite cloneSprite = new Sprite(); cloneSprite.setName(this.getName()); cloneSprite.isBackpackObject = false; Project currentProject = ProjectManager.getInstance().getCurrentProject(); if (currentProject == null || !currentProject.getSpriteList().contains(this)) { throw new RuntimeException("The sprite must be in the current project before cloning it."); } Sprite originalSprite = ProjectManager.getInstance().getCurrentSprite(); ProjectManager.getInstance().setCurrentSprite(cloneSprite); cloneSpriteVariables(currentProject, cloneSprite); cloneLooks(cloneSprite); cloneSounds(cloneSprite); cloneUserBricks(cloneSprite); cloneNfcTags(cloneSprite); cloneScripts(cloneSprite); setUserAndVariableBrickReferences(cloneSprite, userBricks); ProjectManager.getInstance().checkCurrentSprite(cloneSprite, false); ProjectManager.getInstance().setCurrentSprite(originalSprite); return cloneSprite; }
public void rename(String newSpriteName) { if ((getRequiredResources() & Brick.PHYSICS) > 0) { List<Sprite> spriteList = ProjectManager.getInstance().getCurrentProject().getSpriteList(); for (Sprite currentSprite : spriteList) { if ((currentSprite.getRequiredResources() & Brick.PHYSICS) > 0) { currentSprite.updateCollisionBroadcastMessages(getName(), newSpriteName); } } } setName(newSpriteName); }
public Sprite cloneForBackPack() { final Sprite cloneSprite = new Sprite(); cloneSprite.setName(this.getName()); return cloneSprite; }