mirror of
https://github.com/italicsjenga/valence.git
synced 2024-12-24 06:51:30 +11:00
cb9230ec34
This PR redesigns Valence's architecture around the Bevy Entity Component System framework (`bevy_ecs` and `bevy_app`). Along the way, a large number of changes and improvements have been made. - Valence is now a Bevy plugin. This allows Valence to integrate with the wider Bevy ecosystem. - The `Config` trait has been replaced with the plugin struct which is much easier to configure. Async callbacks are grouped into their own trait. - `World` has been renamed to `Instance` to avoid confusion with `bevy_ecs::world::World`. - Entities, clients, player list, and inventories are all just ECS components/resources. There is no need for us to have our own generational arena/slotmap/etc for each one. - Client events use Bevy's event system. Users can read events with the `EventReader` system parameter. This also means that events are dispatched at an earlier stage of the program where access to the full server is available. There is a special "event loop" stage which is used primarily to avoid the loss of ordering information between events. - Chunks have been completely overhauled to be simpler and faster. The distinction between loaded and unloaded chunks has been mostly eliminated. The per-section bitset that tracked changes has been removed, which should further reduce memory usage. More operations on chunks are available such as removal and cloning. - The full client's game profile is accessible rather than just the textures. - Replaced `vek` with `glam` for parity with Bevy. - Basic inventory support has been added. - Various small changes to `valence_protocol`. - New Examples - The terrain and anvil examples are now fully asynchronous and will not block the main tick loop while chunks are loading. # TODOs - [x] Implement and dispatch client events. - ~~[ ] Finish implementing the new entity/chunk update algorithm.~~ New approach ended up being slower. And also broken. - [x] [Update rust-mc-bot to 1.19.3](https://github.com/Eoghanmc22/rust-mc-bot/pull/3). - [x] Use rust-mc-bot to test for and fix any performance regressions. Revert to old entity/chunk update algorithm if the new one turns out to be slower for some reason. - [x] Make inventories an ECS component. - [x] Make player lists an ECS ~~component~~ resource. - [x] Expose all properties of the client's game profile. - [x] Update the examples. - [x] Update `valence_anvil`. - ~~[ ] Update `valence_spatial_index` to use `glam` instead of `vek`.~~ Maybe later - [x] Make entity events use a bitset. - [x] Update docs. Closes #69 Closes #179 Closes #53 --------- Co-authored-by: Carson McManus <dyc3@users.noreply.github.com> Co-authored-by: AviiNL <me@avii.nl> Co-authored-by: Danik Vitek <x3665107@gmail.com> Co-authored-by: Snowiiii <71594357+Snowiiii@users.noreply.github.com>
56 lines
1.9 KiB
YAML
56 lines
1.9 KiB
YAML
name: Report a Bug
|
|
description: Is there something not working like you expected? Let us know!
|
|
labels: [bug, triage]
|
|
body:
|
|
- type: input
|
|
attributes:
|
|
label: Valence Version
|
|
description: What version of Valence are you using? If you are targeting a specific commit or branch, put that instead.
|
|
placeholder: version, branch, or commit hash
|
|
validations:
|
|
required: true
|
|
- type: textarea
|
|
attributes:
|
|
label: Current Behavior
|
|
description: A concise description of what you're experiencing.
|
|
validations:
|
|
required: false
|
|
- type: textarea
|
|
attributes:
|
|
label: Expected Behavior
|
|
description: A concise description of what you expected to happen.
|
|
validations:
|
|
required: true
|
|
- type: textarea
|
|
attributes:
|
|
label: Minimal Reproducible Example
|
|
description: Do you have a playground to reproduce this bug? Paste it here. It should be a minimal example that exhibits the behavior. If the problem can be reproduced with one of the examples, just indicate which one instead.
|
|
render: Rust
|
|
- type: textarea
|
|
attributes:
|
|
label: Steps To Reproduce
|
|
description: Steps to reproduce the behavior.
|
|
placeholder: |
|
|
1. Create a server using my sample
|
|
2. Do this...
|
|
3. Do that...
|
|
4. See error
|
|
validations:
|
|
required: true
|
|
- type: checkboxes
|
|
attributes:
|
|
label: Checklist
|
|
options:
|
|
- label: I have searched the issues of this repo and believe that this is not a duplicate.
|
|
required: true
|
|
- label: This used to work before.
|
|
- type: textarea
|
|
attributes:
|
|
label: Anything else?
|
|
description: |
|
|
Links? References? Version Numbers? Anything that will give us more context about the issue you are encountering!
|
|
|
|
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
|
|
validations:
|
|
required: false
|