Skip to content

Commit c754e4f

Browse files
authored
Move PlayerJoinEvent, EntityRemoveEvent and EntityCreateEvent to quill-common (#520)
* Move PlayerJoinEvent, EntityRemoveEvent and EntityCreateEvent from feather-common to quill-common * Also implement Clone
1 parent e857b0c commit c754e4f

File tree

11 files changed

+38
-41
lines changed

11 files changed

+38
-41
lines changed

feather/common/src/chunk/entities.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
use ahash::AHashMap;
22
use base::{ChunkPosition, Position};
33
use ecs::{Entity, SysResult, SystemExecutor};
4+
use quill_common::events::{EntityCreateEvent, EntityRemoveEvent};
45
use utils::vec_remove_item;
56

6-
use crate::{
7-
events::{ChunkCrossEvent, EntityCreateEvent, EntityRemoveEvent},
8-
Game,
9-
};
7+
use crate::{events::ChunkCrossEvent, Game};
108

119
pub fn register(systems: &mut SystemExecutor<Game>) {
1210
systems.add_system(update_chunk_entities);

feather/common/src/chunk/loading.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,10 @@ use std::{
99
use ahash::AHashMap;
1010
use base::ChunkPosition;
1111
use ecs::{Entity, SysResult, SystemExecutor};
12+
use quill_common::events::EntityRemoveEvent;
1213
use utils::vec_remove_item;
1314

14-
use crate::{
15-
chunk::worker::LoadRequest,
16-
events::{EntityRemoveEvent, ViewUpdateEvent},
17-
Game,
18-
};
15+
use crate::{chunk::worker::LoadRequest, events::ViewUpdateEvent, Game};
1916

2017
pub fn register(game: &mut Game, systems: &mut SystemExecutor<Game>) {
2118
game.insert_resource(ChunkLoadState::default());

feather/common/src/events.rs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ mod plugin_message;
88
pub use block_change::BlockChangeEvent;
99
pub use plugin_message::PluginMessageEvent;
1010

11-
/// Triggered when a player joins the `Game`.
12-
#[derive(Debug)]
13-
pub struct PlayerJoinEvent;
14-
1511
/// Event triggered when a player changes their `View`,
1612
/// meaning they crossed into a new chunk.
1713
#[derive(Debug)]
@@ -62,14 +58,3 @@ pub struct ChunkLoadEvent {
6258
pub struct ChunkLoadFailEvent {
6359
pub position: ChunkPosition,
6460
}
65-
66-
/// Triggered when an entity is removed from the world.
67-
///
68-
/// The entity will remain alive for one tick after it is
69-
/// destroyed to allow systems to observe this event.
70-
#[derive(Debug)]
71-
pub struct EntityRemoveEvent;
72-
73-
/// Triggered when an entity is added into the world.
74-
#[derive(Debug)]
75-
pub struct EntityCreateEvent;

feather/common/src/game.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ use ecs::{
55
Ecs, Entity, EntityBuilder, HasEcs, HasResources, NoSuchEntity, Resources, SysResult,
66
SystemExecutor,
77
};
8+
use quill_common::events::{EntityCreateEvent, EntityRemoveEvent, PlayerJoinEvent};
89
use quill_common::{entities::Player, entity_init::EntityInit};
910

1011
use crate::{
1112
chat::{ChatKind, ChatMessage},
1213
chunk::entities::ChunkEntities,
13-
events::{BlockChangeEvent, EntityCreateEvent, EntityRemoveEvent, PlayerJoinEvent},
14+
events::BlockChangeEvent,
1415
ChatBox, World,
1516
};
1617

feather/common/src/view.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ use base::{ChunkPosition, Position};
33
use ecs::{SysResult, SystemExecutor};
44
use itertools::Either;
55
use quill_common::components::Name;
6+
use quill_common::events::PlayerJoinEvent;
67

7-
use crate::{
8-
events::{PlayerJoinEvent, ViewUpdateEvent},
9-
Game,
10-
};
8+
use crate::{events::ViewUpdateEvent, Game};
119

1210
/// Registers systems to update the `View` of a player.
1311
pub fn register(_game: &mut Game, systems: &mut SystemExecutor<Game>) {

feather/server/src/chunk_subscriptions.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
use ahash::AHashMap;
22
use base::ChunkPosition;
3-
use common::{
4-
events::{EntityRemoveEvent, ViewUpdateEvent},
5-
view::View,
6-
Game,
7-
};
3+
use common::{events::ViewUpdateEvent, view::View, Game};
84
use ecs::{SysResult, SystemExecutor};
5+
use quill_common::events::EntityRemoveEvent;
96
use utils::vec_remove_item;
107

118
use crate::{ClientId, Server};

feather/server/src/systems/entity/spawn_packet.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ use ahash::AHashSet;
22
use anyhow::Context;
33
use base::Position;
44
use common::{
5-
events::{ChunkCrossEvent, EntityCreateEvent, EntityRemoveEvent, ViewUpdateEvent},
5+
events::{ChunkCrossEvent, ViewUpdateEvent},
66
Game,
77
};
88
use ecs::{SysResult, SystemExecutor};
9+
use quill_common::events::{EntityCreateEvent, EntityRemoveEvent};
910

1011
use crate::{entities::SpawnPacketSender, ClientId, NetworkId, Server};
1112

feather/server/src/systems/tablist.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
//! Sends tablist info to clients via the Player Info packet.
22
33
use base::{Gamemode, ProfileProperty};
4-
use common::{
5-
events::{EntityRemoveEvent, PlayerJoinEvent},
6-
Game,
7-
};
4+
use common::Game;
85
use ecs::{SysResult, SystemExecutor};
6+
use quill_common::events::{EntityRemoveEvent, PlayerJoinEvent};
97
use quill_common::{components::Name, entities::Player};
108
use uuid::Uuid;
119

quill/common/src/component.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,9 @@ host_component_enum! {
198198
CanBuild = 1020,
199199
Instabreak = 1021,
200200
Invulnerable = 1022,
201-
202-
201+
PlayerJoinEvent = 1023,
202+
EntityRemoveEvent = 1024,
203+
EntityCreateEvent = 1025,
203204
}
204205
}
205206

@@ -363,3 +364,6 @@ bincode_component_impl!(BlockInteractEvent);
363364
bincode_component_impl!(CreativeFlyingEvent);
364365
bincode_component_impl!(SneakEvent);
365366
bincode_component_impl!(SprintEvent);
367+
bincode_component_impl!(PlayerJoinEvent);
368+
bincode_component_impl!(EntityRemoveEvent);
369+
bincode_component_impl!(EntityCreateEvent);

quill/common/src/events.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
mod block_interact;
22
mod change;
3+
mod entity;
34
mod interact_entity;
45

56
pub use block_interact::{BlockInteractEvent, BlockPlacementEvent};
67
pub use change::{CreativeFlyingEvent, SneakEvent, SprintEvent};
8+
pub use entity::{EntityCreateEvent, EntityRemoveEvent, PlayerJoinEvent};
79
pub use interact_entity::InteractEntityEvent;

0 commit comments

Comments
 (0)