update build

This commit is contained in:
2025-04-01 11:58:46 +03:00
parent c727a1912c
commit 64424e3111
7 changed files with 38 additions and 30 deletions

2
.gitignore vendored
View File

@@ -11,3 +11,5 @@ assets/blender/scripts/*.blend*
.*.swp .*.swp
*.kra~ *.kra~
*.png~ *.png~
godot/astream/road_lines.json.*

View File

@@ -13,9 +13,11 @@
template <class T> T *get_as_node(const String &path) template <class T> T *get_as_node(const String &path)
{ {
Node *scene; Node *scene;
#ifdef TOOLS_ENABLED
if (Engine::get_singleton()->is_editor_hint()) if (Engine::get_singleton()->is_editor_hint())
scene = EditorNode::get_singleton()->get_edited_scene(); scene = EditorNode::get_singleton()->get_edited_scene();
else else
#endif
scene = SceneTree::get_singleton()->get_current_scene(); scene = SceneTree::get_singleton()->get_current_scene();
assert(scene); assert(scene);
Node *node = scene->get_node(NodePath(path)); Node *node = scene->get_node(NodePath(path));

View File

@@ -9,3 +9,7 @@ lib = env.add_library("flecs", env.stream_building_sources)
env.Prepend(LIBS=[lib]) env.Prepend(LIBS=[lib])
env.Prepend(CPPPATH=["../../../flecs/distr"]) env.Prepend(CPPPATH=["../../../flecs/distr"])
env.Prepend(CFLAGS=["-Wno-shadow=compatible-local", "-Wno-maybe-uninitialized"]) env.Prepend(CFLAGS=["-Wno-shadow=compatible-local", "-Wno-maybe-uninitialized"])
env.Append(CDEFS=["FLECS_DEBUG"])
env.Append(CPPDEFS=["FLECS_DEBUG"])
env.Append(CFLAGS=["-UNDEBUG"])
env.Append(CPPFLAGS=["-UNDEBUG"])

View File

@@ -39,7 +39,7 @@ void StreamWorld::create_tilemap()
} }
}, },
nullptr); nullptr);
print_line("Tile count: " + itos(tiles.size())); print_verbose("Tile count: " + itos(tiles.size()));
} }
void StreamWorld::update_view() void StreamWorld::update_view()
@@ -84,7 +84,7 @@ void StreamWorld::update_view()
int tile_x = int(eye.x / tile_size); int tile_x = int(eye.x / tile_size);
int tile_z = int(eye.z / tile_size); int tile_z = int(eye.z / tile_size);
if (current_x != tile_x || current_z != tile_z) { if (current_x != tile_x || current_z != tile_z) {
print_line("tile: " + itos(tile_x) + " " + itos(tile_z)); print_verbose("tile: " + itos(tile_x) + " " + itos(tile_z));
for (i = tile_z - view_distance; i < tile_z + view_distance + 1; for (i = tile_z - view_distance; i < tile_z + view_distance + 1;
i++) i++)
for (j = tile_x - view_distance; for (j = tile_x - view_distance;
@@ -94,7 +94,7 @@ void StreamWorld::update_view()
if (tiles.find(key) != tiles.end()) { if (tiles.find(key) != tiles.end()) {
if (loaded_tiles.find(key) == if (loaded_tiles.find(key) ==
loaded_tiles.end()) { loaded_tiles.end()) {
print_line( print_verbose(
"load tile: " + "load tile: " +
itos(j) + " " + itos(j) + " " +
itos(i) + " = " + itos(i) + " = " +
@@ -114,8 +114,8 @@ void StreamWorld::update_view()
int lx = kx - tile_x; int lx = kx - tile_x;
int lz = kz - tile_z; int lz = kz - tile_z;
if (lx * lx > ed2 || lz * lz > ed2) { if (lx * lx > ed2 || lz * lz > ed2) {
print_line("erase tile: " + itos(kx) + " " + print_verbose("erase tile: " + itos(kx) + " " +
itos(kz)); itos(kz));
erase_tile(kx, kz); erase_tile(kx, kz);
it = loaded_tiles.erase(it); it = loaded_tiles.erase(it);
} else } else
@@ -136,7 +136,7 @@ void StreamWorld::viewer_dead()
void StreamWorld::terrain_dead() void StreamWorld::terrain_dead()
{ {
print_line("terrain dead"); print_verbose("terrain dead");
terrain = nullptr; terrain = nullptr;
set_process(false); set_process(false);
} }
@@ -147,8 +147,8 @@ void StreamWorld::load_tile(int tx, int ty)
std::tuple<int, int> key = std::make_tuple(tx, ty); std::tuple<int, int> key = std::make_tuple(tx, ty);
const std::vector<String> &items = tiles[key]; const std::vector<String> &items = tiles[key];
for (i = 0; i < (int)items.size(); i++) { for (i = 0; i < (int)items.size(); i++) {
print_line("load item: " + itos(i) + ": key: " + (items[i]) + print_verbose("load item: " + itos(i) + ": key: " + (items[i]) +
": " /* + data()->get_building(items[i]).id */); ": " /* + data()->get_building(items[i]).id */);
const String &bkey = items[i]; const String &bkey = items[i];
load_building(bkey); load_building(bkey);
} }
@@ -160,8 +160,8 @@ void StreamWorld::erase_tile(int tx, int ty)
std::tuple<int, int> key = std::make_tuple(tx, ty); std::tuple<int, int> key = std::make_tuple(tx, ty);
const std::vector<String> &items = tiles[key]; const std::vector<String> &items = tiles[key];
for (i = 0; i < (int)items.size(); i++) { for (i = 0; i < (int)items.size(); i++) {
print_line("unload item: " + itos(i) + ": key: " + items[i] + print_verbose("unload item: " + itos(i) + ": key: " + items[i] +
": " /* + data()->get_building(items[i]).id */); ": " /* + data()->get_building(items[i]).id */);
const String &bkey = items[i]; const String &bkey = items[i];
unload_building(bkey); unload_building(bkey);
} }
@@ -183,27 +183,27 @@ void StreamWorld::request_item(int type, const String &bkey)
/* bkey can contain "::"'s so need to replae them with underscores */ /* bkey can contain "::"'s so need to replae them with underscores */
String ekey = bkey; String ekey = bkey;
if (bkey.begins_with("road__")) { if (bkey.begins_with("road__")) {
print_line("loading building: " + ekey); print_verbose("loading building: " + ekey);
debug = true; debug = true;
} }
String id = data()->get_building(ekey).id; String id = data()->get_building(ekey).id;
if (debug) if (debug)
print_line("building id: " + id); print_verbose("building id: " + id);
if (id == "empty") if (id == "empty")
return; return;
switch (type) { switch (type) {
case 0: case 0:
if (debug) if (debug)
print_line("add to scene id: " + id); print_verbose("add to scene id: " + id);
if (!data()->has_scene(id)) if (!data()->has_scene(id))
data()->create_scene_data(id, ekey); data()->create_scene_data(id, ekey);
else else
data()->add_scene_item(id, ekey); data()->add_scene_item(id, ekey);
if (debug) if (debug)
print_line("added to scene id: " + id); print_verbose("added to scene id: " + id);
break; break;
case 1: { case 1: {
print_line("Removing key:" + ekey); print_verbose("Removing key:" + ekey);
if (data()->has_scene(id)) { if (data()->has_scene(id)) {
data()->remove_scene_item(id, ekey); data()->remove_scene_item(id, ekey);
} }
@@ -321,8 +321,8 @@ void StreamWorld::run_command(const String &command,
data()->get_building(key).id = new_type; data()->get_building(key).id = new_type;
load_building(key); load_building(key);
update_items(); update_items();
print_line("changed building: key:" + key + print_verbose("changed building: key:" + key +
" from: " + old_type + " to: " + new_type); " from: " + old_type + " to: " + new_type);
} else if (command == "create_building") { } else if (command == "create_building") {
if (args.size() == 0) { if (args.size() == 0) {
print_error("bad command: not enough args: " + command); print_error("bad command: not enough args: " + command);
@@ -360,8 +360,8 @@ void StreamWorld::run_command(const String &command,
} }
}, },
nullptr); nullptr);
print_line("delete buildings: " + itos(erased_keys.size()) + print_verbose("delete buildings: " + itos(erased_keys.size()) +
" prefix: " + prefix); " prefix: " + prefix);
for (i = erased_keys.size() - 1; i >= 0; i--) { for (i = erased_keys.size() - 1; i >= 0; i--) {
unload_building(erased_keys[i]); unload_building(erased_keys[i]);
data()->destroy_building(erased_keys[i]); data()->destroy_building(erased_keys[i]);
@@ -383,8 +383,8 @@ void StreamWorld::run_command(const String &command,
} }
}, },
nullptr); nullptr);
print_line("delete buildings: " + itos(erased_keys.size()) + print_verbose("delete buildings: " + itos(erased_keys.size()) +
" prefix: " + prefix); " prefix: " + prefix);
for (i = erased_keys.size() - 1; i >= 0; i--) { for (i = erased_keys.size() - 1; i >= 0; i--) {
unload_building(erased_keys[i]); unload_building(erased_keys[i]);
data()->destroy_building(erased_keys[i]); data()->destroy_building(erased_keys[i]);
@@ -409,10 +409,10 @@ void StreamWorld::run_command(const String &command,
}, },
nullptr); nullptr);
#endif #endif
print_line("road_rebuild done"); print_verbose("road_rebuild done");
} else if (command == "remove_road_meshes") { } else if (command == "remove_road_meshes") {
RoadProcessing::remove_road_meshes(this); RoadProcessing::remove_road_meshes(this);
print_line("remove_road_meshes done"); print_verbose("remove_road_meshes done");
} else if (command == "nudge_generator") { } else if (command == "nudge_generator") {
auto gen = terrain->get_generator(); auto gen = terrain->get_generator();
terrain->set_generator(Ref<VoxelGenerator>()); terrain->set_generator(Ref<VoxelGenerator>());
@@ -479,7 +479,7 @@ void StreamWorld::_notification(int which)
if (frame_count % 60 == 0) { if (frame_count % 60 == 0) {
float fmon = Performance::get_singleton()->get_monitor( float fmon = Performance::get_singleton()->get_monitor(
Performance::RENDER_DRAW_CALLS_IN_FRAME); Performance::RENDER_DRAW_CALLS_IN_FRAME);
print_line("Draw calls: " + String::num(fmon)); print_verbose("Draw calls: " + String::num(fmon));
} }
frame_count++; frame_count++;
if (Engine::get_singleton()->is_editor_hint()) if (Engine::get_singleton()->is_editor_hint())
@@ -529,9 +529,9 @@ StreamWorld::StreamWorld()
while (map_it != tiles.end()) { while (map_it != tiles.end()) {
std::tuple<int, int> key = map_it->first; std::tuple<int, int> key = map_it->first;
std::vector<String> &tile_buildings = map_it->second; std::vector<String> &tile_buildings = map_it->second;
print_line("x: " + itos(std::get<0>(key)) + print_verbose("x: " + itos(std::get<0>(key)) +
" y: " + itos(std::get<1>(key)) + " " + " y: " + itos(std::get<1>(key)) + " " +
itos(tile_buildings.size())); itos(tile_buildings.size()));
map_it++; map_it++;
} }
view_distance = config.get_value("world", "view_distance"); view_distance = config.get_value("world", "view_distance");