Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: major refactor to make bones independent of bevy with the new bones_framework. #132

Merged
merged 156 commits into from
Aug 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
8c0a256
feat: implement new bones asset system.
zicklag Jul 1, 2023
5be0ff4
feat: add experimental schema structure.
zicklag Jul 4, 2023
6c9c5d1
refactor: remove bones_bevy_asset crate.
zicklag Jul 5, 2023
bb0bbc3
start brain dump]
bayou-brogrammer Jul 4, 2023
c88c442
start brain dump
bayou-brogrammer Jul 4, 2023
0b91e2b
Remove dep on bones_bevy_asest.
zicklag Jul 5, 2023
a4b0005
Merge schema and registry work into a `bones_reflect` crate.
zicklag Jul 5, 2023
7415f00
Add a `LabeledId` type for asset pack identifiers.
zicklag Jul 6, 2023
eee68fc
Add accessors for LabeledId prefix and ULID.
zicklag Jul 6, 2023
aa3a9e5
add bones_utils; more registry additions
bayou-brogrammer Jul 7, 2023
cf14a59
add schema derive to types
bayou-brogrammer Jul 7, 2023
1129aff
refactor: move `LabeledId` to `bones_utils` and work on some `AssetPa…
zicklag Jul 9, 2023
505f20a
refactor: simplify `AssetIo` and fill out more of `AssetPack`.
zicklag Jul 10, 2023
6d4ea4e
refactor: move some impls and tweak `AssetServer`.
zicklag Jul 10, 2023
d42f2fb
refactor: clean-up and remove some code that will be changed or is un…
zicklag Jul 10, 2023
c0ab156
refactor: remove `UlidMap` in favor of new `HashMap` alias.
zicklag Jul 10, 2023
b4bf299
refactor: move asset server impl to it's own module.
zicklag Jul 10, 2023
87ab4df
feat: add casting features.
zicklag Jul 11, 2023
ee564c6
feat: add `SchemaBox::from_raw_parts()`.
zicklag Jul 11, 2023
183850f
refactor: make `HasSchema::schema()` return a `&'static Schema`.
zicklag Jul 11, 2023
259194d
feat: allow deriving `Deref` and `DerefMut` on structs with multiple …
zicklag Jul 11, 2023
8295872
refactor: more asset server stuff.
zicklag Jul 11, 2023
049cdc3
refactor: more schema refinement.
zicklag Jul 12, 2023
48c42ba
feat: embed type data and type ID into `Schema`.
zicklag Jul 12, 2023
4a9f98c
feat: impl `HasSchema` for asset handles.
zicklag Jul 12, 2023
c5e4093
refactor: disable registry for now.
zicklag Jul 12, 2023
97f3b3a
feat: close in on metadata asset loader.
zicklag Jul 16, 2023
e51914d
feat: implement primitive deserialization.
zicklag Jul 16, 2023
d9adecf
refactor: use bevy_ptr's pointer types and draft SchemaWalker api.
zicklag Jul 17, 2023
1f3bf5b
feat: finish off runtime field access through `SchemaPtr` and `Schema…
zicklag Jul 17, 2023
7f25dc7
fix: fix soundness issue with `SchemaMutPtr`.
zicklag Jul 18, 2023
f4cf927
fix: implement more correct fix for soundness issues.
zicklag Jul 18, 2023
a473372
build: add compile negative test.
zicklag Jul 18, 2023
08d2316
feat: allow deriving `HasSchema` for completely opaque types.
zicklag Jul 18, 2023
68a92f6
feat: move drop and clone function pointers to type datas.
zicklag Jul 19, 2023
35de791
refactor: move schema module to the top level of `bones_reflect`.
zicklag Jul 19, 2023
3b9e379
feat: implement proper handling of clone, drop, and default implement…
zicklag Jul 19, 2023
28b34a9
fix: remove registry code.
zicklag Jul 19, 2023
6d58bbf
fix: fix doc comment link.
zicklag Jul 19, 2023
326f2d0
docs: clean up some API docs.
zicklag Jul 19, 2023
80c1348
build: update crate description.
zicklag Jul 19, 2023
b875cdb
refactor: reorganize modules and crates.
zicklag Jul 19, 2023
0cfa173
feat: allow deriving type datas.
zicklag Jul 19, 2023
cd88d74
feat: allow creating a `SchemaBox` from a `Schema`'s `default_fn`.
zicklag Jul 19, 2023
aeaaec4
feat: get schema structs loading! 🎉
zicklag Jul 20, 2023
cd71d49
feat: implement struct loading from YAML arrays.
zicklag Jul 20, 2023
b999553
style: remove old comment.
zicklag Jul 20, 2023
9faae88
style: add fixme comment.
zicklag Jul 20, 2023
85c717c
fix: fix undefined behavior related to errant field offset calculation.
zicklag Jul 20, 2023
09e748d
feat: implement nested asset loading.
zicklag Jul 20, 2023
a5547f6
feat: implement pack loading and add full tutorial example.
zicklag Jul 21, 2023
5fa9235
feat: add ResizableAllocation helper struct.
zicklag Jul 23, 2023
facaed7
feat: add draft implementation of SchemaVec.
zicklag Jul 24, 2023
1c7ec8f
refactor: reorganize some modules.
zicklag Jul 24, 2023
966954d
deps: update deps.
zicklag Jul 24, 2023
5799244
refactor: tidy up modules and imports.
zicklag Jul 24, 2023
e50ffae
refactor: move Key datatype to bones_utils.
zicklag Jul 25, 2023
c1dc666
refactor: update bones_lib to use ResizableAlloc instead of AVec for …
zicklag Jul 25, 2023
dcd808b
fix: handle allocation errors with the allocation error handler.
zicklag Jul 25, 2023
f2afb65
fix: remove unused import.
zicklag Jul 25, 2023
3f918df
feat: add `BonesCore` and `BonesPlugin` types.
zicklag Jul 25, 2023
7d59b4b
refactor: tweak modules and imports.
zicklag Jul 25, 2023
2d3c817
feat: add schema registry.
zicklag Jul 26, 2023
f1fa101
fix: check for equivalent SchemaId in Schema::equivalent().
zicklag Jul 26, 2023
d562004
docs: remove out-of-date doc comment on SchemaVec.
zicklag Jul 26, 2023
f230902
fix: update bones_asset to not conflict with the new SchemaId struct.
zicklag Jul 26, 2023
5405e1e
refactor: WIP integrate reflect into bones_ecs.
zicklag Jul 27, 2023
595cd8b
fix: make schema IDs cheat-proof.
zicklag Jul 27, 2023
51e9c75
fix: fix bones_asset to work with new schema API.
zicklag Jul 27, 2023
45c20eb
feat: migrate bones_ecs to new schema system.
zicklag Jul 28, 2023
67e7eb8
docs: improve macro error message regarding `repr(C)`.
zicklag Jul 28, 2023
febab02
fix: fix HasSchema derive when re-exported in bones_ecs.
zicklag Jul 28, 2023
b197087
fix: remove all TypeUlids and derive HasSchema.
zicklag Jul 28, 2023
8bf2aca
fix: derive HasSchema on bones_lib components.
zicklag Jul 28, 2023
4ab74ff
fix: clean up old bevy deps and fix doc links.
zicklag Jul 28, 2023
882e5d2
feat: WIP asset & demo boilerplate.
zicklag Jul 29, 2023
bc31ada
feat(perf): cache the schema layout and field offsets at registration…
zicklag Jul 29, 2023
d6128f2
refactor: rename bones_reflect to bones_schema and fix ResizableAlloc…
zicklag Jul 29, 2023
e774f5e
fix: don't pre-allocate component space for 4096 entities by default.
zicklag Jul 29, 2023
5b0b017
refactor: add test and tweak registry code.
zicklag Jul 30, 2023
5b7458c
docs: document known limitation of self-recursive schemas.
zicklag Jul 30, 2023
2524c9e
refactor: clean up bones_schema crate.
zicklag Aug 2, 2023
8e3300c
doc: add extra sentence to bones_schema docs.
zicklag Aug 2, 2023
8ce0f5f
style: re-order items in bones_schema/lib.rs.
zicklag Aug 2, 2023
2fa177d
feat: implement SVec as a Vec alternative that properly implements Ha…
zicklag Aug 4, 2023
a8056c4
feat: implement vector deserializing in asset loader.
zicklag Aug 4, 2023
8bc2613
docs: add TODO comment.
zicklag Aug 4, 2023
bf16778
fix: fix resources sanity check test.
zicklag Aug 4, 2023
ab000df
feat: add hash_fn and eq_fn to Schema.
zicklag Aug 5, 2023
da53250
refactor: rename `TypeDatas` to `TypeDataMap`.
zicklag Aug 5, 2023
ae3dbb6
refactor: rename TypeDataMap to SchemaTypeMap and tweak SchemaBox met…
zicklag Aug 6, 2023
16ab8d2
feat: implement SBox.
zicklag Aug 6, 2023
0b208a0
feat: optimize SVec access to remove runtime schema checks and implem…
zicklag Aug 7, 2023
f6526a1
feat: implement get and insert for SchemaMap.
zicklag Aug 7, 2023
a7b491e
feat: extend SchemaMap implementation.
zicklag Aug 7, 2023
d19ad95
feat: add Box variant to SchemaKind.
zicklag Aug 7, 2023
087f521
feat: finish first draft of SchemaMap.
zicklag Aug 8, 2023
f9ed3ee
feat: improve ability to access fields of schema pointer types.
zicklag Aug 8, 2023
9f4b51c
feat: make `SBox`s deserializable with the asset system.
zicklag Aug 8, 2023
861df5b
feat: implement deserializer for maps.
zicklag Aug 8, 2023
8978795
feat: add SchemaMap iteration and debug implementations.
zicklag Aug 8, 2023
2a5b9a9
refactor: use fxhash instead of ahash for determinism.
zicklag Aug 8, 2023
87448ee
feat: allow you to insert type data with Rust expressions when derivi…
zicklag Aug 9, 2023
19d44aa
feat: use custom type data to register asset types.
zicklag Aug 9, 2023
e40e5a1
feat: implement custom asset loaders.
zicklag Aug 9, 2023
f28b3cb
docs: clarify TODO panic.
zicklag Aug 9, 2023
a213ac3
docs: update TODO comments throughout the code.
zicklag Aug 9, 2023
8967938
feat: add iteration test to schema_vec test case.
zicklag Aug 9, 2023
74dbf02
refactor: tweak iterator test to test more possibilities.
zicklag Aug 9, 2023
77c8df6
fix: remove demo example that was accidentally added.
zicklag Aug 9, 2023
93b4a23
feat: setup new `Game` and `Session` system
zicklag Aug 11, 2023
42ec02e
refactor: re-organize crates to start working towards bones_framework.
zicklag Aug 12, 2023
95513dd
refactor: move bones_input and bones_render crates into bones_framework.
zicklag Aug 12, 2023
dec2fbf
feat: start integrating egui into bones_framework.
zicklag Aug 12, 2023
cc4f2b3
feat: integrate egui and bones into bones_bevy_renderer.
zicklag Aug 13, 2023
9510492
feat: create standardized keyboard/mouse input for bones_framework.
zicklag Aug 13, 2023
7e23240
fix: fix system parameter initialization bug.
zicklag Aug 13, 2023
da05f8c
feat: integrate asset loading into demo.
zicklag Aug 13, 2023
82bfd27
feat: add system param for easily accessing the root asset.
zicklag Aug 13, 2023
b16d105
feat: implement sprite rendering.
zicklag Aug 14, 2023
2d54598
feat: implement animated sprite sheets.
zicklag Aug 14, 2023
a13a005
feat: move asset server into `bones_lib::Game`.
zicklag Aug 14, 2023
148b1b1
fix: fix undefined behavior due to bad resize logic.
zicklag Aug 15, 2023
9224ef5
fix: fix multi-session sprite and atlas rendering.
zicklag Aug 15, 2023
b376e84
refactor: small tweaks and TODO comments.
zicklag Aug 16, 2023
6339d19
refactor: refactor bones_ecs component store to be simpler and easier…
zicklag Aug 16, 2023
951b9aa
fix: make sure non-visible sessions aren't rendered.
zicklag Aug 17, 2023
d70fd8a
style: add extra code comments.
zicklag Aug 17, 2023
6f416c0
deps: cargo update and format and fix license check.
zicklag Aug 17, 2023
084e0b3
ci: fix some of the CI errors.
zicklag Aug 17, 2023
9021cd3
fix: respect bones camera viewport and priority settings.
zicklag Aug 17, 2023
99595e8
feat: implement tilemap rendering.
zicklag Aug 18, 2023
b411602
fix: remove unused bevy_simple_tilemap plugin.
zicklag Aug 18, 2023
f0d7bb9
feat: implement debug line rendering.
zicklag Aug 18, 2023
2426252
fix: update atlas frames per-second.
zicklag Aug 18, 2023
ef5f7ce
style: add code comment.
zicklag Aug 18, 2023
6287bb1
feat: implement localization and improve asset loader.
zicklag Aug 19, 2023
4a1b99e
fix: use localization for the rest of the demo text.
zicklag Aug 19, 2023
6f8fbc3
style: add a code todo for localization param.
zicklag Aug 19, 2023
e4d8aae
feat: create system parameter to extract localization from root asset.
zicklag Aug 19, 2023
12e3643
feat: add a hello_world demo and skip asset loading if not configured.
zicklag Aug 19, 2023
0d70295
style: make session deref to stages so that it's easier to add systems.
zicklag Aug 19, 2023
cbe9e49
docs: add a minimal asset example.
zicklag Aug 19, 2023
b891d74
deps: cargo update.
zicklag Aug 19, 2023
d93f6b3
fix: workaround rust-analyzer "bug" to fix autocompletion with our de…
zicklag Aug 20, 2023
0997508
fix: don't require mutable reference to world for `components.get_mut…
zicklag Aug 20, 2023
3c37529
feat: implement asset hot reload.
zicklag Aug 21, 2023
50cd35a
fix: fix asset reloading when dependency asset changes & remove unuse…
zicklag Aug 21, 2023
fea00da
fix: fix clippy lints.
zicklag Aug 21, 2023
b6988d3
ci: reorganize crates and attempt to fix CI.
zicklag Aug 21, 2023
6e1da19
style: run cargo format.
zicklag Aug 21, 2023
2686ec2
feat: update quinn_runtime_bevy to the latest bevy_tasks.
zicklag Aug 21, 2023
d32908b
build: update and format toml files & crate metadata.
zicklag Aug 21, 2023
6b94409
fix: fix crate versions.
zicklag Aug 21, 2023
378c77f
docs: fix API docs links.
zicklag Aug 21, 2023
af85812
docs: remove old book and fix rustdoc CI job.
zicklag Aug 21, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 2 additions & 8 deletions .github/bors.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
use_squash_merge = true
cut_body_after = "_ _ _"
status = [
"Lint commit message",
"Check Rust formatting",
"Clippy correctness checks (%)",
"Build Docs",
"Miri tests"
]
cut_body_after = "_ _ _"
status = ["Lint commit message", "Check Rust formatting", "Clippy correctness checks (%)", "Build Docs", "Miri tests"]
16 changes: 16 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,29 @@ jobs:
command: clippy
args: --target ${{ matrix.config.target }} -- -W clippy::correctness -D warnings

- name: ⚙️ Test
if: matrix.config.target != 'wasm32-unknown-unknown'
uses: actions-rs/cargo@v1
env:
CARGO_TARGET_DIR: ${{ matrix.config.target_dir }}
with:
command: test
args: --workspace

minimal_deps_check:
runs-on: ubuntu-latest
name: 🔧 Check Minimal Dependency Versions
steps:
- name: ⬇️ Checkout Source
uses: actions/checkout@v3

- name: 🧰 Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y -q \
libasound2-dev \
libudev-dev

- name: 🧰 Install Rust Nightly
uses: actions-rs/toolchain@v1
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ jobs:
- name: 🔨 Build Rustdoc
run: |
cargo doc --workspace --no-deps
mv target/doc book/src/rustdoc
mkdir -p target/doc-dist
mv target/doc target/doc-dist/rustdoc

- name: 🚀 Deploy
uses: JamesIves/[email protected]
if: ${{ github.ref == 'refs/heads/main' }}
with:
branch: gh-pages
folder: ./book/dist
target-folder: book
folder: target/doc-dist
Loading
Loading