Comments (2)
yea I agree ASSERT is the best option for now.
i think entt::storage<ENTT_ID_TYPE> / entt::storage<uint32_t> still works just fine anyways it just means there's lots of casting.
or yea boxed types works too
from entt.
I think that asserting is the right thing to do here. In fact, there is a problem with this:
or allow for custom entt::entity_type storage so that users can have various id<->id sets
Entity storage works differently. It's meant to generate entities and recycle them. It never destroys its elements. Instead, it moves them around and increases their versions.
An entt::storage<entt::entity>
isn't an id-to-id mapping. Quite the opposite actually. It picks a storage specialization with a completely different goal.
You can still have id-to-id mappings but you've to use boxed types for that. This is the drawback of managing the entities with a storage type. I think it's worth it because of all the pros but 🤷♂️ you know, all solutions have their pros and cons at the end of the day.
So, yeah, I think I'll add an assert to avoid errors and that's it. Let me know your thougts too. 👍
from entt.
Related Issues (20)
- C++20 ranges trait specializations
- Efficiently iterating over a set of groups? HOT 2
- Signals not triggering properly in storage mixin iterator based insert HOT 2
- Access violation when using registry.clear<Component>() HOT 9
- Is it possible to use entt::nth_argument_t with lambdas that capture? HOT 6
- Question it is posible to use Entt with lightweight wrapper class as a entt::entity HOT 2
- Calling valid() on empty entt::valid leads to a segmentation fault.
- Add ability to compare entt::null and entt::handle
- Components with overriden new operator. HOT 6
- sparse_set_iterator::operator[] causes warnings when used with size_t HOT 6
- Working with multiple storages for the same type and preparing a view for each of the storages HOT 3
- entt build error: unused type alias 'common_type' HOT 9
- assert on destroy (inside of release function) non-orphan entity HOT 8
- Handling large tilemap HOT 7
- Acecss components of an entity, without giving full registry access HOT 14
- bazel version and compatibility number out of sync HOT 5
- Get a view of components with a certain trait HOT 2
- Groups not functioning without sigh_mixin HOT 1
- Reliability across a network?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from entt.