I am learning Amethyst framework for Rust. And now I follow pong tutorial here.
On step 3 (Moving paddles) tutorial teaches how to set up System for moving paddles.
I followed all the steps, however when I cargo run my application i get an error:
thread 'main' panicked at 'Cannot insert multiple systems with the same name ("parent_hierarchy_system")', /home/path_to_cargo/shred-0.9.4/src/dispatch/builder.rs:172:17
I tried just to copy from GitHub repository of tutorial but get the same result.
My Cargo.toml looks:
[package]
name = "pong"
version = "0.1.0"
authors = []
edition = "2018"
[dependencies.amethyst]
version = "0.13"
features = ["vulkan"]
I run the project on Ubuntu 19.10. Rust version 1.37.
My guess is that input_system is somehow added twice when running. I have searched both tutorial repository for the same issue and the web. But it seems I am the only one who faced it. Perhaps solution is very easy but I have spent my Saturday trying to fix it.
let game_data = GameDataBuilder::default()
    .with_bundle(TransformBundle::new())?
    .with_bundle(input_bundle)?
    .with(systems::PaddleSystem, "paddle_system", &["input_system"]) // Add this line
    .with_bundle(
        RenderingBundle::<DefaultBackend>::new()
            .with_plugin(
                RenderToWindow::from_config_path(display_config_path)
                    .with_clear([0.0, 0.0, 0.0, 1.0]),
            )
            // RenderFlat2D plugin is used to render entities with a `SpriteRender` component.
            .with_plugin(RenderFlat2D::default()),
        )?
    .with_bundle(TransformBundle::new())?;
The code of my GameDataBuilder initialization.
                        
You have added the
TransformBundletwice.Removing one will remove this error.