Fixed: #929 Gamedata build pipeline works mostly. Install writes to seperate dir instead of directly to dev client data dir. Added scripts to build dev client linked to install dir, as well as client install with bnp and patches generation, and shard data install. No more generated buildsite on repo. Panoply build added to map process. Fixed an issue with rbank build. Implemented sheets and sheet id building processes. Fixed some lookup paths. Implemented wmap build process. Added gamedev and data_common to install output. Added projects for characters and maps, sheets, indoors, and projects for fyros, matis, zorai and tryker continents to export shape and texture data.
This commit is contained in:
parent
b9323c1321
commit
17250f4997
154 changed files with 5219 additions and 442 deletions
|
@ -31,9 +31,105 @@ if os.path.isfile("log.log"):
|
||||||
os.remove("log.log")
|
os.remove("log.log")
|
||||||
log = open("log.log", "w")
|
log = open("log.log", "w")
|
||||||
from scripts import *
|
from scripts import *
|
||||||
|
try:
|
||||||
from buildsite import *
|
from buildsite import *
|
||||||
|
except ImportError:
|
||||||
|
printLog(log, "*** FIRST RUN ***")
|
||||||
from tools import *
|
from tools import *
|
||||||
|
|
||||||
|
try:
|
||||||
|
BuildQuality
|
||||||
|
except NameError:
|
||||||
|
BuildQuality = 1
|
||||||
|
try:
|
||||||
|
ToolDirectories
|
||||||
|
except NameError:
|
||||||
|
ToolDirectories = [ 'R:/code/nel', 'R:/code/ryzom/tools' ]
|
||||||
|
try:
|
||||||
|
ToolSuffix
|
||||||
|
except NameError:
|
||||||
|
ToolSuffix = "_r.exe"
|
||||||
|
try:
|
||||||
|
ScriptDirectory
|
||||||
|
except NameError:
|
||||||
|
ScriptDirectory = "R:/code/nel/tools/build_gamedata"
|
||||||
|
try:
|
||||||
|
WorkspaceDirectory
|
||||||
|
except NameError:
|
||||||
|
WorkspaceDirectory = "R:/code/ryzom/tools/build_gamedata/workspace"
|
||||||
|
try:
|
||||||
|
DatabaseDirectory
|
||||||
|
except NameError:
|
||||||
|
DatabaseDirectory = "W:/database"
|
||||||
|
try:
|
||||||
|
ExportBuildDirectory
|
||||||
|
except NameError:
|
||||||
|
ExportBuildDirectory = "W:/export"
|
||||||
|
try:
|
||||||
|
InstallDirectory
|
||||||
|
except NameError:
|
||||||
|
InstallDirectory = "W:/install"
|
||||||
|
try:
|
||||||
|
DataShardDirectory
|
||||||
|
except NameError:
|
||||||
|
DataShardDirectory = "R:/code/ryzom/server/data_shard"
|
||||||
|
try:
|
||||||
|
ClientDevDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientDevDirectory = "W:/client_dev"
|
||||||
|
try:
|
||||||
|
ClientPatchDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientPatchDirectory = "W:/client_patch"
|
||||||
|
try:
|
||||||
|
ClientInstallDirectory
|
||||||
|
except NameError:
|
||||||
|
ClientInstallDirectory = "W:/client_install"
|
||||||
|
try:
|
||||||
|
LeveldesignDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignDirectory = "L:/leveldesign"
|
||||||
|
try:
|
||||||
|
LeveldesignDfnDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignDfnDirectory = "L:/leveldesign/dfn"
|
||||||
|
try:
|
||||||
|
LeveldesignWorldDirectory
|
||||||
|
except NameError:
|
||||||
|
LeveldesignWorldDirectory = "L:/leveldesign/world"
|
||||||
|
try:
|
||||||
|
PrimitivesDirectory
|
||||||
|
except NameError:
|
||||||
|
PrimitivesDirectory = "L:/primitives"
|
||||||
|
try:
|
||||||
|
GamedevDirectory
|
||||||
|
except NameError:
|
||||||
|
GamedevDirectory = "R:/code/ryzom/client/data/gamedev"
|
||||||
|
try:
|
||||||
|
DataCommonDirectory
|
||||||
|
except NameError:
|
||||||
|
DataCommonDirectory = "R:/code/ryzom/common/data_common"
|
||||||
|
try:
|
||||||
|
WindowsExeDllCfgDirectories
|
||||||
|
except NameError:
|
||||||
|
WindowsExeDllCfgDirectories = [ 'C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/redist/x86', 'D:/source/external_local/bin/x86', 'D:/source/external_shared/bin/x86', 'R:/code/nel/lib', 'R:/code/ryzom/bin', 'R:/code/ryzom/client', 'R:/code/ryzom/tools/client/client_config/bin' ]
|
||||||
|
try:
|
||||||
|
MaxAvailable
|
||||||
|
except NameError:
|
||||||
|
MaxAvailable = 1
|
||||||
|
try:
|
||||||
|
MaxDirectory
|
||||||
|
except NameError:
|
||||||
|
MaxDirectory = "C:/Program Files (x86)/Autodesk/3ds Max 2010"
|
||||||
|
try:
|
||||||
|
MaxUserDirectory
|
||||||
|
except NameError:
|
||||||
|
MaxUserDirectory = "C:/Users/Kaetemi/AppData/Local/Autodesk/3dsMax/2010 - 32bit/enu"
|
||||||
|
try:
|
||||||
|
MaxExecutable
|
||||||
|
except NameError:
|
||||||
|
MaxExecutable = "3dsmax.exe"
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
printLog(log, "-------")
|
printLog(log, "-------")
|
||||||
printLog(log, "--- Setup build site")
|
printLog(log, "--- Setup build site")
|
||||||
|
@ -52,10 +148,24 @@ ScriptDirectory = askVar(log, "Script Directory", os.getcwd().replace("\\", "/")
|
||||||
WorkspaceDirectory = askVar(log, "Workspace Directory", WorkspaceDirectory).replace("\\", "/")
|
WorkspaceDirectory = askVar(log, "Workspace Directory", WorkspaceDirectory).replace("\\", "/")
|
||||||
DatabaseDirectory = askVar(log, "Database Directory", DatabaseDirectory).replace("\\", "/")
|
DatabaseDirectory = askVar(log, "Database Directory", DatabaseDirectory).replace("\\", "/")
|
||||||
ExportBuildDirectory = askVar(log, "Export Build Directory", ExportBuildDirectory).replace("\\", "/")
|
ExportBuildDirectory = askVar(log, "Export Build Directory", ExportBuildDirectory).replace("\\", "/")
|
||||||
ClientDataDirectory = askVar(log, "Client Data Directory", ClientDataDirectory).replace("\\", "/")
|
InstallDirectory = askVar(log, "Install Directory", InstallDirectory).replace("\\", "/")
|
||||||
|
DataShardDirectory = askVar(log, "Data Shard Directory", DataShardDirectory).replace("\\", "/")
|
||||||
|
ClientDevDirectory = askVar(log, "Client Dev Directory", ClientDevDirectory).replace("\\", "/")
|
||||||
|
ClientPatchDirectory = askVar(log, "Client Patch Directory", ClientPatchDirectory).replace("\\", "/")
|
||||||
|
ClientInstallDirectory = askVar(log, "Client Install Directory", ClientInstallDirectory).replace("\\", "/")
|
||||||
LeveldesignDirectory = askVar(log, "Leveldesign Directory", LeveldesignDirectory).replace("\\", "/")
|
LeveldesignDirectory = askVar(log, "Leveldesign Directory", LeveldesignDirectory).replace("\\", "/")
|
||||||
LeveldesignDfnDirectory = askVar(log, "Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/")
|
LeveldesignDfnDirectory = askVar(log, "Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/")
|
||||||
LeveldesignWorldDirectory = askVar(log, "Leveldesign World Directory", LeveldesignWorldDirectory).replace("\\", "/")
|
LeveldesignWorldDirectory = askVar(log, "Leveldesign World Directory", LeveldesignWorldDirectory).replace("\\", "/")
|
||||||
|
PrimitivesDirectory = askVar(log, "Primitives Directory", PrimitivesDirectory).replace("\\", "/")
|
||||||
|
GamedevDirectory = askVar(log, "Gamedev Directory", GamedevDirectory).replace("\\", "/")
|
||||||
|
DataCommonDirectory = askVar(log, "Data Common Directory", DataCommonDirectory).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[0] = askVar(log, "Primary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[0]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[1] = askVar(log, "Secondary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[1]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[2] = askVar(log, "Tertiary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[2]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[3] = askVar(log, "Quaternary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[3]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[4] = askVar(log, "Quinary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[4]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[5] = askVar(log, "Senary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[5]).replace("\\", "/")
|
||||||
|
WindowsExeDllCfgDirectories[6] = askVar(log, "Septenary Windows exe/dll/cfg Directory", WindowsExeDllCfgDirectories[6]).replace("\\", "/")
|
||||||
MaxAvailable = int(askVar(log, "3dsMax Available", str(MaxAvailable)))
|
MaxAvailable = int(askVar(log, "3dsMax Available", str(MaxAvailable)))
|
||||||
if MaxAvailable:
|
if MaxAvailable:
|
||||||
MaxDirectory = askVar(log, "3dsMax Directory", MaxDirectory).replace("\\", "/")
|
MaxDirectory = askVar(log, "3dsMax Directory", MaxDirectory).replace("\\", "/")
|
||||||
|
@ -111,8 +221,12 @@ sf.write("# Data build directories\n")
|
||||||
sf.write("DatabaseDirectory = \"" + str(DatabaseDirectory) + "\"\n")
|
sf.write("DatabaseDirectory = \"" + str(DatabaseDirectory) + "\"\n")
|
||||||
sf.write("ExportBuildDirectory = \"" + str(ExportBuildDirectory) + "\"\n")
|
sf.write("ExportBuildDirectory = \"" + str(ExportBuildDirectory) + "\"\n")
|
||||||
sf.write("\n")
|
sf.write("\n")
|
||||||
sf.write("# Client data install directory (client/data)\n")
|
sf.write("# Install directories\n")
|
||||||
sf.write("ClientDataDirectory = \"" + str(ClientDataDirectory) + "\"\n")
|
sf.write("InstallDirectory = \"" + str(InstallDirectory) + "\"\n")
|
||||||
|
sf.write("DataShardDirectory = \"" + str(DataShardDirectory) + "\"\n")
|
||||||
|
sf.write("ClientDevDirectory = \"" + str(ClientDevDirectory) + "\"\n")
|
||||||
|
sf.write("ClientPatchDirectory = \"" + str(ClientPatchDirectory) + "\"\n")
|
||||||
|
sf.write("ClientInstallDirectory = \"" + str(ClientInstallDirectory) + "\"\n")
|
||||||
sf.write("\n")
|
sf.write("\n")
|
||||||
sf.write("# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)\n")
|
sf.write("# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)\n")
|
||||||
sf.write("\n")
|
sf.write("\n")
|
||||||
|
@ -120,6 +234,12 @@ sf.write("# Leveldesign directories\n")
|
||||||
sf.write("LeveldesignDirectory = \"" + str(LeveldesignDirectory) + "\"\n")
|
sf.write("LeveldesignDirectory = \"" + str(LeveldesignDirectory) + "\"\n")
|
||||||
sf.write("LeveldesignDfnDirectory = \"" + str(LeveldesignDfnDirectory) + "\"\n")
|
sf.write("LeveldesignDfnDirectory = \"" + str(LeveldesignDfnDirectory) + "\"\n")
|
||||||
sf.write("LeveldesignWorldDirectory = \"" + str(LeveldesignWorldDirectory) + "\"\n")
|
sf.write("LeveldesignWorldDirectory = \"" + str(LeveldesignWorldDirectory) + "\"\n")
|
||||||
|
sf.write("PrimitivesDirectory = \"" + str(PrimitivesDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Misc data directories\n")
|
||||||
|
sf.write("GamedevDirectory = \"" + str(GamedevDirectory) + "\"\n")
|
||||||
|
sf.write("DataCommonDirectory = \"" + str(DataCommonDirectory) + "\"\n")
|
||||||
|
sf.write("WindowsExeDllCfgDirectories = " + str(WindowsExeDllCfgDirectories) + "\n")
|
||||||
sf.write("\n")
|
sf.write("\n")
|
||||||
sf.write("# 3dsMax directives\n")
|
sf.write("# 3dsMax directives\n")
|
||||||
sf.write("MaxAvailable = " + str(MaxAvailable) + "\n")
|
sf.write("MaxAvailable = " + str(MaxAvailable) + "\n")
|
||||||
|
|
64
code/nel/tools/build_gamedata/4_data_shard.py
Normal file
64
code/nel/tools/build_gamedata/4_data_shard.py
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 4_data_shard.py
|
||||||
|
# \brief Install to data shard
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to data shard
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to data shard")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
for dir in InstallShardDataDirectories:
|
||||||
|
printLog(log, "SHARD DIRECTORY " + dir)
|
||||||
|
mkPath(log, InstallDirectory + "/" + dir)
|
||||||
|
mkPath(log, DataShardDirectory + "/" + dir)
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, DataShardDirectory + "/" + dir)
|
||||||
|
for dir in InstallShardDataCollisionsDirectories:
|
||||||
|
printLog(log, "SHARD COLLISIONS " + dir)
|
||||||
|
mkPath(log, InstallDirectory + "/" + dir)
|
||||||
|
mkPath(log, DataShardDirectory + "/collisions/" + dir)
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + dir, DataShardDirectory + "/collisions/" + dir)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("4_data_shard.log"):
|
||||||
|
os.remove("4_data_shard.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_data_shard.log")
|
||||||
|
shutil.move("log.log", "4_data_shard.log")
|
75
code/nel/tools/build_gamedata/5_client_dev.py
Normal file
75
code/nel/tools/build_gamedata/5_client_dev.py
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 5_client_dev.py
|
||||||
|
# \brief Install to client dev
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to client dev
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to client dev")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if not os.path.isfile(ClientDevDirectory + "/client.cfg"):
|
||||||
|
printLog(log, ">>> Generate client.cfg <<<")
|
||||||
|
cfg = open(ClientDevDirectory + "/client.cfg", "w")
|
||||||
|
cfg.write("RootConfigFilename = \"client_default.cfg\";\n")
|
||||||
|
cfg.write("PreDataPath = {\n")
|
||||||
|
cfg.write("\t\"W:/install\", \"user\", \"patch\", \"data\", \"examples\" \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install data <<<")
|
||||||
|
for category in InstallClientData:
|
||||||
|
if (category["UnpackTo"] != None):
|
||||||
|
printLog(log, "CATEGORY " + category["Name"])
|
||||||
|
targetPath = ClientDevDirectory
|
||||||
|
if (category["UnpackTo"] != ""):
|
||||||
|
targetPath += "/" + category["UnpackTo"]
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
mkPath(log, InstallDirectory + "/" + package[0])
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("5_client_dev.log"):
|
||||||
|
os.remove("5_client_dev.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_dev.log")
|
||||||
|
shutil.move("log.log", "5_client_dev.log")
|
149
code/nel/tools/build_gamedata/6_client_patch.py
Normal file
149
code/nel/tools/build_gamedata/6_client_patch.py
Normal file
|
@ -0,0 +1,149 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 6_client_patch.py
|
||||||
|
# \brief Install to client patch
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to client patch
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to client patch")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
|
||||||
|
PatchGen = findTool(log, ToolDirectories, PatchGenTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find **** HARDCODED **** WINDOWS **** tools ... TODO: fix patch_gen tool !!!
|
||||||
|
Lzma = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "lzma.exe")
|
||||||
|
printLog(log, "LZMA " + Lzma)
|
||||||
|
XDelta = findFileMultiDir(log, ToolDirectories + WindowsExeDllCfgDirectories, "xdelta.exe")
|
||||||
|
printLog(log, "XDELTA " + XDelta)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if BnpMake == "":
|
||||||
|
toolLogFail(log, BnpMakeTool, ToolSuffix)
|
||||||
|
elif PatchGen == "":
|
||||||
|
toolLogFail(log, PatchGenTool, ToolSuffix)
|
||||||
|
elif Lzma == "":
|
||||||
|
toolLogFail(log, "LZMA", ToolSuffix)
|
||||||
|
elif XDelta == "":
|
||||||
|
toolLogFail(log, "XDELTA", ToolSuffix)
|
||||||
|
elif os.path.dirname(Lzma) != os.path.dirname(XDelta):
|
||||||
|
printLog(log, "FAIL lzma.exe and xdelta.exe must be in the same directory")
|
||||||
|
else:
|
||||||
|
mkPath(log, ClientPatchDirectory)
|
||||||
|
productXml = ClientPatchDirectory + "/" + ProductName + ".xml"
|
||||||
|
if not os.path.isfile(productXml):
|
||||||
|
printLog(log, ">>> Create new product <<<")
|
||||||
|
subprocess.call([ PatchGen, "createNewProduct", productXml ])
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Rewrite " + ProductName + ".xml <<<") # because we know better.
|
||||||
|
shutil.move(productXml, productXml + ".old")
|
||||||
|
oldCfg = open(productXml + ".old", "r")
|
||||||
|
cfg = open(productXml, "w")
|
||||||
|
inCategories = 0
|
||||||
|
for line in oldCfg:
|
||||||
|
if not inCategories:
|
||||||
|
if line.strip() == "<_Categories>":
|
||||||
|
inCategories = 1
|
||||||
|
cfg.write("\t<_Categories>\n")
|
||||||
|
for category in InstallClientData:
|
||||||
|
cfg.write("\t\t<_Category>\n")
|
||||||
|
cfg.write("\t\t\t<_Name type=\"STRING\" value=\"" + category["Name"] + "\"/>\n")
|
||||||
|
if category["UnpackTo"] != None:
|
||||||
|
if category["UnpackTo"] != "":
|
||||||
|
cfg.write("\t\t\t<_UnpackTo type=\"STRING\" value=\"./" + category["UnpackTo"] + "/\"/>\n")
|
||||||
|
else:
|
||||||
|
cfg.write("\t\t\t<_UnpackTo type=\"SINT32\" value=\"./\"/>\n")
|
||||||
|
cfg.write("\t\t\t<_IsOptional type=\"SINT32\" value=\"" + str(category["IsOptional"]) + "\"/>\n")
|
||||||
|
cfg.write("\t\t\t<_IsIncremental type=\"SINT32\" value=\"" + str(category["IsIncremental"]) + "\"/>\n")
|
||||||
|
for package in category["Packages"]:
|
||||||
|
if (len(package[1]) > 0):
|
||||||
|
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[1][0] + "\"/>\n")
|
||||||
|
else:
|
||||||
|
cfg.write("\t\t\t<_Files type=\"STRING\" value=\"" + package[0] + ".bnp\"/>\n")
|
||||||
|
cfg.write("\t\t</_Category>\n")
|
||||||
|
cfg.write("\t</_Categories>\n")
|
||||||
|
else:
|
||||||
|
cfg.write(line)
|
||||||
|
else:
|
||||||
|
if line.strip() == "</_Categories>":
|
||||||
|
inCategories = 0
|
||||||
|
oldCfg.close()
|
||||||
|
cfg.close()
|
||||||
|
os.remove(productXml + ".old")
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Make bnp <<<")
|
||||||
|
targetPath = ClientPatchDirectory + "/bnp"
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
for category in InstallClientData:
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
sourcePath = InstallDirectory + "/" + package[0]
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
targetBnp = targetPath + "/" + package[0] + ".bnp"
|
||||||
|
if (len(package[1]) > 0):
|
||||||
|
targetBnp = targetPath + "/" + package[1][0]
|
||||||
|
printLog(log, "TARGET " + package[1][0])
|
||||||
|
needUpdateBnp = 1
|
||||||
|
if (len(package) > 2):
|
||||||
|
needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], targetBnp)
|
||||||
|
else:
|
||||||
|
needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, targetBnp)
|
||||||
|
if (needUpdateBnp):
|
||||||
|
printLog(log, "BNP " + targetBnp)
|
||||||
|
subprocess.call([ BnpMake, "/p", sourcePath, targetPath ] + package[1])
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + targetBnp)
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Update product <<<")
|
||||||
|
cwDir = os.getcwd().replace("\\", "/")
|
||||||
|
toolDir = os.path.dirname(Lzma).replace("\\", "/")
|
||||||
|
os.chdir(toolDir)
|
||||||
|
subprocess.call([ PatchGen, "updateProduct", productXml ])
|
||||||
|
os.chdir(cwDir)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("6_client_patch.log"):
|
||||||
|
os.remove("6_client_patch.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_patch.log")
|
||||||
|
shutil.move("log.log", "6_client_patch.log")
|
93
code/nel/tools/build_gamedata/7_client_install.py
Normal file
93
code/nel/tools/build_gamedata/7_client_install.py
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 7_client_install.py
|
||||||
|
# \brief Install to client install
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install to client install
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 tools import *
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install to client install")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BnpMake = findTool(log, ToolDirectories, BnpMakeTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if BnpMake == "":
|
||||||
|
toolLogFail(log, BnpMakeTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
for category in InstallClientData:
|
||||||
|
printLog(log, "CATEGORY " + category["Name"])
|
||||||
|
if (category["UnpackTo"] != None):
|
||||||
|
targetPath = ClientInstallDirectory
|
||||||
|
if (category["UnpackTo"] != ""):
|
||||||
|
targetPath += "/" + category["UnpackTo"]
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
mkPath(log, InstallDirectory + "/" + package[0])
|
||||||
|
copyFilesNoTreeIfNeeded(log, InstallDirectory + "/" + package[0], targetPath)
|
||||||
|
else:
|
||||||
|
targetPath = ClientInstallDirectory + "/data"
|
||||||
|
mkPath(log, targetPath)
|
||||||
|
for package in category["Packages"]:
|
||||||
|
printLog(log, "PACKAGE " + package[0])
|
||||||
|
sourcePath = InstallDirectory + "/" + package[0]
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
targetBnp = targetPath + "/" + package[0] + ".bnp"
|
||||||
|
if (len(package[1]) > 0):
|
||||||
|
targetBnp = targetPath + "/" + package[1][0]
|
||||||
|
printLog(log, "TARGET " + package[1][0])
|
||||||
|
needUpdateBnp = 1
|
||||||
|
if (len(package) > 2):
|
||||||
|
needUpdateBnp = needUpdate(log, sourcePath + "/" + package[2], targetBnp)
|
||||||
|
else:
|
||||||
|
needUpdateBnp = needUpdateDirNoSubdirFile(log, sourcePath, targetBnp)
|
||||||
|
if (needUpdateBnp):
|
||||||
|
printLog(log, "BNP " + targetBnp)
|
||||||
|
subprocess.call([ BnpMake, "/p", sourcePath, targetPath ] + package[1])
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + targetBnp)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("7_client_install.log"):
|
||||||
|
os.remove("7_client_install.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_client_install.log")
|
||||||
|
shutil.move("log.log", "7_client_install.log")
|
|
@ -1,65 +0,0 @@
|
||||||
#!/usr/bin/python
|
|
||||||
#
|
|
||||||
# \file site.py
|
|
||||||
# \brief Site configuration
|
|
||||||
# \date 2010-06-04-21-25-GMT
|
|
||||||
# \author Jan Boon (Kaetemi)
|
|
||||||
# Python port of game data build pipeline.
|
|
||||||
# Site configuration.
|
|
||||||
#
|
|
||||||
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
|
||||||
# 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 <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
# *** SITE INSTALLATION ***
|
|
||||||
|
|
||||||
# Use '/' in path name, not ''
|
|
||||||
# Don't put '/' at the end of a directory name
|
|
||||||
|
|
||||||
|
|
||||||
# Quality option for this site (1 for BEST, 0 for DRAFT)
|
|
||||||
BuildQuality = 1
|
|
||||||
|
|
||||||
ToolDirectories = ['R:/code/nel', 'R:/code/ryzom/tools']
|
|
||||||
ToolSuffix = "_r.exe"
|
|
||||||
|
|
||||||
# Build script directory
|
|
||||||
ScriptDirectory = "W:/build_gamedata"
|
|
||||||
WorkspaceDirectory = "R:/code/ryzom/tools/build_gamedata/workspace"
|
|
||||||
|
|
||||||
# Data build directories
|
|
||||||
DatabaseDirectory = "W:/database"
|
|
||||||
ExportBuildDirectory = "W:/export"
|
|
||||||
|
|
||||||
# Client data install directory (client/data)
|
|
||||||
ClientDataDirectory = "S:/ryzom_client_open/user"
|
|
||||||
|
|
||||||
# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)
|
|
||||||
|
|
||||||
# Leveldesign directories
|
|
||||||
LeveldesignDirectory = "L:/leveldesign"
|
|
||||||
LeveldesignDfnDirectory = "L:/leveldesign/dfn"
|
|
||||||
LeveldesignWorldDirectory = "L:/leveldesign/world"
|
|
||||||
|
|
||||||
# 3dsMax directives
|
|
||||||
MaxAvailable = 1
|
|
||||||
MaxDirectory = "C:/Program Files (x86)/Autodesk/3ds Max 2010"
|
|
||||||
MaxUserDirectory = "C:/Users/Kaetemi/AppData/Local/Autodesk/3dsMax/2010 - 32bit/enu"
|
|
||||||
MaxExecutable = "3dsmax.exe"
|
|
||||||
|
|
||||||
|
|
||||||
# end of file
|
|
|
@ -44,7 +44,7 @@ def needUpdate(log, source, dest):
|
||||||
else:
|
else:
|
||||||
return 0
|
return 0
|
||||||
return 1
|
return 1
|
||||||
printLog(log, "needUpdate: source doest not exist?! " + source)
|
printLog(log, "MISSING " + source)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def needUpdateRemoveDest(log, source, dest):
|
def needUpdateRemoveDest(log, source, dest):
|
||||||
|
@ -56,7 +56,7 @@ def needUpdateRemoveDest(log, source, dest):
|
||||||
else:
|
else:
|
||||||
return 0
|
return 0
|
||||||
return 1
|
return 1
|
||||||
printLog(log, "needUpdate: source doest not exist?! " + source)
|
printLog(log, "MISSING " + source)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def needUpdateLogRemoveDest(log, source, dest):
|
def needUpdateLogRemoveDest(log, source, dest):
|
||||||
|
@ -71,25 +71,28 @@ def needUpdateLogRemoveDest(log, source, dest):
|
||||||
return 0
|
return 0
|
||||||
printLog(log, source + " -> " + dest)
|
printLog(log, source + " -> " + dest)
|
||||||
return 1
|
return 1
|
||||||
printLog(log, "needUpdate: source doest not exist?! " + source)
|
printLog(log, "MISSING " + source)
|
||||||
printLog(log, "SKIP " + dest)
|
printLog(log, "SKIP " + dest)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def copyFileList(log, dir_source, dir_target, files):
|
def copyFileList(log, dir_source, dir_target, files):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
if needUpdateLogRemoveDest(log, dir_source + "/" + fileName, dir_target + "/" + fileName):
|
||||||
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
def copyFileListNoTree(log, dir_source, dir_target, files):
|
def copyFileListNoTree(log, dir_source, dir_target, files):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
||||||
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
||||||
|
|
||||||
def copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files):
|
def copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
srcFile = dir_source + "/" + fileName
|
srcFile = dir_source + "/" + fileName
|
||||||
destFile = dir_target + "/" + os.path.basename(fileName)
|
destFile = dir_target + "/" + os.path.basename(fileName)
|
||||||
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
@ -98,18 +101,30 @@ def copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files):
|
||||||
def removeFilesRecursive(log, dir_files):
|
def removeFilesRecursive(log, dir_files):
|
||||||
files = os.listdir(dir_files)
|
files = os.listdir(dir_files)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn"):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
if os.path.isdir(dir_files + "/" + fileName):
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
removeFilesRecursive(log, dir_files + "/" + fileName)
|
removeFilesRecursive(log, dir_files + "/" + fileName)
|
||||||
else:
|
else:
|
||||||
printLog(log, "RM " + dir_files + "/" + fileName)
|
printLog(log, "RM " + dir_files + "/" + fileName)
|
||||||
os.remove(dir_files + "/" + fileName)
|
os.remove(dir_files + "/" + fileName)
|
||||||
|
|
||||||
|
def removeFilesDirsRecursive(log, dir_files):
|
||||||
|
files = os.listdir(dir_files)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
|
removeFilesRecursive(log, dir_files + "/" + fileName)
|
||||||
|
else:
|
||||||
|
printLog(log, "RM " + dir_files + "/" + fileName)
|
||||||
|
os.remove(dir_files + "/" + fileName)
|
||||||
|
printLog(log, "RMDIR " + dir_files)
|
||||||
|
os.rmdir(dir_files)
|
||||||
|
|
||||||
def removeFilesRecursiveExt(log, dir_files, file_ext):
|
def removeFilesRecursiveExt(log, dir_files, file_ext):
|
||||||
files = os.listdir(dir_files)
|
files = os.listdir(dir_files)
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn"):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
if os.path.isdir(dir_files + "/" + fileName):
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
removeFilesRecursiveExt(log, dir_files + "/" + fileName, file_ext)
|
removeFilesRecursiveExt(log, dir_files + "/" + fileName, file_ext)
|
||||||
elif (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
elif (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
||||||
|
@ -120,7 +135,7 @@ def copyFilesRecursive(log, dir_source, dir_target):
|
||||||
files = os.listdir(dir_source)
|
files = os.listdir(dir_source)
|
||||||
mkPath(log, dir_target)
|
mkPath(log, dir_target)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn"):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"):
|
||||||
if os.path.isdir(dir_source + "/" + fileName):
|
if os.path.isdir(dir_source + "/" + fileName):
|
||||||
copyFilesRecursive(log, dir_source + "/" + fileName, dir_target + "/" + fileName)
|
copyFilesRecursive(log, dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
else:
|
else:
|
||||||
|
@ -134,7 +149,8 @@ def copyFilesExt(log, dir_source, dir_target, file_ext):
|
||||||
files = os.listdir(dir_source)
|
files = os.listdir(dir_source)
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn") and (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*") and (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
||||||
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
@ -143,7 +159,8 @@ def copyFilesRenamePrefixExt(log, dir_source, dir_target, old_prefix, new_prefix
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
len_prefix = len(old_prefix)
|
len_prefix = len(old_prefix)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if (fileName != ".svn") and (fileName[-len_file_ext:].lower() == file_ext.lower()) and ((fileName[:len_prefix].lower() == old_prefix.lower())):
|
if (fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*") and (fileName[-len_file_ext:].lower() == file_ext.lower()) and ((fileName[:len_prefix].lower() == old_prefix.lower())):
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
||||||
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + new_prefix + fileName[-(len(fileName) - len_prefix):])
|
||||||
|
|
||||||
|
@ -166,9 +183,14 @@ def copyFilesExtNoSubdirIfNeeded(log, dir_source, dir_target, file_ext):
|
||||||
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
|
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
|
||||||
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
|
||||||
|
|
||||||
|
def copyFilesRecursiveNoTreeIfNeeded(log, dir_source, dir_target):
|
||||||
|
files = findFilesRecursive(log, dir_source, "")
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
def copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext):
|
def copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
srcFile = dir_source + "/" + fileName
|
srcFile = dir_source + "/" + fileName
|
||||||
destFile = dir_target + "/" + os.path.basename(fileName)[0:-len(file_ext)] + target_ext
|
destFile = dir_target + "/" + os.path.basename(fileName)[0:-len(file_ext)] + target_ext
|
||||||
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
@ -184,20 +206,44 @@ def copyFileIfNeeded(log, srcFile, destFile):
|
||||||
|
|
||||||
def moveFileListNoTree(log, dir_source, dir_target, files):
|
def moveFileListNoTree(log, dir_source, dir_target, files):
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
if (os.path.isfile(dir_source + "/" + fileName)):
|
||||||
|
printLog(log, "MOVE " + dir_source + "/" + fileName + " -> " + dir_target + "/" + os.path.basename(fileName))
|
||||||
shutil.move(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
shutil.move(dir_source + "/" + fileName, dir_target + "/" + os.path.basename(fileName))
|
||||||
|
|
||||||
def moveFilesExtNoTree(log, dir_source, dir_target, file_ext):
|
def moveFilesExtNoTree(log, dir_source, dir_target, file_ext):
|
||||||
files = findFiles(log, dir_source, "", file_ext)
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
moveFileListNoTree(log, dir_source, dir_target, files)
|
moveFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def moveFilesNoSubdir(log, dir_source, dir_target):
|
||||||
|
files = os.listdir(dir_source)
|
||||||
|
moveFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def moveDir(log, dir_source, dir_target):
|
||||||
|
printLog(log, "MOVE " + dir_source + " -> " + dir_target)
|
||||||
|
shutil.move(dir_source, dir_target)
|
||||||
|
|
||||||
|
def findFilesRecursive(log, dir_where, dir_sub):
|
||||||
|
result = [ ]
|
||||||
|
files = os.listdir(dir_where + "/" + dir_sub)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
|
filePath = dir_sub + fileName
|
||||||
|
fileFull = dir_where + "/" + dir_sub + fileName
|
||||||
|
if os.path.isfile(fileFull):
|
||||||
|
result += [ filePath ]
|
||||||
|
elif os.path.isdir(fileFull):
|
||||||
|
result += findFilesRecursive(log, dir_where, filePath + "/")
|
||||||
|
else:
|
||||||
|
printLog(log, "findFilesRecursive: file not dir or file?!" + filePath)
|
||||||
|
return result
|
||||||
|
|
||||||
def findFiles(log, dir_where, dir_sub, file_ext):
|
def findFiles(log, dir_where, dir_sub, file_ext):
|
||||||
result = [ ]
|
result = [ ]
|
||||||
files = os.listdir(dir_where + "/" + dir_sub)
|
files = os.listdir(dir_where + "/" + dir_sub)
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
filePath = dir_sub + fileName
|
filePath = dir_sub + fileName
|
||||||
fileFull = dir_where + "/" + dir_sub + fileName
|
fileFull = dir_where + "/" + dir_sub + fileName
|
||||||
if os.path.isfile(fileFull):
|
if os.path.isfile(fileFull):
|
||||||
|
@ -209,12 +255,15 @@ def findFiles(log, dir_where, dir_sub, file_ext):
|
||||||
printLog(log, "findFiles: file not dir or file?!" + filePath)
|
printLog(log, "findFiles: file not dir or file?!" + filePath)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def isLegalFileName(fileName):
|
||||||
|
return fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*"
|
||||||
|
|
||||||
def findFilesNoSubdir(log, dir_where, file_ext):
|
def findFilesNoSubdir(log, dir_where, file_ext):
|
||||||
result = [ ]
|
result = [ ]
|
||||||
files = os.listdir(dir_where)
|
files = os.listdir(dir_where)
|
||||||
len_file_ext = len(file_ext)
|
len_file_ext = len(file_ext)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
fileFull = dir_where + "/" + fileName
|
fileFull = dir_where + "/" + fileName
|
||||||
if os.path.isfile(fileFull):
|
if os.path.isfile(fileFull):
|
||||||
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
||||||
|
@ -226,7 +275,7 @@ def findFilesNoSubdir(log, dir_where, file_ext):
|
||||||
def findFile(log, dir_where, file_name):
|
def findFile(log, dir_where, file_name):
|
||||||
files = os.listdir(dir_where)
|
files = os.listdir(dir_where)
|
||||||
for fileName in files:
|
for fileName in files:
|
||||||
if fileName != ".svn" and fileName != "*.*":
|
if fileName != ".svn" and fileName != ".." and fileName != "." and fileName != "*.*":
|
||||||
filePath = dir_where + "/" + fileName
|
filePath = dir_where + "/" + fileName
|
||||||
if os.path.isfile(filePath):
|
if os.path.isfile(filePath):
|
||||||
if fileName == file_name:
|
if fileName == file_name:
|
||||||
|
@ -264,6 +313,26 @@ def needUpdateDirByTagLog(log, dir_source, ext_source, dir_dest, ext_dest):
|
||||||
printLog(log, "SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
printLog(log, "SKIP " + str(skipCount) + " / " + str(len(sourceFiles)) + "; DEST " + str(len(destFiles)))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
def needUpdateDirNoSubdirFile(log, dir_source, file_dest):
|
||||||
|
if not os.path.isfile(file_dest):
|
||||||
|
return 1
|
||||||
|
destTime = os.stat(file_dest).st_mtime
|
||||||
|
sourceFiles = os.listdir(dir_source)
|
||||||
|
for file in sourceFiles:
|
||||||
|
filePath = dir_source + "/" + file
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
fileTime = os.stat(filePath).st_mtime
|
||||||
|
if fileTime > destTime:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateMultiDirNoSubdirFile(log, root_dir, dirs_source, file_dest):
|
||||||
|
for dir_source in dirs_source:
|
||||||
|
if needUpdateDirNoSubdirFile(log, root_dir + "/" + dir_source, file_dest):
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
def needUpdateDirNoSubdir(log, dir_source, dir_dest):
|
def needUpdateDirNoSubdir(log, dir_source, dir_dest):
|
||||||
latestSourceFile = 0
|
latestSourceFile = 0
|
||||||
oldestDestFile = 0
|
oldestDestFile = 0
|
||||||
|
@ -329,6 +398,17 @@ def needUpdateDirNoSubdirLogExtMultidir(log, all_dir_base, all_dir_source, dir_s
|
||||||
printLog(log, "SKIP *")
|
printLog(log, "SKIP *")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
def findFileMultiDir(log, dirs_where, file_name):
|
||||||
|
try:
|
||||||
|
for dir in dirs_where:
|
||||||
|
file = findFile(log, dir, file_name)
|
||||||
|
if file != "":
|
||||||
|
return file
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "EXCEPTION " + str(e))
|
||||||
|
printLog(log, "FILE NOT FOUND " + file_name)
|
||||||
|
return ""
|
||||||
|
|
||||||
def findTool(log, dirs_where, file_name, suffix):
|
def findTool(log, dirs_where, file_name, suffix):
|
||||||
try:
|
try:
|
||||||
for dir in dirs_where:
|
for dir in dirs_where:
|
||||||
|
|
|
@ -37,7 +37,6 @@ SmallbankBuildTimeout = 60000
|
||||||
FarbankBuildTimeout = 180000
|
FarbankBuildTimeout = 180000
|
||||||
AnimExportTimeout = 1800000
|
AnimExportTimeout = 1800000
|
||||||
IgExportTimeout = 600000
|
IgExportTimeout = 600000
|
||||||
MapsBuildTimeout = 10000
|
|
||||||
CmbExportTimeout = 60000
|
CmbExportTimeout = 60000
|
||||||
RbankBuildTesselTimeout = 6000000
|
RbankBuildTesselTimeout = 6000000
|
||||||
RbankBuildSmoothTimeout = 6000000
|
RbankBuildSmoothTimeout = 6000000
|
||||||
|
@ -49,6 +48,7 @@ LigoExportTimeout = 3600000
|
||||||
LigoBuildTimeout = 1800000
|
LigoBuildTimeout = 1800000
|
||||||
PacsPrimExportTimeout = 600000
|
PacsPrimExportTimeout = 600000
|
||||||
|
|
||||||
|
MapsBuildTimeout = 60000 # 1min
|
||||||
MaxShapeExportTimeout = 600000 # 10min
|
MaxShapeExportTimeout = 600000 # 10min
|
||||||
|
|
||||||
# *** TOOLS CONFIGURATION ***
|
# *** TOOLS CONFIGURATION ***
|
||||||
|
@ -63,7 +63,6 @@ ZoneWelderTool = "zone_welder"
|
||||||
BuildRbankTool = "build_rbank"
|
BuildRbankTool = "build_rbank"
|
||||||
BuildIndoorRbankTool = "build_indoor_rbank"
|
BuildIndoorRbankTool = "build_indoor_rbank"
|
||||||
BuildIgBoxesTool = "build_ig_boxes"
|
BuildIgBoxesTool = "build_ig_boxes"
|
||||||
AiBuildWmapTool = "ai_build_wmap"
|
|
||||||
GetNeighborsTool = "get_neighbors"
|
GetNeighborsTool = "get_neighbors"
|
||||||
ZoneLighterTool = "zone_lighter"
|
ZoneLighterTool = "zone_lighter"
|
||||||
ZoneIgLighterTool = "zone_ig_lighter"
|
ZoneIgLighterTool = "zone_ig_lighter"
|
||||||
|
@ -85,3 +84,8 @@ PrimExportTool = "prim_export"
|
||||||
IgElevationTool = "ig_elevation"
|
IgElevationTool = "ig_elevation"
|
||||||
IgAddTool = "ig_add"
|
IgAddTool = "ig_add"
|
||||||
BuildClodBankTool = "build_clod_bank"
|
BuildClodBankTool = "build_clod_bank"
|
||||||
|
SheetsPackerTool = "sheets_packer"
|
||||||
|
BnpMakeTool = "bnp_make"
|
||||||
|
AiBuildWmapTool = "ai_build_wmap"
|
||||||
|
TgaCutTool = "tga_cut"
|
||||||
|
PatchGenTool = "patch_gen"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
import shutil, subprocess
|
import shutil, subprocess
|
||||||
|
|
||||||
# subprocess.call([ "python", "0_setup.py" ])
|
|
||||||
subprocess.call([ "python", "1_export.py" ])
|
subprocess.call([ "python", "1_export.py" ])
|
||||||
subprocess.call([ "python", "2_build.py" ])
|
subprocess.call([ "python", "2_build.py" ])
|
||||||
subprocess.call([ "python", "3_install.py" ])
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,22 @@ PacsPrimSourceDirectories = [ ]
|
||||||
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
PacsPrimSourceDirectories += [ DatabaseRootPath + "/decors/vegetations" ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
||||||
|
|
||||||
|
# Ig lookup directories used by rbank
|
||||||
|
IgLookupDirectories = [ ]
|
||||||
|
|
||||||
|
# Shape lookup directories used by rbank
|
||||||
|
ShapeLookupDirectories = [ ]
|
||||||
|
ShapeLookupDirectories += [ EcosystemPath + "/shape_clodtex_build" ]
|
||||||
|
ShapeLookupDirectories += [ EcosystemPath + "/shape_with_coarse_mesh" ]
|
||||||
|
|
||||||
|
# Map lookup directories not yet used
|
||||||
|
MapLookupDirectories = [ ]
|
||||||
|
MapLookupDirectories += [ EcosystemPath + "/map_export" ]
|
||||||
|
MapLookupDirectories += [ EcosystemPath + "/map_uncompressed" ]
|
||||||
|
|
||||||
|
|
||||||
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
# Map directories
|
# Map directories
|
||||||
|
@ -148,6 +164,10 @@ PacsPrimExportDirectory = CommonPath + "/pacs_prim"
|
||||||
# Map directories
|
# Map directories
|
||||||
MapBuildDirectory = CommonPath + "/map"
|
MapBuildDirectory = CommonPath + "/map"
|
||||||
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||||
|
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||||
|
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||||
|
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||||
|
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||||
|
|
||||||
# Shape directories
|
# Shape directories
|
||||||
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
||||||
|
@ -171,29 +191,29 @@ RbankOutputBuildDirectory = "_invalid"
|
||||||
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||||
|
|
||||||
# Map directory
|
# Map directory
|
||||||
MapClientDirectory = CommonName + "_maps"
|
MapInstallDirectory = CommonName + "_maps"
|
||||||
BitmapClientDirectory = MapClientDirectory
|
BitmapInstallDirectory = MapInstallDirectory
|
||||||
|
|
||||||
# Shape directory
|
# Shape directory
|
||||||
ShapeClientDirectory = CommonName + "_shapes"
|
ShapeInstallDirectory = CommonName + "_shapes"
|
||||||
|
|
||||||
# Lightmap directory
|
# Lightmap directory
|
||||||
LightmapClientDirectory = CommonName + "_lightmaps"
|
LightmapInstallDirectory = CommonName + "_lightmaps"
|
||||||
|
|
||||||
# Tile directory
|
# Tile directory
|
||||||
TilesClientDirectory = CommonName + "_tiles"
|
TilesInstallDirectory = CommonName + "_tiles"
|
||||||
|
|
||||||
# Displace directory
|
# Displace directory
|
||||||
DisplaceClientDirectory = CommonName + "_displaces"
|
DisplaceInstallDirectory = CommonName + "_displaces"
|
||||||
|
|
||||||
# Bank directory
|
# Bank directory
|
||||||
BankClientDirectory = CommonName + "_bank"
|
BankInstallDirectory = CommonName + "_bank"
|
||||||
|
|
||||||
# Vegetable set directory
|
# Vegetable set directory
|
||||||
VegetSetClientDirectory = CommonName + "_vegetable_sets"
|
VegetSetInstallDirectory = CommonName + "_vegetable_sets"
|
||||||
|
|
||||||
# Vegetable shape directory
|
# Vegetable shape directory
|
||||||
VegetClientDirectory = CommonName + "_vegetables"
|
VegetInstallDirectory = CommonName + "_vegetables"
|
||||||
|
|
||||||
# PACS primitives directories
|
# PACS primitives directories
|
||||||
PacsPrimClientDirectory = CommonName + "_pacs_prim"
|
PacsPrimInstallDirectory = CommonName + "_pacs_prim"
|
||||||
|
|
|
@ -110,6 +110,10 @@ LigoExportOnePass = 0
|
||||||
# *** MAPS OPTIONS ***
|
# *** MAPS OPTIONS ***
|
||||||
|
|
||||||
ReduceBitmapFactor = 0
|
ReduceBitmapFactor = 0
|
||||||
|
# list all panoply files
|
||||||
|
MapPanoplyFileList = None
|
||||||
|
# name of the .hlsbank to build.
|
||||||
|
MapHlsBankFileName = None
|
||||||
|
|
||||||
# *** SHAPE BUILD OPTIONS *
|
# *** SHAPE BUILD OPTIONS *
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exp
|
||||||
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
newline = newline.replace("%PreGenFileExtension%", fileExtension)
|
||||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenClientDirectoryVariable%", clientDirectoryVariable)
|
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||||
return newline
|
return newline
|
||||||
|
|
||||||
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def generateSimpleMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
|
@ -88,15 +88,15 @@ def generateSimpleMaxExporter(processName, fileExtension, sourceDirectoriesVaria
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
generateSimpleMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimClientDirectory")
|
generateSimpleMaxExporter("pacs_prim", "pacs_prim", "PacsPrimSourceDirectories", "PacsPrimExportDirectory", "PacsPrimInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimClientDirectory")
|
generateSimpleMaxExporter("anim", "anim", "AnimSourceDirectories", "AnimExportDirectory", "AnimInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelClientDirectory")
|
generateSimpleMaxExporter("skel", "skel", "SkelSourceDirectories", "SkelExportDirectory", "SkelInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtClientDirectory")
|
generateSimpleMaxExporter("swt", "swt", "SwtSourceDirectories", "SwtExportDirectory", "SwtInstallDirectory")
|
||||||
|
|
||||||
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneClientDirectory")
|
generateSimpleMaxExporter("zone", "zone", "ZoneSourceDirectory", "ZoneExportDirectory", "ZoneInstallDirectory")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ def processLine(line, processName, fileExtension, sourceDirectoriesVariable, exp
|
||||||
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
newline = newline.replace("%PreGenSourceDirectoriesVariable%", sourceDirectoriesVariable)
|
||||||
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
newline = newline.replace("%PreGenExportDirectoryVariable%", exportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
newline = newline.replace("%PreGenTagExportDirectoryVariable%", tagExportDirectoryVariable)
|
||||||
newline = newline.replace("%PreGenClientDirectoryVariable%", clientDirectoryVariable)
|
newline = newline.replace("%PreGenInstallDirectoryVariable%", clientDirectoryVariable)
|
||||||
return newline
|
return newline
|
||||||
|
|
||||||
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
def generateTaggedMaxExporterFile(sourceFile, destFile, writeMode, processName, fileExtension, sourceDirectoriesVariable, exportDirectoryVariable, tagExportDirectoryVariable, clientDirectoryVariable, dateTimeStamp):
|
||||||
|
@ -100,13 +100,13 @@ def generateTaggedMaxExporter(processName, fileExtension, sourceDirectoriesVaria
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodClientDirectory")
|
generateTaggedMaxExporter("clodbank", "clod", "ClodSourceDirectories", "ClodExportDirectory", "ClodTagExportDirectory", "ClodInstallDirectory")
|
||||||
|
|
||||||
generateTaggedMaxScript("ig", "ig")
|
generateTaggedMaxScript("ig", "ig")
|
||||||
|
|
||||||
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsClientDirectory")
|
generateTaggedMaxExporter("rbank", "cmb", "RBankCmbSourceDirectories", "RBankCmbExportDirectory", "RBankCmbTagExportDirectory", "PacsInstallDirectory")
|
||||||
|
|
||||||
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetClientDirectory")
|
generateTaggedMaxExporter("veget", "veget", "VegetSourceDirectories", "VegetExportDirectory", "VegetTagExportDirectory", "VegetInstallDirectory")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%)
|
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,9 +46,9 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||||
mkPath(log, exportPath)
|
mkPath(log, exportPath)
|
||||||
clientPath = ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%
|
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, exportPath, clientPath, ".%PreGenFileExtension%")
|
copyFilesExtNoSubdirIfNeeded(log, exportPath, installPath, ".%PreGenFileExtension%")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -58,7 +58,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%)
|
mkPath(log, InstallDirectory + "/" + %PreGenInstallDirectoryVariable%)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,9 +46,9 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
printLog(log, ">>> Install %PreGenProcessName% <<<")
|
||||||
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
exportPath = ExportBuildDirectory + "/" + %PreGenExportDirectoryVariable%
|
||||||
mkPath(log, exportPath)
|
mkPath(log, exportPath)
|
||||||
clientPath = ClientDataDirectory + "/" + %PreGenClientDirectoryVariable%
|
installPath = InstallDirectory + "/" + %PreGenInstallDirectoryVariable%
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
copyFilesNoTreeIfNeeded(log, exportPath, clientPath)
|
copyFilesNoTreeIfNeeded(log, exportPath, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
31
code/nel/tools/build_gamedata/install_client_dev.py
Normal file
31
code/nel/tools/build_gamedata/install_client_dev.py
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file export_build_install.py
|
||||||
|
# \brief Run all processes
|
||||||
|
# \date 2009-02-18 15:28GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all processes
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http:#www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import shutil, subprocess
|
||||||
|
|
||||||
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
subprocess.call([ "python", "5_client_dev.py" ])
|
||||||
|
|
31
code/nel/tools/build_gamedata/install_data_shard.py
Normal file
31
code/nel/tools/build_gamedata/install_data_shard.py
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file export_build_install.py
|
||||||
|
# \brief Run all processes
|
||||||
|
# \date 2009-02-18 15:28GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all processes
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http:#dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http:#www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import shutil, subprocess
|
||||||
|
|
||||||
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
subprocess.call([ "python", "4_data_shard.py" ])
|
||||||
|
|
|
@ -49,7 +49,7 @@ from directories import *
|
||||||
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
#for dir in ClientSetupDirectories:
|
#for dir in ClientSetupDirectories:
|
||||||
# mkPath(log, ClientDataDirectory + "/" + dir)
|
# mkPath(log, InstallDirectory + "/" + dir)
|
||||||
#printLog(log, "")
|
#printLog(log, "")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
|
@ -58,7 +58,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
#mkPath(log, ClientDataDirectory + "/" + DummyClientDirectory)
|
#mkPath(log, InstallDirectory + "/" + DummyInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,18 +43,18 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
#clientPath = ClientDataDirectory + "/" + DummyClientDirectory
|
#installPath = InstallDirectory + "/" + DummyInstallDirectory
|
||||||
#mkPath(log, clientPath)
|
#mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install dummy <<<")
|
printLog(log, ">>> Install dummy <<<")
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyExportDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, clientPath, ".dummy")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyExportDirectory, installPath, ".dummy")
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, clientPath, ".dummy")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dummy")
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, clientPath, ".dds")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyWithCoarseMeshBuildDirectory, installPath, ".dds")
|
||||||
|
|
||||||
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
|
#mkPath(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory)
|
||||||
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, clientPath, ".anim")
|
#copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DummyAnimExportDirectory, installPath, ".anim")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
98
code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py
Normal file
98
code/nel/tools/build_gamedata/processes/ai_wmap/0_setup.py
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
||||||
|
|
||||||
|
# Setup lookup directories
|
||||||
|
printLog(log, ">>> Setup lookup directories <<<")
|
||||||
|
for dir in IgLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
for dir in PacsPrimLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup install directories <<<")
|
||||||
|
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup configuration <<<")
|
||||||
|
mkPath(log, InstallDirectory + "/" + AiWmapInstallDirectory)
|
||||||
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
|
cfg = open(ActiveProjectDirectory + "/generated/ai_build_wmap.cfg", "w")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("// AI BUILD WMAP CONFIGURATION\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("Paths = {\n")
|
||||||
|
for dir in IgLookupDirectories:
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "\", \n")
|
||||||
|
cfg.write("\t\"" + LeveldesignDirectory + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("NoRecursePaths = { };\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("PacsPrimPaths = {\n")
|
||||||
|
for dir in PacsPrimLookupDirectories:
|
||||||
|
cfg.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("OutputPath = \"" + ExportBuildDirectory + "/" + AiWmapBuildDirectory + "\";\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("Commands = {\n")
|
||||||
|
cfg.write("\t\"Verbose " + str(AiWmapVerbose) + "\", \n")
|
||||||
|
for startPoint in AiWmapStartPoints:
|
||||||
|
cfg.write("\t\"setStartPoint " + startPoint + "\", \n")
|
||||||
|
cfg.write("};\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.close()
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/ai_wmap/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
95
code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py
Normal file
95
code/nel/tools/build_gamedata/processes/ai_wmap/2_build.py
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
AiBuildWmap = findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix)
|
||||||
|
TgaCut = findTool(log, ToolDirectories, TgaCutTool, ToolSuffix)
|
||||||
|
|
||||||
|
if AiBuildWmap == "":
|
||||||
|
toolLogFail(log, AiBuildWmapTool, ToolSuffix)
|
||||||
|
if TgaCut == "":
|
||||||
|
toolLogFail(log, TgaCutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
printLog(log, ">>> Copy ai_build_wmap.cfg <<<")
|
||||||
|
cfgPath = ActiveProjectDirectory + "/generated/ai_build_wmap.cfg"
|
||||||
|
tagPath = ExportBuildDirectory + "/" + AiWmapBuildTagDirectory + "/ai_wmap_build.tag"
|
||||||
|
shutil.copy(cfgPath, "ai_build_wmap.cfg")
|
||||||
|
printLog(log, ">>> Check up packed sheets <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "checkPackedSheets" ])
|
||||||
|
printLog(log, ">>> Build ai_wmap <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildTagDirectory)
|
||||||
|
if (needUpdate(log, "continents.packed_sheets", tagPath) or needUpdateMultiDirNoSubdirFile(log, ExportBuildDirectory, [ RbankOutputBuildDirectory ] + IgLookupDirectories + PacsPrimLookupDirectories, tagPath)):
|
||||||
|
printLog(log, ">>> Generate wmap <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsCrunch " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Generate sized wmap <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildGabarit " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Generate cwmaps for each size <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_0" ])
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_1" ])
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildWmap " + AiWmapContinentName + "_2" ])
|
||||||
|
printLog(log, ">>> Generate bitmap for each size <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_0" ])
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_1" ])
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsBuildBitmap " + AiWmapContinentName + "_2" ])
|
||||||
|
printLog(log, ">>> Clear height maps for size 1 and 2 <<<")
|
||||||
|
subprocess.call([ AiBuildWmap, "pacsClearHeightmap " + AiWmapContinentName ])
|
||||||
|
printLog(log, ">>> Cut tga for world editor <<<")
|
||||||
|
subprocess.call([ TgaCut, ExportBuildDirectory + "/" + AiWmapBuildDirectory + "/" + AiWmapContinentName + "_0.tga" ])
|
||||||
|
moveFilesExtNoTree(log, ".", ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".tga")
|
||||||
|
printLog(log, ">>> Remove wmap <<<")
|
||||||
|
removeFilesRecursiveExt(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, ".wmap")
|
||||||
|
tagFile = open(tagPath, "w")
|
||||||
|
tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
|
||||||
|
tagFile.close()
|
||||||
|
else:
|
||||||
|
printLog("SKIP *")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
57
code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py
Normal file
57
code/nel/tools/build_gamedata/processes/ai_wmap/3_install.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install ai_wmap
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install ai_wmap
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 ai_wmap")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
installPath = InstallDirectory + "/" + AiWmapInstallDirectory
|
||||||
|
mkPath(log, installPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install ai_wmap <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + AiWmapBuildDirectory, installPath)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -58,7 +58,7 @@ mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + AnimClientDirectory)
|
mkPath(log, InstallDirectory + "/" + AnimInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export anim
|
# \brief Export anim
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export anim
|
# Export anim
|
||||||
|
|
|
@ -46,7 +46,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install anim <<<")
|
printLog(log, ">>> Install anim <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + AnimClientDirectory
|
destDir = InstallDirectory + "/" + AnimInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + CeguiImagesetClientDirectory)
|
mkPath(log, InstallDirectory + "/" + CeguiImagesetInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install cegui imagesets <<<")
|
printLog(log, ">>> Install cegui imagesets <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + CeguiImagesetClientDirectory
|
destDir = InstallDirectory + "/" + CeguiImagesetInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
|
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
|
||||||
|
|
||||||
# Setup configuration files
|
# Setup configuration files
|
||||||
printLog(log, ">>> Setup configuration files <<<")
|
printLog(log, ">>> Setup configuration files <<<")
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export clodbank
|
# \brief Export clodbank
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export clodbank
|
# Export clodbank
|
||||||
|
|
|
@ -46,7 +46,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install clodbank <<<")
|
printLog(log, ">>> Install clodbank <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + ClodBankBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + ShapeClientDirectory
|
destDir = InstallDirectory + "/" + ShapeInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
76
code/nel/tools/build_gamedata/processes/copy/0_setup.py
Normal file
76
code/nel/tools/build_gamedata/processes/copy/0_setup.py
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup copy
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup copy
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 copy")
|
||||||
|
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 CopyDirectSourceDirectories:
|
||||||
|
mkPath(log, dir)
|
||||||
|
for file in CopyDirectSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(file))
|
||||||
|
for dir in CopyLeveldesignSourceDirectories:
|
||||||
|
mkPath(log, LeveldesignDirectory + "/" + dir)
|
||||||
|
for file in CopyLeveldesignSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(LeveldesignDirectory + "/" + file))
|
||||||
|
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||||
|
mkPath(log, LeveldesignWorldDirectory + "/" + dir)
|
||||||
|
for file in CopyLeveldesignWorldSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(LeveldesignWorldDirectory + "/" + file))
|
||||||
|
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||||
|
mkPath(log, LeveldesignDfnDirectory + "/" + dir)
|
||||||
|
for file in CopyLeveldesignDfnSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(LeveldesignDfnDirectory + "/" + file))
|
||||||
|
for dir in CopyDatabaseSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
for file in CopyDatabaseSourceFiles:
|
||||||
|
mkPath(log, os.path.dirname(DatabaseDirectory + "/" + file))
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, InstallDirectory + "/" + CopyInstallDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/copy/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/copy/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export copy
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export copy
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 copy")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/copy/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/copy/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build copy
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build copy
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 copy")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
85
code/nel/tools/build_gamedata/processes/copy/3_install.py
Normal file
85
code/nel/tools/build_gamedata/processes/copy/3_install.py
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install copy
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install copy
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
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 copy")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
installPath = InstallDirectory + "/" + CopyInstallDirectory
|
||||||
|
mkPath(log, installPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install copy <<<")
|
||||||
|
for dir in CopyDirectSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, dir, installPath)
|
||||||
|
for file in CopyDirectSourceFiles:
|
||||||
|
copyFileIfNeeded(log, file, installPath + "/" + os.path.basename(file))
|
||||||
|
for dir in CopyLeveldesignSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDirectory + "/" + dir, installPath)
|
||||||
|
for file in CopyLeveldesignSourceFiles:
|
||||||
|
copyFileIfNeeded(log, LeveldesignDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
for dir in CopyLeveldesignWorldSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignWorldDirectory + "/" + dir, installPath)
|
||||||
|
for file in CopyLeveldesignWorldSourceFiles:
|
||||||
|
copyFileIfNeeded(log, LeveldesignWorldDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
for dir in CopyLeveldesignDfnSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, LeveldesignDfnDirectory + "/" + dir, installPath)
|
||||||
|
for file in CopyLeveldesignDfnSourceFiles:
|
||||||
|
copyFileIfNeeded(log, LeveldesignDfnDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
for dir in CopyDatabaseSourceDirectories:
|
||||||
|
copyFilesRecursiveNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, installPath)
|
||||||
|
for file in CopyDatabaseSourceFiles:
|
||||||
|
copyFileIfNeeded(log, DatabaseDirectory + "/" + file, installPath + "/" + os.path.basename(file))
|
||||||
|
|
||||||
|
try:
|
||||||
|
CopyWindowsExeDllCfgSourceFiles
|
||||||
|
except NameError:
|
||||||
|
CopyWindowsExeDllCfgSourceFiles = [ ]
|
||||||
|
for file in CopyWindowsExeDllCfgSourceFiles:
|
||||||
|
filePath = findFileMultiDir(log, WindowsExeDllCfgDirectories, file)
|
||||||
|
if (filePath != ""):
|
||||||
|
copyFileIfNeeded(log, filePath, installPath + "/" + os.path.basename(file))
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + DisplaceClientDirectory)
|
mkPath(log, InstallDirectory + "/" + DisplaceInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -44,11 +44,11 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install displace <<<")
|
printLog(log, ">>> Install displace <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + DisplaceClientDirectory
|
installPath = InstallDirectory + "/" + DisplaceInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, clientPath, ".tga")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, clientPath, ".png")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, installPath, ".png")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -58,7 +58,7 @@ mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
|
mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -45,8 +45,8 @@ printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install farbank <<<")
|
printLog(log, ">>> Install farbank <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
|
mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, ClientDataDirectory + "/" + BankClientDirectory, ".farbank")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, InstallDirectory + "/" + BankInstallDirectory, ".farbank")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + FontClientDirectory)
|
mkPath(log, InstallDirectory + "/" + FontInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,16 +43,16 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + FontClientDirectory
|
installPath = InstallDirectory + "/" + FontInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
|
fontExportDir = ExportBuildDirectory + "/" + FontExportDirectory
|
||||||
mkPath(log, fontExportDir)
|
mkPath(log, fontExportDir)
|
||||||
|
|
||||||
printLog(log, ">>> Install font <<<")
|
printLog(log, ">>> Install font <<<")
|
||||||
copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".ttf")
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".ttf")
|
||||||
copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".afm")
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".afm")
|
||||||
copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".pfb")
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfb")
|
||||||
copyFilesExtNoTreeIfNeeded(log, fontExportDir, clientPath, ".pfm")
|
copyFilesExtNoTreeIfNeeded(log, fontExportDir, installPath, ".pfm")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -70,7 +70,7 @@ mkPath(log, ExportBuildDirectory + "/" + IgOtherBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
#mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
|
#mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPathIg = ClientDataDirectory + "/" + IgClientDirectory
|
clientPathIg = InstallDirectory + "/" + IgInstallDirectory
|
||||||
mkPath(log, clientPathIg)
|
mkPath(log, clientPathIg)
|
||||||
|
|
||||||
printLog(log, ">>> Install ig <<<")
|
printLog(log, ">>> Install ig <<<")
|
||||||
|
|
|
@ -56,7 +56,7 @@ mkPath(log, ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
|
mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install ig_light <<<")
|
printLog(log, ">>> Install ig_light <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + IgOtherLightedBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + IgClientDirectory
|
destDir = InstallDirectory + "/" + IgInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + InterfaceClientDirectory)
|
mkPath(log, InstallDirectory + "/" + InterfaceInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -56,8 +56,8 @@ for dirs in InterfaceSourceDirectories:
|
||||||
mkPath(log, newpath)
|
mkPath(log, newpath)
|
||||||
for dir in dirs:
|
for dir in dirs:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".png")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".png")
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each interface directory to compress in one DXTC
|
# For each interface directory to compress in one DXTC
|
||||||
|
@ -65,8 +65,8 @@ printLog(log, ">>> Export interface dxtc <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory)
|
||||||
for dir in InterfaceDxtcSourceDirectories:
|
for dir in InterfaceDxtcSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".tga")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".tga")
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".png")
|
copyFilesExtNoSubdirIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".png")
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each interface fullscreen directory compress independently all in dds
|
# For each interface fullscreen directory compress independently all in dds
|
||||||
|
@ -96,8 +96,7 @@ printLog(log, ">>> Export interface 3d <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
for dir in Interface3DSourceDirectories:
|
for dir in Interface3DSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory, ".tga")
|
copyFiles(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory, ".png")
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -43,24 +43,24 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + InterfaceClientDirectory
|
installPath = InstallDirectory + "/" + InterfaceInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install interface <<<")
|
printLog(log, ">>> Install interface <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install interface dxtc <<<")
|
printLog(log, ">>> Install interface dxtc <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install interface fullscreen <<<")
|
printLog(log, ">>> Install interface fullscreen <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install interface 3d <<<")
|
printLog(log, ">>> Install interface 3d <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + Interface3DExportDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + Interface3DExportDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -49,6 +49,10 @@ for dir in MapSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
for dir in MapUncompressedSourceDirectories:
|
for dir in MapUncompressedSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
if MapHlsBankFileName != None or MapPanoplyFileList != None:
|
||||||
|
for panoplyCfg in MapPanoplySourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + panoplyCfg[2])
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + panoplyCfg[3])
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
@ -58,11 +62,16 @@ mkPath(log, ExportBuildDirectory + "/" + MapUncompressedExportDirectory)
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + MapBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + MapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
|
||||||
|
if MapHlsBankFileName != None or MapPanoplyFileList != None:
|
||||||
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + MapClientDirectory)
|
mkPath(log, InstallDirectory + "/" + MapInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -50,10 +50,61 @@ PanoplyMaker = findTool(log, ToolDirectories, PanoplyMakerTool, ToolSuffix)
|
||||||
HlsBankMaker = findTool(log, ToolDirectories, HlsBankMakerTool, ToolSuffix)
|
HlsBankMaker = findTool(log, ToolDirectories, HlsBankMakerTool, ToolSuffix)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Panoply <<<")
|
buildPanoplyTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_panoply.tag"
|
||||||
printLog(log, "********************************")
|
buildCompressTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_compress.tag"
|
||||||
printLog(log, "******** TODO ********")
|
|
||||||
printLog(log, "********************************")
|
if MapPanoplyFileList != None:
|
||||||
|
printLog(log, ">>> Panoply build <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
|
||||||
|
directoriesCheck = [ ]
|
||||||
|
for panoplyCfg in MapPanoplySourceDirectories:
|
||||||
|
directoriesCheck += [ panoplyCfg[2] ]
|
||||||
|
directoriesCheck += [ panoplyCfg[3] ]
|
||||||
|
if (needUpdateMultiDirNoSubdirFile(log, DatabaseDirectory, directoriesCheck, buildPanoplyTagPath)):
|
||||||
|
mkPath(log, ActiveProjectDirectory + "/generated")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, ">>> Move panoply and hls to cache <<<")
|
||||||
|
removeFilesDirsRecursive(log, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
moveDir(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
||||||
|
moveFilesNoSubdir(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory, ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory)
|
||||||
|
printLog(log, "")
|
||||||
|
for panoplyCfg in MapPanoplySourceDirectories:
|
||||||
|
printLog(log, ">>> Panoply " + panoplyCfg[1] + " <<<")
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + panoplyCfg[2])
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + panoplyCfg[3])
|
||||||
|
cfg = open(ActiveProjectDirectory + "/generated/current_panoply.cfg", "w")
|
||||||
|
cfgCommon = open(ActiveProjectDirectory + "/" + panoplyCfg[0], "r")
|
||||||
|
cfgRace = open(ActiveProjectDirectory + "/" + panoplyCfg[1], "r")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("// CURRENT PANOPLY CONFIGURATION\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("input_path = \"" + DatabaseDirectory + "/" + panoplyCfg[2] + "\";\n")
|
||||||
|
cfg.write("additionnal_paths = \"" + DatabaseDirectory + "/" + panoplyCfg[3] + "\";\n")
|
||||||
|
cfg.write("output_path = \"" + ExportBuildDirectory + "/" + MapPanoplyBuildDirectory + "\";\n")
|
||||||
|
cfg.write("hls_info_path = \"" + ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory + "\";\n")
|
||||||
|
cfg.write("cache_path = \"" + ExportBuildDirectory + "/" + MapPanoplyCacheBuildDirectory + "\";\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
cfg.write("/////////////////////////////////////////////\n")
|
||||||
|
cfg.write("\n")
|
||||||
|
for line in cfgCommon:
|
||||||
|
cfg.write(line)
|
||||||
|
for line in cfgRace:
|
||||||
|
cfg.write(line)
|
||||||
|
cfg.close()
|
||||||
|
cfgCommon.close()
|
||||||
|
cfgRace.close()
|
||||||
|
subprocess.call([ PanoplyMaker, ActiveProjectDirectory + "/generated/current_panoply.cfg" ])
|
||||||
|
printLog(log, "")
|
||||||
|
tagFile = open(buildPanoplyTagPath, "w")
|
||||||
|
tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
|
||||||
|
tagFile.close()
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP *.*")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Compress TGA and PNG maps to DDS <<<")
|
printLog(log, ">>> Compress TGA and PNG maps to DDS <<<")
|
||||||
if TgaToDds == "":
|
if TgaToDds == "":
|
||||||
|
@ -61,34 +112,55 @@ if TgaToDds == "":
|
||||||
elif ExecTimeout == "":
|
elif ExecTimeout == "":
|
||||||
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
sourcePath = ExportBuildDirectory + "/" + MapExportDirectory
|
|
||||||
mkPath(log, sourcePath)
|
|
||||||
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
||||||
mkPath(log, destPath)
|
mkPath(log, destPath)
|
||||||
files = findFilesNoSubdir(log, sourcePath, ".tga")
|
sourcePaths = [ ExportBuildDirectory + "/" + MapExportDirectory ]
|
||||||
for file in files:
|
writeTag = 0
|
||||||
sourceFile = sourcePath + "/" + file
|
if MapPanoplyFileList != None:
|
||||||
destFile = destPath + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
|
if needUpdate(log, buildPanoplyTagPath, buildCompressTagPath):
|
||||||
|
sourcePaths += [ ExportBuildDirectory + "/" + MapPanoplyBuildDirectory ]
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + ExportBuildDirectory + "/" + MapPanoplyBuildDirectory + "/*.*")
|
||||||
|
for sourcePath in sourcePaths:
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
files = os.listdir(sourcePath)
|
||||||
|
len_tga_png = len(".tga")
|
||||||
|
len_dds = len(".dds")
|
||||||
|
for fileName in files:
|
||||||
|
if isLegalFileName(fileName):
|
||||||
|
sourceFile = sourcePath + "/" + fileName
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
if (fileName[-len_tga_png:].lower() == ".tga") or (fileName[-len_tga_png:].lower() == ".png"):
|
||||||
|
destFile = destPath + "/" + os.path.basename(fileName)[0:-len_tga_png] + ".dds"
|
||||||
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
||||||
files = findFilesNoSubdir(log, sourcePath, ".png")
|
writeTag = 1
|
||||||
for file in files:
|
elif fileName[-len_dds:].lower() == ".dds":
|
||||||
sourceFile = sourcePath + "/" + file
|
copyFileIfNeeded(log, sourceFile, destPath + "/" + os.path.basename(fileName))
|
||||||
destFile = destPath + "/" + os.path.basename(file)[0:-len(".png")] + ".dds"
|
writeTag = 1
|
||||||
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
elif not os.path.isdir(sourceFile):
|
||||||
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, destPath, ".dds")
|
if writeTag:
|
||||||
|
tagFile = open(buildCompressTagPath, "w")
|
||||||
|
tagFile.write(time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())) + "\n")
|
||||||
|
tagFile.close()
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Compress panoply maps to DDS <<<")
|
if MapHlsBankFileName != None:
|
||||||
printLog(log, "********************************")
|
printLog(log, ">>> Build the HLSBank <<<")
|
||||||
printLog(log, "******** TODO ********")
|
if HlsBankMaker == "":
|
||||||
printLog(log, "********************************")
|
toolLogFail(log, HlsBankMakerTool, ToolSuffix)
|
||||||
|
else:
|
||||||
printLog(log, ">>> Build the HLSBank (if hlsInfo present, and if build wanted) <<<")
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory)
|
||||||
printLog(log, "********************************")
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory)
|
||||||
printLog(log, "******** TODO ********")
|
hlsBankPath = ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory + "/" + MapHlsBankFileName
|
||||||
printLog(log, "********************************")
|
if (needUpdate(log, buildPanoplyTagPath, hlsBankPath) or needUpdate(log, buildCompressTagPath, hlsBankPath)):
|
||||||
|
if os.path.isfile(hlsBankPath):
|
||||||
|
os.remove(hlsBankPath)
|
||||||
|
subprocess.call([ HlsBankMaker, ExportBuildDirectory + "/" + MapPanoplyHlsInfoBuildDirectory, hlsBankPath ])
|
||||||
|
else:
|
||||||
|
printLog(log,"SKIP " + hlsBankPath)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,32 +43,46 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + MapClientDirectory
|
installPath = InstallDirectory + "/" + MapInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install map <<<")
|
printLog(log, ">>> Install map <<<")
|
||||||
sourcePath = ExportBuildDirectory + "/" + MapBuildDirectory
|
sourcePaths = [ ExportBuildDirectory + "/" + MapBuildDirectory ] + [ ExportBuildDirectory + "/" + MapUncompressedExportDirectory ]
|
||||||
|
for sourcePath in sourcePaths:
|
||||||
mkPath(log, sourcePath)
|
mkPath(log, sourcePath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".dds")
|
files = os.listdir(sourcePath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".png")
|
len_ext = 4
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".tga")
|
for fileName in files:
|
||||||
sourcePath = ExportBuildDirectory + "/" + MapUncompressedExportDirectory
|
if isLegalFileName(fileName):
|
||||||
|
sourceFile = sourcePath + "/" + fileName
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
if (fileName[-len_ext:].lower() == ".tga") or (fileName[-len_ext:].lower() == ".png") or (fileName[-len_ext:].lower() == ".dds"):
|
||||||
|
copyFileIfNeeded(log, sourceFile, installPath + "/" + os.path.basename(fileName))
|
||||||
|
elif not os.path.isdir(sourceFile):
|
||||||
|
printLog(log, "FAIL ?! file not dir or file ?! " + sourceFile)
|
||||||
|
|
||||||
|
if MapPanoplyFileList != None:
|
||||||
|
printLog(log, ">>> Install panoply file list <<<")
|
||||||
|
buildPanoplyTagPath = ExportBuildDirectory + "/" + MapTagBuildDirectory + "/build_panoply.tag"
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapTagBuildDirectory)
|
||||||
|
if needUpdate(log, buildPanoplyTagPath, installPath + "/" + MapPanoplyFileList):
|
||||||
|
sourcePath = ExportBuildDirectory + "/" + MapPanoplyBuildDirectory
|
||||||
mkPath(log, sourcePath)
|
mkPath(log, sourcePath)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".dds")
|
printLog(log, "WRITE " + installPath + "/" + MapPanoplyFileList)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".png")
|
lf = open(installPath + "/" + MapPanoplyFileList, "w")
|
||||||
copyFilesExtNoSubdirIfNeeded(log, sourcePath, clientPath, ".tga")
|
files = os.listdir(sourcePath)
|
||||||
|
for file in files:
|
||||||
printLog(log, ">>> Install map panoply <<<")
|
if isLegalFileName(file):
|
||||||
printLog(log, "********************************")
|
lf.write(file + "\n")
|
||||||
printLog(log, "******** TODO ********")
|
lf.close()
|
||||||
printLog(log, "********************************")
|
else:
|
||||||
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
printLog(log, "SKIP " + installPath + "/" + MapPanoplyBuildDirectory)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory, clientPath, ".dds")
|
|
||||||
|
|
||||||
|
if MapHlsBankFileName != None:
|
||||||
printLog(log, ">>> Install map hlsbank <<<")
|
printLog(log, ">>> Install map hlsbank <<<")
|
||||||
printLog(log, "********************************")
|
sourcePath = ExportBuildDirectory + "/" + MapPanoplyHlsBankBuildDirectory
|
||||||
printLog(log, "******** TODO ********")
|
mkPath(log, sourcePath)
|
||||||
printLog(log, "********************************")
|
copyFilesExtNoSubdirIfNeeded(log, sourcePath, installPath, ".hlsbank")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + PacsPrimClientDirectory)
|
mkPath(log, InstallDirectory + "/" + PacsPrimInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export pacs_prim
|
# \brief Export pacs_prim
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export pacs_prim
|
# Export pacs_prim
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + PacsPrimClientDirectory
|
installPath = InstallDirectory + "/" + PacsPrimInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install pacs_prim <<<")
|
printLog(log, ">>> Install pacs_prim <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory)
|
||||||
copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory, clientPath, ".pacs_prim")
|
copyFilesExtNoSubdirIfNeeded(log, ExportBuildDirectory + "/" + PacsPrimExportDirectory, installPath, ".pacs_prim")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + PsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + PsInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install ps <<<")
|
printLog(log, ">>> Install ps <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + PsExportDirectory
|
srcDir = ExportBuildDirectory + "/" + PsExportDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + PsClientDirectory
|
destDir = InstallDirectory + "/" + PsInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + PacsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + PacsInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export rbank
|
# \brief Export rbank
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export rbank
|
# Export rbank
|
||||||
|
|
|
@ -44,21 +44,21 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install rbank <<<")
|
printLog(log, ">>> Install rbank <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + PacsClientDirectory
|
installPath = InstallDirectory + "/" + PacsInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
srcPath = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
|
srcPath = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
|
||||||
mkPath(log, srcPath)
|
mkPath(log, srcPath)
|
||||||
copyFilesNoTreeIfNeeded(log, srcPath, clientPath)
|
copyFilesNoTreeIfNeeded(log, srcPath, installPath)
|
||||||
#clientPath = ClientDataDirectory + "/" + PacsClientDirectory
|
#installPath = InstallDirectory + "/" + PacsInstallDirectory
|
||||||
#mkPath(log, clientPath)
|
#mkPath(log, installPath)
|
||||||
#srcPath = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
|
#srcPath = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
|
||||||
#mkPath(log, srcPath)
|
#mkPath(log, srcPath)
|
||||||
#copyFileIfNeeded(log, srcPath + "/tempMerged.rbank", clientPath + "/" + RbankRbankName + ".rbank")
|
#copyFileIfNeeded(log, srcPath + "/tempMerged.rbank", installPath + "/" + RbankRbankName + ".rbank")
|
||||||
#copyFileIfNeeded(log, srcPath + "/tempMerged.gr", clientPath + "/" + RbankRbankName + ".gr")
|
#copyFileIfNeeded(log, srcPath + "/tempMerged.gr", installPath + "/" + RbankRbankName + ".gr")
|
||||||
#for file in findFiles(log, srcPath, "", ".lr"):
|
#for file in findFiles(log, srcPath, "", ".lr"):
|
||||||
# copyFileIfNeeded(log, srcPath + "/" + file, clientPath + "/" + file.replace("tempMerged", RbankRbankName))
|
# copyFileIfNeeded(log, srcPath + "/" + file, installPath + "/" + file.replace("tempMerged", RbankRbankName))
|
||||||
# mkPath(log, ExportBuildDirectory + "/" + rbankBuildDirectory)
|
# mkPath(log, ExportBuildDirectory + "/" + rbankBuildDirectory)
|
||||||
# copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + rbankBuildDirectory, clientPath)
|
# copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + rbankBuildDirectory, installPath)
|
||||||
#copyFileIfNeeded
|
#copyFileIfNeeded
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
|
|
|
@ -47,8 +47,11 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
for dir in ShapeSourceDirectories:
|
for dir in ShapeSourceDirectories:
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
for dir in MapSourceDirectories:
|
|
||||||
mkPath(log, DatabaseDirectory + "/" + dir)
|
# Setup pipeline lookup directories
|
||||||
|
printLog(log, ">>> Setup pipeline lookup directories <<<")
|
||||||
|
for dir in MapLookupDirectories:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
@ -69,8 +72,8 @@ mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
|
mkPath(log, InstallDirectory + "/" + ShapeInstallDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + LightmapClientDirectory)
|
mkPath(log, InstallDirectory + "/" + LightmapInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -111,8 +111,8 @@ if len(CoarseMeshTextureNames) > 0:
|
||||||
cf.write("search_path = \n")
|
cf.write("search_path = \n")
|
||||||
cf.write("{\n")
|
cf.write("{\n")
|
||||||
cf.write("\t\"" + shapeWithCoarseMesh + "\", \n")
|
cf.write("\t\"" + shapeWithCoarseMesh + "\", \n")
|
||||||
for dir in MapSourceDirectories:
|
for dir in MapLookupDirectories:
|
||||||
cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
cf.write("};\n")
|
cf.write("};\n")
|
||||||
cf.write("\n")
|
cf.write("\n")
|
||||||
cf.write("list_mesh = \n")
|
cf.write("list_mesh = \n")
|
||||||
|
|
|
@ -44,24 +44,24 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install shape <<<")
|
printLog(log, ">>> Install shape <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + ShapeClientDirectory
|
installPath = InstallDirectory + "/" + ShapeInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory, clientPath, ".shape")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeClodtexBuildDirectory, installPath, ".shape")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".shape")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, installPath, ".shape")
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".dds")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, installPath, ".dds")
|
||||||
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, clientPath, ".anim")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, installPath, ".anim")
|
||||||
|
|
||||||
# ls anim | grep ".anim" >> $client_directory/auto_animations_list.txt
|
# ls anim | grep ".anim" >> $client_directory/auto_animations_list.txt
|
||||||
|
|
||||||
printLog(log, ">>> Install shape lightmaps <<<")
|
printLog(log, ">>> Install shape lightmaps <<<")
|
||||||
clientPath = ClientDataDirectory + "/" + LightmapClientDirectory
|
installPath = InstallDirectory + "/" + LightmapInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory, clientPath, ".tga")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeLightmap16BitsBuildDirectory, installPath, ".tga")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -46,18 +46,16 @@ printLog(log, "")
|
||||||
# Setup source directories
|
# Setup source directories
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
mkPath(log, LeveldesignDirectory)
|
mkPath(log, LeveldesignDirectory)
|
||||||
mkPath(log, LeveldesignDfnDirectory)
|
mkPath(log, LeveldesignWorldDirectory)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + SheetIdClientDirectory)
|
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -53,9 +53,8 @@ if MakeSheetId == "":
|
||||||
toolLogFail(log, MakeSheetIdTool, ToolSuffix)
|
toolLogFail(log, MakeSheetIdTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
mkPath(log, LeveldesignDirectory)
|
mkPath(log, LeveldesignDirectory)
|
||||||
mkPath(log, LeveldesignDfnDirectory)
|
mkPath(log, LeveldesignWorldDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
subprocess.call([ MakeSheetId, "-o" + LeveldesignDirectory + "/game_elem/sheet_id.bin", LeveldesignDirectory + "/game_elem", LeveldesignDirectory + "/game_element", LeveldesignWorldDirectory ])
|
||||||
subprocess.call([ MakeSheetId, "-c" + ScriptDirectory + "/configuration/make_sheet_id.cfg", "-o" + ExportBuildDirectory + "/" + SheetIdBuildDirectory + "/" + "sheet_id.bin", LeveldesignDirectory ])
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -43,13 +43,6 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + SheetIdClientDirectory
|
|
||||||
mkPath(log, clientPath)
|
|
||||||
|
|
||||||
printLog(log, ">>> Install sheet_id <<<")
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory, clientPath, ".bin")
|
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -47,18 +47,20 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Setup source directories <<<")
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
mkPath(log, LeveldesignDirectory)
|
mkPath(log, LeveldesignDirectory)
|
||||||
mkPath(log, LeveldesignDfnDirectory)
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
|
mkPath(log, DataCommonDirectory)
|
||||||
|
mkPath(log, GamedevDirectory)
|
||||||
|
mkPath(log, PrimitivesDirectory)
|
||||||
|
|
||||||
# Setup export directories
|
# Setup export directories
|
||||||
printLog(log, ">>> Setup export directories <<<")
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
# Setup build directories
|
# Setup build directories
|
||||||
printLog(log, ">>> Setup build directories <<<")
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + SheetsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SheetsInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -44,19 +44,39 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# Find tools
|
# Find tools
|
||||||
BuildSheets = findTool(log, ToolDirectories, BuildSheetsTool, ToolSuffix)
|
SheetsPacker = findTool(log, ToolDirectories, SheetsPackerTool, ToolSuffix)
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
# For each sheets directory
|
# For each sheets directory
|
||||||
printLog(log, ">>> Build sheets <<<")
|
printLog(log, ">>> Build sheets <<<")
|
||||||
if BuildSheets == "":
|
if SheetsPacker == "":
|
||||||
toolLogFail(log, BuildSheetsTool, ToolSuffix)
|
toolLogFail(log, SheetsPackerTool, ToolSuffix)
|
||||||
else:
|
else:
|
||||||
mkPath(log, LeveldesignDirectory)
|
mkPath(log, LeveldesignDirectory)
|
||||||
mkPath(log, LeveldesignDfnDirectory)
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
mkPath(log, DataCommonDirectory)
|
||||||
|
mkPath(log, GamedevDirectory)
|
||||||
|
mkPath(log, PrimitivesDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
subprocess.call([ BuildSheets, LeveldesignDirectory, LeveldesignDfnDirectory, ExportBuildDirectory + "/" + SheetIdBuildDirectory, ExportBuildDirectory + "/" + SheetsBuildDirectory ])
|
cf = open("sheets_packer.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// SHEETS PACKER CONFIG FILE\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("DataPath = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
cf.write("\t\"" + LeveldesignDirectory + "\", \n")
|
||||||
|
cf.write("\t\"" + LeveldesignDfnDirectory + "\", \n")
|
||||||
|
cf.write("\t\"" + DataCommonDirectory + "\", \n")
|
||||||
|
cf.write("\t\"" + GamedevDirectory + "\", \n")
|
||||||
|
cf.write("\t\"" + PrimitivesDirectory + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("WorldSheet = \"" + WorldSheet + "\";\n")
|
||||||
|
cf.write("PrimitivesPath = \"" + PrimitivesDirectory + "\";\n")
|
||||||
|
cf.write("OutputDataPath = \"" + ExportBuildDirectory + "/" + SheetsBuildDirectory + "\";\n")
|
||||||
|
cf.write("LigoPrimitiveClass = \"" + LigoPrimitiveClass + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ SheetsPacker ])
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + SheetsClientDirectory
|
installPath = InstallDirectory + "/" + SheetsInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install sheets <<<")
|
printLog(log, ">>> Install sheets <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetsBuildDirectory, clientPath, ".packed_sheets")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetsBuildDirectory, installPath, ".packed_sheets")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + SkelClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SkelInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export skel
|
# \brief Export skel
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export skel
|
# Export skel
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + SkelClientDirectory
|
installPath = InstallDirectory + "/" + SkelInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install skel <<<")
|
printLog(log, ">>> Install skel <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SkelExportDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SkelExportDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -56,7 +56,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
|
mkPath(log, InstallDirectory + "/" + BankInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + BankClientDirectory
|
installPath = InstallDirectory + "/" + BankInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install smallbank <<<")
|
printLog(log, ">>> Install smallbank <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SmallbankExportDirectory, clientPath, ".smallbank")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SmallbankExportDirectory, installPath, ".smallbank")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -59,8 +59,8 @@ mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + SoundSheetsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SoundSheetsInstallDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SoundSamplebanksInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -45,13 +45,13 @@ printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install sound packed_sheets <<<")
|
printLog(log, ">>> Install sound packed_sheets <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + SoundSheetsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SoundSheetsInstallDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory, ClientDataDirectory + "/" + SoundSheetsClientDirectory, ".packed_sheets")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory, InstallDirectory + "/" + SoundSheetsInstallDirectory, ".packed_sheets")
|
||||||
|
|
||||||
printLog(log, ">>> Install sound samplebanks <<<")
|
printLog(log, ">>> Install sound samplebanks <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SoundSamplebanksInstallDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory, ".sample_bank")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory, InstallDirectory + "/" + SoundSamplebanksInstallDirectory, ".sample_bank")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + SwtClientDirectory)
|
mkPath(log, InstallDirectory + "/" + SwtInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export swt
|
# \brief Export swt
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export swt
|
# Export swt
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + SwtClientDirectory
|
installPath = InstallDirectory + "/" + SwtInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install skeleton weigths <<<")
|
printLog(log, ">>> Install skeleton weigths <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + SwtExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + SwtExportDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SwtExportDirectory, clientPath)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SwtExportDirectory, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + TilesClientDirectory)
|
mkPath(log, InstallDirectory + "/" + TilesInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -44,9 +44,9 @@ printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
printLog(log, ">>> Install tiles <<<")
|
printLog(log, ">>> Install tiles <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + TilesClientDirectory)
|
mkPath(log, InstallDirectory + "/" + TilesInstallDirectory)
|
||||||
mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory)
|
||||||
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + TilesExportDirectory, ClientDataDirectory + "/" + TilesClientDirectory)
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + TilesExportDirectory, InstallDirectory + "/" + TilesInstallDirectory)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -58,7 +58,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + VegetClientDirectory)
|
mkPath(log, InstallDirectory + "/" + VegetInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export veget
|
# \brief Export veget
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export veget
|
# Export veget
|
||||||
|
|
|
@ -46,9 +46,9 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install veget <<<")
|
printLog(log, ">>> Install veget <<<")
|
||||||
exportPath = ExportBuildDirectory + "/" + VegetExportDirectory
|
exportPath = ExportBuildDirectory + "/" + VegetExportDirectory
|
||||||
mkPath(log, exportPath)
|
mkPath(log, exportPath)
|
||||||
clientPath = ClientDataDirectory + "/" + VegetClientDirectory
|
installPath = InstallDirectory + "/" + VegetInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
copyFilesNoTreeIfNeeded(log, exportPath, clientPath)
|
copyFilesNoTreeIfNeeded(log, exportPath, installPath)
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -57,7 +57,7 @@ printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + VegetSetClientDirectory)
|
mkPath(log, InstallDirectory + "/" + VegetSetInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -43,12 +43,12 @@ printLog(log, "-------")
|
||||||
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
|
|
||||||
clientPath = ClientDataDirectory + "/" + VegetSetClientDirectory
|
installPath = InstallDirectory + "/" + VegetSetInstallDirectory
|
||||||
mkPath(log, clientPath)
|
mkPath(log, installPath)
|
||||||
|
|
||||||
printLog(log, ">>> Install vegetset <<<")
|
printLog(log, ">>> Install vegetset <<<")
|
||||||
mkPath(log, ExportBuildDirectory + "/" + VegetSetExportDirectory)
|
mkPath(log, ExportBuildDirectory + "/" + VegetSetExportDirectory)
|
||||||
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + VegetSetExportDirectory, clientPath, ".vegetset")
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + VegetSetExportDirectory, installPath, ".vegetset")
|
||||||
|
|
||||||
printLog(log, "")
|
printLog(log, "")
|
||||||
log.close()
|
log.close()
|
||||||
|
|
|
@ -58,7 +58,7 @@ mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + ZoneClientDirectory)
|
mkPath(log, InstallDirectory + "/" + ZoneInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# \file 1_export.py
|
# \file 1_export.py
|
||||||
# \brief Export zone
|
# \brief Export zone
|
||||||
# \date 2010-09-03-12-46-GMT
|
# \date 2010-09-19-14-19-GMT
|
||||||
# \author Jan Boon (Kaetemi)
|
# \author Jan Boon (Kaetemi)
|
||||||
# Python port of game data build pipeline.
|
# Python port of game data build pipeline.
|
||||||
# Export zone
|
# Export zone
|
||||||
|
|
|
@ -63,9 +63,9 @@ mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory)
|
||||||
|
|
||||||
# Setup client directories
|
# Setup client directories
|
||||||
printLog(log, ">>> Setup client directories <<<")
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
mkPath(log, ClientDataDirectory + "/" + ZoneClientDirectory)
|
mkPath(log, InstallDirectory + "/" + ZoneInstallDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
|
mkPath(log, InstallDirectory + "/" + IgInstallDirectory)
|
||||||
mkPath(log, ClientDataDirectory + "/" + WaterMapsClientDirectory)
|
mkPath(log, InstallDirectory + "/" + WaterMapsInstallDirectory)
|
||||||
|
|
||||||
log.close()
|
log.close()
|
||||||
|
|
||||||
|
|
|
@ -46,21 +46,21 @@ printLog(log, "")
|
||||||
printLog(log, ">>> Install zone_light zones <<<")
|
printLog(log, ">>> Install zone_light zones <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + ZoneLightBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + ZoneLightBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + ZoneClientDirectory
|
destDir = InstallDirectory + "/" + ZoneInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
printLog(log, ">>> Install zone_light water maps <<<")
|
printLog(log, ">>> Install zone_light water maps <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + ZoneLightWaterShapesLightedExportDirectory
|
srcDir = ExportBuildDirectory + "/" + ZoneLightWaterShapesLightedExportDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + WaterMapsClientDirectory
|
destDir = InstallDirectory + "/" + WaterMapsInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
printLog(log, ">>> Install zone_light igs <<<")
|
printLog(log, ">>> Install zone_light igs <<<")
|
||||||
srcDir = ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory
|
srcDir = ExportBuildDirectory + "/" + ZoneLightIgLandBuildDirectory
|
||||||
mkPath(log, srcDir)
|
mkPath(log, srcDir)
|
||||||
destDir = ClientDataDirectory + "/" + IgClientDirectory
|
destDir = InstallDirectory + "/" + IgInstallDirectory
|
||||||
mkPath(log, destDir)
|
mkPath(log, destDir)
|
||||||
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file directories.py
|
||||||
|
# \brief Directories configuration
|
||||||
|
# \date 2010-08-27 17:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# \date 2001-2005
|
||||||
|
# \author Nevrax
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Directories configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# *** COMMON NAMES AND PATHS ***
|
||||||
|
CommonName = "cfg"
|
||||||
|
CommonPath = "common/" + CommonName
|
||||||
|
|
||||||
|
|
||||||
|
# *** DIRECT SOURCE DIRECTORIES ***
|
||||||
|
|
||||||
|
# Copy dir directories
|
||||||
|
CopyDirectSourceDirectories = [ ]
|
||||||
|
CopyDirectSourceFiles = [ ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** SOURCE DIRECTORIES IN LEVELDESIGN ***
|
||||||
|
CopyLeveldesignSourceDirectories = [ ]
|
||||||
|
CopyLeveldesignSourceFiles = [ ]
|
||||||
|
CopyLeveldesignWorldSourceDirectories = [ ]
|
||||||
|
CopyLeveldesignWorldSourceFiles = [ ]
|
||||||
|
CopyLeveldesignDfnSourceDirectories = [ ]
|
||||||
|
CopyLeveldesignDfnSourceFiles = [ ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||||
|
|
||||||
|
# Copy dir directories
|
||||||
|
CopyDatabaseSourceDirectories = [ ]
|
||||||
|
CopyDatabaseSourceFiles = [ ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** SPECIAL SOURCES ***
|
||||||
|
|
||||||
|
# Copy dir directories
|
||||||
|
CopyWindowsExeDllCfgSourceFiles = [ ]
|
||||||
|
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_cpu_1.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_cpu_2.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_cpu_3.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_cpu_4.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_gpu_1.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_gpu_2.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_gpu_3.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_gpu_4.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_ram_256.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_ram_512.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_sound_buffer.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_vram_32.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_vram_64.cfg" ]
|
||||||
|
CopyWindowsExeDllCfgSourceFiles += [ "client_vram_128.cfg" ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||||
|
|
||||||
|
# Copy
|
||||||
|
CopyInstallDirectory = CommonName
|
|
@ -0,0 +1,37 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file config.py
|
||||||
|
# \brief Process configuration
|
||||||
|
# \date 2010-08-27 17:02GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Process configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# *** PROCESS CONFIGURATION ***
|
||||||
|
|
||||||
|
# *** PROCESS CONFIG ***
|
||||||
|
ProcessToComplete = [ ]
|
||||||
|
ProcessToComplete += [ "copy" ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** COMMON NAMES AND PATHS ***
|
||||||
|
CommonName = "cfg"
|
||||||
|
CommonPath = "common/" + CommonName
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
// ***************************
|
||||||
|
// Animation Optimizer
|
||||||
|
// ***************************
|
||||||
|
|
||||||
|
// Tracks which contain one of those name (eg "Bip01 Finger11.rotquat") will be mark as "Low Precision".
|
||||||
|
// Usefull for memory optimisation. Avoid setting legs or root bones. Warning: case sensitive.
|
||||||
|
anim_low_precision_tracks=
|
||||||
|
{
|
||||||
|
"Finger",
|
||||||
|
"Ponytail",
|
||||||
|
};
|
||||||
|
|
||||||
|
// The Sample Rate.
|
||||||
|
anim_sample_rate= 30;
|
|
@ -0,0 +1,188 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file directories.py
|
||||||
|
# \brief Directories configuration
|
||||||
|
# \date 2010-08-27 17:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# \date 2001-2005
|
||||||
|
# \author Nevrax
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Directories configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# *** COMMON NAMES AND PATHS ***
|
||||||
|
EcosystemName = "characters"
|
||||||
|
EcosystemPath = "common/" + EcosystemName
|
||||||
|
ContinentName = EcosystemName
|
||||||
|
ContinentPath = EcosystemPath
|
||||||
|
CommonName = ContinentName
|
||||||
|
CommonPath = ContinentPath
|
||||||
|
|
||||||
|
|
||||||
|
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||||
|
|
||||||
|
# Skeleton directories
|
||||||
|
SkelSourceDirectories = [ ]
|
||||||
|
SkelSourceDirectories += [ "stuff/fyros/agents/actors/male/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/fyros/agents/actors/female/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/tryker/agents/actors/male/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/tryker/agents/actors/female/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/zorai/agents/actors/male/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/zorai/agents/actors/female/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/matis/agents/actors/male/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/matis/agents/actors/female/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/matis/agents/actors/roadsign/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/caravan/agents/actors/male/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/caravan/agents/actors/female/animation/skeletons" ]
|
||||||
|
SkelSourceDirectories += [ "stuff/caravan/agents/actors/ship/animation/skeletons" ]
|
||||||
|
|
||||||
|
# Skeleton template weight directories
|
||||||
|
SwtSourceDirectories = [ ]
|
||||||
|
SwtSourceDirectories += [ "stuff/fyros/agents/actors/male/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/fyros/agents/actors/female/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/tryker/agents/actors/male/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/tryker/agents/actors/female/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/matis/agents/actors/male/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/matis/agents/actors/female/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/zorai/agents/actors/male/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/zorai/agents/actors/female/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/caravan/agents/actors/male/animation/swt" ]
|
||||||
|
SwtSourceDirectories += [ "stuff/caravan/agents/actors/female/animation/swt" ]
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeSourceDirectories = [ ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/fyros/agents/actors/male" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/fyros/agents/actors/female" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/fyros/agents/actors/visages" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/fyros/agents/actors/bots" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/tryker/agents/actors/male" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/tryker/agents/actors/female" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/tryker/agents/actors/visages" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/tryker/agents/actors/bots" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/matis/agents/actors/male" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/matis/agents/actors/female" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/matis/agents/actors/visages" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/matis/agents/actors/bots" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/matis/agents/actors/roadsign" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/zorai/agents/actors/male" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/zorai/agents/actors/female" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/zorai/agents/actors/visages" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/zorai/agents/actors/bots" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/caravan/agents/actors/female" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/caravan/agents/actors/male" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/caravan/agents/actors/visages" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/caravan/agents/actors/ship" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/generique/agents/actors/female" ]
|
||||||
|
ShapeSourceDirectories += [ "stuff/generique/agents/actors/male" ]
|
||||||
|
|
||||||
|
# Animation directories
|
||||||
|
AnimSourceDirectories = [ ]
|
||||||
|
AnimSourceDirectories += [ "stuff/fyros/agents/actors/male/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/fyros/agents/actors/female/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/tryker/agents/actors/male/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/tryker/agents/actors/female/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/matis/agents/actors/male/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/matis/agents/actors/female/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/matis/agents/actors/roadsign/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/zorai/agents/actors/male/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/zorai/agents/actors/female/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/caravan/agents/actors/male/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/caravan/agents/actors/female/animation/anims" ]
|
||||||
|
AnimSourceDirectories += [ "stuff/caravan/agents/actors/ship/animation/anims" ]
|
||||||
|
|
||||||
|
# cLoD shape directories
|
||||||
|
ClodSourceDirectories = [ ]
|
||||||
|
ClodSourceDirectories += [ "stuff/lod_actors/lod_" + CommonName ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** LOOKUP DIRECTORIES WITHIN THE BUILD PIPELINE *** (TODO: use these instead of search_pathes in properties(_base).cfg)
|
||||||
|
|
||||||
|
# Ig lookup directories used by rbank
|
||||||
|
IgLookupDirectories = [ ]
|
||||||
|
|
||||||
|
# Shape lookup directories used by rbank
|
||||||
|
ShapeLookupDirectories = [ ]
|
||||||
|
ShapeLookupDirectories += [ CommonPath + "/shape_clodtex_build" ]
|
||||||
|
ShapeLookupDirectories += [ CommonPath + "/shape_with_coarse_mesh" ]
|
||||||
|
|
||||||
|
# Map lookup directories used by shape
|
||||||
|
MapLookupDirectories = [ ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
|
# Skeleton directories
|
||||||
|
SkelExportDirectory = CommonPath + "/skel"
|
||||||
|
|
||||||
|
# Skeleton template weight directories
|
||||||
|
SwtExportDirectory = CommonPath + "/swt"
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeTagExportDirectory = CommonPath + "/shape_tag"
|
||||||
|
ShapeNotOptimizedExportDirectory = CommonPath + "/shape_not_optimized"
|
||||||
|
ShapeWithCoarseMeshExportDirectory = CommonPath + "/shape_with_coarse_mesh"
|
||||||
|
ShapeLightmapNotOptimizedExportDirectory = CommonPath + "/shape_lightmap_not_optimized"
|
||||||
|
ShapeAnimExportDirectory = CommonPath + "/shape_anim"
|
||||||
|
|
||||||
|
# Animation directories
|
||||||
|
AnimExportDirectory = CommonPath + "/anim_export"
|
||||||
|
|
||||||
|
# cLoD directories
|
||||||
|
ClodExportDirectory = CommonPath + "/clod_export"
|
||||||
|
ClodTagExportDirectory = CommonPath + "/clod_tag_export"
|
||||||
|
|
||||||
|
|
||||||
|
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
|
# Map directories
|
||||||
|
MapBuildDirectory = CommonPath + "/map"
|
||||||
|
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||||
|
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||||
|
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||||
|
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||||
|
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||||
|
|
||||||
|
# Shape directories
|
||||||
|
ShapeClodtexBuildDirectory = CommonPath + "/shape_clodtex_build"
|
||||||
|
ShapeWithCoarseMeshBuildDirectory = CommonPath + "/shape_with_coarse_mesh_builded"
|
||||||
|
ShapeLightmapBuildDirectory = CommonPath + "/shape_lightmap"
|
||||||
|
ShapeLightmap16BitsBuildDirectory = CommonPath + "/shape_lightmap_16_bits"
|
||||||
|
|
||||||
|
# Animation directories
|
||||||
|
AnimBuildDirectory = CommonPath + "/anim"
|
||||||
|
|
||||||
|
# cLoD directories
|
||||||
|
ClodBankBuildDirectory = CommonPath + "/clod_bank"
|
||||||
|
|
||||||
|
|
||||||
|
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||||
|
|
||||||
|
# Shape directory
|
||||||
|
ShapeInstallDirectory = CommonName + "_shapes"
|
||||||
|
LightmapInstallDirectory = ShapeInstallDirectory
|
||||||
|
|
||||||
|
# Animation directory
|
||||||
|
AnimInstallDirectory = CommonName + "_animations"
|
||||||
|
|
||||||
|
# Skeleton directory
|
||||||
|
SkelInstallDirectory = CommonName + "_skeletons"
|
||||||
|
|
||||||
|
# Skeleton directory
|
||||||
|
SwtInstallDirectory = CommonName + "_swt"
|
|
@ -0,0 +1,108 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file config.py
|
||||||
|
# \brief Process configuration
|
||||||
|
# \date 2010-08-27 17:02GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Process configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
# *** PROCESS CONFIGURATION ***
|
||||||
|
|
||||||
|
# *** PROCESS CONFIG ***
|
||||||
|
ProcessToComplete = [ ]
|
||||||
|
ProcessToComplete += [ "skel" ]
|
||||||
|
ProcessToComplete += [ "swt" ]
|
||||||
|
ProcessToComplete += [ "shape" ]
|
||||||
|
ProcessToComplete += [ "anim" ]
|
||||||
|
ProcessToComplete += [ "clodbank" ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** COMMON NAMES AND PATHS ***
|
||||||
|
EcosystemName = "characters"
|
||||||
|
EcosystemPath = "common/" + EcosystemName
|
||||||
|
ContinentName = EcosystemName
|
||||||
|
ContinentPath = EcosystemPath
|
||||||
|
CommonName = ContinentName
|
||||||
|
CommonPath = ContinentPath
|
||||||
|
|
||||||
|
|
||||||
|
# *** SHAPE EXPORT OPTIONS ***
|
||||||
|
|
||||||
|
# Compute lightmaps ?
|
||||||
|
ShapeExportOptExportLighting = "true"
|
||||||
|
|
||||||
|
# Cast shadow in lightmap ?
|
||||||
|
ShapeExportOptShadow = "true"
|
||||||
|
|
||||||
|
# Lighting limits. 0 : normal, 1 : soft shadows
|
||||||
|
ShapeExportOptLightingLimit = 0
|
||||||
|
|
||||||
|
# Lightmap lumel size
|
||||||
|
ShapeExportOptLumelSize = "0.25"
|
||||||
|
|
||||||
|
# Oversampling value. Can be 1, 2, 4 or 8
|
||||||
|
ShapeExportOptOversampling = 1
|
||||||
|
|
||||||
|
# Does the lightmap must be generated in 8 bits format ?
|
||||||
|
ShapeExportOpt8BitsLightmap = "false"
|
||||||
|
|
||||||
|
# Does the lightmaps export must generate logs ?
|
||||||
|
ShapeExportOptLightmapLog = "true"
|
||||||
|
|
||||||
|
# Coarse mesh texture mul size
|
||||||
|
TextureMulSizeValue = "1.5"
|
||||||
|
|
||||||
|
DoBuildShadowSkin = 0
|
||||||
|
|
||||||
|
|
||||||
|
#panoply_file_list = panoply_files.txt ???
|
||||||
|
#hls_bank_file_name = characters.hlsbank ???
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# *** CLODBANK OPTIONS ***
|
||||||
|
|
||||||
|
ClodConfigFile = "stuff/lod_actors/lod_" + CommonName + "/clod_char_script.cfg"
|
||||||
|
ClodBankFileName = CommonName + ".clodbank"
|
||||||
|
|
||||||
|
|
||||||
|
# *** COARSE MESH TEXTURE NAME ***
|
||||||
|
CoarseMeshTextureNames = [ ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** POSTFIX USED BY THE MULTIPLE TILES SYSTEM ***
|
||||||
|
MultipleTilesPostfix = [ ]
|
||||||
|
MultipleTilesPostfix += [ "_sp" ]
|
||||||
|
MultipleTilesPostfix += [ "_su" ]
|
||||||
|
MultipleTilesPostfix += [ "_au" ]
|
||||||
|
MultipleTilesPostfix += [ "_wi" ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** SHADOW SKIN OPTIONS ***
|
||||||
|
# Characters are made of approx 4000 polys with multiple Skins binded (legs, short, torso...). 35% => 1400 polys.
|
||||||
|
BuildShadowSkin = 1
|
||||||
|
BuildShadowSkinRatio = 35
|
||||||
|
BuildShadowSkinMaxface = 2000
|
||||||
|
|
||||||
|
|
||||||
|
# *** ANIMATIONS OPTIONS ***
|
||||||
|
|
||||||
|
DoOptimizeAnimations = 1
|
|
@ -0,0 +1,78 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file directories.py
|
||||||
|
# \brief Directories configuration
|
||||||
|
# \date 2010-08-27 17:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# \date 2001-2005
|
||||||
|
# \author Nevrax
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Directories configuration.
|
||||||
|
#
|
||||||
|
# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||||||
|
# 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 <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# *** COMMON NAMES AND PATHS ***
|
||||||
|
EcosystemName = "characters_maps_hr"
|
||||||
|
EcosystemPath = "common/" + EcosystemName
|
||||||
|
ContinentName = EcosystemName
|
||||||
|
ContinentPath = EcosystemPath
|
||||||
|
CommonName = ContinentName
|
||||||
|
CommonPath = ContinentPath
|
||||||
|
|
||||||
|
|
||||||
|
# *** SOURCE DIRECTORIES IN THE DATABASE ***
|
||||||
|
|
||||||
|
# Maps directories
|
||||||
|
MapSourceDirectories = [ ]
|
||||||
|
MapSourceDirectories += [ "stuff/caravan/agents/_textures/actors" ]
|
||||||
|
MapSourceDirectories += [ "stuff/caravan/agents/_textures/actors/visages" ]
|
||||||
|
|
||||||
|
MapUncompressedSourceDirectories = [ ]
|
||||||
|
|
||||||
|
MapPanoplySourceDirectories = [ ]
|
||||||
|
MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_matis.cfg" ] + [ "stuff/matis/agents/_textures/actors" ] + [ "stuff/matis/agents/_textures/actors/mask" ] ]
|
||||||
|
MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_tryker.cfg" ] + [ "stuff/tryker/agents/_textures/actors" ] + [ "stuff/tryker/agents/_textures/actors/mask" ] ]
|
||||||
|
MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_fyros.cfg" ] + [ "stuff/fyros/agents/_textures/actors" ] + [ "stuff/fyros/agents/_textures/actors/mask" ] ]
|
||||||
|
MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_zorai.cfg" ] + [ "stuff/zorai/agents/_textures/actors" ] + [ "stuff/zorai/agents/_textures/actors/mask" ] ]
|
||||||
|
MapPanoplySourceDirectories += [ [ "panoply_common.cfg" ] + [ "panoply_generique.cfg" ] + [ "stuff/generique/agents/_textures/actors" ] + [ "stuff/generique/agents/_textures/actors/mask" ] ]
|
||||||
|
|
||||||
|
|
||||||
|
# *** EXPORT DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
|
# Map directories
|
||||||
|
MapExportDirectory = CommonPath + "/map_export"
|
||||||
|
MapUncompressedExportDirectory = CommonPath + "/map_uncompressed"
|
||||||
|
|
||||||
|
|
||||||
|
# *** BUILD DIRECTORIES FOR THE BUILD PIPELINE ***
|
||||||
|
|
||||||
|
# Map directories
|
||||||
|
MapBuildDirectory = CommonPath + "/map"
|
||||||
|
MapPanoplyBuildDirectory = CommonPath + "/map_panoply"
|
||||||
|
MapPanoplyHlsInfoBuildDirectory = CommonPath + "/map_panoply_hls_info"
|
||||||
|
MapPanoplyHlsBankBuildDirectory = CommonPath + "/map_panoply_hls_bank"
|
||||||
|
MapPanoplyCacheBuildDirectory = CommonPath + "/map_panoply_cache"
|
||||||
|
MapTagBuildDirectory = CommonPath + "/map_tag"
|
||||||
|
|
||||||
|
|
||||||
|
# *** INSTALL DIRECTORIES IN THE CLIENT DATA ***
|
||||||
|
|
||||||
|
# Map directory
|
||||||
|
MapInstallDirectory = CommonName
|
||||||
|
BitmapInstallDirectory = MapInstallDirectory
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue