|
|
|
|
@@ -30,11 +30,19 @@ editor_ui_entity_creation :: () -> *Entity {
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:271.
|
|
|
|
|
//
|
|
|
|
|
delete_entity :: (e: *Entity) {
|
|
|
|
|
// Delete the file too
|
|
|
|
|
path := tprint("../assets/scenes/%/%.ent", e.scene.name, e.id);
|
|
|
|
|
File.file_delete(path);
|
|
|
|
|
|
|
|
|
|
destroy_entity(e);
|
|
|
|
|
|
|
|
|
|
if e.type == {
|
|
|
|
|
case Block; bucket_array_remove(*e.scene.by_type._Block, e._locator); case Character; bucket_array_remove(*e.scene.by_type._Character, e._locator); case Item; bucket_array_remove(*e.scene.by_type._Item, e._locator);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//#import "File";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:282.
|
|
|
|
|
@@ -95,6 +103,78 @@ if _scene == null {
|
|
|
|
|
_scene = engine.current_scene; }
|
|
|
|
|
p, locator := find_and_occupy_empty_slot(*_scene.by_type._Item); p._locator = locator; register_entity(_scene, p); p.transform = create_identity_transform(); init_entity(p); return p; }
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
|
|
|
|
|
//
|
|
|
|
|
serialize_entity :: (e: *Item, builder: *String_Builder) {
|
|
|
|
|
print_to_builder(builder, "type: Item\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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
|
|
|
|
|
//
|
|
|
|
|
deserialize_entity :: (scene: *Scene, lines: [] string, e: *Item) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
|
|
|
|
|
//
|
|
|
|
|
@@ -171,78 +251,6 @@ deserialize_entity :: (scene: *Scene, lines: [] string, e: *Block) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
|
|
|
|
|
//
|
|
|
|
|
serialize_entity :: (e: *Item, builder: *String_Builder) {
|
|
|
|
|
print_to_builder(builder, "type: Item\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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
|
|
|
|
|
//
|
|
|
|
|
deserialize_entity :: (scene: *Scene, lines: [] string, e: *Item) {
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// String added via add_build_string() from c:/Personal/games/onegameamonth/oct24/modules/Coven/metaprogram.jai:307.
|
|
|
|
|
//
|
|
|
|
|
|