use of com.talosvfx.talos.editor.addons.scene.logic.Scene in project talos by rockbite.
the class SceneEditorProject method createWorkspaceEnvironment.
@Override
public void createWorkspaceEnvironment(String path, String name) {
name.replace("/", "");
name.replace("\\", "");
FileHandle parent = Gdx.files.absolute(path);
FileHandle projectDir = Gdx.files.absolute(parent.path() + File.separator + name);
projectDir.mkdirs();
FileHandle assetsDir = Gdx.files.absolute(projectDir.path() + File.separator + "assets");
assetsDir.mkdirs();
// now save the project here
sceneEditorAddon.workspace.setProjectPath(projectDir.path());
FileHandle projectFile = Gdx.files.absolute(projectDir.path() + File.separator + name + SceneEditorAddon.SE.getExtension());
// create new scene
Scene mainScene = new Scene(projectDir.path() + File.separator + "scenes" + File.separator + "main_scene.scn");
mainScene.save();
sceneEditorAddon.workspace.openSavableContainer(mainScene);
// now create main camera
sceneEditorAddon.workspace.createObjectByTypeName("camera", new Vector2(0, 0), null);
TalosMain.Instance().ProjectController().saveProject(projectFile);
sceneEditorAddon.workspace.reloadProjectExplorer();
sceneEditorAddon.projectExplorer.select(mainScene.path);
Notifications.fireEvent(Notifications.obtainEvent(ProjectOpened.class));
}
use of com.talosvfx.talos.editor.addons.scene.logic.Scene in project talos by rockbite.
the class ProjectExplorerWidget method showContextMenu.
public void showContextMenu(Array<FileHandle> files) {
contextualMenu.clearItems();
contextualMenu.addItem("Cut", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
invokeCut(files);
}
});
contextualMenu.addItem("Copy", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
invokeCopy(files);
}
});
contextualMenu.addItem("Paste", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
FileHandle destination = files.first();
invokePaste(destination);
}
});
contextualMenu.addSeparator();
contextualMenu.addItem("Rename", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
String path = files.first().path();
if (path != null) {
FileHandle handle = Gdx.files.absolute(path);
if (handle.isDirectory()) {
if (nodes.get(path) != null) {
RowWidget widget = (RowWidget) nodes.get(path).getActor();
widget.label.setEditMode();
}
} else {
// check if its in the other guy
directoryViewWidget.startRenameFor(handle);
}
}
}
});
contextualMenu.addItem("Delete", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
String path = files.first().path();
Array<String> paths = new Array<>();
for (FileHandle file : files) {
paths.add(file.path());
}
deletePath(paths);
}
});
if (files.size == 1 && files.first().isDirectory()) {
contextualMenu.addSeparator();
PopupMenu popupMenu = new PopupMenu();
createSubMenuItem(popupMenu, "New Directory", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
String path = files.first().path();
if (path != null) {
FileHandle handle = Gdx.files.absolute(path);
if (handle.isDirectory()) {
FileHandle newHandle = findAvailableHandleIn(handle, "New Directory");
newHandle.mkdirs();
loadDirectoryTree((String) rootNode.getObject());
FilteredTree.Node newNode = nodes.get(newHandle.path());
expand(newHandle.path());
select(newNode.getParent());
RowWidget widget = (RowWidget) newNode.getActor();
directoryViewWidget.reload();
directoryViewWidget.startRenameFor(newHandle);
}
}
}
});
createSubMenuItem(popupMenu, "New Scene", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
String path = files.first().path();
FileHandle sceneDestination = AssetImporter.suggestNewName(path, "New Scene", "scn");
Scene mainScene = new Scene(sceneDestination.path());
mainScene.save();
directoryViewWidget.reload();
}
});
createSubMenuItem(popupMenu, "Particle Effect", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
String path = files.first().path();
FileHandle tlsDestination = AssetImporter.suggestNewName(path, "New Effect", "tls");
FileHandle metadataHandle = AssetImporter.makeSimilar(tlsDestination, "meta");
FileHandle originalTls = Gdx.files.internal("addons/scene/missing/sample.tls");
originalTls.copyTo(tlsDestination);
TlsMetadata metadata = new TlsMetadata();
metadata.tlsChecksum = AssetImporter.checkSum(tlsDestination);
AssetImporter.saveMetadata(metadataHandle, metadata);
directoryViewWidget.reload();
}
});
MenuItem createMenu = contextualMenu.addItem("Create", new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
super.clicked(event, x, y);
}
});
createMenu.setSubMenu(popupMenu);
}
contextualMenu.show(getStage());
}
Aggregations