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

@@ -126,6 +126,9 @@ serialize_entity :: (e: *Block, builder: *String_Builder) {
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
print_to_builder(builder, "entity.rendering_offset.x: %\n", e.entity.rendering_offset.x);
print_to_builder(builder, "entity.rendering_offset.y: %\n", e.entity.rendering_offset.y);
print_to_builder(builder, "entity.rendering_offset.z: %\n", e.entity.rendering_offset.z);
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
@@ -166,6 +169,12 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Block) {
scan2(values[1], "%", *e.entity.transform.scale.y);
case "entity.transform.scale.z";
scan2(values[1], "%", *e.entity.transform.scale.z);
case "entity.rendering_offset.x";
scan2(values[1], "%", *e.entity.rendering_offset.x);
case "entity.rendering_offset.y";
scan2(values[1], "%", *e.entity.rendering_offset.y);
case "entity.rendering_offset.z";
scan2(values[1], "%", *e.entity.rendering_offset.z);
case "entity.snap_offset.x";
scan2(values[1], "%", *e.entity.snap_offset.x);
case "entity.snap_offset.y";
@@ -202,6 +211,9 @@ serialize_entity :: (e: *Item, builder: *String_Builder) {
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
print_to_builder(builder, "entity.rendering_offset.x: %\n", e.entity.rendering_offset.x);
print_to_builder(builder, "entity.rendering_offset.y: %\n", e.entity.rendering_offset.y);
print_to_builder(builder, "entity.rendering_offset.z: %\n", e.entity.rendering_offset.z);
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
@@ -240,6 +252,12 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Item) {
scan2(values[1], "%", *e.entity.transform.scale.y);
case "entity.transform.scale.z";
scan2(values[1], "%", *e.entity.transform.scale.z);
case "entity.rendering_offset.x";
scan2(values[1], "%", *e.entity.rendering_offset.x);
case "entity.rendering_offset.y";
scan2(values[1], "%", *e.entity.rendering_offset.y);
case "entity.rendering_offset.z";
scan2(values[1], "%", *e.entity.rendering_offset.z);
case "entity.snap_offset.x";
scan2(values[1], "%", *e.entity.snap_offset.x);
case "entity.snap_offset.y";
@@ -257,99 +275,6 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Item) {
}
}
//
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
//
serialize_entity :: (e: *Crab, builder: *String_Builder) {
print_to_builder(builder, "type: Crab\n");
print_to_builder(builder, "entity.enabled: %\n", e.entity.enabled);
print_to_builder(builder, "entity.flags: %\n", e.entity.flags);
print_to_builder(builder, "entity.transform.position.x: %\n", e.entity.transform.position.x);
print_to_builder(builder, "entity.transform.position.y: %\n", e.entity.transform.position.y);
print_to_builder(builder, "entity.transform.position.z: %\n", e.entity.transform.position.z);
print_to_builder(builder, "entity.transform.orientation.x: %\n", e.entity.transform.orientation.x);
print_to_builder(builder, "entity.transform.orientation.y: %\n", e.entity.transform.orientation.y);
print_to_builder(builder, "entity.transform.orientation.z: %\n", e.entity.transform.orientation.z);
print_to_builder(builder, "entity.transform.orientation.w: %\n", e.entity.transform.orientation.w);
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
print_to_builder(builder, "entity.snap_intervals.x: %\n", e.entity.snap_intervals.x);
print_to_builder(builder, "entity.snap_intervals.y: %\n", e.entity.snap_intervals.y);
print_to_builder(builder, "entity.snap_intervals.z: %\n", e.entity.snap_intervals.z);
print_to_builder(builder, "current_yaw: %\n", e.current_yaw);
print_to_builder(builder, "target_look_direction.x: %\n", e.target_look_direction.x);
print_to_builder(builder, "target_look_direction.y: %\n", e.target_look_direction.y);
print_to_builder(builder, "target_look_direction.z: %\n", e.target_look_direction.z);
print_to_builder(builder, "current_direction.x: %\n", e.current_direction.x);
print_to_builder(builder, "current_direction.y: %\n", e.current_direction.y);
print_to_builder(builder, "current_direction.z: %\n", e.current_direction.z);
}
//
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
//
deserialize_entity :: (scene: *Scene, lines: [] string, e: *Crab) {
for line: lines {
values := split(line, ":");
if values.count == 2 {
if trim(values[0], " ") == {
case "entity.enabled";
scan2(values[1], "%", *e.entity.enabled);
case "entity.transform.position.x";
scan2(values[1], "%", *e.entity.transform.position.x);
case "entity.transform.position.y";
scan2(values[1], "%", *e.entity.transform.position.y);
case "entity.transform.position.z";
scan2(values[1], "%", *e.entity.transform.position.z);
case "entity.transform.orientation.x";
scan2(values[1], "%", *e.entity.transform.orientation.x);
case "entity.transform.orientation.y";
scan2(values[1], "%", *e.entity.transform.orientation.y);
case "entity.transform.orientation.z";
scan2(values[1], "%", *e.entity.transform.orientation.z);
case "entity.transform.orientation.w";
scan2(values[1], "%", *e.entity.transform.orientation.w);
case "entity.transform.scale.x";
scan2(values[1], "%", *e.entity.transform.scale.x);
case "entity.transform.scale.y";
scan2(values[1], "%", *e.entity.transform.scale.y);
case "entity.transform.scale.z";
scan2(values[1], "%", *e.entity.transform.scale.z);
case "entity.snap_offset.x";
scan2(values[1], "%", *e.entity.snap_offset.x);
case "entity.snap_offset.y";
scan2(values[1], "%", *e.entity.snap_offset.y);
case "entity.snap_offset.z";
scan2(values[1], "%", *e.entity.snap_offset.z);
case "entity.snap_intervals.x";
scan2(values[1], "%", *e.entity.snap_intervals.x);
case "entity.snap_intervals.y";
scan2(values[1], "%", *e.entity.snap_intervals.y);
case "entity.snap_intervals.z";
scan2(values[1], "%", *e.entity.snap_intervals.z);
case "current_yaw";
scan2(values[1], "%", *e.current_yaw);
case "target_look_direction.x";
scan2(values[1], "%", *e.target_look_direction.x);
case "target_look_direction.y";
scan2(values[1], "%", *e.target_look_direction.y);
case "target_look_direction.z";
scan2(values[1], "%", *e.target_look_direction.z);
case "current_direction.x";
scan2(values[1], "%", *e.current_direction.x);
case "current_direction.y";
scan2(values[1], "%", *e.current_direction.y);
case "current_direction.z";
scan2(values[1], "%", *e.current_direction.z);
}
}
}
}
//
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
//
@@ -367,6 +292,9 @@ serialize_entity :: (e: *Character, builder: *String_Builder) {
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
print_to_builder(builder, "entity.rendering_offset.x: %\n", e.entity.rendering_offset.x);
print_to_builder(builder, "entity.rendering_offset.y: %\n", e.entity.rendering_offset.y);
print_to_builder(builder, "entity.rendering_offset.z: %\n", e.entity.rendering_offset.z);
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
@@ -419,6 +347,12 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Character) {
scan2(values[1], "%", *e.entity.transform.scale.y);
case "entity.transform.scale.z";
scan2(values[1], "%", *e.entity.transform.scale.z);
case "entity.rendering_offset.x";
scan2(values[1], "%", *e.entity.rendering_offset.x);
case "entity.rendering_offset.y";
scan2(values[1], "%", *e.entity.rendering_offset.y);
case "entity.rendering_offset.z";
scan2(values[1], "%", *e.entity.rendering_offset.z);
case "entity.snap_offset.x";
scan2(values[1], "%", *e.entity.snap_offset.x);
case "entity.snap_offset.y";
@@ -464,6 +398,108 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Character) {
}
}
//
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
//
serialize_entity :: (e: *Crab, builder: *String_Builder) {
print_to_builder(builder, "type: Crab\n");
print_to_builder(builder, "entity.enabled: %\n", e.entity.enabled);
print_to_builder(builder, "entity.flags: %\n", e.entity.flags);
print_to_builder(builder, "entity.transform.position.x: %\n", e.entity.transform.position.x);
print_to_builder(builder, "entity.transform.position.y: %\n", e.entity.transform.position.y);
print_to_builder(builder, "entity.transform.position.z: %\n", e.entity.transform.position.z);
print_to_builder(builder, "entity.transform.orientation.x: %\n", e.entity.transform.orientation.x);
print_to_builder(builder, "entity.transform.orientation.y: %\n", e.entity.transform.orientation.y);
print_to_builder(builder, "entity.transform.orientation.z: %\n", e.entity.transform.orientation.z);
print_to_builder(builder, "entity.transform.orientation.w: %\n", e.entity.transform.orientation.w);
print_to_builder(builder, "entity.transform.scale.x: %\n", e.entity.transform.scale.x);
print_to_builder(builder, "entity.transform.scale.y: %\n", e.entity.transform.scale.y);
print_to_builder(builder, "entity.transform.scale.z: %\n", e.entity.transform.scale.z);
print_to_builder(builder, "entity.rendering_offset.x: %\n", e.entity.rendering_offset.x);
print_to_builder(builder, "entity.rendering_offset.y: %\n", e.entity.rendering_offset.y);
print_to_builder(builder, "entity.rendering_offset.z: %\n", e.entity.rendering_offset.z);
print_to_builder(builder, "entity.snap_offset.x: %\n", e.entity.snap_offset.x);
print_to_builder(builder, "entity.snap_offset.y: %\n", e.entity.snap_offset.y);
print_to_builder(builder, "entity.snap_offset.z: %\n", e.entity.snap_offset.z);
print_to_builder(builder, "entity.snap_intervals.x: %\n", e.entity.snap_intervals.x);
print_to_builder(builder, "entity.snap_intervals.y: %\n", e.entity.snap_intervals.y);
print_to_builder(builder, "entity.snap_intervals.z: %\n", e.entity.snap_intervals.z);
print_to_builder(builder, "current_yaw: %\n", e.current_yaw);
print_to_builder(builder, "target_look_direction.x: %\n", e.target_look_direction.x);
print_to_builder(builder, "target_look_direction.y: %\n", e.target_look_direction.y);
print_to_builder(builder, "target_look_direction.z: %\n", e.target_look_direction.z);
print_to_builder(builder, "current_direction.x: %\n", e.current_direction.x);
print_to_builder(builder, "current_direction.y: %\n", e.current_direction.y);
print_to_builder(builder, "current_direction.z: %\n", e.current_direction.z);
}
//
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
//
deserialize_entity :: (scene: *Scene, lines: [] string, e: *Crab) {
for line: lines {
values := split(line, ":");
if values.count == 2 {
if trim(values[0], " ") == {
case "entity.enabled";
scan2(values[1], "%", *e.entity.enabled);
case "entity.transform.position.x";
scan2(values[1], "%", *e.entity.transform.position.x);
case "entity.transform.position.y";
scan2(values[1], "%", *e.entity.transform.position.y);
case "entity.transform.position.z";
scan2(values[1], "%", *e.entity.transform.position.z);
case "entity.transform.orientation.x";
scan2(values[1], "%", *e.entity.transform.orientation.x);
case "entity.transform.orientation.y";
scan2(values[1], "%", *e.entity.transform.orientation.y);
case "entity.transform.orientation.z";
scan2(values[1], "%", *e.entity.transform.orientation.z);
case "entity.transform.orientation.w";
scan2(values[1], "%", *e.entity.transform.orientation.w);
case "entity.transform.scale.x";
scan2(values[1], "%", *e.entity.transform.scale.x);
case "entity.transform.scale.y";
scan2(values[1], "%", *e.entity.transform.scale.y);
case "entity.transform.scale.z";
scan2(values[1], "%", *e.entity.transform.scale.z);
case "entity.rendering_offset.x";
scan2(values[1], "%", *e.entity.rendering_offset.x);
case "entity.rendering_offset.y";
scan2(values[1], "%", *e.entity.rendering_offset.y);
case "entity.rendering_offset.z";
scan2(values[1], "%", *e.entity.rendering_offset.z);
case "entity.snap_offset.x";
scan2(values[1], "%", *e.entity.snap_offset.x);
case "entity.snap_offset.y";
scan2(values[1], "%", *e.entity.snap_offset.y);
case "entity.snap_offset.z";
scan2(values[1], "%", *e.entity.snap_offset.z);
case "entity.snap_intervals.x";
scan2(values[1], "%", *e.entity.snap_intervals.x);
case "entity.snap_intervals.y";
scan2(values[1], "%", *e.entity.snap_intervals.y);
case "entity.snap_intervals.z";
scan2(values[1], "%", *e.entity.snap_intervals.z);
case "current_yaw";
scan2(values[1], "%", *e.current_yaw);
case "target_look_direction.x";
scan2(values[1], "%", *e.target_look_direction.x);
case "target_look_direction.y";
scan2(values[1], "%", *e.target_look_direction.y);
case "target_look_direction.z";
scan2(values[1], "%", *e.target_look_direction.z);
case "current_direction.x";
scan2(values[1], "%", *e.current_direction.x);
case "current_direction.y";
scan2(values[1], "%", *e.current_direction.y);
case "current_direction.z";
scan2(values[1], "%", *e.current_direction.z);
}
}
}
}
//
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:315.
//