Change trait SpawnUi to require a target entity
The UIs aren't *any* UIs. They are specifically *machine* UIs. They need to be able to fetch data from components on those machine entities, which means they need some way to find the machine. Passing an entity ID is the easiest way, IMO.
This commit is contained in:
@@ -7,7 +7,7 @@ use crate::{
|
||||
};
|
||||
|
||||
impl SpawnUi for CuttingMachine {
|
||||
fn spawn_ui(mut commands: Commands, theme: Res<UiTheme>) {
|
||||
fn spawn_ui(mut commands: Commands, theme: Res<UiTheme>, machine_id: Entity) {
|
||||
let base_entity = machine_ui_base(&mut commands, "Cutting Machine", &theme);
|
||||
commands.entity(base_entity).with_children(|commands| {
|
||||
// Left panel. For fuel or machine stats or whatever.
|
||||
@@ -58,7 +58,7 @@ impl SpawnUi for CuttingMachine {
|
||||
}
|
||||
|
||||
impl SpawnUi for RotatingMachine {
|
||||
fn spawn_ui(mut commands: Commands, theme: Res<UiTheme>) {
|
||||
fn spawn_ui(mut commands: Commands, theme: Res<UiTheme>, machine_id: Entity) {
|
||||
let base_entity = machine_ui_base(&mut commands, "Rotating Machine", &theme);
|
||||
commands.entity(base_entity).with_children(|commands| {
|
||||
commands.spawn(FuelGauge::bundle(Entity::PLACEHOLDER));
|
||||
@@ -93,7 +93,7 @@ impl SpawnUi for RotatingMachine {
|
||||
}
|
||||
|
||||
impl SpawnUi for FlippingMachine {
|
||||
fn spawn_ui(mut commands: Commands, theme: Res<UiTheme>) {
|
||||
fn spawn_ui(mut commands: Commands, theme: Res<UiTheme>, machine_id: Entity) {
|
||||
let base_entity = machine_ui_base(&mut commands, "Flipping Machine", &theme);
|
||||
commands.entity(base_entity).with_children(|commands| {
|
||||
commands.spawn(FuelGauge::bundle(Entity::PLACEHOLDER));
|
||||
@@ -128,7 +128,7 @@ impl SpawnUi for FlippingMachine {
|
||||
}
|
||||
|
||||
impl SpawnUi for TransposingMachine {
|
||||
fn spawn_ui(mut commands: Commands, theme: Res<UiTheme>) {
|
||||
fn spawn_ui(mut commands: Commands, theme: Res<UiTheme>, machine_id: Entity) {
|
||||
let base_entity = machine_ui_base(&mut commands, "Transposing Machine", &theme);
|
||||
commands.entity(base_entity).with_children(|commands| {
|
||||
commands.spawn(FuelGauge::bundle(Entity::PLACEHOLDER));
|
||||
|
||||
Reference in New Issue
Block a user