Skip to content

Conversation

@robotgryphon
Copy link
Collaborator

@robotgryphon robotgryphon commented Apr 30, 2021

Adds in support for nested machines and multiple external points for machines. This marks a major feature for CM4, and is one of the items for critical path to a full release.

  • Remove concept of a 1:1 machine to room link
  • Improve lookup functionality (graph style)
  • Enable players to enter machines freely again
  • Enable players to place and generate new machines from compact dimension
  • Track player history as they navigate through rooms
  • Cap player history to configured amount (prevents large loops in history)
  • Players can use PSD to jump up a single level in history
  • Test player tracking in both single and multiplayer environments
    • Single Player
    • Multiplayer
  • Test tunnels work on all levels

@robotgryphon robotgryphon self-assigned this Apr 30, 2021
- Creates copy of World registry key codec for use in DimensionalPos
- Swaps machine tile getSpawn to use a DimensionalPos instead of BlockPos
- Minor Codec renames
- Move CMInternalData into CompactRoomData
- RoomData now private, with access limited via CompactRoomData
- PSD now calls getSpawn on the room data, instead of fetching entire RD instance and manually setting WSD dirty
- Overhaul to DimPos to include a rotation (for spawning) and improve Codec usage (no more string serializing)
- TeleEventHandler updated to call CompactRoomData#getInnerBounds
- Add extra methods to MathUtil for chunk and BlockPos calculation
- New room generation on player first entry improved
- Teleportation into rooms now respects spawn rotation
- Update unit tests to swap codec references
Mostly operational, needs more refinement to handle data edge cases and multiplayer environments
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.

1 participant