6 releases (breaking)
0.5.0 | Jul 11, 2023 |
---|---|
0.4.0 | Jul 10, 2023 |
0.3.0 | May 21, 2023 |
0.2.0 | May 7, 2023 |
0.1.1 | May 1, 2023 |
#873 in Game dev
59KB
896 lines
bevy_mod_chroma
Razer Chroma support plugin for Bevy. Uses the Razer Chroma HTTP API to communicate with the Razer Chroma system.
Usage
You will need Razer Chroma software installed to properly use this plugin.
If you don't have certain types of hardware devices, Razer also provides an emulator that you can use to test your effects.
General flow is that you need to register effects via Chroma::create_effect
to get an EffectHandle
, and then you can pass that handle to Chroma::apply_effect
to apply.
See the examples directory for more detailed examples.
System setup
Add the plugin to your app:
use bevy::prelude::*;
use bevy_mod_chroma::{
Author, Category, ChromaPlugin, ChromaRunnerInitializationSettings, InitRequest, SupportedDevice,
};
fn main() {
App::new()
.add_plugins(ChromaPlugin::new(ChromaRunnerInitializationSettings::new(
InitRequest {
title: "Your Bevy app title goes here",
description: "Your Bevy app description goes here",
author: Author {
name: "Your name",
contact: "Your contact",
},
device_supported: vec![
SupportedDevice::Keyboard,
SupportedDevice::Mouse,
//...
],
category: Category::Application, // or Category::Game
},
)))
//...
.run();
}
NOTE: The information you provide to
ChromaRunnerInitializationSettings
is displayed in the Razer Synapse connect menu!
Create and apply effects
Use the Chroma
parameter in systems to create and apply effects:
use bevy_mod_chroma::{Chroma, Effect, EffectHandle, MouseEffect};
fn red_mouse(mut chroma: Chroma) {
let red_handle = chroma.create_effect(Effect::Mouse(MouseEffect::Static {
color: Color::RED.into(),
}));
chroma.apply_effect(&red_handle);
}
Compatible Bevy versions
The main branch is compatible with the latest Bevy release.
Compatibility of bevy_mod_chroma
versions:
bevy_mod_chroma branch |
Compatible Bevy version |
---|---|
develop |
0.11 |
bevy_0.10 |
0.10 |
TODOs
- Documentation
- Error handling
- Retries
- Reconnect after dropped connections
Wants
- Websocket version
- Built-in animations support
Dependencies
~36–72MB
~1.5M SLoC