Skip to content

Commit

Permalink
Clean up type registrations (bevyengine#12314)
Browse files Browse the repository at this point in the history
# Objective
Fix bevyengine#12304. Remove unnecessary type registrations thanks to bevyengine#4154.

## Solution
Conservatively remove type registrations. Keeping the top level
components, resources, and events, but dropping everything else that is
a type of a member of those types.
  • Loading branch information
james7132 authored and spectria-limina committed Mar 9, 2024
1 parent 5bf4ec3 commit 4391306
Show file tree
Hide file tree
Showing 17 changed files with 17 additions and 205 deletions.
4 changes: 0 additions & 4 deletions crates/bevy_animation/src/lib.rs
Expand Up @@ -687,10 +687,6 @@ impl Plugin for AnimationPlugin {
app.init_asset::<AnimationClip>()
.register_asset_reflect::<AnimationClip>()
.register_type::<AnimationPlayer>()
.register_type::<VariableCurve>()
.register_type::<Vec<VariableCurve>>()
.register_type::<Interpolation>()
.register_type::<Keyframes>()
.register_type::<AnimationTarget>()
.add_systems(
PostUpdate,
Expand Down
1 change: 0 additions & 1 deletion crates/bevy_asset/src/lib.rs
Expand Up @@ -378,7 +378,6 @@ impl AssetApp for App {
.add_event::<AssetEvent<A>>()
.add_event::<AssetLoadFailedEvent<A>>()
.register_type::<Handle<A>>()
.register_type::<AssetId<A>>()
.add_systems(
First,
Assets::<A>::asset_events
Expand Down
1 change: 0 additions & 1 deletion crates/bevy_core/Cargo.toml
Expand Up @@ -17,7 +17,6 @@ bevy_app = { path = "../bevy_app", version = "0.14.0-dev", features = [
bevy_ecs = { path = "../bevy_ecs", version = "0.14.0-dev", features = [
"bevy_reflect",
] }
bevy_math = { path = "../bevy_math", version = "0.14.0-dev" }
bevy_reflect = { path = "../bevy_reflect", version = "0.14.0-dev", features = [
"bevy",
] }
Expand Down
77 changes: 0 additions & 77 deletions crates/bevy_core/src/lib.rs
Expand Up @@ -19,17 +19,9 @@ pub mod prelude {
}

use bevy_app::prelude::*;
use bevy_ecs::component::{ComponentId, ComponentTicks, Tick};
use bevy_ecs::prelude::*;
use bevy_reflect::{ReflectDeserialize, ReflectSerialize};
use bevy_utils::{Duration, HashSet, Instant, Uuid};
use std::borrow::Cow;
use std::ffi::OsString;
use std::marker::PhantomData;
use std::ops::Range;
use std::path::{Path, PathBuf};

#[cfg(not(target_arch = "wasm32"))]
#[cfg(not(target_arch = "wasm32"))]
use bevy_tasks::tick_global_task_pools_on_main_thread;

Expand All @@ -40,78 +32,9 @@ pub struct TypeRegistrationPlugin;
impl Plugin for TypeRegistrationPlugin {
fn build(&self, app: &mut App) {
app.register_type::<Name>();

register_ecs_types(app);
register_rust_types(app);
register_math_types(app);
}
}

fn register_ecs_types(app: &mut App) {
app.register_type::<Entity>()
.register_type::<ComponentId>()
.register_type::<Tick>()
.register_type::<ComponentTicks>();
}

fn register_rust_types(app: &mut App) {
app.register_type::<Range<f32>>()
.register_type_data::<Range<f32>, ReflectSerialize>()
.register_type_data::<Range<f32>, ReflectDeserialize>()
.register_type::<String>()
.register_type::<PathBuf>()
.register_type::<OsString>()
.register_type::<HashSet<String>>()
.register_type::<Option<String>>()
.register_type::<Option<bool>>()
.register_type::<Option<f32>>()
.register_type::<Option<f64>>()
.register_type::<Vec<f32>>()
.register_type::<Cow<'static, str>>()
.register_type::<Cow<'static, Path>>()
.register_type::<Duration>()
.register_type::<Instant>()
.register_type::<Uuid>();
}

fn register_math_types(app: &mut App) {
app.register_type::<bevy_math::IVec2>()
.register_type::<bevy_math::IVec3>()
.register_type::<bevy_math::IVec4>()
.register_type::<bevy_math::UVec2>()
.register_type::<bevy_math::UVec3>()
.register_type::<bevy_math::UVec4>()
.register_type::<bevy_math::DVec2>()
.register_type::<Option<bevy_math::DVec2>>()
.register_type::<bevy_math::DVec3>()
.register_type::<bevy_math::DVec4>()
.register_type::<bevy_math::BVec2>()
.register_type::<bevy_math::BVec3>()
.register_type::<bevy_math::BVec3A>()
.register_type::<bevy_math::BVec4>()
.register_type::<bevy_math::BVec4A>()
.register_type::<bevy_math::Vec2>()
.register_type::<bevy_math::Vec3>()
.register_type::<bevy_math::Vec3A>()
.register_type::<bevy_math::Vec4>()
.register_type::<bevy_math::DAffine2>()
.register_type::<bevy_math::DAffine3>()
.register_type::<bevy_math::Affine2>()
.register_type::<bevy_math::Affine3A>()
.register_type::<bevy_math::DMat2>()
.register_type::<bevy_math::DMat3>()
.register_type::<bevy_math::DMat4>()
.register_type::<bevy_math::Mat2>()
.register_type::<bevy_math::Mat3>()
.register_type::<bevy_math::Mat3A>()
.register_type::<bevy_math::Mat4>()
.register_type::<bevy_math::DQuat>()
.register_type::<bevy_math::Quat>()
.register_type::<bevy_math::Rect>()
.register_type::<Vec<bevy_math::Quat>>()
.register_type::<Vec<bevy_math::Vec3>>();
}

/// Setup of default task pools: [`AsyncComputeTaskPool`](bevy_tasks::AsyncComputeTaskPool),
/// [`ComputeTaskPool`](bevy_tasks::ComputeTaskPool), [`IoTaskPool`](bevy_tasks::IoTaskPool).
#[derive(Default)]
Expand Down
2 changes: 0 additions & 2 deletions crates/bevy_core_pipeline/src/core_3d/mod.rs
Expand Up @@ -93,8 +93,6 @@ pub struct Core3dPlugin;
impl Plugin for Core3dPlugin {
fn build(&self, app: &mut App) {
app.register_type::<Camera3d>()
.register_type::<Camera3dDepthLoadOp>()
.register_type::<Camera3dDepthTextureUsage>()
.register_type::<ScreenSpaceTransmissionQuality>()
.add_plugins((SkyboxPlugin, ExtractComponentPlugin::<Camera3d>::default()))
.add_systems(PostUpdate, check_msaa);
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_core_pipeline/src/fxaa/mod.rs
Expand Up @@ -86,7 +86,7 @@ impl Plugin for FxaaPlugin {
fn build(&self, app: &mut App) {
load_internal_asset!(app, FXAA_SHADER_HANDLE, "fxaa.wgsl", Shader::from_wgsl);

app.register_type::<Fxaa>().register_type::<Sensitivity>();
app.register_type::<Fxaa>();
app.add_plugins(ExtractComponentPlugin::<Fxaa>::default());

let Ok(render_app) = app.get_sub_app_mut(RenderApp) else {
Expand Down
3 changes: 0 additions & 3 deletions crates/bevy_hierarchy/src/lib.rs
Expand Up @@ -84,13 +84,10 @@ use bevy_app::prelude::*;
#[derive(Default)]
pub struct HierarchyPlugin;

#[cfg(feature = "bevy_app")]
use bevy_utils::smallvec::SmallVec;
impl Plugin for HierarchyPlugin {
fn build(&self, app: &mut App) {
app.register_type::<Children>()
.register_type::<Parent>()
.register_type::<SmallVec<[bevy_ecs::entity::Entity; 8]>>()
.add_event::<HierarchyEvent>();
}
}
58 changes: 13 additions & 45 deletions crates/bevy_input/src/lib.rs
Expand Up @@ -34,19 +34,15 @@ pub mod prelude {
use bevy_app::prelude::*;
use bevy_ecs::prelude::*;
use bevy_reflect::Reflect;
use keyboard::{keyboard_input_system, Key, KeyCode, KeyboardInput, NativeKey, NativeKeyCode};
use mouse::{
mouse_button_input_system, MouseButton, MouseButtonInput, MouseMotion, MouseScrollUnit,
MouseWheel,
};
use touch::{touch_screen_input_system, ForceTouch, TouchInput, TouchPhase, Touches};
use keyboard::{keyboard_input_system, KeyCode, KeyboardInput};
use mouse::{mouse_button_input_system, MouseButton, MouseButtonInput, MouseMotion, MouseWheel};
use touch::{touch_screen_input_system, TouchInput, Touches};
use touchpad::{TouchpadMagnify, TouchpadRotate};

use gamepad::{
gamepad_axis_event_system, gamepad_button_event_system, gamepad_connection_system,
gamepad_event_system, AxisSettings, ButtonAxisSettings, ButtonSettings, Gamepad, GamepadAxis,
GamepadAxisChangedEvent, GamepadAxisType, GamepadButton, GamepadButtonChangedEvent,
GamepadButtonInput, GamepadButtonType, GamepadConnection, GamepadConnectionEvent, GamepadEvent,
gamepad_event_system, GamepadAxis, GamepadAxisChangedEvent, GamepadButton,
GamepadButtonChangedEvent, GamepadButtonInput, GamepadConnectionEvent, GamepadEvent,
GamepadRumbleRequest, GamepadSettings, Gamepads,
};

Expand Down Expand Up @@ -108,43 +104,15 @@ impl Plugin for InputPlugin {
.add_systems(PreUpdate, touch_screen_input_system.in_set(InputSystem));

// Register common types
app.register_type::<ButtonState>();

// Register keyboard types
app.register_type::<KeyboardInput>()
.register_type::<KeyCode>()
.register_type::<NativeKeyCode>()
.register_type::<Key>()
.register_type::<NativeKey>();

// Register mouse types
app.register_type::<MouseButtonInput>()
.register_type::<MouseButton>()
.register_type::<MouseMotion>()
.register_type::<MouseScrollUnit>()
.register_type::<MouseWheel>();

// Register touchpad types
app.register_type::<TouchpadMagnify>()
.register_type::<TouchpadRotate>();

// Register touch types
app.register_type::<TouchInput>()
.register_type::<ForceTouch>()
.register_type::<TouchPhase>();

// Register gamepad types
app.register_type::<Gamepad>()
.register_type::<GamepadConnection>()
.register_type::<GamepadButtonType>()
.register_type::<GamepadButton>()
app.register_type::<ButtonState>()
.register_type::<KeyboardInput>()
.register_type::<MouseButtonInput>()
.register_type::<TouchpadMagnify>()
.register_type::<TouchpadRotate>()
.register_type::<TouchInput>()
.register_type::<GamepadEvent>()
.register_type::<GamepadButtonInput>()
.register_type::<GamepadAxisType>()
.register_type::<GamepadAxis>()
.register_type::<GamepadSettings>()
.register_type::<ButtonSettings>()
.register_type::<AxisSettings>()
.register_type::<ButtonAxisSettings>();
.register_type::<GamepadSettings>();
}
}

Expand Down
7 changes: 0 additions & 7 deletions crates/bevy_pbr/src/lib.rs
Expand Up @@ -234,13 +234,9 @@ impl Plugin for PbrPlugin {

app.register_asset_reflect::<StandardMaterial>()
.register_type::<AmbientLight>()
.register_type::<Cascade>()
.register_type::<CascadeShadowConfig>()
.register_type::<Cascades>()
.register_type::<CascadesVisibleEntities>()
.register_type::<ClusterConfig>()
.register_type::<ClusterFarZMode>()
.register_type::<ClusterZConfig>()
.register_type::<CubemapVisibleEntities>()
.register_type::<DirectionalLight>()
.register_type::<DirectionalLightShadowMap>()
Expand All @@ -250,10 +246,7 @@ impl Plugin for PbrPlugin {
.register_type::<PointLightShadowMap>()
.register_type::<SpotLight>()
.register_type::<FogSettings>()
.register_type::<FogFalloff>()
.register_type::<ShadowFilteringMethod>()
.register_type::<ParallaxMappingMethod>()
.register_type::<OpaqueRendererMethod>()
.init_resource::<AmbientLight>()
.init_resource::<GlobalVisiblePointLights>()
.init_resource::<DirectionalLightShadowMap>()
Expand Down
5 changes: 0 additions & 5 deletions crates/bevy_render/src/camera/mod.rs
Expand Up @@ -24,12 +24,7 @@ pub struct CameraPlugin;
impl Plugin for CameraPlugin {
fn build(&self, app: &mut App) {
app.register_type::<Camera>()
.register_type::<Viewport>()
.register_type::<Option<Viewport>>()
.register_type::<ScalingMode>()
.register_type::<RenderTarget>()
.register_type::<ClearColor>()
.register_type::<ClearColorConfig>()
.register_type::<CameraRenderGraph>()
.register_type::<CameraMainTextureUsages>()
.register_type::<Exposure>()
Expand Down
10 changes: 0 additions & 10 deletions crates/bevy_render/src/lib.rs
Expand Up @@ -329,17 +329,7 @@ impl Plugin for RenderPlugin {

app.register_type::<alpha::AlphaMode>()
// These types cannot be registered in bevy_color, as it does not depend on the rest of Bevy
// BLOCKED: once https://github.com/bevyengine/bevy/pull/5781 lands, we can remove all but the Color registration
.register_type::<bevy_color::Color>()
.register_type::<bevy_color::Srgba>()
.register_type::<bevy_color::LinearRgba>()
.register_type::<bevy_color::Hsla>()
.register_type::<bevy_color::Hsva>()
.register_type::<bevy_color::Hwba>()
.register_type::<bevy_color::Laba>()
.register_type::<bevy_color::Lcha>()
.register_type::<bevy_color::Xyza>()
.register_type::<bevy_color::Oklaba>()
.register_type::<primitives::Aabb>()
.register_type::<primitives::CascadesFrusta>()
.register_type::<primitives::CubemapFrusta>()
Expand Down
6 changes: 1 addition & 5 deletions crates/bevy_render/src/mesh/mod.rs
Expand Up @@ -13,7 +13,7 @@ use std::{

use crate::{prelude::Image, render_asset::RenderAssetPlugin, RenderApp};
use bevy_app::{App, Plugin};
use bevy_asset::{AssetApp, Handle};
use bevy_asset::AssetApp;
use bevy_ecs::{entity::Entity, system::Resource};

/// Adds the [`Mesh`] as an asset and makes sure that they are extracted and prepared for the GPU.
Expand All @@ -24,10 +24,6 @@ impl Plugin for MeshPlugin {
app.init_asset::<Mesh>()
.init_asset::<skinning::SkinnedMeshInverseBindposes>()
.register_asset_reflect::<Mesh>()
.register_type::<Option<Handle<Image>>>()
.register_type::<Option<Vec<String>>>()
.register_type::<Option<Indices>>()
.register_type::<Indices>()
.register_type::<skinning::SkinnedMesh>()
.register_type::<Vec<Entity>>()
// 'Mesh' must be prepared after 'Image' as meshes rely on the morph target image being ready
Expand Down
5 changes: 0 additions & 5 deletions crates/bevy_text/src/lib.rs
Expand Up @@ -77,11 +77,6 @@ impl Plugin for TextPlugin {
app.init_asset::<Font>()
.register_type::<Text>()
.register_type::<Text2dBounds>()
.register_type::<TextSection>()
.register_type::<Vec<TextSection>>()
.register_type::<TextStyle>()
.register_type::<JustifyText>()
.register_type::<BreakLineOn>()
.init_asset_loader::<FontLoader>()
.init_resource::<TextSettings>()
.init_resource::<FontAtlasSets>()
Expand Down
1 change: 0 additions & 1 deletion crates/bevy_time/src/lib.rs
Expand Up @@ -51,7 +51,6 @@ impl Plugin for TimePlugin {
.register_type::<Time<Virtual>>()
.register_type::<Time<Fixed>>()
.register_type::<Timer>()
.register_type::<Stopwatch>()
.add_systems(
First,
(time_system, virtual_time_system.after(time_system)).in_set(TimeSystem),
Expand Down
18 changes: 0 additions & 18 deletions crates/bevy_ui/src/lib.rs
Expand Up @@ -97,37 +97,19 @@ impl Plugin for UiPlugin {
app.init_resource::<UiSurface>()
.init_resource::<UiScale>()
.init_resource::<UiStack>()
.register_type::<AlignContent>()
.register_type::<AlignItems>()
.register_type::<AlignSelf>()
.register_type::<BackgroundColor>()
.register_type::<CalculatedClip>()
.register_type::<ContentSize>()
.register_type::<Direction>()
.register_type::<Display>()
.register_type::<FlexDirection>()
.register_type::<FlexWrap>()
.register_type::<FocusPolicy>()
.register_type::<GridAutoFlow>()
.register_type::<GridPlacement>()
.register_type::<GridTrack>()
.register_type::<Interaction>()
.register_type::<JustifyContent>()
.register_type::<JustifyItems>()
.register_type::<JustifySelf>()
.register_type::<Node>()
.register_type::<Overflow>()
.register_type::<OverflowAxis>()
.register_type::<PositionType>()
.register_type::<RelativeCursorPosition>()
.register_type::<RepeatedGridTrack>()
.register_type::<Style>()
.register_type::<TargetCamera>()
.register_type::<UiImage>()
.register_type::<UiImageSize>()
.register_type::<UiRect>()
.register_type::<UiScale>()
.register_type::<Val>()
.register_type::<BorderColor>()
.register_type::<widget::Button>()
.register_type::<widget::Label>()
Expand Down

0 comments on commit 4391306

Please sign in to comment.