Collision layers and entity rendering offsets

This commit is contained in:
2024-10-23 17:02:24 +02:00
parent 74675a4c77
commit 2bd500c6d6
4 changed files with 163 additions and 94 deletions

View File

@@ -69,6 +69,8 @@ Entity :: struct {
transform: Transform;
rendering_offset: Vector3;
snap_offset: Vector3;
snap_intervals: Vector3;

View File

@@ -224,7 +224,13 @@ update_entity_transform :: (e: *Entity, parent_matrix: Matrix4 = Matrix4_Identit
e.transform.dirty = false;
}
e.transform.world_matrix = parent_matrix * e.transform.model_matrix;
if length(e.rendering_offset) > 0.0 {
offset := create_identity_transform();
set_position(*offset, e.rendering_offset);
e.transform.world_matrix = parent_matrix * e.transform.model_matrix * offset.model_matrix;
} else {
e.transform.world_matrix = parent_matrix * e.transform.model_matrix;
}
for model_node, i: e.renderable.model.nodes {
if model_node.parent == 0 {