void GameView::init(Lumix::WorldEditor& editor)
{
	m_editor = &editor;
	auto& engine = editor.getEngine();
	auto* renderer = static_cast<Lumix::Renderer*>(engine.getPluginManager().getPlugin("renderer"));
	Lumix::Path path("pipelines/game_view.lua");
	m_pipeline = Lumix::Pipeline::create(*renderer, path, engine.getAllocator());
	m_pipeline->load();

	editor.universeCreated().bind<GameView, &GameView::onUniverseCreated>(this);
	editor.universeDestroyed().bind<GameView, &GameView::onUniverseDestroyed>(this);
	onUniverseCreated();
}
bool SceneView::init(LogUI& log_ui, Lumix::WorldEditor& editor, Lumix::Array<Action*>& actions)
{
	m_log_ui = &log_ui;
	m_editor = &editor;
	auto& engine = editor.getEngine();
	auto& allocator = engine.getAllocator();
	auto* renderer = static_cast<Lumix::Renderer*>(engine.getPluginManager().getPlugin("renderer"));
	m_is_opengl = renderer->isOpenGL();
	Lumix::Path path("pipelines/main.lua");
	m_pipeline = Lumix::Pipeline::create(*renderer, path, engine.getAllocator());
	m_pipeline->load();
	m_pipeline->addCustomCommandHandler("renderGizmos")
		.callback.bind<SceneView, &SceneView::renderGizmos>(this);
	m_pipeline->addCustomCommandHandler("renderIcons")
		.callback.bind<SceneView, &SceneView::renderIcons>(this);

	editor.universeCreated().bind<SceneView, &SceneView::onUniverseCreated>(this);
	editor.universeDestroyed().bind<SceneView, &SceneView::onUniverseDestroyed>(this);

	m_toggle_gizmo_step_action =
		LUMIX_NEW(editor.getAllocator(), Action)("Enable/disable gizmo step", "toggleGizmoStep");
	m_toggle_gizmo_step_action->is_global = false;
	actions.push(m_toggle_gizmo_step_action);

	m_move_forward_action = LUMIX_NEW(editor.getAllocator(), Action)("Move forward", "moveForward");
	m_move_forward_action->is_global = false;
	actions.push(m_move_forward_action);

	m_move_back_action = LUMIX_NEW(editor.getAllocator(), Action)("Move back", "moveBack");
	m_move_back_action->is_global = false;
	actions.push(m_move_back_action);

	m_move_left_action = LUMIX_NEW(editor.getAllocator(), Action)("Move left", "moveLeft");
	m_move_left_action->is_global = false;
	actions.push(m_move_left_action);

	m_move_right_action = LUMIX_NEW(editor.getAllocator(), Action)("Move right", "moveRight");
	m_move_right_action->is_global = false;
	actions.push(m_move_right_action);

	m_move_up_action = LUMIX_NEW(editor.getAllocator(), Action)("Move up", "moveUp");
	m_move_up_action->is_global = false;
	actions.push(m_move_up_action);

	m_move_down_action = LUMIX_NEW(editor.getAllocator(), Action)("Move down", "moveDown");
	m_move_down_action->is_global = false;
	actions.push(m_move_down_action);

	return true;
}