From d3b8b80f296a9cc86a74a93792e42bbb84dd8c65 Mon Sep 17 00:00:00 2001 From: kaetemi Date: Wed, 11 Aug 2010 14:18:33 +0200 Subject: [PATCH] Added: #929 Ig build process. --- .../build_gamedata/configuration/tools.py | 3 + .../processes/_dummy/0_setup.py | 66 ++++ .../processes/_dummy/1_export.py | 117 ++++++ .../processes/_dummy/2_build.py | 96 +++++ .../processes/_dummy/3_install.py | 63 +++ .../build_gamedata/processes/ig/0_setup.py | 78 ++++ .../build_gamedata/processes/ig/1_export.py | 111 ++++++ .../build_gamedata/processes/ig/2_build.py | 244 ++++++++++++ .../build_gamedata/processes/ig/3_install.py | 60 +++ .../processes/ig/maxscript/ig_export.ms | 304 ++++++++++++++ .../processes/ig_light/0_setup.py | 7 +- .../processes/ig_light/2_build.py | 6 +- .../processes/ig_light/3_install.py | 2 +- .../build_gamedata/processes/ligo/0_setup.py | 1 + .../build_gamedata/processes/rbank/0_setup.py | 2 +- .../build_gamedata/processes/rbank/2_build.py | 4 +- .../build_gamedata/processes/zone/0_setup.py | 1 + .../build_gamedata/processes/zone/2_build.py | 38 +- .../processes/zone_light/0_setup.py | 2 +- .../processes/zone_light/1_export.py | 41 +- .../processes/zone_light/2_build.py | 4 +- .../processes/zone_light/3_install.py | 2 +- code/ryzom/tools/all.sln | 12 +- .../continents/newbieland/directories.py | 44 ++- .../continents/newbieland/process.py | 22 +- .../ecosystems/jungle/directories.py | 9 +- .../workspace/ecosystems/jungle/process.py | 2 +- .../alias_synchronizer.vcproj | 2 + .../georges_exe/georges_exe.vcproj | 1 + .../tools/leveldesign/prim_export/main.cpp | 2 +- .../prim_export/prim_export.vcproj | 374 +++++++----------- .../land_export/land_export.vcproj | 4 +- 32 files changed, 1408 insertions(+), 316 deletions(-) create mode 100644 code/nel/tools/build_gamedata/processes/_dummy/0_setup.py create mode 100644 code/nel/tools/build_gamedata/processes/_dummy/1_export.py create mode 100644 code/nel/tools/build_gamedata/processes/_dummy/2_build.py create mode 100644 code/nel/tools/build_gamedata/processes/_dummy/3_install.py create mode 100644 code/nel/tools/build_gamedata/processes/ig/0_setup.py create mode 100644 code/nel/tools/build_gamedata/processes/ig/1_export.py create mode 100644 code/nel/tools/build_gamedata/processes/ig/2_build.py create mode 100644 code/nel/tools/build_gamedata/processes/ig/3_install.py create mode 100644 code/nel/tools/build_gamedata/processes/ig/maxscript/ig_export.ms diff --git a/code/nel/tools/build_gamedata/configuration/tools.py b/code/nel/tools/build_gamedata/configuration/tools.py index 3b9d916a7..d02f0347b 100644 --- a/code/nel/tools/build_gamedata/configuration/tools.py +++ b/code/nel/tools/build_gamedata/configuration/tools.py @@ -79,3 +79,6 @@ BuildShadowSkinTool = "build_shadow_skin" PanoplyMakerTool = "panoply_maker" HlsBankMakerTool = "hls_bank_maker" LandExportTool = "land_export" +PrimExportTool = "prim_export" +IgElevationTool = "ig_elevation" +IgAddTool = "ig_add" diff --git a/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py b/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py new file mode 100644 index 000000000..80bf39ac6 --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/_dummy/0_setup.py @@ -0,0 +1,66 @@ +#!/usr/bin/python +# +# \file 0_setup.py +# \brief setup dummy +# \date 2010-05-24 13:42GMT +# \author Jan Boon (Kaetemi) +# Python port of game data build pipeline. +# Setup dummy +# +# NeL - MMORPG Framework +# Copyright (C) 2010 Winch Gate Property Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +import time, sys, os, shutil, subprocess, distutils.dir_util +sys.path.append("../../configuration") + +if os.path.isfile("log.log"): + os.remove("log.log") +log = open("log.log", "w") +from scripts import * +from buildsite import * +from process import * +from tools import * +from directories import * + +printLog(log, "") +printLog(log, "-------") +printLog(log, "--- Setup dummy") +printLog(log, "-------") +printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) +printLog(log, "") + +# Setup source directories +printLog(log, ">>> Setup source directories <<<") +#for dir in MapSourceDirectories: +# mkPath(log, DatabaseDirectory + "/" + dir) + +# Setup export directories +printLog(log, ">>> Setup export directories <<<") +#mkPath(log, ExportBuildDirectory + "/" + DummyTagExportDirectory) + +# Setup build directories +printLog(log, ">>> Setup build directories <<<") +#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory) + +# Setup client directories +printLog(log, ">>> Setup client directories <<<") +#mkPath(log, ClientDataDirectory + "/" + DummyClientDirectory) + +log.close() + + +# end of file diff --git a/code/nel/tools/build_gamedata/processes/_dummy/1_export.py b/code/nel/tools/build_gamedata/processes/_dummy/1_export.py new file mode 100644 index 000000000..f8f0b81c6 --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/_dummy/1_export.py @@ -0,0 +1,117 @@ +#!/usr/bin/python +# +# \file 1_export.py +# \brief Export dummy +# \date 2010-05-24 13:42GMT +# \author Jan Boon (Kaetemi) +# Python port of game data build pipeline. +# Export dummy +# +# NeL - MMORPG Framework +# Copyright (C) 2010 Winch Gate Property Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +import time, sys, os, shutil, subprocess, distutils.dir_util +sys.path.append("../../configuration") + +if os.path.isfile("log.log"): + os.remove("log.log") +log = open("log.log", "w") +from scripts import * +from buildsite import * +from process import * +from tools import * +from directories import * + +printLog(log, "") +printLog(log, "-------") +printLog(log, "--- Export dummy") +printLog(log, "-------") +printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) +printLog(log, "") + +if MaxAvailable: + # Find tools + Max = findMax(log, MaxDirectory, MaxExecutable) + # ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) + printLog(log, "") + + # Export dummy 3dsmax + printLog(log, ">>> Export dummy 3dsmax <<<") + + # Build paths + #scriptSrc = "maxscript/dummy_export.ms" + # scriptDst = MaxDirectory + "/scripts/dummy_export.ms" + #scriptDst = MaxUserDirectory + "/scripts/dummy_export.ms" + #logFile = ScriptDirectory + "/processes/dummy/log.log" + #outDirTag = ExportBuildDirectory + "/" + DummyTagExportDirectory + #mkPath(log, outDirTag) + #outDirWithoutCoarse = ExportBuildDirectory + "/" + DummyExportDirectory + #mkPath(log, outDirWithoutCoarse) + #outDirWithCoarse = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory + #mkPath(log, outDirWithCoarse) + #outDirLightmap = ExportBuildDirectory + "/" + DummyLightmapNotOptimizedExportDirectory + #mkPath(log, outDirLightmap) + #outDirAnim = ExportBuildDirectory + "/" + DummyAnimExportDirectory + #mkPath(log, outDirAnim) + + #tagList = findFiles(log, outDirTag, "", ".tag") + #tagLen = len(tagList) + + # For each directoy + #if os.path.isfile(scriptDst): + # os.remove(scriptDst) + #for dir in DummySourceDirectories: + # tagDiff = 1 + # dummySourceDir = DatabaseDirectory + "/" + dir + # mkPath(log, dummySourceDir) + # sSrc = open(scriptSrc, "r") + # sDst = open(scriptDst, "w") + # for line in sSrc: + # newline = line.replace("output_logfile", logFile) + # newline = newline.replace("dummy_source_directory", dummySourceDir) + # newline = newline.replace("output_directory_tag", outDirTag) + # newline = newline.replace("output_directory_without_coarse_mesh", outDirWithoutCoarse) + # newline = newline.replace("output_directory_with_coarse_mesh", outDirWithCoarse) + # newline = newline.replace("dummy_export_opt_export_lighting", DummyExportOptExportLighting) + # newline = newline.replace("dummy_export_opt_shadow", DummyExportOptShadow) + # newline = newline.replace("dummy_export_opt_lighting_limit", str(DummyExportOptLightingLimit)) + # newline = newline.replace("dummy_export_opt_lumel_size", DummyExportOptLumelSize) + # newline = newline.replace("dummy_export_opt_oversampling", str(DummyExportOptOversampling)) + # newline = newline.replace("dummy_export_opt_lightmap_log", DummyExportOptLightmapLog) + # newline = newline.replace("dummy_lightmap_path", outDirLightmap) + # newline = newline.replace("output_directory_anim", outDirAnim) + # sDst.write(newline) + # sSrc.close() + # sDst.close() + # while tagDiff > 0: + # printLog(log, "MAXSCRIPT " + scriptDst) + # subprocess.call([ Max, "-U", "MAXScript", "dummy_export.ms", "-q", "-mi", "-vn" ]) + # tagList = findFiles(log, outDirTag, "", ".tag") + # newTagLen = len(tagList) + # tagDiff = newTagLen - tagLen + # tagLen = newTagLen + # printLog(log, "Exported " + str(tagDiff) + " .max files!") + # tagDiff += hackBdummyTree() # force rerun also when bdummy tree deleted + # os.remove(scriptDst) + + +printLog(log, "") + +log.close() + + +# end of file diff --git a/code/nel/tools/build_gamedata/processes/_dummy/2_build.py b/code/nel/tools/build_gamedata/processes/_dummy/2_build.py new file mode 100644 index 000000000..841fd772c --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/_dummy/2_build.py @@ -0,0 +1,96 @@ +#!/usr/bin/python +# +# \file 2_build.py +# \brief Build dummy +# \date 2010-05-24 13:42GMT +# \author Jan Boon (Kaetemi) +# Python port of game data build pipeline. +# Build dummy +# +# NeL - MMORPG Framework +# Copyright (C) 2010 Winch Gate Property Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +import time, sys, os, shutil, subprocess, distutils.dir_util +sys.path.append("../../configuration") + +if os.path.isfile("log.log"): + os.remove("log.log") +log = open("log.log", "w") +from scripts import * +from buildsite import * +from process import * +from tools import * +from directories import * + +printLog(log, "") +printLog(log, "-------") +printLog(log, "--- Build dummy") +printLog(log, "-------") +printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) +printLog(log, "") + +# Find tools +ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) +BuildShadowSkin = findTool(log, ToolDirectories, BuildShadowSkinTool, ToolSuffix) +BuildClodtex = findTool(log, ToolDirectories, BuildClodtexTool, ToolSuffix) +LightmapOptimizer = findTool(log, ToolDirectories, LightmapOptimizerTool, ToolSuffix) +TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix) +BuildCoarseMesh = findTool(log, ToolDirectories, BuildCoarseMeshTool, ToolSuffix) + +#if 1: # todo: CoarseMeshTextureNames length > 0 ... +# printLog(log, ">>> Build coarse meshes <<<") +# dummyWithCoarseMesh = ExportBuildDirectory + "/" + DummyWithCoarseMeshExportDirectory +# mkPath(log, dummyWithCoarseMesh) +# dummyWithCoarseMeshBuilded = ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory +# mkPath(log, dummyWithCoarseMeshBuilded) +# cf = open("confdummy_generated.cfg", "w") +# cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n") +# cf.write("\n") +# cf.write("search_path = \n") +# cf.write("{\n") +# cf.write("\t\"" + dummyWithCoarseMesh + "\", \n") +# for dir in MapSourceDirectories: +# cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n") +# cf.write("};\n") +# cf.write("\n") +# cf.write("list_mesh = \n") +# cf.write("{\n") +# # For each dummy with coarse mesh +# files = findFiles(log, dummyWithCoarseMesh, "", ".dummy") +# for file in files: +# sourceFile = dummyWithCoarseMesh + "/" + file +# if os.path.isfile(sourceFile): +# destFile = dummyWithCoarseMeshBuilded + "/" + file +# cf.write("\t\"" + file + "\", \"" + destFile + "\", \n") +# cf.write("};\n") +# cf.write("\n") +# cf.write("output_textures = \n") +# cf.write("{\n") +# # For each dummy with coarse mesh +# for tn in CoarseMeshTextureNames: +# cf.write("\t\"" + dummyWithCoarseMesh + "/" + tn + ".tga\", \n") +# cf.write("};\n") +# cf.close() +# subprocess.call([ BuildCoarseMesh, "confdummy_generated.cfg" ]) +# os.remove("confdummy_generated.cfg") +# for tn in CoarseMeshTextureNames: +# subprocess.call([ TgaToDds, dummyWithCoarseMesh + "/" + tn + ".tga", "-o", dummyWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ]) + +log.close() + + +# end of file diff --git a/code/nel/tools/build_gamedata/processes/_dummy/3_install.py b/code/nel/tools/build_gamedata/processes/_dummy/3_install.py new file mode 100644 index 000000000..ba92a6bba --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/_dummy/3_install.py @@ -0,0 +1,63 @@ +#!/usr/bin/python +# +# \file 3_install.py +# \brief Install dummy +# \date 2010-05-24 13:42GMT +# \author Jan Boon (Kaetemi) +# Python port of game data build pipeline. +# Install dummy +# +# NeL - MMORPG Framework +# Copyright (C) 2010 Winch Gate Property Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +import time, sys, os, shutil, subprocess, distutils.dir_util +sys.path.append("../../configuration") + +if os.path.isfile("log.log"): + os.remove("log.log") +log = open("log.log", "w") +from scripts import * +from buildsite import * +from process import * +from tools import * +from directories import * + +printLog(log, "") +printLog(log, "-------") +printLog(log, "--- Install dummy") +printLog(log, "-------") +printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) +printLog(log, "") + +#clientPath = ClientDataDirectory + "/" + DummyClientDirectory +#mkPath(log, clientPath) + +printLog(log, ">>> Install dummy <<<") +#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory) +#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, clientPath, ".dummy") +#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory) +#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, clientPath, ".dummy") +#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, clientPath, ".dds") + +#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory) +#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, clientPath, ".anim") + +printLog(log, "") +log.close() + + +# end of file diff --git a/code/nel/tools/build_gamedata/processes/ig/0_setup.py b/code/nel/tools/build_gamedata/processes/ig/0_setup.py new file mode 100644 index 000000000..7ff7d4281 --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/ig/0_setup.py @@ -0,0 +1,78 @@ +#!/usr/bin/python +# +# \file 0_setup.py +# \brief setup ig +# \date 2010-05-24 13:42GMT +# \author Jan Boon (Kaetemi) +# Python port of game data build pipeline. +# Setup ig +# +# NeL - MMORPG Framework +# Copyright (C) 2010 Winch Gate Property Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +import time, sys, os, shutil, subprocess, distutils.dir_util +sys.path.append("../../configuration") + +if os.path.isfile("log.log"): + os.remove("log.log") +log = open("log.log", "w") +from scripts import * +from buildsite import * +from process import * +from tools import * +from directories import * + +printLog(log, "") +printLog(log, "-------") +printLog(log, "--- Setup ig") +printLog(log, "-------") +printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) +printLog(log, "") + +# Setup source directories +printLog(log, ">>> Setup source directories <<<") +for dir in IgLandSourceDirectories: + mkPath(log, DatabaseDirectory + "/" + dir) +for dir in IgOtherSourceDirectories: + mkPath(log, DatabaseDirectory + "/" + dir) +mkPath(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory) + +# Setup export directories +printLog(log, ">>> Setup export directories <<<") +mkPath(log, ExportBuildDirectory + "/" + IgStaticLandExportDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgStaticTagExportDirectory) + +# Setup build directories +printLog(log, ">>> Setup build directories <<<") +mkPath(log, ExportBuildDirectory + "/" + LigoIgLandBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory) + +# Setup client directories +printLog(log, ">>> Setup client directories <<<") +#mkPath(log, ClientDataDirectory + "/" + IgClientDirectory) + +log.close() + + +# end of file diff --git a/code/nel/tools/build_gamedata/processes/ig/1_export.py b/code/nel/tools/build_gamedata/processes/ig/1_export.py new file mode 100644 index 000000000..8921b2d1a --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/ig/1_export.py @@ -0,0 +1,111 @@ +#!/usr/bin/python +# +# \file 1_export.py +# \brief Export ig +# \date 2010-05-24 13:42GMT +# \author Jan Boon (Kaetemi) +# Python port of game data build pipeline. +# Export ig +# +# NeL - MMORPG Framework +# Copyright (C) 2010 Winch Gate Property Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +import time, sys, os, shutil, subprocess, distutils.dir_util +sys.path.append("../../configuration") + +if os.path.isfile("log.log"): + os.remove("log.log") +log = open("log.log", "w") +from scripts import * +from buildsite import * +from process import * +from tools import * +from directories import * + +printLog(log, "") +printLog(log, "-------") +printLog(log, "--- Export ig") +printLog(log, "-------") +printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) +printLog(log, "") + +Max = "" #find later + + +def igExport(sourceDir, targetDir): + scriptSrc = "maxscript/ig_export.ms" + scriptDst = MaxUserDirectory + "/scripts/ig_export.ms" + logFile = ScriptDirectory + "/processes/ig/log.log" + outDirTag = ExportBuildDirectory + "/" + IgStaticTagExportDirectory + outDirIg = ExportBuildDirectory + "/" + targetDir + igSourceDir = DatabaseDirectory + "/" + sourceDir + tagList = findFiles(log, outDirTag, "", ".tag") + tagLen = len(tagList) + if os.path.isfile(scriptDst): + os.remove(scriptDst) + tagDiff = 1 + sSrc = open(scriptSrc, "r") + sDst = open(scriptDst, "w") + for line in sSrc: + newline = line.replace("output_logfile", logFile) + newline = newline.replace("ig_source_directory", igSourceDir) + newline = newline.replace("output_directory_tag", outDirTag) + newline = newline.replace("output_directory_ig", outDirIg) + sDst.write(newline) + sSrc.close() + sDst.close() + while tagDiff > 0: + printLog(log, "MAXSCRIPT " + scriptDst) + subprocess.call([ Max, "-U", "MAXScript", "ig_export.ms", "-q", "-mi", "-vn" ]) + tagList = findFiles(log, outDirTag, "", ".tag") + newTagLen = len(tagList) + tagDiff = newTagLen - tagLen + tagLen = newTagLen + printLog(log, "Exported " + str(tagDiff) + " .max files!") + os.remove(scriptDst) + return + + +if MaxAvailable: + # Find tools + Max = findMax(log, MaxDirectory, MaxExecutable) + # ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) + printLog(log, "") + + mkPath(log, ExportBuildDirectory + "/" + IgStaticTagExportDirectory) + + # Export ig land 3dsmax + printLog(log, ">>> Export ig land 3dsmax <<<") + mkPath(log, ExportBuildDirectory + "/" + IgStaticLandExportDirectory) + for dir in IgLandSourceDirectories: + mkPath(log, DatabaseDirectory + "/" + dir) + igExport(dir, IgStaticLandExportDirectory) + + # Export ig other 3dsmax + printLog(log, ">>> Export ig other 3dsmax <<<") + mkPath(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory) + for dir in IgOtherSourceDirectories: + mkPath(log, DatabaseDirectory + "/" + dir) + igExport(dir, IgStaticOtherExportDirectory) + + +printLog(log, "") + +log.close() + + +# end of file diff --git a/code/nel/tools/build_gamedata/processes/ig/2_build.py b/code/nel/tools/build_gamedata/processes/ig/2_build.py new file mode 100644 index 000000000..6eac1be71 --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/ig/2_build.py @@ -0,0 +1,244 @@ +#!/usr/bin/python +# +# \file 2_build.py +# \brief Build ig +# \date 2010-05-24 13:42GMT +# \author Jan Boon (Kaetemi) +# Python port of game data build pipeline. +# Build ig +# +# NeL - MMORPG Framework +# Copyright (C) 2010 Winch Gate Property Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +import time, sys, os, shutil, subprocess, distutils.dir_util +sys.path.append("../../configuration") + +if os.path.isfile("log.log"): + os.remove("log.log") +log = open("log.log", "w") +from scripts import * +from buildsite import * +from process import * +from tools import * +from directories import * + +printLog(log, "") +printLog(log, "-------") +printLog(log, "--- Build ig") +printLog(log, "-------") +printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) +printLog(log, "") + +# Find tools +ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) +PrimExport = findTool(log, ToolDirectories, PrimExportTool , ToolSuffix) +IgElevation = findTool(log, ToolDirectories, IgElevationTool, ToolSuffix) +IgAdd = findTool(log, ToolDirectories, IgAddTool, ToolSuffix) + +configDir = ActiveProjectDirectory + "/generated" +mkPath(log, configDir) + +def igElevation(inputIgDir, outputIgDir): + printLog(log, ">>> IG Elevation <<<") + + mkPath(log, inputIgDir) + mkPath(log, outputIgDir) + mkPath(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory) + + configFile = configDir + "/ig_elevation.cfg" + if os.path.isfile(configFile): + os.remove(configFile) + + printLog(log, "CONFIG " + configFile) + cf = open(configFile, "w") + cf.write("// ig_elevation.cfg\n") + cf.write("\n") + cf.write("InputIGDir = \"" + inputIgDir + "\";\n") + cf.write("OutputIGDir = \"" + outputIgDir + "\";\n") + cf.write("\n") + cf.write("CellSize = 160.0;") + cf.write("\n") + cf.write("HeightMapFile1 = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap1 + "\";\n") + cf.write("ZFactor1 = " + LigoExportZFactor1 + ";\n") + cf.write("HeightMapFile2 = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap2 + "\";\n") + cf.write("ZFactor2 = " + LigoExportZFactor2 + ";\n") + cf.write("\n") + cf.write("LandFile = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportLand + "\";\n") + cf.write("\n") + cf.close() + subprocess.call([ IgElevation, configFile ]) + os.remove(configFile) + +# Build process +if (ContinentLeveldesignWorldDirectory != "") or (len(IgOtherSourceDirectories) > 0): + printLog(log, ">>> Prim IG: ON <<<") + configFile = configDir + "/prim_export.cfg" + if os.path.isfile(configFile): + os.remove(configFile) + + outIgDir = ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory + mkPath(log, outIgDir) + zoneWDir = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + mkPath(log, zoneWDir) + smallBank = DatabaseDirectory + "/" + TileRootSourceDirectory + "/" + BankTileBankName + ".bank" + farBank = ExportBuildDirectory + "/" + FarbankBuildDirectory + "/" + BankTileBankName + MultipleTilesPostfix[0] + ".farbank" + displaceDir = DatabaseDirectory + "/" + DisplaceSourceDirectory + continentDir = LeveldesignWorldDirectory + "/" + ContinentLeveldesignWorldDirectory + mkPath(log, continentDir) + formDir = LeveldesignDirectory + mkPath(log, LeveldesignDirectory) + + printLog(log, "CONFIG " + configFile) + cf = open(configFile, "w") + cf.write("// prim_export.cfg\n") + cf.write("\n") + cf.write("OutIGDir = \"" + outIgDir + "\";\n") + cf.write("ZoneWDir = \"" + zoneWDir + "\";\n") + cf.write("\n") + cf.write("SmallBank = \"" + smallBank + "\";\n") + cf.write("FarBank = \"" + farBank + "\";\n") + cf.write("DisplaceDir = \"" + displaceDir + "\";\n") + cf.write("\n") + cf.write("CellSize = 160.0;") + cf.write("\n") + cf.write("PrimDirs = {\n") + cf.write("\t\"" + continentDir + "\", \n") + for dir in IgPrimitiveSourceDirectories: + mkPath(log, DatabaseDirectory + "/" + dir) + cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n") + cf.write("};\n") + cf.write("\n") + cf.write("FormDir = \"" + formDir + "\";\n") + cf.write("\n") + cf.close() + subprocess.call([ PrimExport, configFile ]) + os.remove(configFile) + + igElevation(ExportBuildDirectory + "/" + LigoIgLandBuildDirectory, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory) + + igElevation(ExportBuildDirectory + "/" + IgStaticLandExportDirectory, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory) + + +printLog(log, ">>> Merge land IGs <<<") +mkPath(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory) +removeFilesRecursive(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory) + +mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory) + +mkPath(log, ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory) +igFilesPrim = findFiles(log, ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory, "", ".ig") +igFilesLigo = findFiles(log, ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory, "", ".ig") +igFilesStatic = findFiles(log, ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory, "", ".ig") +igFilesAll = [ ] +for igFile in igFilesPrim: + if not igFile in igFilesAll: + igFilesAll += [ igFile ] +for igFile in igFilesLigo: + if not igFile in igFilesAll: + igFilesAll += [ igFile ] +for igFile in igFilesStatic: + if not igFile in igFilesAll: + igFilesAll += [ igFile ] +igFilesAll.sort() +for igFile in igFilesAll: + primIgFile = ExportBuildDirectory + "/" + IgElevLandPrimBuildDirectory + "/" + igFile + ligoIgFile = ExportBuildDirectory + "/" + IgElevLandLigoBuildDirectory + "/" + igFile + staticIgFile = ExportBuildDirectory + "/" + IgElevLandStaticBuildDirectory + "/" + igFile + tempIgFile = ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory + "/" + igFile + outIgFile = ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + igFile + activeFile = "" + needsUpdate = 0 + sourceTools = "" + if igFile in igFilesPrim: + if needUpdate(log, primIgFile, outIgFile): + needsUpdate = 1 + if not needsUpdate == 1 and igFile in igFilesLigo: + if needUpdate(log, ligoIgFile, outIgFile): + needsUpdate = 1 + if not needsUpdate == 1 and igFile in igFilesStatic: + if needUpdate(log, staticIgFile, outIgFile): + needsUpdate = 1 + if needsUpdate == 1: + if os.path.isfile(outIgFile): + os.remove(outIgFile) + if igFile in igFilesPrim: + sourceTools += " [Prim]" + activeFile = primIgFile + if igFile in igFilesLigo: + if activeFile == "": + activeFile = ligoIgFile + else: + sourceTools += " [Ligo]" + subprocess.call([ IgAdd, tempIgFile, ligoIgFile, activeFile ]) + activeFile = tempIgFile + if igFile in igFilesStatic: + if activeFile == "": + activeFile = staticIgFile + else: + sourceTools += " [Static]" + subprocess.call([ IgAdd, outIgFile, staticIgFile, activeFile ]) + activeFile = outIgFile + else: + shutil.copy(activeFile, outIgFile) + printLog(log, "MERGE " + igFile + sourceTools) + else: + printLog(log, "SKIP " + igFile) + +# Remove temporary land IGs +printLog(log, ">>> Remove temporary land IGs <<<") +mkPath(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory) +removeFilesRecursive(log, ExportBuildDirectory + "/" + IgTempLandMergeBuildDirectory) + +# Remove outdated land IGs +printLog(log, ">>> Remove outdated land IGs <<<") +igFilesOut = findFiles(log, ExportBuildDirectory + "/" + IgLandBuildDirectory, "", ".ig") +for igFile in igFilesOut: + if not igFile in igFilesAll: + printLog(log, "RM " + ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + igFile) + os.remove(ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + igFile) + +# Verify land IGs +printLog(log, ">>> Verify land IGs <<<") +for igFile in igFilesAll: + if not igFile in igFilesOut: + printLog(log, "MISSING " + igFile) + +# Write land IGs TXT +printLog(log, ">>> Write land IGs TXT <<<") +igTxtFile = ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + LandscapeName + "_ig.txt" +printLog(log, "WRITE " + ExportBuildDirectory + "/" + IgLandBuildDirectory + "/" + LandscapeName + "_ig.txt") +if os.path.isfile(igTxtFile): + os.remove(igTxtFile) +igTxt = open(igTxtFile, "w") +for igFile in igFilesAll: + igTxt.write(igFile + "\n") +igTxt.close() + +# Merge other IGs +printLog(log, ">>> Merge other IGs <<<") # (not true merge, since not necesserary) +mkPath(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory) +mkPath(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory) +copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + IgStaticOtherExportDirectory, ExportBuildDirectory + "/" + IgOtherBuildDirectory, ".ig") +copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory, ExportBuildDirectory + "/" + IgOtherBuildDirectory, ".ig") + +log.close() + + +# end of file diff --git a/code/nel/tools/build_gamedata/processes/ig/3_install.py b/code/nel/tools/build_gamedata/processes/ig/3_install.py new file mode 100644 index 000000000..219344789 --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/ig/3_install.py @@ -0,0 +1,60 @@ +#!/usr/bin/python +# +# \file 3_install.py +# \brief Install ig +# \date 2010-05-24 13:42GMT +# \author Jan Boon (Kaetemi) +# Python port of game data build pipeline. +# Install ig +# +# NeL - MMORPG Framework +# Copyright (C) 2010 Winch Gate Property Limited +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +import time, sys, os, shutil, subprocess, distutils.dir_util +sys.path.append("../../configuration") + +if os.path.isfile("log.log"): + os.remove("log.log") +log = open("log.log", "w") +from scripts import * +from buildsite import * +from process import * +from tools import * +from directories import * + +printLog(log, "") +printLog(log, "-------") +printLog(log, "--- Install ig") +printLog(log, "-------") +printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) +printLog(log, "") + +clientPathIg = ClientDataDirectory + "/" + IgClientDirectory +mkPath(log, clientPathIg) + +printLog(log, ">>> Install ig <<<") +landBuildDir = ExportBuildDirectory + "/" + IgLandBuildDirectory +mkPath(log, landBuildDir) +copyFilesExtNoTreeIfNeeded(log, landBuildDir, clientPathIg, "_ig.txt") # Copy the *_ig.txt file +# Do not copy *.ig in ig_land, because zone process will copy zone ig lighted versions into client directory. +# Do not copy *.ig ig_other, because ig_light process will copy ig lighted versions into client directory. + +printLog(log, "") +log.close() + + +# end of file diff --git a/code/nel/tools/build_gamedata/processes/ig/maxscript/ig_export.ms b/code/nel/tools/build_gamedata/processes/ig/maxscript/ig_export.ms new file mode 100644 index 000000000..de1853994 --- /dev/null +++ b/code/nel/tools/build_gamedata/processes/ig/maxscript/ig_export.ms @@ -0,0 +1,304 @@ +-- Some globals + +NEL3D_APPDATA_ACCEL = 1423062561 -- type of accelerator : "32" = is not an accelerator and IS clusterized + -- "0" = is not an accelerator and IS NOT clusterized (always visible) + -- "1" = is an accelerator type PORTAL + -- "2" = is an accelerator type CLUSTER + -- "6" = is an accelerator type CLUSTER FATHER-VISIBLE + -- "10" = is an accelerator type CLUSTER VISIBLE-FROM-FATHER + -- "14" = is an accelerator type CLUSTER FATHER-VISIBLE and VISIBLE-FROM-FATHER + -- "17" = is an accelerator type PORTAL DYNAMIC + +NEL3D_APPDATA_DONOTEXPORT = 1423062565 -- do not export me : "undefined" = export me + -- "0" = export me + -- "1" = DONT export me + +NEL3D_APPDATA_IGNAME = 1423062564 -- string : name of the Instance Group + +NEL3D_APPDATA_LOD_NAME_COUNT_MAX = 10 +NEL3D_APPDATA_LOD = 1423062537 +NEL3D_APPDATA_LOD_NAME_COUNT = NEL3D_APPDATA_LOD +NEL3D_APPDATA_LOD_NAME = NEL3D_APPDATA_LOD_NAME_COUNT+1 +NEL3D_APPDATA_LOD_BLEND_IN = NEL3D_APPDATA_LOD_NAME+NEL3D_APPDATA_LOD_NAME_COUNT_MAX +NEL3D_APPDATA_LOD_BLEND_OUT = NEL3D_APPDATA_LOD_BLEND_IN+1 +NEL3D_APPDATA_LOD_COARSE_MESH = NEL3D_APPDATA_LOD_BLEND_OUT+1 + +NEL_OBJECT_NAME_DATA = 1970 + +-- Allocate 20 Me for the script +heapSize += 15000000 + +nlErrorFilename = "output_logfile" +nlErrorStream = openFile nlErrorFilename mode:"a" +if nlErrorStream == undefined then + nlErrorStream = createFile nlErrorFilename + +-- Unhide category +fn unhidecategory = +( + if (geometry.count > 0) then + ( + unhide geometry[1] + if (geometry[1].ishidden == true) then + max hide object toggle + ) + if (shapes.count > 0) then + ( + unhide shapes[1] + if (shapes[1].ishidden == true) then + max hide shape toggle + ) + if (lights.count > 0) then + ( + unhide lights[1] + if (lights[1].ishidden == true) then + max hide light toggle + ) + if (cameras.count > 0) then + ( + unhide cameras[1] + if (cameras[1].ishidden == true) then + max hide camera toggle + ) + if (helpers.count > 0) then + ( + unhide helpers[1] + if (helpers[1].ishidden == true) then + max hide helper toggle + ) +) + +-- Log a message +fn nlerror message = +( + if nlErrorStream != undefined then + ( + format "%\n" message to:nlErrorStream + flush nlErrorStream + ) + + -- To the console + print message +) + +-- This node is n accelerator ? +fn isAccelerator node = +( + accel = getappdata node NEL3D_APPDATA_ACCEL + if (accel != undefined) then + ( + if (accel == "0") or (accel == "32") then + return false + else + return true + ) + return false +) + +-- Get the ig name of this object +fn getIg node = +( + return (getappdata node NEL3D_APPDATA_IGNAME) +) + +try +( + -- Get files in the ig_source_directory + files = getFiles "ig_source_directory/*.max" + + -- Sort files + sort files + + -- No file ? + if files.count != 0 then + ( + -- For each files + for i = 1 to files.count do + ( + try + ( + -- Free memory and file handles + gc () + + -- Reset 3dsmax + resetMAXFile #noprompt + + -- Get the tag file name + tag = ("output_directory_tag/"+(getFilenameFile files[i])+(getFilenameType files[i])+".tag") + + -- Compare date with the tag file + if (NeLTestFileDate tag files[i]) == true then + ( + -- Open the max project + nlerror ("Scanning file "+files[i]+" ...") + if (mergeMaxFile files[i] quiet:true) == true then + ( + -- Unhide category + unhidecategory() + + tagThisFile = true + + -- Unhide + max unhide all + + -- unselect + max select none + + -- Exported object count + exported = 0 + + -- Ig array + ig_array = #() + + -- Scan all the ig in this project + for node in objects do + ( + ig = getIg node + if ( (ig != undefined) and (ig != "") ) then + ( + -- Found ? + found = false + + -- Already found ? + for j = 1 to ig_array.count do + ( + if (ig_array[j]==ig) then + ( + found = true + exit + ) + ) + + -- Found ? + if (found == false) then + ( + append ig_array ig + ) + ) + ) + + -- Have some ig ? + if (ig_array.count != 0) then + ( + -- For each ig + for ig = 1 to ig_array.count do + ( + -- Output filename + output = ("output_directory_ig/"+ig_array[ig]+".ig") + + -- Check date + if (NeLTestFileDate output files[i]) == true then + ( + -- Select none + max select none + + -- Select all node in this ig + for node in geometry do + ( + -- Select it if in the ig + if ( (getIg node) == ig_array[ig]) then + selectmore node + ) + -- Select all lights in this ig + for node in lights do + ( + -- Select it if in the ig + if ( (getIg node) == ig_array[ig]) then + selectmore node + ) + -- Select all lights in this ig + for node in helpers do + ( + -- Select it if in the ig + if ( (getIg node) == ig_array[ig]) then + selectmore node + ) + + -- Check export + try + ( + -- Export the ig + instancegroup2export = $selection as array + if (NelExportInstanceGroup instancegroup2export output) == true then + ( + nlerror ("OK "+output) + ) + else + ( + -- Error + nlerror ("ERROR exporting ig "+ig_array[ig]+" in file "+files[i]) + tagThisFile = false + ) + ) + catch + ( + -- Error + nlerror ("ERROR fatal error exporting ig "+ig_array[ig]+" in file "+files[i]) + tagThisFile = false + ) + ) + else + ( + nlerror ("SKIPPED "+output) + ) + ) + ) + else + ( + -- Error + nlerror ("WARNING nothing exported from ig max file "+files[i]) + ) + + -- Write a tag file + if tagThisFile == true then + ( + tagFile = createFile tag + if tagFile == undefined then + ( + nlerror ("WARNING can't create tag file "+tag) + ) + else + ( + print "toto" to: tagFile + close tagFile + ) + ) + + resetMAXFile #noprompt + ) + else + ( + -- Error + nlerror ("ERROR exporting ig: can't open the file "+files[i]) + ) + ) + else + ( + -- Error + nlerror ("SKIPPED BY TAG "+files[i]) + ) + ) + catch + ( + -- Error + nlerror ("ERROR error exporting ig in files " + files[i]) + ) + ) + ) + else + ( + nlerror ("WARNING no max file in folder ig_source_directory") + ) +) +catch +( + -- Error + nlerror ("ERROR fatal error exporting ig in folder ig_source_directory") +) + +-- Bye + +resetMAXFile #noprompt +quitMAX #noPrompt +quitMAX () #noPrompt + diff --git a/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py b/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py index 5269231a8..78c5df79f 100644 --- a/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py +++ b/code/nel/tools/build_gamedata/processes/ig_light/0_setup.py @@ -45,17 +45,14 @@ printLog(log, "") # Setup source directories printLog(log, ">>> Setup source directories <<<") -#for dir in ig_lightSourceDirectories: -# mkPath(log, DatabaseDirectory + "/" + dir) # Setup export directories printLog(log, ">>> Setup export directories <<<") -#mkPath(log, ExportBuildDirectory + "/" + ig_lightExportDirectory) # Setup build directories printLog(log, ">>> Setup build directories <<<") -mkPath(log, ExportBuildDirectory + "/" + IgVillageBuildDirectory) -mkPath(log, ExportBuildDirectory + "/" + IgLightVillageBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory) # Setup client directories printLog(log, ">>> Setup client directories <<<") diff --git a/code/nel/tools/build_gamedata/processes/ig_light/2_build.py b/code/nel/tools/build_gamedata/processes/ig_light/2_build.py index 107461eae..90b962012 100644 --- a/code/nel/tools/build_gamedata/processes/ig_light/2_build.py +++ b/code/nel/tools/build_gamedata/processes/ig_light/2_build.py @@ -52,11 +52,11 @@ printLog(log, ">>> Build ig_light <<<") if IgLighter == "": toolLogFail(log, IgLighterTool, ToolSuffix) else: - srcDir = ExportBuildDirectory + "/" + IgVillageBuildDirectory + srcDir = ExportBuildDirectory + "/" + IgOtherBuildDirectory mkPath(log, srcDir) - destDir = ExportBuildDirectory + "/" + IgLightVillageBuildDirectory + destDir = ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory mkPath(log, destDir) - subprocess.call([ IgLighter, srcDir, destDir, ScriptDirectory + "/configuration/zone_lighter_properties.cfg" ]) + subprocess.call([ IgLighter, srcDir, destDir, ActiveProjectDirectory + "/generated/zone_lighter.cfg" ]) printLog(log, "") log.close() diff --git a/code/nel/tools/build_gamedata/processes/ig_light/3_install.py b/code/nel/tools/build_gamedata/processes/ig_light/3_install.py index 4ddf832f5..37aba90a7 100644 --- a/code/nel/tools/build_gamedata/processes/ig_light/3_install.py +++ b/code/nel/tools/build_gamedata/processes/ig_light/3_install.py @@ -44,7 +44,7 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time()))) printLog(log, "") printLog(log, ">>> Install ig_light <<<") -srcDir = ExportBuildDirectory + "/" + IgLightVillageBuildDirectory +srcDir = ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory mkPath(log, srcDir) destDir = ClientDataDirectory + "/" + IgClientDirectory mkPath(log, destDir) diff --git a/code/nel/tools/build_gamedata/processes/ligo/0_setup.py b/code/nel/tools/build_gamedata/processes/ligo/0_setup.py index 10951702b..344f88422 100644 --- a/code/nel/tools/build_gamedata/processes/ligo/0_setup.py +++ b/code/nel/tools/build_gamedata/processes/ligo/0_setup.py @@ -45,6 +45,7 @@ printLog(log, "") # Setup source directories printLog(log, ">>> Setup source directories <<<") +mkPath(log, DatabaseDirectory + "/" + LigoBaseSourceDirectory) mkPath(log, DatabaseDirectory + "/" + LigoMaxSourceDirectory) mkPath(log, DatabaseDirectory + "/" + ZoneSourceDirectory) diff --git a/code/nel/tools/build_gamedata/processes/rbank/0_setup.py b/code/nel/tools/build_gamedata/processes/rbank/0_setup.py index a5860cbad..e2accccf3 100644 --- a/code/nel/tools/build_gamedata/processes/rbank/0_setup.py +++ b/code/nel/tools/build_gamedata/processes/rbank/0_setup.py @@ -60,7 +60,7 @@ for dir in RbankShapePaths: mkPath(log, ExportBuildDirectory + "/" + dir) mkPath(log, ExportBuildDirectory + "/" + RbankBboxBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory) -mkPath(log, ExportBuildDirectory + "/" + IgVillageBuildDirectory) +mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + RbankTessellationBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + RbankRawBuildDirectory) diff --git a/code/nel/tools/build_gamedata/processes/rbank/2_build.py b/code/nel/tools/build_gamedata/processes/rbank/2_build.py index 02afbf142..5e4a69df4 100644 --- a/code/nel/tools/build_gamedata/processes/rbank/2_build.py +++ b/code/nel/tools/build_gamedata/processes/rbank/2_build.py @@ -102,8 +102,8 @@ mkPath(log, LeveldesignWorldDirectory) cf.write("LevelDesignWorldPath = \"" + LeveldesignWorldDirectory + "\";\n") mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory) cf.write("IgLandPath = \"" + ExportBuildDirectory + "/" + IgLandBuildDirectory + "\";\n") -mkPath(log, ExportBuildDirectory + "/" + IgVillageBuildDirectory) -cf.write("IgVillagePath = \"" + ExportBuildDirectory + "/" + IgVillageBuildDirectory + "\";\n") +mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory) +cf.write("IgVillagePath = \"" + ExportBuildDirectory + "/" + IgOtherBuildDirectory + "\";\n") cf.write("\n") mkPath(log, ExportBuildDirectory + "/" + RbankTessellationBuildDirectory) cf.write("TessellationPath = \"" + ExportBuildDirectory + "/" + RbankTessellationBuildDirectory + "/\";\n") diff --git a/code/nel/tools/build_gamedata/processes/zone/0_setup.py b/code/nel/tools/build_gamedata/processes/zone/0_setup.py index 6a51da333..8f1acdab9 100644 --- a/code/nel/tools/build_gamedata/processes/zone/0_setup.py +++ b/code/nel/tools/build_gamedata/processes/zone/0_setup.py @@ -53,6 +53,7 @@ mkPath(log, ExportBuildDirectory + "/" + ZoneExportDirectory) # Setup build directories printLog(log, ">>> Setup build directories <<<") +mkPath(log, ExportBuildDirectory + "/" + ZoneDependBuildDirectory) mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory) # Setup client directories diff --git a/code/nel/tools/build_gamedata/processes/zone/2_build.py b/code/nel/tools/build_gamedata/processes/zone/2_build.py index 6ce75fc58..cdbecfe12 100644 --- a/code/nel/tools/build_gamedata/processes/zone/2_build.py +++ b/code/nel/tools/build_gamedata/processes/zone/2_build.py @@ -50,17 +50,33 @@ ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix) printLog(log, "") # We are in BEST mode -# TODO if (high quality) blahblahblah -printLog(log, ">>> Build zone dependencies <<<") -if ZoneDependencies == "": - toolLogFail(log, ZoneDependenciesTool, ToolSuffix) -elif ExecTimeout == "": - toolLogFail(log, ExecTimeoutTool, ToolSuffix) -else: - printLog(log, "********************************") - printLog(log, "******** TODO ********") - printLog(log, "********************************") -printLog(log, "") +if BuildQuality == 1: + printLog(log, ">>> Build zone dependencies <<<") + if ZoneDependencies == "": + toolLogFail(log, ZoneDependenciesTool, ToolSuffix) + elif ExecTimeout == "": + toolLogFail(log, ExecTimeoutTool, ToolSuffix) + else: + mkPath(log, ExportBuildDirectory + "/" + ZoneExportDirectory) + mkPath(log, ExportBuildDirectory + "/" + ZoneDependBuildDirectory) + mkPath(log, ActiveProjectDirectory + "/generated") + configFile = ActiveProjectDirectory + "/generated/zone_dependencies.cfg" + templateCf = open(ActiveProjectDirectory + "/generated/zone_lighter.cfg", "r") + cf = open(configFile, "w") + for line in templateCf: + cf.write(line) + cf.write("\n"); + cf.write("level_design_directory = \"" + LeveldesignDirectory + "\";\n"); + cf.write("level_design_world_directory = \"" + LeveldesignWorldDirectory + "\";\n"); + cf.write("level_design_dfn_directory = \"" + LeveldesignDfnDirectory + "\";\n"); + cf.write("continent_name = \"" + ContinentName + "\";\n"); + cf.write("\n"); + cf.close() + + for zoneRegion in ZoneRegions: + subprocess.call([ ExecTimeout, str(ZoneBuildDependTimeout), ZoneDependencies, configFile, ExportBuildDirectory + "/" + ZoneExportDirectory + "/" + zoneRegion[0] + ".zone", ExportBuildDirectory + "/" + ZoneExportDirectory + "/" + zoneRegion[1] + ".zone", ExportBuildDirectory + "/" + ZoneDependBuildDirectory + "/doomy.depend" ]) + + printLog(log, "") # For each zone directory printLog(log, ">>> Build zone weld <<<") diff --git a/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py b/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py index 9e61a541d..e4792e9e6 100644 --- a/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py +++ b/code/nel/tools/build_gamedata/processes/zone_light/0_setup.py @@ -54,7 +54,7 @@ for line in ps: newline = newline.replace("%EcosystemPath%", EcosystemPath) newline = newline.replace("%BankTileBankName%", BankTileBankName) newline = newline.replace("%IgLandBuildDirectory%", IgLandBuildDirectory) - newline = newline.replace("%IgVillageBuildDirectory%", IgVillageBuildDirectory) + newline = newline.replace("%IgOtherBuildDirectory%", IgOtherBuildDirectory) newline = newline.replace("%RbankOutputBuildDirectory%", RbankOutputBuildDirectory) newline = newline.replace("%RbankRbankName%", RbankRbankName) newline = newline.replace("%BuildQuality%", str(BuildQuality)) diff --git a/code/nel/tools/build_gamedata/processes/zone_light/1_export.py b/code/nel/tools/build_gamedata/processes/zone_light/1_export.py index 5b186e46f..4d0b568e3 100644 --- a/code/nel/tools/build_gamedata/processes/zone_light/1_export.py +++ b/code/nel/tools/build_gamedata/processes/zone_light/1_export.py @@ -47,7 +47,7 @@ printLog(log, "") #TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix) printLog(log, "") -# For each zone_light directory +# Export zone_light water maps printLog(log, ">>> Export zone_light water maps <<<") srcDir = ExportBuildDirectory + "/" + ZoneLightWaterShapesLightedExportDirectory mkPath(log, srcDir) @@ -55,47 +55,8 @@ for dir in WaterMapSourceDirectories: destDir = DatabaseDirectory + "/" + dir mkPath(log, destDir) copyFilesExtNoTreeIfNeeded(log, srcDir, destDir, ".tga") -#mkPath(log, ExportBuildDirectory + "/" + zone_lightExportDirectory) -#for dir in zone_lightSourceDirectories: -# mkPath(log, DatabaseDirectory + "/" + dir) -# niouname = dir.replace("/", "_") -# newpath = ExportBuildDirectory + "/" + zone_lightExportDirectory + "/" + niouname -# mkPath(log, newpath) -# copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga") printLog(log, "") -# For each zone_light directory to compress in one DXTC -#printLog(log, ">>> Export zone_light dxtc <<<") -#mkPath(log, ExportBuildDirectory + "/" + zone_lightDxtcExportDirectory) -#for dir in zone_lightDxtcSourceDirectories: -# mkPath(log, DatabaseDirectory + "/" + dir) -# copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + zone_lightDxtcExportDirectory, ".tga") -#printLog(log, "") - -# For each zone_light fullscreen directory compress independently all in dds -#printLog(log, ">>> Export zone_light fullscreen <<<") -#if TgaToDds == "": -# toolLogFail(log, TgaToDdsTool, ToolSuffix) -#else: -# mkPath(log, ExportBuildDirectory + "/" + zone_lightFullscreenExportDirectory) -# for dir in zone_lightFullscreenSourceDirectories: -# mkPath(log, DatabaseDirectory + "/" + dir) -# files = findFiles(log, DatabaseDirectory + "/" + dir, "", ".tga") -# for file in files: -# sourceFile = DatabaseDirectory + "/" + dir + "/" + file -# destFile = ExportBuildDirectory + "/" + zone_lightFullscreenExportDirectory + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds" -# if needUpdateLogRemoveDest(log, sourceFile, destFile): -# subprocess.call([ TgaToDds, sourceFile, "-o", destFile, "-a", "5" ]) -#printLog(log, "") - -# For each zone_light 3d directory -#printLog(log, ">>> Export zone_light 3d <<<") -#mkPath(log, ExportBuildDirectory + "/" + zone_light3DExportDirectory) -#for dir in zone_light3DSourceDirectories: -# mkPath(log, DatabaseDirectory + "/" + dir) -# copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + zone_light3DExportDirectory, ".tga") -#printLog(log, "") - log.close() diff --git a/code/nel/tools/build_gamedata/processes/zone_light/2_build.py b/code/nel/tools/build_gamedata/processes/zone_light/2_build.py index 1aeecceda..dc6cccdfa 100644 --- a/code/nel/tools/build_gamedata/processes/zone_light/2_build.py +++ b/code/nel/tools/build_gamedata/processes/zone_light/2_build.py @@ -88,11 +88,11 @@ else: mkPath(log, dependDir) files = findFiles(log, srcDir, "", ".zonel") for file in files: - igsrcFile = igsrcDir + os.path.basename(file)[0:-len(".zonel")] + ".ig" + igsrcFile = igsrcDir + "/" + os.path.basename(file)[0:-len(".zonel")] + ".ig" destFile = destDir + "/" + os.path.basename(file)[0:-len(".zonel")] + ".ig" if (os.path.isfile(igsrcFile)): if (needUpdateLogRemoveDest(log, igsrcFile, destFile)): - srcFile = srcDir + "/" + file # ************************* TODO CHECK IF THIS REALLY WORKS ************************************* + srcFile = srcDir + "/" + file dependFile = destDir + "/" + file[0:-len(".zonel")] + ".depend" subprocess.call([ ExecTimeout, str(ZoneIgLightBuildTimeout), ZoneIgLighter, srcFile, destFile, ActiveProjectDirectory + "/generated/zone_lighter.cfg", dependFile ]) printLog(log, "") diff --git a/code/nel/tools/build_gamedata/processes/zone_light/3_install.py b/code/nel/tools/build_gamedata/processes/zone_light/3_install.py index 158c35e47..0edfe83dc 100644 --- a/code/nel/tools/build_gamedata/processes/zone_light/3_install.py +++ b/code/nel/tools/build_gamedata/processes/zone_light/3_install.py @@ -58,7 +58,7 @@ mkPath(log, destDir) copyFilesNoTreeIfNeeded(log, srcDir, destDir) printLog(log, ">>> Install zone_light igs <<<") -srcDir = ExportBuildDirectory + "/" + IgLandBuildDirectory +srcDir = ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory mkPath(log, srcDir) destDir = ClientDataDirectory + "/" + IgClientDirectory mkPath(log, destDir) diff --git a/code/ryzom/tools/all.sln b/code/ryzom/tools/all.sln index 325bfb0b6..18527d199 100644 --- a/code/ryzom/tools/all.sln +++ b/code/ryzom/tools/all.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 +# Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "3d", "..\..\nel\src\3d.vcproj", "{2B48BE83-108B-4E8E-8A55-6627CF09AC5A}" ProjectSection(ProjectDependencies) = postProject {44B21233-EFCC-4825-B5E5-3A3BD6CC5516} = {44B21233-EFCC-4825-B5E5-3A3BD6CC5516} @@ -211,12 +211,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "named_items_2_csv", "leveld EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "master", "leveldesign\master\master.vcproj", "{D53B297E-01B6-4E9A-9753-BBF18A6EB332}" + ProjectSection(ProjectDependencies) = postProject + {44B21233-EFCC-4825-B5E5-3A3BD6CC5516} = {44B21233-EFCC-4825-B5E5-3A3BD6CC5516} + {577230FF-399C-4C9D-9495-CEC106326441} = {577230FF-399C-4C9D-9495-CEC106326441} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "georges_plugin_test", "leveldesign\georges_plugin_test\georges_plugin_test.vcproj", "{36DE80C1-0519-4177-847C-17A8D846D365}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "georges_convert", "leveldesign\georges_convert\georges_convert.vcproj", "{3539CE53-2596-4BC4-A177-045BBAFF4A82}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "export", "leveldesign\export\export.vcproj", "{577230FF-399C-4C9D-9495-CEC106326441}" + ProjectSection(ProjectDependencies) = postProject + {44B21233-EFCC-4825-B5E5-3A3BD6CC5516} = {44B21233-EFCC-4825-B5E5-3A3BD6CC5516} + {9D284C6B-BE12-4549-87E5-2337D64F31BE} = {9D284C6B-BE12-4549-87E5-2337D64F31BE} + {2B48BE83-108B-4E8E-8A55-6627CF09AC5A} = {2B48BE83-108B-4E8E-8A55-6627CF09AC5A} + {1DDC11C7-AF79-40F3-A6D4-F84BA8644B5C} = {1DDC11C7-AF79-40F3-A6D4-F84BA8644B5C} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "patch_gen", "patch_gen\patch_gen.vcproj", "{E6D3EADB-D6E4-42FC-87A3-4A98A6AAA67A}" ProjectSection(ProjectDependencies) = postProject diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/directories.py b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/directories.py index d38db7e46..11633a34a 100644 --- a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/directories.py +++ b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/directories.py @@ -26,15 +26,19 @@ # along with this program. If not, see . # -# *** SOURCE DIRECTORIES IN THE DATABASE *** - # *** ECOSYSTEM AND CONTINENT NAMES *** + EcosystemName = "jungle" EcosystemPath = "ecosystems/" + EcosystemName ContinentName = "newbieland" ContinentPath = "continents/" + ContinentName +# *** SOURCE DIRECTORIES LEVELDESIGN/WORLD *** +ContinentLeveldesignWorldDirectory = ContinentName + + +# *** SOURCE DIRECTORIES IN THE DATABASE *** # Ligo directories LigoBaseSourceDirectory = "landscape/ligo/" + EcosystemName @@ -43,6 +47,20 @@ LigoMaxSourceDirectory = LigoBaseSourceDirectory + "/max" # Zone directories ZoneSourceDirectory = "landscape/zones/" + EcosystemName +# Ig directories +IgLandSourceDirectories = [ ] +# IgLandSourceDirectories += [ "landscape/zones/" + ContinentName ] # For old snowballs style landscape when not using ligo +IgOtherSourceDirectories = [ ] +IgOtherSourceDirectories += [ "stuff/" + ContinentName + "/sky" ] # The canopee in the sky +IgPrimitiveSourceDirectories = [ ] +IgPrimitiveSourceDirectories += [ "primitive/" + ContinentName ] # Contains plants (trees, etc) primitive made with world editor + +# Tiles root directory +TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + +# Displace directory +DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace" + # *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE *** @@ -64,16 +82,22 @@ SmallbankExportDirectory = EcosystemPath + "/smallbank" # Tiles directories DisplaceExportDirectory = EcosystemPath + "/diplace" +# Ig directories +IgStaticLandExportDirectory = ContinentPath + "/ig_static_land" # Landscape IG eported from 3dsmax not elevated by the heightmap +IgStaticOtherExportDirectory = ContinentPath + "/ig_static_other" # Village or construction IGs exported from 3dsmax +IgStaticTagExportDirectory = ContinentPath + "/ig_static_tag" # Tag for exported 3dsmax files + # *** BUILD DIRECTORIES FOR THE BUILD PIPELINE *** # Ligo directories LigoZoneBuildDirectory = ContinentPath + "/ligo_zones" -LigoIgLandBuildDirectory = ContinentPath + "/ligo_ig_land" -LigoIgOtherBuildDirectory = ContinentPath + "/ligo_ig_other" +LigoIgLandBuildDirectory = ContinentPath + "/ligo_ig_land" # Landscape IG found in ligo bricks not elevated by the heightmap +LigoIgOtherBuildDirectory = ContinentPath + "/ligo_ig_other" # Village or construction IGs exported from ligo landscape # Zone directories ZoneWeldBuildDirectory = ContinentPath + "/zone_weld" +ZoneDependBuildDirectory = ContinentPath + "/zone_depend" ZoneLightWaterShapesLightedExportDirectory = ContinentPath + "/zone_lwsl_temp" #fixme ZoneLightBuildDirectory = ContinentPath + "/zone_lighted" #fixme ZoneLightDependBuildDirectory = ContinentPath + "/zone_lighted_depend" #fixme @@ -82,9 +106,15 @@ ZoneLightIgLandBuildDirectory = ContinentPath + "/zone_lighted_ig_land" #fixme # Farbank directories FarbankBuildDirectory = EcosystemPath + "/farbank" -# Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED *********** -IgLandBuildDirectory = "_invalid" -IgVillageBuildDirectory = "_invalid" +# Ig directories +IgElevLandPrimBuildDirectory = ContinentPath + "/ig_elev_land_prim" # landscape IG generated by the prim exporter (already elevated by the land exporter) +IgElevLandLigoBuildDirectory = ContinentPath + "/ig_elev_land_ligo" # Landscape IG found in ligo bricks from 3dsmax elevated by the heightmap +IgElevLandStaticBuildDirectory = ContinentPath + "/ig_elev_land_static" # Landscape IG eported from 3dsmax elevated by the heightmap +IgTempLandMergeBuildDirectory = ContinentPath + "/ig_temp_land_merge" +IgTempLandCompareBuildDirectory = ContinentPath + "/ig_temp_land_compare" # Tmp final IG directory for landscape IGs before comparison +IgLandBuildDirectory = ContinentPath + "/ig_land" # Final IG directory for landscape IGs +IgOtherBuildDirectory = ContinentPath + "/ig_other" # Final IG directory for village or construction IGs +IgOtherLightedBuildDirectory = ContinentPath + "/ig_other_lighted" # Rbank directories RbankBboxBuildDirectory = ContinentPath + "/rbank_bbox" diff --git a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/process.py b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/process.py index d8237176e..b543cba32 100644 --- a/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/process.py +++ b/code/ryzom/tools/build_gamedata/workspace/continents/newbieland/process.py @@ -30,12 +30,12 @@ # *** PROCESS CONFIG *** ProcessToComplete = [ ] ProcessToComplete += [ "ligo" ] # not fully implemented, works for this process (not yet), but does not export max files -ProcessToComplete += [ "zone" ] -#ProcessToComplete += [ "ig" ] # not implemented -ProcessToComplete += [ "zone_light" ] -ProcessToComplete += [ "rbank" ] -#ProcessToComplete += [ "ig_light" ] -#ProcessToComplete += [ "ps" ] +ProcessToComplete += [ "zone" ] # works, need to check completeness +ProcessToComplete += [ "ig" ] # fully implemented +ProcessToComplete += [ "zone_light" ] # works, need to check completeness +ProcessToComplete += [ "rbank" ] # works, need to check completeness +ProcessToComplete += [ "ig_light" ] # fully implemented +#ProcessToComplete += [ "ps" ] # not implemented # *** ECOSYSTEM AND CONTINENT NAMES *** @@ -52,6 +52,13 @@ ContinentFile = ContinentName + "/" + ContinentName + ".continent" # *** BANK EXPORT OPTIONS *** +# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM *** +MultipleTilesPostfix = [ ] +MultipleTilesPostfix += [ "_sp" ] +MultipleTilesPostfix += [ "_su" ] +MultipleTilesPostfix += [ "_au" ] +MultipleTilesPostfix += [ "_wi" ] + # Name of the tilebank to use BankTileBankName = EcosystemName @@ -67,7 +74,8 @@ LigoExportZFactor2 = "0.5" LigoTileBankFile = "landscape/_texture_tiles/" + EcosystemName + "/" + EcosystemName + ".bank" # *** ZONE REGIONS ( up-left, down-right ) *** -ZoneRegion = [ "65_bz", "77_cs" ] +ZoneRegions = [ ] +ZoneRegions += [ [ "65_bz" ] + [ "77_cs" ] ] # *** RBANK OPTIONS *** diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/directories.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/directories.py index 93dd9390d..f18db50b5 100644 --- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/directories.py +++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/directories.py @@ -108,9 +108,12 @@ TilesSourceDirectories += [ "landscape/_texture_tiles/" + EcosystemName + "_wi/T # Tiles root directory TileRootSourceDirectory = "landscape/_texture_tiles/" + EcosystemName -# Displace directoriy +# Displace directory +DisplaceSourceDirectory = "landscape/_texture_tiles/" + EcosystemName + "/displace" + +# Do not use, needs to be removed and fixed in processes DisplaceSourceDirectories = [ ] -DisplaceSourceDirectories += [ "landscape/_texture_tiles/" + EcosystemName + "/displace" ] +DisplaceSourceDirectories += [ DisplaceSourceDirectory ] # Bank directory BankSourceDirectory = "landscape/_texture_tiles/" + EcosystemName @@ -192,7 +195,7 @@ FarbankBuildDirectory = "ecosystems/" + EcosystemName + "/farbank" # Ig directories ************** TODO CONFIRM IN IG BUILD PROCESS ************ FIX RBANK IF NEEDED *********** IgLandBuildDirectory = "_invalid" -IgVillageBuildDirectory = "_invalid" +IgOtherBuildDirectory = "_invalid" # Rbank directories RbankOutputBuildDirectory = "_invalid" diff --git a/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/process.py b/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/process.py index b5e288d15..ddd54fadf 100644 --- a/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/process.py +++ b/code/ryzom/tools/build_gamedata/workspace/ecosystems/jungle/process.py @@ -37,7 +37,7 @@ ProcessToComplete += [ "displace" ] # OK ProcessToComplete += [ "veget" ] # OK ProcessToComplete += [ "vegetset" ] # OK ProcessToComplete += [ "ligo" ] # not fully implemented, works for this process, but does not export max files -#ProcessToComplete += [ "pacs_prim" ] +##ProcessToComplete += [ "pacs_prim" ] # *** MAP EXPORT OPTIONS *** PanoplyFileList = [ ] diff --git a/code/ryzom/tools/leveldesign/alias_synchronizer/alias_synchronizer.vcproj b/code/ryzom/tools/leveldesign/alias_synchronizer/alias_synchronizer.vcproj index 02c8bb892..7c62f2a07 100644 --- a/code/ryzom/tools/leveldesign/alias_synchronizer/alias_synchronizer.vcproj +++ b/code/ryzom/tools/leveldesign/alias_synchronizer/alias_synchronizer.vcproj @@ -4,6 +4,7 @@ Version="9,00" Name="alias_synchronizer" ProjectGUID="{3ECD7F32-6603-45D2-91AB-5FBC278F6DC8}" + RootNamespace="alias_synchronizer" TargetFrameworkVersion="0" > @@ -70,6 +71,7 @@ /> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + - - - - - - + - + diff --git a/code/ryzom/tools/leveldesign/world_editor/land_export/land_export.vcproj b/code/ryzom/tools/leveldesign/world_editor/land_export/land_export.vcproj index b9c583400..92404aa9e 100644 --- a/code/ryzom/tools/leveldesign/world_editor/land_export/land_export.vcproj +++ b/code/ryzom/tools/leveldesign/world_editor/land_export/land_export.vcproj @@ -1,7 +1,7 @@