glm::vec3 Chunk::GravityAt(const ExactLocation &coords) const noexcept {
- glm::vec3 grav;
+ glm::vec3 grav(0.0f);
for (int index : gravity) {
RoughLocation::Fine block_pos(ToPos(index));
ExactLocation block_coords(position, ToCoords(block_pos));
return closest_index;
}
-Chunk *ChunkStore::Get(const ExactLocation::Coarse &pos) {
+Chunk *ChunkStore::Get(const ExactLocation::Coarse &pos) noexcept {
for (ChunkIndex &index : indices) {
Chunk *chunk = index.Get(pos);
if (chunk) {
return nullptr;
}
+const Chunk *ChunkStore::Get(const ExactLocation::Coarse &pos) const noexcept {
+ for (const ChunkIndex &index : indices) {
+ const Chunk *chunk = index.Get(pos);
+ if (chunk) {
+ return chunk;
+ }
+ }
+ return nullptr;
+}
+
Chunk *ChunkStore::Allocate(const ExactLocation::Coarse &pos) {
Chunk *chunk = Get(pos);
if (chunk) {