amethyst / bracket-lib

The Roguelike Toolkit (RLTK), implemented for Rust.
MIT License
1.52k stars 108 forks source link

Issues with link_resource #361

Open Opayne93 opened 4 months ago

Opayne93 commented 4 months ago

I am following the Roguelike tutorial and am trying to make use of an REX file. Code is below:

use bracket_lib::prelude::{embedded_resource, link_resource, XpFile};

embedded_resource!(SMALL_DUNGEON, "../resources/desert.xp");
pub struct RexAssets {
    pub menu: XpFile
}

impl RexAssets {
    pub fn new() -> RexAssets {
        link_resource!(SMALL_DUNGEON, "../resources/desert.xp");

        RexAssets {
            menu: XpFile::from_resource("../resources/desert.xp").unwrap()
        }
    }
}

I am getting this build error:

error[E0425]: cannot find value `EMBED` in this scope
  --> src/rex_assets.rs:10:9
   |
10 |         link_resource!(SMALL_DUNGEON, "../resources/desert.xp");
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
   |
   = note: this error originates in the macro `link_resource` (in Nightly builds, run with -Z macro-backtrace for more info)

Any ideas why I would be getting this? Peeking at the source code for link_resource, I see a reference to EMBED, but I don't know anything about macros, so I'm not sure what it's referencing or what it is trying to do.

I am on a M1 Macbook running rustc version 1.77.1

Opayne93 commented 4 months ago

Update: I was able to resolve this issue by adding bracket-embedding to my build, and by importing bracket-embedding::prelude::* in the file where I am utilizing the macro. Is it expected behavior that this additional dependency is required?