New meshes and new trees

This commit is contained in:
Vladislav Khorev committed 2026-06-21 15:15:40 +03:00
1 parent d7db0faea3
commit 130e4411cb
45 files changed
+36847 -256

No files matched your search

+10 -7
View File
@@ -452,8 +452,8 @@ namespace ZL
LocationSetup uniExteriorParams = uniInteriorParams;
uniExteriorParams.gameObjectsJsonPath = "resources/config2/gameobjects_uni_exterior_x.json";
uniExteriorParams.interactiveObjectsJsonPath = "resources/config2/interactive_objects_uni_exterior_x.json";
uniExteriorParams.navigationJsonPaths = {"resources/navigation/uni_exterior2_all.txt"};
//uniExteriorParams.navigationJsonPaths = { "resources/navigation/uni_exterior2_all.json" };
//uniExteriorParams.navigationJsonPaths = {"resources/navigation/uni_exterior2_all.txt"};
uniExteriorParams.navigationJsonPaths = { "resources/navigation/uni_exterior2_all.json" };
uniExteriorParams.teleportsJsonPath = "resources/config2/teleports_uni_exterior.json";
uniExteriorParams.triggerZonesJsonPath = "resources/config2/trigger_zones_uni_exterior.json";
uniExteriorParams.lightsJsonPath = "resources/config2/lights_uni_exterior.json";
@@ -488,7 +488,8 @@ namespace ZL
params_dorm.dialoguesJsonPath = "resources/dialogue/dorm_dialogues.json";
/*params_dorm.navigationJsonPaths = {
/*
params_dorm.navigationJsonPaths = {
"resources/navigation/dorm3_bca.json",
"resources/navigation/dorm3_ca.json",
"resources/navigation/dorm3_ba.json",
@@ -496,7 +497,7 @@ namespace ZL
"resources/navigation/dorm3_b.json",
"resources/navigation/dorm3_all_open.json",
};*/
params_dorm.navigationJsonPaths = {
"resources/navigation/dorm3_bca.txt", //0
"resources/navigation/dorm3_ca.txt", //1
@@ -506,7 +507,8 @@ namespace ZL
"resources/navigation/dorm3_all_open.txt", //5
};
/*params_dorm.navigationJsonPaths = {
/*
params_dorm.navigationJsonPaths = {
"resources/navigation/dorm0_large.json",
"resources/navigation/dorm0_large.json",
"resources/navigation/dorm0_large.json",
@@ -1116,7 +1118,6 @@ namespace ZL
case SDLK_l:
//x = x - 1;
//std::cout << "current x: " << x << std::endl;
std::cout << "Azimuth: " << currentLocation()->state.cameraAzimuth << std::endl;
std::cout << "Inclination: " << currentLocation()->state.cameraInclination << std::endl;
break;
@@ -1138,11 +1139,13 @@ namespace ZL
break;
case SDLK_j:
/*
if (editorMode != EditorMode::None && currentLocation()) {
currentLocation()->editor.placeTree();
} else {
menuManager.toggleQuestJournal();
}
}*/
currentLocation()->editor.placeTree();
break;
case SDLK_v:
+29 -4
View File
@@ -439,18 +439,36 @@ namespace ZL
std::uniform_real_distribution<float> scaleDist(0.8f, 1.2f);
std::uniform_real_distribution<float> rotDist(0.0f, 360.0f);
std::uniform_int_distribution<int> tree_index(1, 3);
int treeNum = tree_index(rng);
int editorTreeNum = ++editorPlacedObjectCounter;
GameObjectData data;
data.name = "editor_tree_" + std::to_string(++editorPlacedObjectCounter);
data.texturePath = "resources/w/exterior/tree001.png";
data.meshPath = "resources/w/exterior/tree003.txt";
data.name = "editor_wood_" + std::to_string(editorTreeNum);
data.texturePath = "resources/w/exterior/texAtlas001.png";
data.meshPath = "resources/w/exterior/DTree_Wood_" + std::to_string(treeNum) + "_001.txt";
data.rotationX = 0.0f;
data.rotationY = rotDist(rng);
data.rotationZ = 0.0f;
data.positionX = loc.player->state.position.x();
data.positionY = loc.player->state.position.y();
data.positionY = loc.player->state.position.y()-0.1;
data.positionZ = loc.player->state.position.z();
data.scale = scaleDist(rng);
GameObjectData data2;
data2.name = "editor_tree_" + std::to_string(editorTreeNum);
data2.texturePath = "resources/w/exterior/texAtlas001.png";
data2.meshPath = "resources/w/exterior/DTree_Tree_" + std::to_string(treeNum) + "_001.txt";
data2.rotationX = 0.0f;
data2.rotationY = data.rotationY;
data2.rotationZ = 0.0f;
data2.positionX = data.positionX;
data2.positionY = data.positionY;
data2.positionZ = data.positionZ;
data2.scale = data.scale;
LoadedGameObject obj = GameObjectLoader::buildLoadedObject(data, loc.renderer, CONST_ZIP_FILE);
obj.mesh.data.Move({ data.positionX, data.positionY, data.positionZ });
obj.mesh.RefreshVBO();
@@ -458,6 +476,13 @@ namespace ZL
loc.gameObjects[data.name] = std::move(obj);
editorPlacedObjects.push_back(data);
LoadedGameObject obj2 = GameObjectLoader::buildLoadedObject(data2, loc.renderer, CONST_ZIP_FILE);
obj2.mesh.data.Move({ data2.positionX, data2.positionY, data2.positionZ });
obj2.mesh.RefreshVBO();
loc.gameObjects[data2.name] = std::move(obj2);
editorPlacedObjects.push_back(data2);
std::cout << "[GAME_EDITOR] Placed '" << data.name << "' at ("
<< data.positionX << ", " << data.positionZ
<< ") scale=" << data.scale << " rotY=" << data.rotationY << "\n";
+1
View File
@@ -70,6 +70,7 @@ namespace ZL {
return obj;
}
void InteractiveObject::moveTo(const Eigen::Vector3f& target, float durationSec, std::function<void()> onComplete) {
if (state.isAnimating) return;
AnimTask task;