Skip to content

Conversation

@Stivais
Copy link
Collaborator

@Stivais Stivais commented Oct 27, 2025

Reorganized the project to be modular.

  • World and Player now contains only the basic functionality for running a bare-bones server.
  • Introduced WorldExtension and PlayerExtension traits to add custom functionality for the server. These traits are interdependant. Meaning, PlayerExtension must correspond to its WorldExtension, and vice versa.

This cleans up the mess inside main.rs, where all the ticking for the server, world, entities and players would happen.

  • The dungeon struct now implements WorldExtension, where all ticking for it happens (mainly for rooms).
  • Introduced DungeonPlayer, which handles ticking for an individual player.

Entities also received a minor rework.

  • Reworked EntityMetadata to use a procedural macro to add serialization for a struct, so it matches Minecraft's Entity DataWatcher, without needing to hard code it.
  • Added EntityAppearance trait, which handles when an entity enters/leaves a players view, allowing to spawn entities past a singular mob defined by the old metadata. Example of this usage can be seen in Door's EntityAppearance.

Minor changes include:

  • Added Mort.
  • Added Instant Transmission ability for AOTV.
  • Added Tactical Insertion Item.
  • Added optional Dungeon-breaker feature.
  • Fixed chunks/entities not unloading properly.

Stivais and others added 30 commits September 1, 2025 23:15
made world modular
improved how ticking works for world and players
removed server, since world stores dungeon now
allow entities to not have metadata (won't be sent to client)
re-implemented how blocks restored after breaking them
haste and night vision are given to the player every 200 ticks
made a builder for sized string (sized string mut)
added (unfinished) hyperion item
SubAt0m1c and others added 29 commits October 14, 2025 14:14
players now have their own PlayerMetadata
@SubAt0m1c SubAt0m1c merged commit e8029d2 into main Oct 28, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants