Skip to content

Instantly share code, notes, and snippets.

@sapphire-arches
Last active May 27, 2017 02:24
Show Gist options
  • Save sapphire-arches/29208b93fd40465a335078b997834c0a to your computer and use it in GitHub Desktop.
Save sapphire-arches/29208b93fd40465a335078b997834c0a to your computer and use it in GitHub Desktop.
struct PositionComponent {
x: f32;
y: f32;
}
impl Component for PositionComponent {
type Storage = VecStorage<PositionComponent>;
}
enum RenderShape {
Sprite(String),
Box(f32, f32)
}
struct RenderComponent {
shape: RenderShape
}
impl Component for RenderComponent {
type Storage = VecStorage<RenderComponent>;
}
struct RenderSystem;
impl specs::System<()> for RenderSystem {
fn run(&mut self, arg: specs::RunArg, _: ()) {
let (positions, renderables) = arg.fetch(|w| {
(
w.read::<PositionComponent>(),
w.read::<RenderComponent>()
)});
let renderer = create_renderer_for_frame(); // Could be a member of RenderSystem or whatever
for (pos, ren) in (positions, renderables).join() {
render.render_object(pos, ren);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment