Added: #929 Work in progress of new build pipeline scripts.
This commit is contained in:
parent
3e6cd1651d
commit
040ee18dfa
120 changed files with 10118 additions and 0 deletions
169
code/nel/tools/build_gamedata/0_setup.py
Normal file
169
code/nel/tools/build_gamedata/0_setup.py
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Run all setup processes
|
||||||
|
# \date 2009-02-18 15:28GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all setup 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 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 *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Setup build site")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "This script will set up the buildsite configuration, and create needed directories.")
|
||||||
|
printLog(log, "To use the defaults, simply hit ENTER, else type in the new value.")
|
||||||
|
printLog(log, "Use -- if you need to insert an empty value.")
|
||||||
|
printLog(log, "")
|
||||||
|
BuildQuality = int(askVar(log, "Build Quality", str(BuildQuality)))
|
||||||
|
ToolDirectories[0] = askVar(log, "Primary Tool Directory", ToolDirectories[0]).replace("\\", "/")
|
||||||
|
ToolDirectories[1] = askVar(log, "Secondary Tool Directory", ToolDirectories[1]).replace("\\", "/")
|
||||||
|
ToolSuffix = askVar(log, "Tool Suffix", ToolSuffix)
|
||||||
|
ScriptDirectory = askVar(log, "Script Directory", os.getcwd().replace("\\", "/")).replace("\\", "/")
|
||||||
|
WorkspaceDirectory = askVar(log, "Workspace Directory", WorkspaceDirectory).replace("\\", "/")
|
||||||
|
DatabaseDirectory = askVar(log, "Database Directory", DatabaseDirectory).replace("\\", "/")
|
||||||
|
ExportBuildDirectory = askVar(log, "Export Build Directory", ExportBuildDirectory).replace("\\", "/")
|
||||||
|
ClientDataDirectory = askVar(log, "Client Data Directory", ClientDataDirectory).replace("\\", "/")
|
||||||
|
LeveldesignDirectory = askVar(log, "Leveldesign Directory", LeveldesignDirectory).replace("\\", "/")
|
||||||
|
LeveldesignDfnDirectory = askVar(log, "Leveldesign DFN Directory", LeveldesignDfnDirectory).replace("\\", "/")
|
||||||
|
LeveldesignWorldDirectory = askVar(log, "Leveldesign World Directory", LeveldesignWorldDirectory).replace("\\", "/")
|
||||||
|
MaxAvailable = int(askVar(log, "3dsMax Available", str(MaxAvailable)))
|
||||||
|
if MaxAvailable:
|
||||||
|
MaxDirectory = askVar(log, "3dsMax Directory", MaxDirectory).replace("\\", "/")
|
||||||
|
MaxUserDirectory = askVar(log, "3dsMax User Directory", MaxUserDirectory).replace("\\", "/")
|
||||||
|
MaxExecutable = askVar(log, "3dsMax Executable", MaxExecutable)
|
||||||
|
if os.path.isfile("configuration/buildsite.py"):
|
||||||
|
os.remove("configuration/buildsite.py")
|
||||||
|
sf = open("configuration/buildsite.py", "w")
|
||||||
|
sf.write("#!/usr/bin/python\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# \\file site.py\n")
|
||||||
|
sf.write("# \\brief Site configuration\n")
|
||||||
|
sf.write("# \\date " + time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "\n")
|
||||||
|
sf.write("# \\author Jan Boon (Kaetemi)\n")
|
||||||
|
sf.write("# Python port of game data build pipeline.\n")
|
||||||
|
sf.write("# Site configuration.\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>\n")
|
||||||
|
sf.write("# Copyright (C) 2010 Winch Gate Property Limited\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# This program is free software: you can redistribute it and/or modify\n")
|
||||||
|
sf.write("# it under the terms of the GNU Affero General Public License as\n")
|
||||||
|
sf.write("# published by the Free Software Foundation, either version 3 of the\n")
|
||||||
|
sf.write("# License, or (at your option) any later version.\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# This program is distributed in the hope that it will be useful,\n")
|
||||||
|
sf.write("# but WITHOUT ANY WARRANTY; without even the implied warranty of\n")
|
||||||
|
sf.write("# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n")
|
||||||
|
sf.write("# GNU Affero General Public License for more details.\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("# You should have received a copy of the GNU Affero General Public License\n")
|
||||||
|
sf.write("# along with this program. If not, see <http://www.gnu.org/licenses/>.\n")
|
||||||
|
sf.write("# \n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# *** SITE INSTALLATION ***\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Use '/' in path name, not '\'\n")
|
||||||
|
sf.write("# Don't put '/' at the end of a directory name\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Quality option for this site (1 for BEST, 0 for DRAFT)\n")
|
||||||
|
sf.write("BuildQuality = " + str(BuildQuality) + "\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("ToolDirectories = " + str(ToolDirectories) + "\n")
|
||||||
|
sf.write("ToolSuffix = \"" + str(ToolSuffix) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Build script directory\n")
|
||||||
|
sf.write("ScriptDirectory = \"" + str(ScriptDirectory) + "\"\n")
|
||||||
|
sf.write("WorkspaceDirectory = \"" + str(WorkspaceDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Data build directories\n")
|
||||||
|
sf.write("DatabaseDirectory = \"" + str(DatabaseDirectory) + "\"\n")
|
||||||
|
sf.write("ExportBuildDirectory = \"" + str(ExportBuildDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Client data install directory (client/data)\n")
|
||||||
|
sf.write("ClientDataDirectory = \"" + str(ClientDataDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# TODO: NETWORK RECONNECT NOT IMPLEMENTED :)\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# Leveldesign directories\n")
|
||||||
|
sf.write("LeveldesignDirectory = \"" + str(LeveldesignDirectory) + "\"\n")
|
||||||
|
sf.write("LeveldesignDfnDirectory = \"" + str(LeveldesignDfnDirectory) + "\"\n")
|
||||||
|
sf.write("LeveldesignWorldDirectory = \"" + str(LeveldesignWorldDirectory) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# 3dsMax directives\n")
|
||||||
|
sf.write("MaxAvailable = " + str(MaxAvailable) + "\n")
|
||||||
|
sf.write("MaxDirectory = \"" + str(MaxDirectory) + "\"\n")
|
||||||
|
sf.write("MaxUserDirectory = \"" + str(MaxUserDirectory) + "\"\n")
|
||||||
|
sf.write("MaxExecutable = \"" + str(MaxExecutable) + "\"\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("# end of file\n")
|
||||||
|
sf.close()
|
||||||
|
|
||||||
|
sys.path.append(WorkspaceDirectory)
|
||||||
|
from projects import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Run the setup projects")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
mkPath(log, "configuration/project")
|
||||||
|
removeFilesRecursive(log, "configuration/project")
|
||||||
|
# For each project
|
||||||
|
for projectName in ProjectsToProcess:
|
||||||
|
copyFilesRecursive(log, WorkspaceDirectory + "/" + projectName, "configuration/project")
|
||||||
|
os.chdir("processes")
|
||||||
|
try:
|
||||||
|
subprocess.call([ "python", "0_setup.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
projectLog = open("processes/log.log", "r")
|
||||||
|
projectLogData = projectLog.read()
|
||||||
|
projectLog.close()
|
||||||
|
log.write(projectLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
removeFilesRecursive(log, WorkspaceDirectory + "/" + projectName)
|
||||||
|
copyFilesRecursive(log, "configuration/project", WorkspaceDirectory + "/" + projectName)
|
||||||
|
removeFilesRecursive(log, "configuration/project")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("0_setup.log"):
|
||||||
|
os.remove("0_setup.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_setup.log")
|
||||||
|
shutil.move("log.log", "0_setup.log")
|
73
code/nel/tools/build_gamedata/1_export.py
Normal file
73
code/nel/tools/build_gamedata/1_export.py
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Run all export processes
|
||||||
|
# \date 2009-02-18 09:22GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all export 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 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, "--- Run the export processes")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
mkPath(log, "configuration/project")
|
||||||
|
removeFilesRecursive(log, "configuration/project")
|
||||||
|
# For each project
|
||||||
|
for projectName in ProjectsToProcess:
|
||||||
|
copyFilesRecursive(log, WorkspaceDirectory + "/" + projectName, "configuration/project")
|
||||||
|
os.chdir("processes")
|
||||||
|
try:
|
||||||
|
subprocess.call([ "python", "1_export.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
projectLog = open("processes/log.log", "r")
|
||||||
|
projectLogData = projectLog.read()
|
||||||
|
projectLog.close()
|
||||||
|
log.write(projectLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
removeFilesRecursive(log, WorkspaceDirectory + "/" + projectName)
|
||||||
|
copyFilesRecursive(log, "configuration/project", WorkspaceDirectory + "/" + projectName)
|
||||||
|
removeFilesRecursive(log, "configuration/project")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("1_export.log"):
|
||||||
|
os.remove("1_export.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_export.log")
|
||||||
|
shutil.move("log.log", "1_export.log")
|
73
code/nel/tools/build_gamedata/2_build.py
Normal file
73
code/nel/tools/build_gamedata/2_build.py
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Run all build processes
|
||||||
|
# \date 2009-02-18 09:22GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all build 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 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, "--- Run the build processes")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
mkPath(log, "configuration/project")
|
||||||
|
removeFilesRecursive(log, "configuration/project")
|
||||||
|
# For each project
|
||||||
|
for projectName in ProjectsToProcess:
|
||||||
|
copyFilesRecursive(log, WorkspaceDirectory + "/" + projectName, "configuration/project")
|
||||||
|
os.chdir("processes")
|
||||||
|
try:
|
||||||
|
subprocess.call([ "python", "2_build.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
projectLog = open("processes/log.log", "r")
|
||||||
|
projectLogData = projectLog.read()
|
||||||
|
projectLog.close()
|
||||||
|
log.write(projectLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
removeFilesRecursive(log, WorkspaceDirectory + "/" + projectName)
|
||||||
|
copyFilesRecursive(log, "configuration/project", WorkspaceDirectory + "/" + projectName)
|
||||||
|
removeFilesRecursive(log, "configuration/project")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("2_build.log"):
|
||||||
|
os.remove("2_build.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_build.log")
|
||||||
|
shutil.move("log.log", "2_build.log")
|
72
code/nel/tools/build_gamedata/3_install.py
Normal file
72
code/nel/tools/build_gamedata/3_install.py
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Run all install processes
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all install 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 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 *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Run the install processes")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
mkPath(log, "configuration/project")
|
||||||
|
removeFilesRecursive(log, "configuration/project")
|
||||||
|
# For each project
|
||||||
|
for projectName in ProjectsToProcess:
|
||||||
|
copyFilesRecursive(log, WorkspaceDirectory + "/" + projectName, "configuration/project")
|
||||||
|
os.chdir("processes")
|
||||||
|
try:
|
||||||
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
projectLog = open("processes/log.log", "r")
|
||||||
|
projectLogData = projectLog.read()
|
||||||
|
projectLog.close()
|
||||||
|
log.write(projectLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + projectName + "> " + str(e))
|
||||||
|
removeFilesRecursive(log, WorkspaceDirectory + "/" + projectName)
|
||||||
|
copyFilesRecursive(log, "configuration/project", WorkspaceDirectory + "/" + projectName)
|
||||||
|
removeFilesRecursive(log, "configuration/project")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
if os.path.isfile("3_install.log"):
|
||||||
|
os.remove("3_install.log")
|
||||||
|
shutil.copy("log.log", time.strftime("%Y-%m-%d-%H-%M-GMT", time.gmtime(time.time())) + "_install.log")
|
||||||
|
shutil.move("log.log", "3_install.log")
|
65
code/nel/tools/build_gamedata/configuration/buildsite.py
Normal file
65
code/nel/tools/build_gamedata/configuration/buildsite.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/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
|
232
code/nel/tools/build_gamedata/configuration/scripts.py
Normal file
232
code/nel/tools/build_gamedata/configuration/scripts.py
Normal file
|
@ -0,0 +1,232 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file export.py
|
||||||
|
# \brief Useful scripts
|
||||||
|
# \date 2009-02-18 09:22GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Useful scripts
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
|
||||||
|
def printLog(log, text):
|
||||||
|
log.write(text + "\n")
|
||||||
|
print text
|
||||||
|
|
||||||
|
def mkPath(log, path):
|
||||||
|
printLog(log, "DIR " + path)
|
||||||
|
distutils.dir_util.mkpath(path)
|
||||||
|
|
||||||
|
def needUpdate(log, source, dest):
|
||||||
|
if (os.path.isfile(source)):
|
||||||
|
if (os.path.isfile(dest)):
|
||||||
|
if (os.stat(source).st_mtime > os.stat(dest).st_mtime):
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
return 1
|
||||||
|
printLog(log, "needUpdate: source doest not exist?! " + source)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateRemoveDest(log, source, dest):
|
||||||
|
if (os.path.isfile(source)):
|
||||||
|
if (os.path.isfile(dest)):
|
||||||
|
if (os.stat(source).st_mtime > os.stat(dest).st_mtime):
|
||||||
|
os.remove(dest)
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
return 1
|
||||||
|
printLog(log, "needUpdate: source doest not exist?! " + source)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def needUpdateLogRemoveDest(log, source, dest):
|
||||||
|
if (os.path.isfile(source)):
|
||||||
|
if (os.path.isfile(dest)):
|
||||||
|
if (os.stat(source).st_mtime > os.stat(dest).st_mtime):
|
||||||
|
os.remove(dest)
|
||||||
|
printLog(log, source + " -> " + dest)
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + dest)
|
||||||
|
return 0
|
||||||
|
printLog(log, source + " -> " + dest)
|
||||||
|
return 1
|
||||||
|
printLog(log, "needUpdate: source doest not exist?! " + source)
|
||||||
|
printLog(log, "SKIP " + dest)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def copyFileList(log, dir_source, dir_target, files):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn":
|
||||||
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFileListNoTree(log, dir_source, dir_target, files):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn":
|
||||||
|
printLog(log, 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):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != "*.*":
|
||||||
|
srcFile = dir_source + "/" + fileName
|
||||||
|
destFile = dir_target + "/" + os.path.basename(fileName)
|
||||||
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
shutil.copy(srcFile, destFile)
|
||||||
|
|
||||||
|
def removeFilesRecursive(log, dir_files):
|
||||||
|
files = os.listdir(dir_files)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn"):
|
||||||
|
if os.path.isdir(dir_files + "/" + fileName):
|
||||||
|
removeFilesRecursive(log, dir_files + "/" + fileName)
|
||||||
|
else:
|
||||||
|
printLog(log, "RM " + dir_files + "/" + fileName)
|
||||||
|
os.remove(dir_files + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFilesRecursive(log, dir_source, dir_target):
|
||||||
|
files = os.listdir(dir_source)
|
||||||
|
mkPath(log, dir_target)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn"):
|
||||||
|
if os.path.isdir(dir_source + "/" + fileName):
|
||||||
|
copyFilesRecursive(log, dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
else:
|
||||||
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFiles(log, dir_source, dir_target):
|
||||||
|
copyFileList(log, dir_source, dir_target, os.listdir(dir_source))
|
||||||
|
|
||||||
|
def copyFilesExt(log, dir_source, dir_target, file_ext):
|
||||||
|
files = os.listdir(dir_source)
|
||||||
|
len_file_ext = len(file_ext)
|
||||||
|
for fileName in files:
|
||||||
|
if (fileName != ".svn") and (fileName[-len_file_ext:].lower() == file_ext.lower()):
|
||||||
|
printLog(log, dir_source + "/" + fileName + " -> " + dir_target + "/" + fileName)
|
||||||
|
shutil.copy(dir_source + "/" + fileName, dir_target + "/" + fileName)
|
||||||
|
|
||||||
|
def copyFilesExtNoTree(log, dir_source, dir_target, file_ext):
|
||||||
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
|
copyFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def copyFilesExtNoTreeIfNeeded(log, dir_source, dir_target, file_ext):
|
||||||
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def copyFilesNoTreeIfNeeded(log, dir_source, dir_target):
|
||||||
|
copyFileListNoTreeIfNeeded(log, dir_source, dir_target, os.listdir(dir_source))
|
||||||
|
|
||||||
|
def copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != "*.*":
|
||||||
|
srcFile = dir_source + "/" + fileName
|
||||||
|
destFile = dir_target + "/" + os.path.basename(fileName)[0:-len(file_ext)] + target_ext
|
||||||
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
shutil.copy(srcFile, destFile)
|
||||||
|
|
||||||
|
def copyFilesExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, file_ext, target_ext):
|
||||||
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
|
copyFileListExtReplaceNoTreeIfNeeded(log, dir_source, dir_target, files, file_ext, target_ext)
|
||||||
|
|
||||||
|
def copyFileIfNeeded(log, srcFile, destFile):
|
||||||
|
if needUpdateLogRemoveDest(log, srcFile, destFile):
|
||||||
|
shutil.copy(srcFile, destFile)
|
||||||
|
|
||||||
|
def moveFileListNoTree(log, dir_source, dir_target, files):
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn":
|
||||||
|
printLog(log, 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):
|
||||||
|
files = findFiles(log, dir_source, "", file_ext)
|
||||||
|
moveFileListNoTree(log, dir_source, dir_target, files)
|
||||||
|
|
||||||
|
def findFiles(log, dir_where, dir_sub, file_ext):
|
||||||
|
result = [ ]
|
||||||
|
files = os.listdir(dir_where + "/" + dir_sub)
|
||||||
|
len_file_ext = len(file_ext)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != "*.*":
|
||||||
|
filePath = dir_sub + fileName
|
||||||
|
fileFull = dir_where + "/" + dir_sub + fileName
|
||||||
|
if os.path.isfile(fileFull):
|
||||||
|
if fileName[-len_file_ext:].lower() == file_ext.lower():
|
||||||
|
result += [ filePath ]
|
||||||
|
elif os.path.isdir(fileFull):
|
||||||
|
result += findFiles(log, dir_where, filePath + "/", file_ext)
|
||||||
|
else:
|
||||||
|
printLog(log, "findFiles: file not dir or file?!" + filePath)
|
||||||
|
return result
|
||||||
|
|
||||||
|
def findFile(log, dir_where, file_name):
|
||||||
|
files = os.listdir(dir_where)
|
||||||
|
for fileName in files:
|
||||||
|
if fileName != ".svn" and fileName != "*.*":
|
||||||
|
filePath = dir_where + "/" + fileName
|
||||||
|
if os.path.isfile(filePath):
|
||||||
|
if fileName == file_name:
|
||||||
|
return filePath
|
||||||
|
elif os.path.isdir(filePath):
|
||||||
|
result = findFile(log, filePath, file_name)
|
||||||
|
if result != "":
|
||||||
|
return result
|
||||||
|
else:
|
||||||
|
printLog(log, "findFile: file not dir or file?! " + filePath)
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def findTool(log, dirs_where, file_name, suffix):
|
||||||
|
try:
|
||||||
|
for dir in dirs_where:
|
||||||
|
tool = findFile(log, dir, file_name + suffix)
|
||||||
|
if tool != "":
|
||||||
|
printLog(log, "TOOL " + tool)
|
||||||
|
return tool
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "EXCEPTION " + str(e))
|
||||||
|
printLog(log, "TOOL NOT FOUND " + file_name + suffix)
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def findMax(log, dir, file):
|
||||||
|
tool = dir + "/" + file
|
||||||
|
if os.path.isfile(tool):
|
||||||
|
printLog(log, "3DSMAX " + tool)
|
||||||
|
return tool
|
||||||
|
printLog(log, "3DSMAX NOT FOUND " + file)
|
||||||
|
return ""
|
||||||
|
|
||||||
|
def toolLogFail(log, tool, suffix):
|
||||||
|
printLog(log, "FAIL " + tool + suffix + " is not found")
|
||||||
|
|
||||||
|
def askVar(log, name, default):
|
||||||
|
sys.stdout.write(name + " (" + default + "): ")
|
||||||
|
line = sys.stdin.readline()
|
||||||
|
linestrip = line.strip()
|
||||||
|
if linestrip == "--":
|
||||||
|
log.write(name + " (" + default + "): ''\n")
|
||||||
|
return ""
|
||||||
|
elif linestrip == "":
|
||||||
|
log.write(name + " (" + default + "): '" + default + "'\n")
|
||||||
|
return default
|
||||||
|
else:
|
||||||
|
log.write(name + " (" + default + "): '" + linestrip + "'\n")
|
||||||
|
return linestrip
|
81
code/nel/tools/build_gamedata/configuration/tools.py
Normal file
81
code/nel/tools/build_gamedata/configuration/tools.py
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file process.py
|
||||||
|
# \brief Tools configuration
|
||||||
|
# \date 2009-03-10 11:33GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Tools 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 TIMEOUT ***
|
||||||
|
SkelExportTimeout = 60000
|
||||||
|
SwtExportTimeout = 60000
|
||||||
|
ShapeExportTimeout = 3600000
|
||||||
|
ZoneExportTimeout = 1800000
|
||||||
|
ZoneBuildDependTimeout = 1800000
|
||||||
|
ZoneBuildWeldTimeout = 60000
|
||||||
|
ZoneLightBuildTimeout = 600000
|
||||||
|
ZoneIgLightBuildTimeout = 600000
|
||||||
|
SmallbankBuildTimeout = 60000
|
||||||
|
FarbankBuildTimeout = 180000
|
||||||
|
AnimExportTimeout = 1800000
|
||||||
|
IgExportTimeout = 600000
|
||||||
|
MapsBuildTimeout = 10000
|
||||||
|
CmbExportTimeout = 60000
|
||||||
|
RbankBuildTesselTimeout = 60000
|
||||||
|
RbankBuildSmoothTimeout = 60000
|
||||||
|
RbankBuildProclocalTimeout = 60000
|
||||||
|
RbankBuildProcglobalTimeout = 180000
|
||||||
|
RbankBuildIndoorTimeout = 180000
|
||||||
|
# WmapBuildTimeout = 60000
|
||||||
|
LigoExportTimeout = 3600000
|
||||||
|
LigoBuildTimeout = 1800000
|
||||||
|
PacsPrimExportTimeout = 60000
|
||||||
|
|
||||||
|
# *** TOOLS CONFIGURATION ***
|
||||||
|
|
||||||
|
TgaToDdsTool = "tga2dds"
|
||||||
|
BuildInterfaceTool = "build_interface"
|
||||||
|
ExecTimeoutTool = "exec_timeout"
|
||||||
|
BuildSmallbankTool = "build_smallbank"
|
||||||
|
BuildFarbankTool = "build_far_bank"
|
||||||
|
ZoneDependenciesTool = "zone_dependencies"
|
||||||
|
ZoneWelderTool = "zone_welder"
|
||||||
|
BuildRbankTool = "build_rbank"
|
||||||
|
BuildIndoorRbankTool = "build_indoor_rbank"
|
||||||
|
BuildIgBoxesTool = "build_ig_boxes"
|
||||||
|
AiBuildWmapTool = "ai_build_wmap"
|
||||||
|
GetNeighborsTool = "get_neighbors"
|
||||||
|
ZoneLighterTool = "zone_lighter"
|
||||||
|
ZoneIgLighterTool = "zone_ig_lighter"
|
||||||
|
IgLighterTool = "ig_lighter"
|
||||||
|
AnimBuilderTool = "anim_builder"
|
||||||
|
TileEditTool = "tile_edit"
|
||||||
|
BuildImagesetTool = "th_build_imageset"
|
||||||
|
MakeSheetIdTool = "make_sheet_id"
|
||||||
|
BuildSheetsTool = "th_build_sheets"
|
||||||
|
BuildSoundTool = "th_build_sound"
|
||||||
|
BuildCoarseMeshTool = "build_coarse_mesh"
|
||||||
|
LightmapOptimizerTool = "lightmap_optimizer"
|
||||||
|
BuildClodtexTool = "build_clodtex"
|
||||||
|
BuildShadowSkinTool = "build_shadow_skin"
|
||||||
|
PanoplyMakerTool = "panoply_maker"
|
||||||
|
HlsBankMakerTool = "hls_bank_maker"
|
||||||
|
LandExportTool = "land_export"
|
80
code/nel/tools/build_gamedata/processes/0_setup.py
Normal file
80
code/nel/tools/build_gamedata/processes/0_setup.py
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Run all setup processes
|
||||||
|
# \date 2009-02-18 15:28GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all setup 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 time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../configuration")
|
||||||
|
sys.path.append("../configuration/project")
|
||||||
|
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 project")
|
||||||
|
#printLog(log, "-------")
|
||||||
|
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
#printLog(log, "")
|
||||||
|
|
||||||
|
#printLog(log, "")
|
||||||
|
#printLog(log, "-------")
|
||||||
|
#printLog(log, "--- Setup client directories")
|
||||||
|
#printLog(log, "-------")
|
||||||
|
#printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
#printLog(log, "")
|
||||||
|
#for dir in ClientSetupDirectories:
|
||||||
|
# mkPath(log, ClientDataDirectory + "/" + dir)
|
||||||
|
#printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Run the setup processes")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
# For each process
|
||||||
|
for processName in ProcessToComplete:
|
||||||
|
os.chdir(processName)
|
||||||
|
try:
|
||||||
|
subprocess.call([ "python", "0_setup.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
processLog = open(processName + "/log.log", "r")
|
||||||
|
processLogData = processLog.read()
|
||||||
|
processLog.close()
|
||||||
|
log.write(processLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
# subprocess.call("idle.bat")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
64
code/nel/tools/build_gamedata/processes/1_export.py
Normal file
64
code/nel/tools/build_gamedata/processes/1_export.py
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Run all export processes
|
||||||
|
# \date 2009-02-18 09:22GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all export 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 time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../configuration")
|
||||||
|
sys.path.append("../configuration/project")
|
||||||
|
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 *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Run the export processes")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
# For each process
|
||||||
|
for processName in ProcessToComplete:
|
||||||
|
os.chdir(processName)
|
||||||
|
try:
|
||||||
|
subprocess.call([ "python", "1_export.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
processLog = open(processName + "/log.log", "r")
|
||||||
|
processLogData = processLog.read()
|
||||||
|
processLog.close()
|
||||||
|
log.write(processLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
# subprocess.call("idle.bat")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
64
code/nel/tools/build_gamedata/processes/2_build.py
Normal file
64
code/nel/tools/build_gamedata/processes/2_build.py
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Run all build processes
|
||||||
|
# \date 2009-02-18 09:22GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all build 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 time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../configuration")
|
||||||
|
sys.path.append("../configuration/project")
|
||||||
|
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 *
|
||||||
|
|
||||||
|
# Log error
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Run the build processes")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
# For each process
|
||||||
|
for processName in ProcessToComplete:
|
||||||
|
os.chdir(processName)
|
||||||
|
try:
|
||||||
|
subprocess.call([ "python", "2_build.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
processLog = open(processName + "/log.log", "r")
|
||||||
|
processLogData = processLog.read()
|
||||||
|
processLog.close()
|
||||||
|
log.write(processLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
# subprocess.call("idle.bat")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
63
code/nel/tools/build_gamedata/processes/3_install.py
Normal file
63
code/nel/tools/build_gamedata/processes/3_install.py
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Run all install processes
|
||||||
|
# \date 2009-02-18 16:19GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Run all install 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 time, sys, os, shutil, subprocess, distutils.dir_util
|
||||||
|
sys.path.append("../configuration")
|
||||||
|
sys.path.append("../configuration/project")
|
||||||
|
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, "--- Run the install processes")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
# For each process
|
||||||
|
for processName in ProcessToComplete:
|
||||||
|
os.chdir(processName)
|
||||||
|
try:
|
||||||
|
subprocess.call([ "python", "3_install.py" ])
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
os.chdir("..")
|
||||||
|
try:
|
||||||
|
processLog = open(processName + "/log.log", "r")
|
||||||
|
processLogData = processLog.read()
|
||||||
|
processLog.close()
|
||||||
|
log.write(processLogData)
|
||||||
|
except Exception, e:
|
||||||
|
printLog(log, "<" + processName + "> " + str(e))
|
||||||
|
# subprocess.call("idle.bat")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
66
code/nel/tools/build_gamedata/processes/anim/0_setup.py
Normal file
66
code/nel/tools/build_gamedata/processes/anim/0_setup.py
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup anim
|
||||||
|
# \date 2009-03-10 14:56GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup anim
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 anim")
|
||||||
|
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 AnimSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AnimBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + AnimClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
63
code/nel/tools/build_gamedata/processes/anim/1_export.py
Normal file
63
code/nel/tools/build_gamedata/processes/anim/1_export.py
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export anim
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export anim
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 anim")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each anim directory
|
||||||
|
printLog(log, ">>> Export anim 3dsmax <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + AnimExportDirectory)
|
||||||
|
for dir in AnimSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
65
code/nel/tools/build_gamedata/processes/anim/2_build.py
Normal file
65
code/nel/tools/build_gamedata/processes/anim/2_build.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build anim
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build anim
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 anim")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
AnimBuilder = findTool(log, ToolDirectories, AnimBuilderTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each anim directory
|
||||||
|
printLog(log, ">>> Build anim <<<")
|
||||||
|
if AnimBuilder == "":
|
||||||
|
toolLogFail(log, AnimBuilderTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
srcDir = ExportBuildDirectory + "/" + AnimExportDirectory
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
destDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
subprocess.call([ AnimBuilder, srcDir, destDir, ScriptDirectory + "/configuration/zone_lighter_properties.cfg" ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
57
code/nel/tools/build_gamedata/processes/anim/3_install.py
Normal file
57
code/nel/tools/build_gamedata/processes/anim/3_install.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install anim
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install anim
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 anim")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install anim <<<")
|
||||||
|
srcDir = ExportBuildDirectory + "/" + AnimBuildDirectory
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
destDir = ClientDataDirectory + "/" + AnimClientDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
65
code/nel/tools/build_gamedata/processes/cegui/0_setup.py
Normal file
65
code/nel/tools/build_gamedata/processes/cegui/0_setup.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup cegui
|
||||||
|
# \date 2009-03-14-17-46-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Setup cegui
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 cegui")
|
||||||
|
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 CeguiImagesetSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + CeguiImagesetClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
67
code/nel/tools/build_gamedata/processes/cegui/1_export.py
Normal file
67
code/nel/tools/build_gamedata/processes/cegui/1_export.py
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export cegui
|
||||||
|
# \date 2009-03-14-17-46-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Export cegui
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 cegui")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each cegui imageset directory
|
||||||
|
printLog(log, ">>> Export cegui imagesets <<<")
|
||||||
|
destDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
for dir in CeguiImagesetSourceDirectories:
|
||||||
|
srcDir = DatabaseDirectory + "/" + dir
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
imagesets = findFiles(log, srcDir, "", ".imageset")
|
||||||
|
if (len(imagesets) != 1):
|
||||||
|
printLog(log, "FAIL Cannot find *.imageset, folder must contain at least one and only one imageset xml file")
|
||||||
|
else:
|
||||||
|
niouname = dir.replace("/", "_")
|
||||||
|
newpath = destDir + "/" + niouname
|
||||||
|
mkPath(log, newpath)
|
||||||
|
copyFileIfNeeded(log, srcDir + "/" + imagesets[0], newpath + ".imageset")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".tga")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, srcDir, newpath, ".png")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
67
code/nel/tools/build_gamedata/processes/cegui/2_build.py
Normal file
67
code/nel/tools/build_gamedata/processes/cegui/2_build.py
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build cegui
|
||||||
|
# \date 2009-03-14-17-46-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Build cegui
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 cegui")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BuildImageset = findTool(log, ToolDirectories, BuildImagesetTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each cegui imageset directory
|
||||||
|
printLog(log, ">>> Build cegui imagesets <<<")
|
||||||
|
if BuildImageset == "":
|
||||||
|
toolLogFail(log, BuildImagesetTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
srcDir = ExportBuildDirectory + "/" + CeguiImagesetExportDirectory
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
destDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
for dir in os.listdir(srcDir):
|
||||||
|
if (os.path.isdir(srcDir + "/" + dir)) and dir != ".svn" and dir != "*.*":
|
||||||
|
mkPath(log, srcDir + "/" + dir)
|
||||||
|
subprocess.call([ BuildImageset, destDir + "/" + dir + ".tga", srcDir + "/" + dir ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
56
code/nel/tools/build_gamedata/processes/cegui/3_install.py
Normal file
56
code/nel/tools/build_gamedata/processes/cegui/3_install.py
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install cegui
|
||||||
|
# \date 2009-03-14-17-46-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Install cegui
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 cegui")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install cegui imagesets <<<")
|
||||||
|
srcDir = ExportBuildDirectory + "/" + CeguiImagesetBuildDirectory
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
destDir = ClientDataDirectory + "/" + CeguiImagesetClientDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,269 @@
|
||||||
|
-- Some globals
|
||||||
|
|
||||||
|
NEL3D_APPDATA_DONOTEXPORT = 1423062565 -- do not export me : "undefined" = export me
|
||||||
|
-- "0" = export me
|
||||||
|
-- "1" = DONT export me
|
||||||
|
NEL3D_APPDATA_CHARACTER_LOD = 1423062618 -- "1": I am a character lod if "1". "0" or undefined: I am not.
|
||||||
|
|
||||||
|
|
||||||
|
-- Allocate 20 Me for the script
|
||||||
|
heapSize += 15000000
|
||||||
|
|
||||||
|
nlErrorFilename = "output_logfile"
|
||||||
|
nlErrorStream = openFile nlErrorFilename mode:"a"
|
||||||
|
if nlErrorStream == undefined then
|
||||||
|
nlErrorStream = createFile nlErrorFilename
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
fn unhidecategory =
|
||||||
|
(
|
||||||
|
if (geometry.count > 0) then
|
||||||
|
(
|
||||||
|
unhide geometry[1]
|
||||||
|
if (geometry[1].ishidden == true) then
|
||||||
|
max hide object toggle
|
||||||
|
)
|
||||||
|
if (shapes.count > 0) then
|
||||||
|
(
|
||||||
|
unhide shapes[1]
|
||||||
|
if (shapes[1].ishidden == true) then
|
||||||
|
max hide shape toggle
|
||||||
|
)
|
||||||
|
if (lights.count > 0) then
|
||||||
|
(
|
||||||
|
unhide lights[1]
|
||||||
|
if (lights[1].ishidden == true) then
|
||||||
|
max hide light toggle
|
||||||
|
)
|
||||||
|
if (cameras.count > 0) then
|
||||||
|
(
|
||||||
|
unhide cameras[1]
|
||||||
|
if (cameras[1].ishidden == true) then
|
||||||
|
max hide camera toggle
|
||||||
|
)
|
||||||
|
if (helpers.count > 0) then
|
||||||
|
(
|
||||||
|
unhide helpers[1]
|
||||||
|
if (helpers[1].ishidden == true) then
|
||||||
|
max hide helper toggle
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Log a message
|
||||||
|
fn nlerror message =
|
||||||
|
(
|
||||||
|
if nlErrorStream != undefined then
|
||||||
|
(
|
||||||
|
format "%\n" message to:nlErrorStream
|
||||||
|
flush nlErrorStream
|
||||||
|
)
|
||||||
|
|
||||||
|
-- To the console
|
||||||
|
print message
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Must export this node ?
|
||||||
|
fn isToBeExported node =
|
||||||
|
(
|
||||||
|
if ((classof node) == RklPatch) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == nel_ps) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == nel_pacs_cylinder) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == nel_pacs_box) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
doNotExport = getappdata node NEL3D_APPDATA_DONOTEXPORT
|
||||||
|
if (doNotExport != undefined) then
|
||||||
|
(
|
||||||
|
if (doNotExport == "1") then
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
return true
|
||||||
|
)
|
||||||
|
|
||||||
|
-- is this node flagged as a LodCharacter ??
|
||||||
|
fn isLodCharacter node =
|
||||||
|
(
|
||||||
|
isCLod = getappdata node NEL3D_APPDATA_CHARACTER_LOD
|
||||||
|
if (isCLod == undefined) then
|
||||||
|
return false
|
||||||
|
if (isCLod == "1") then
|
||||||
|
return true
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
fn goClodExport =
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Get files in the shape_source_directory
|
||||||
|
files = getFiles "shape_source_directory/*.max"
|
||||||
|
|
||||||
|
-- Sort files
|
||||||
|
sort files
|
||||||
|
|
||||||
|
-- No file ?
|
||||||
|
if files.count != 0 then
|
||||||
|
(
|
||||||
|
-- For each files
|
||||||
|
for i = 1 to files.count do
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Ok ?
|
||||||
|
ok = false
|
||||||
|
|
||||||
|
-- Free memory and file handles
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- Reset 3dsmax
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
-- Get the tag file name
|
||||||
|
tag = ("output_directory_tag/"+(getFilenameFile files[i])+(getFilenameType files[i])+".tag")
|
||||||
|
|
||||||
|
-- Compare date with the tag file
|
||||||
|
if (NeLTestFileDate tag files[i]) == true then
|
||||||
|
(
|
||||||
|
-- Open the max project
|
||||||
|
nlerror ("Scanning file "+files[i]+" ...")
|
||||||
|
if loadMaxFile files[i] quiet:true == true then
|
||||||
|
(
|
||||||
|
-- Unhide category
|
||||||
|
unhidecategory()
|
||||||
|
|
||||||
|
tagThisFile = true
|
||||||
|
|
||||||
|
-- Unhide
|
||||||
|
max unhide all
|
||||||
|
|
||||||
|
-- unselect
|
||||||
|
max select none
|
||||||
|
|
||||||
|
-- Exported object count
|
||||||
|
exported = 0
|
||||||
|
|
||||||
|
-- For each node
|
||||||
|
for node in geometry do
|
||||||
|
(
|
||||||
|
-- It is root ?
|
||||||
|
if (node.parent == undefined) then
|
||||||
|
(
|
||||||
|
-- Can be exported ?
|
||||||
|
if (isToBeExported node == true) then
|
||||||
|
(
|
||||||
|
-- Is a Lod character?
|
||||||
|
if ((isLodCharacter node) == true) then
|
||||||
|
(
|
||||||
|
-- Output directory
|
||||||
|
output = ("output_directory_clod/"+(node.name)+".clod")
|
||||||
|
|
||||||
|
-- Compare file date
|
||||||
|
if (NeLTestFileDate output files[i]) == true then
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Export the shape
|
||||||
|
if (NelExportLodCharacter node output false) == true then
|
||||||
|
(
|
||||||
|
nlerror ("OK "+output)
|
||||||
|
exported = exported+1
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting .clod "+node.name+" in file "+files[i])
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting .clod "+node.name+" in file "+files[i])
|
||||||
|
tagThisFile = false
|
||||||
|
return 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("SKIPPED "+output)
|
||||||
|
exported = exported+1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Something exported
|
||||||
|
if (exported == 0) then
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("WARNING no .clod exported from the file "+files[i])
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Write a tag file
|
||||||
|
if tagThisFile == true then
|
||||||
|
(
|
||||||
|
tagFile = createFile tag
|
||||||
|
if tagFile == undefined then
|
||||||
|
(
|
||||||
|
nlerror ("WARNING can't create tag file "+tag)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
print "toto" to: tagFile
|
||||||
|
close tagFile
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting .clod: can't open the file "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("SKIPPED BY TAG "+files[i])
|
||||||
|
)
|
||||||
|
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- Reset 3dsmax
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting .clod in file " + files[i])
|
||||||
|
-- break
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("WARNING no max file in folder shape_source_directory")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting .clod in folder shape_source_directory")
|
||||||
|
return 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
goClodExport()
|
||||||
|
|
||||||
|
nlerror ("BYE")
|
||||||
|
|
||||||
|
quitMAX #noPrompt
|
||||||
|
quitMAX () #noPrompt
|
||||||
|
|
65
code/nel/tools/build_gamedata/processes/displace/0_setup.py
Normal file
65
code/nel/tools/build_gamedata/processes/displace/0_setup.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup displace
|
||||||
|
# \date 2009-03-10-21-45-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup displace
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 displace")
|
||||||
|
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 DisplaceSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + DisplaceClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
55
code/nel/tools/build_gamedata/processes/displace/1_export.py
Normal file
55
code/nel/tools/build_gamedata/processes/displace/1_export.py
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export displace
|
||||||
|
# \date 2009-03-10-21-45-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export displace
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 displace")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||||
|
for dir in DisplaceSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".tga")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + DisplaceExportDirectory, ".png")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/displace/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/displace/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build displace
|
||||||
|
# \date 2009-03-10-21-45-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build displace
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 displace")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install displace
|
||||||
|
# \date 2009-03-10-21-45-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install displace
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 displace")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install displace <<<")
|
||||||
|
clientPath = ClientDataDirectory + "/" + DisplaceClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + DisplaceExportDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, clientPath, ".tga")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + DisplaceExportDirectory, clientPath, ".png")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
66
code/nel/tools/build_gamedata/processes/farbank/0_setup.py
Normal file
66
code/nel/tools/build_gamedata/processes/farbank/0_setup.py
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup farbank
|
||||||
|
# \date 2009-03-10-21-12-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup farbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 farbank")
|
||||||
|
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 postfix in MultipleTilesPostfix:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + TileRootSourceDirectory + postfix)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/farbank/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/farbank/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export farbank
|
||||||
|
# \date 2009-03-10-21-12-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export farbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 farbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
74
code/nel/tools/build_gamedata/processes/farbank/2_build.py
Normal file
74
code/nel/tools/build_gamedata/processes/farbank/2_build.py
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build farbank
|
||||||
|
# \date 2009-03-10-21-12-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build farbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 farbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
BuildFarbank = findTool(log, ToolDirectories, BuildFarbankTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each bank export farbank
|
||||||
|
printLog(log, ">>> Build farbank <<<")
|
||||||
|
if ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
elif BuildFarbank == "":
|
||||||
|
toolLogFail(log, BuildFarbankTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
||||||
|
files = findFiles(log, ExportBuildDirectory + "/" + SmallbankExportDirectory, "", ".smallbank")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + file
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
for postfix in MultipleTilesPostfix:
|
||||||
|
destFile = ExportBuildDirectory + "/" + FarbankBuildDirectory + "/" + file[0:-len(".smallbank")] + postfix + ".farbank"
|
||||||
|
if (needUpdateLogRemoveDest(log, sourceFile, destFile)):
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + TileRootSourceDirectory + postfix)
|
||||||
|
subprocess.call([ ExecTimeout, str(FarbankBuildTimeout), BuildFarbank, sourceFile, destFile, "-d" + DatabaseDirectory + "/" + TileRootSourceDirectory + postfix + "/", "-p" + postfix ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
55
code/nel/tools/build_gamedata/processes/farbank/3_install.py
Normal file
55
code/nel/tools/build_gamedata/processes/farbank/3_install.py
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install farbank
|
||||||
|
# \date 2009-03-10-21-12-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install farbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 farbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install farbank <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + FarbankBuildDirectory)
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + FarbankBuildDirectory, ClientDataDirectory + "/" + BankClientDirectory, ".farbank")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
64
code/nel/tools/build_gamedata/processes/font/0_setup.py
Normal file
64
code/nel/tools/build_gamedata/processes/font/0_setup.py
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup font
|
||||||
|
# \date 2009-03-10-19-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# setup font
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 font")
|
||||||
|
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 FontSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + FontClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
51
code/nel/tools/build_gamedata/processes/font/1_export.py
Normal file
51
code/nel/tools/build_gamedata/processes/font/1_export.py
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export font
|
||||||
|
# \date 2009-03-10-19-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export font
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 font")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
51
code/nel/tools/build_gamedata/processes/font/2_build.py
Normal file
51
code/nel/tools/build_gamedata/processes/font/2_build.py
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build font
|
||||||
|
# \date 2009-03-10-19-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build font
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 font")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
61
code/nel/tools/build_gamedata/processes/font/3_install.py
Normal file
61
code/nel/tools/build_gamedata/processes/font/3_install.py
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install font
|
||||||
|
# \date 2009-03-10-19-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install font
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 font")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + FontClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install font <<<")
|
||||||
|
for dir in FontSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, clientPath, ".ttf")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, clientPath, ".afm")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, clientPath, ".pfb")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, clientPath, ".pfm")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
67
code/nel/tools/build_gamedata/processes/ig_light/0_setup.py
Normal file
67
code/nel/tools/build_gamedata/processes/ig_light/0_setup.py
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup ig_light
|
||||||
|
# \date 2009-03-11-15-16-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup ig_light
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Setup ig_light")
|
||||||
|
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 ig_lightSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + ig_lightExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgVillageBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgLightVillageBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + IgClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/ig_light/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/ig_light/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export ig_light
|
||||||
|
# \date 2009-03-11-15-16-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export ig_light
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Export ig_light")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
65
code/nel/tools/build_gamedata/processes/ig_light/2_build.py
Normal file
65
code/nel/tools/build_gamedata/processes/ig_light/2_build.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build ig_light
|
||||||
|
# \date 2009-03-11-15-16-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build ig_light
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Build ig_light")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
IgLighter = findTool(log, ToolDirectories, IgLighterTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each ig_light directory
|
||||||
|
printLog(log, ">>> Build ig_light <<<")
|
||||||
|
if IgLighter == "":
|
||||||
|
toolLogFail(log, IgLighterTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
srcDir = ExportBuildDirectory + "/" + IgVillageBuildDirectory
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
destDir = ExportBuildDirectory + "/" + IgLightVillageBuildDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
subprocess.call([ IgLighter, srcDir, destDir, ScriptDirectory + "/configuration/zone_lighter_properties.cfg" ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install ig_light
|
||||||
|
# \date 2009-03-11-15-16-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install ig_light
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
if os.path.isfile("log.log"):
|
||||||
|
os.remove("log.log")
|
||||||
|
log = open("log.log", "w")
|
||||||
|
from scripts import *
|
||||||
|
from buildsite import *
|
||||||
|
from process import *
|
||||||
|
from tools import *
|
||||||
|
from directories import *
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Install ig_light")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install ig_light <<<")
|
||||||
|
srcDir = ExportBuildDirectory + "/" + IgLightVillageBuildDirectory
|
||||||
|
mkPath(log, srcDir)
|
||||||
|
destDir = ClientDataDirectory + "/" + IgClientDirectory
|
||||||
|
mkPath(log, destDir)
|
||||||
|
copyFilesNoTreeIfNeeded(log, srcDir, destDir)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
76
code/nel/tools/build_gamedata/processes/interface/0_setup.py
Normal file
76
code/nel/tools/build_gamedata/processes/interface/0_setup.py
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup interface
|
||||||
|
# \date 2009-03-10 14:56GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup interface
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 interface")
|
||||||
|
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 InterfaceSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
for dir in InterfaceDxtcSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
for dir in InterfaceFullscreenSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
for dir in Interface3DSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + InterfaceClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,96 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export interface
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export interface
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 interface")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each interface directory
|
||||||
|
printLog(log, ">>> Export interface <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceExportDirectory)
|
||||||
|
for dir in InterfaceSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
niouname = dir.replace("/", "_")
|
||||||
|
newpath = ExportBuildDirectory + "/" + InterfaceExportDirectory + "/" + niouname
|
||||||
|
mkPath(log, newpath)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each interface directory to compress in one DXTC
|
||||||
|
printLog(log, ">>> Export interface dxtc <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory)
|
||||||
|
for dir in InterfaceDxtcSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory, ".tga")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each interface fullscreen directory compress independently all in dds
|
||||||
|
printLog(log, ">>> Export interface fullscreen <<<")
|
||||||
|
if TgaToDds == "":
|
||||||
|
toolLogFail(log, TgaToDdsTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory)
|
||||||
|
for dir in InterfaceFullscreenSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
files = findFiles(log, DatabaseDirectory + "/" + dir, "", ".tga")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = DatabaseDirectory + "/" + dir + "/" + file
|
||||||
|
destFile = ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
subprocess.call([ TgaToDds, sourceFile, "-o", destFile, "-a", "5" ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each interface 3d directory
|
||||||
|
printLog(log, ">>> Export interface 3d <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
|
for dir in Interface3DSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + Interface3DExportDirectory, ".tga")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
73
code/nel/tools/build_gamedata/processes/interface/2_build.py
Normal file
73
code/nel/tools/build_gamedata/processes/interface/2_build.py
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build interface
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build interface
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 interface")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BuildInterface = findTool(log, ToolDirectories, BuildInterfaceTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each interface directory
|
||||||
|
printLog(log, ">>> Build interface <<<")
|
||||||
|
if BuildInterface == "":
|
||||||
|
toolLogFail(log, BuildInterfaceTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory)
|
||||||
|
for dir in os.listdir(ExportBuildDirectory + "/" + InterfaceExportDirectory):
|
||||||
|
if (os.path.isdir(ExportBuildDirectory + "/" + InterfaceExportDirectory + "/" + dir)) and dir != ".svn" and dir != "*.*":
|
||||||
|
subprocess.call([ BuildInterface, ExportBuildDirectory + "/" + InterfaceBuildDirectory + "/texture_" + dir + ".tga", ExportBuildDirectory + "/" + InterfaceExportDirectory + "/" + dir ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each interface directory to compress in one DXTC
|
||||||
|
printLog(log, ">>> Build interface dxtc <<<")
|
||||||
|
if BuildInterface == "":
|
||||||
|
toolLogFail(log, BuildInterfaceTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
||||||
|
subprocess.call([ BuildInterface, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory + "/texture_interfaces_dxtc.tga", ExportBuildDirectory + "/" + InterfaceDxtcExportDirectory ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,69 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install interface
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install interface
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 interface")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + InterfaceClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install interface <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceBuildDirectory, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install interface dxtc <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceDxtcBuildDirectory, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install interface fullscreen <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + InterfaceFullscreenExportDirectory, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install interface 3d <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + Interface3DExportDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + Interface3DExportDirectory, clientPath)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
119
code/nel/tools/build_gamedata/processes/ligo/0_setup.py
Normal file
119
code/nel/tools/build_gamedata/processes/ligo/0_setup.py
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup ligo
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup ligo
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 ligo")
|
||||||
|
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 <<<")
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoMaxSourceDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + ZoneSourceDirectory)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseIgExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseZoneExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseZoneLigoExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseCmbExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoTagExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
if LigoExportLand != "":
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoZoneBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoIgLandBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankCmbBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
|
||||||
|
# Setup land exporter cfg
|
||||||
|
if LigoExportLand != "":
|
||||||
|
printLog(log, ">>> Setup land exporter cfg <<<")
|
||||||
|
mkPath(log, ScriptDirectory + "/configuration/project/generated")
|
||||||
|
cf = open(ScriptDirectory + "/configuration/project/generated/land_exporter.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// Ligo settings\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("OutZoneDir = \"" + ExportBuildDirectory + "/" + LigoZoneBuildDirectory + "\";\n")
|
||||||
|
cf.write("OutIGDir = \"" + ExportBuildDirectory + "/" + LigoIgLandBuildDirectory + "\";\n")
|
||||||
|
cf.write("AdditionnalIGOutDir = \"" + ExportBuildDirectory + "/" + LigoIgOtherBuildDirectory + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("RefZoneDir = \"" + DatabaseDirectory + "/" + LigoDatabaseZoneExportDirectory+ "\";\n") # FIXME
|
||||||
|
cf.write("RefIGDir = \"" + DatabaseDirectory + "/" + LigoDatabaseIgExportDirectory + "\";\n")
|
||||||
|
cf.write("AdditionnalIGInDir = \"" + DatabaseDirectory + "/" + LigoDatabaseIgExportDirectory + "\";\n") # FIXME
|
||||||
|
cf.write("ContinentsDir = \"" + LeveldesignWorldDirectory + "\";\n")
|
||||||
|
cf.write("LigoBankDir = \"" + DatabaseDirectory + "/" + LigoDatabaseZoneLigoExportDirectory + "\";\n") # FIXME
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("TileBankFile = \"" + DatabaseDirectory + "/" + LigoTileBankFile + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ColorMapFile = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportColormap + "\";\n")
|
||||||
|
cf.write("HeightMapFile1 = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap1 + "\";\n")
|
||||||
|
cf.write("ZFactor1 = " + LigoExportZFactor1 + ";\n")
|
||||||
|
cf.write("HeightMapFile2 = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportHeightmap2 + "\";\n")
|
||||||
|
cf.write("ZFactor2 = " + LigoExportZFactor2 + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ZoneLight = 0;\n")
|
||||||
|
cf.write("CellSize = 160;\n")
|
||||||
|
cf.write("Threshold = 1;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("DFNDir = \"" + LeveldesignDfnDirectory + "\";\n")
|
||||||
|
cf.write("RefCMBDir = \"" + DatabaseDirectory + "/" + LigoDatabaseCmbExportDirectory + "\";\n") # FIXME
|
||||||
|
cf.write("OutCMBDir = \"" + ExportBuildDirectory + "/" + RbankCmbBuildDirectory + "\";\n") # FIXME
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ContinentFile = \"" + LeveldesignWorldDirectory + "/" + ContinentFile + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ExportCollisions = 1;\n")
|
||||||
|
cf.write("ExportAdditionnalIGs = 1;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ZoneRegionFile = \"" + DatabaseDirectory + "/" + LigoBaseSourceDirectory + "/" + LigoExportLand + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
104
code/nel/tools/build_gamedata/processes/ligo/1_export.py
Normal file
104
code/nel/tools/build_gamedata/processes/ligo/1_export.py
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export ligo
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export ligo
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 ligo")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if LigoExportLand == "" or LigoExportOnePass == 1:
|
||||||
|
# Find tools
|
||||||
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each directory
|
||||||
|
printLog(log, ">>> Export ligo 3dsmax <<<")
|
||||||
|
|
||||||
|
ligoIniPath = MaxUserDirectory + "/plugcfg/nelligo.ini"
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoMaxSourceDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseIgExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseZoneExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseZoneLigoExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + LigoDatabaseCmbExportDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + ZoneSourceDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + LigoTagExportDirectory)
|
||||||
|
printLog(log, "WRITE " + ligoIniPath)
|
||||||
|
ligoIni = open(ligoIniPath, "w")
|
||||||
|
ligoIni.write("[LigoConfig]\n")
|
||||||
|
ligoIni.write("LigoPath=" + DatabaseDirectory + "/" + LigoMaxSourceDirectory + "/\n")
|
||||||
|
ligoIni.write("LigoExportPath=" + DatabaseDirectory + "/" + LigoDatabaseExportDirectory + "/\n")
|
||||||
|
ligoIni.write("LigoOldZonePath=" + DatabaseDirectory + "/" + ZoneSourceDirectory + "/\n")
|
||||||
|
ligoIni.close()
|
||||||
|
|
||||||
|
outDirTag = ExportBuildDirectory + "/" + LigoTagExportDirectory
|
||||||
|
logFile = ScriptDirectory + "/processes/ligo/log.log"
|
||||||
|
smallBank = ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + BankTileBankName + ".smallbank"
|
||||||
|
|
||||||
|
scriptSrc = "maxscript/nel_ligo_export.ms"
|
||||||
|
scriptDst = MaxUserDirectory + "/scripts/nel_ligo_export.ms"
|
||||||
|
|
||||||
|
if os.path.isfile(scriptDst):
|
||||||
|
os.remove(scriptDst)
|
||||||
|
|
||||||
|
printLog(log, "WRITE " + scriptDst)
|
||||||
|
sSrc = open(scriptSrc, "r")
|
||||||
|
sDst = open(scriptDst, "w")
|
||||||
|
for line in sSrc:
|
||||||
|
newline = line.replace("output_logfile", logFile)
|
||||||
|
newline = newline.replace("output_directory_tag", outDirTag)
|
||||||
|
newline = newline.replace("bankFilename", smallBank)
|
||||||
|
sDst.write(newline)
|
||||||
|
sSrc.close()
|
||||||
|
sDst.close()
|
||||||
|
|
||||||
|
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||||
|
subprocess.call([ Max, "-U", "MAXScript", "nel_ligo_export.ms", "-q", "-mi", "-vn" ])
|
||||||
|
|
||||||
|
os.remove(scriptDst)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
69
code/nel/tools/build_gamedata/processes/ligo/2_build.py
Normal file
69
code/nel/tools/build_gamedata/processes/ligo/2_build.py
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build ligo
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build ligo
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 ligo")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if LigoExportLand != "":
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
LandExport = findTool(log, ToolDirectories, LandExportTool, ToolSuffix)
|
||||||
|
|
||||||
|
printLog(log, ">>> Generate ligo zone <<<")
|
||||||
|
if LandExport == "":
|
||||||
|
toolLogFail(log, LandExportTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogfail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
subprocess.call([ ExecTimeout, str(LigoExportTimeout), LandExport, ScriptDirectory + "/configuration/project/generated/land_exporter.cfg" ])
|
||||||
|
|
||||||
|
printLog(log, ">>> Copy to zone builder <<<")
|
||||||
|
dirSource = ExportBuildDirectory + "/" + LigoZoneBuildDirectory
|
||||||
|
dirTarget = ExportBuildDirectory + "/" + ZoneExportDirectory
|
||||||
|
mkPath(log, dirSource)
|
||||||
|
mkPath(log, dirTarget)
|
||||||
|
copyFilesExtReplaceNoTreeIfNeeded(log, dirSource, dirTarget, ".zonel", ".zone")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, dirSource, dirTarget, ".zonenh")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
50
code/nel/tools/build_gamedata/processes/ligo/3_install.py
Normal file
50
code/nel/tools/build_gamedata/processes/ligo/3_install.py
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install ligo
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install ligo
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 ligo")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,957 @@
|
||||||
|
-- Export zones and transzones
|
||||||
|
|
||||||
|
ligo = 1304892483
|
||||||
|
ligo_passable_app = ligo
|
||||||
|
ligo_rotate_app = 1266703978
|
||||||
|
ligo_scale_app = 1266703979
|
||||||
|
ligo_instance_app = 1266703980
|
||||||
|
|
||||||
|
TransitionScale = #( false, false, false, false, true, false, false, false, false)
|
||||||
|
TransitionRot = #( 2, 1, 3, 0, 1, 3, 0, 0, 0)
|
||||||
|
TransitionPos = #( [0, 0, 0], [-1, 0, 0], [-1, -1, 0], [-1, -2, 0], [0, -2, 0], [0, -3, 0], [-1, -3, 0], [-2, -3, 0], [-3, -3, 0])
|
||||||
|
TransitionIds = #( #( 1, 2 ), #( undefinded, 3 ), #( 5, 4 ), #( 6, 7, 8, 9 ) )
|
||||||
|
TransitionType = #( "CornerA", "CornerA", "Flat", "CornerA", "CornerB", "CornerB", "Flat", "Flat", "CornerB")
|
||||||
|
TransitionNumBis = #( 5, 4, 2, 3, 7, 6, 0, 1, 8)
|
||||||
|
|
||||||
|
NEL3D_APPDATA_IGNAME = 1423062564 -- string : name of the Instance Group
|
||||||
|
|
||||||
|
tagThisFile = true
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
fn unhidecategory =
|
||||||
|
(
|
||||||
|
if (geometry.count > 0) then
|
||||||
|
(
|
||||||
|
unhide geometry[1]
|
||||||
|
if (geometry[1].ishidden == true) then
|
||||||
|
max hide object toggle
|
||||||
|
)
|
||||||
|
if (shapes.count > 0) then
|
||||||
|
(
|
||||||
|
unhide shapes[1]
|
||||||
|
if (shapes[1].ishidden == true) then
|
||||||
|
max hide shape toggle
|
||||||
|
)
|
||||||
|
if (lights.count > 0) then
|
||||||
|
(
|
||||||
|
unhide lights[1]
|
||||||
|
if (lights[1].ishidden == true) then
|
||||||
|
max hide light toggle
|
||||||
|
)
|
||||||
|
if (cameras.count > 0) then
|
||||||
|
(
|
||||||
|
unhide cameras[1]
|
||||||
|
if (cameras[1].ishidden == true) then
|
||||||
|
max hide camera toggle
|
||||||
|
)
|
||||||
|
if (helpers.count > 0) then
|
||||||
|
(
|
||||||
|
unhide helpers[1]
|
||||||
|
if (helpers[1].ishidden == true) then
|
||||||
|
max hide helper toggle
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Lower case
|
||||||
|
fn lowercase instring =
|
||||||
|
(
|
||||||
|
local upper, lower, outstring
|
||||||
|
upper="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
lower="abcdefghijklmnopqrstuvwxyz"
|
||||||
|
|
||||||
|
outstring = copy instring
|
||||||
|
|
||||||
|
for iii = 1 to outstring.count do
|
||||||
|
(
|
||||||
|
jjj = findString upper outstring[iii]
|
||||||
|
if (jjj != undefined) then
|
||||||
|
outstring[iii] = lower[jjj]
|
||||||
|
else
|
||||||
|
outstring[iii] = instring[iii]
|
||||||
|
)
|
||||||
|
return outstring -- value of outstring will be returned as function result
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Allocate 20 Me for the script
|
||||||
|
heapSize += 15000000
|
||||||
|
|
||||||
|
nlErrorFilename = "output_logfile"
|
||||||
|
nlErrorStream = openFile nlErrorFilename mode:"a"
|
||||||
|
if nlErrorStream == undefined then
|
||||||
|
nlErrorStream = createFile nlErrorFilename
|
||||||
|
|
||||||
|
-- Log a message
|
||||||
|
fn nlerror message =
|
||||||
|
(
|
||||||
|
if nlErrorStream != undefined then
|
||||||
|
(
|
||||||
|
format "%\n" message to:nlErrorStream
|
||||||
|
flush nlErrorStream
|
||||||
|
)
|
||||||
|
|
||||||
|
-- To the console
|
||||||
|
print message
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Add properties
|
||||||
|
fn addProperties node propsArray =
|
||||||
|
(
|
||||||
|
-- The passable properties
|
||||||
|
if (getappdata node ligo_passable_app) != undefined then
|
||||||
|
append propsArray #( "passable", "yes")
|
||||||
|
else
|
||||||
|
append propsArray #( "passable", "no")
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Is this node a debug markers ?
|
||||||
|
fn isDebugMarker node =
|
||||||
|
(
|
||||||
|
return matchPattern node.name pattern:"[NELLIGO]*"
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Delete debug markers
|
||||||
|
fn DeleteDebugMarkersFn =
|
||||||
|
(
|
||||||
|
-- Array to delete
|
||||||
|
arrayToDelete = #()
|
||||||
|
|
||||||
|
-- For each error names
|
||||||
|
for i = 1 to rootNode.children.count do
|
||||||
|
(
|
||||||
|
-- Node id
|
||||||
|
id = rootNode.children.count-i+1
|
||||||
|
|
||||||
|
if (isDebugMarker rootNode.children[id]) == true then
|
||||||
|
(
|
||||||
|
append arrayToDelete rootNode.children[id]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- For each node to delete
|
||||||
|
for i = 1 to arrayToDelete.count do
|
||||||
|
(
|
||||||
|
-- Node id
|
||||||
|
delete arrayToDelete[i]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Get the transition zone coordinate
|
||||||
|
fn getTransitionZoneCoordinates node x y =
|
||||||
|
(
|
||||||
|
-- Get nelsize
|
||||||
|
cellSize = NeLLigoGetCellSize ()
|
||||||
|
|
||||||
|
-- Object center
|
||||||
|
center = node.center
|
||||||
|
|
||||||
|
-- Get X and Y coordinates
|
||||||
|
x[1] = (center.x / cellSize) as Integer
|
||||||
|
y[1] = (center.y / cellSize) as Integer
|
||||||
|
|
||||||
|
-- Valid Y coordinate ?
|
||||||
|
if (y[1] < 0) or (y[1] >= TransitionIds.count) then
|
||||||
|
(
|
||||||
|
if (nodeArray != undefined) then
|
||||||
|
messageBox ("The zone "+nodeArray[zone].name+" is not well positionned. Check the transition scheme.") title:title_msgbox beep:true
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Valid X coordinate ?
|
||||||
|
if (x[1] < 0) or (x[1] >= TransitionIds[y[1]+1].count) then
|
||||||
|
(
|
||||||
|
if (nodeArray != undefined) then
|
||||||
|
messageBox ("The zone "+nodeArray[zone].name+" is not well positionned. Check the transition scheme.") title:title_msgbox beep:true
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
return true
|
||||||
|
)
|
||||||
|
|
||||||
|
fn selectAllPatch =
|
||||||
|
(
|
||||||
|
clearselection ()
|
||||||
|
for i in geometry do
|
||||||
|
(
|
||||||
|
if (classof i) == RklPatch then
|
||||||
|
(
|
||||||
|
if (i.isFrozen == false) then
|
||||||
|
(
|
||||||
|
selectmore i
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
-- Get the ig name of this object
|
||||||
|
fn getIg node =
|
||||||
|
(
|
||||||
|
igName = (getappdata node NEL3D_APPDATA_IGNAME)
|
||||||
|
if igName == "" then
|
||||||
|
(
|
||||||
|
return undefined
|
||||||
|
)
|
||||||
|
if (igName != undefined) then
|
||||||
|
return (lowercase (igName))
|
||||||
|
else
|
||||||
|
return undefined
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Export collisions from the current loaded zone
|
||||||
|
fn exportCollisionsFromZone outputPath filename =
|
||||||
|
(
|
||||||
|
max select all
|
||||||
|
-- Export the collision
|
||||||
|
if (NelExportCollision ($selection as array) outputPath) == false then
|
||||||
|
(
|
||||||
|
-- nlerror ("WARNING No collision exported from file "+filename)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("OK collision in folder "+outputPath)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
fn buildTransitionMatrix mt transitionZone cellSize =
|
||||||
|
(
|
||||||
|
copyMt = mt
|
||||||
|
backupPos = copyMt.pos
|
||||||
|
copyMt.pos = [0,0,0]
|
||||||
|
|
||||||
|
-- Scale ?
|
||||||
|
if TransitionScale[transitionZone] == true then
|
||||||
|
(
|
||||||
|
copyMt = scale copyMt [-1,1,1]
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Rotate
|
||||||
|
if TransitionRot[transitionZone] != 0 then
|
||||||
|
(
|
||||||
|
copyMt = rotateZ copyMt (90*TransitionRot[transitionZone])
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Translation
|
||||||
|
return translate copyMt ( (TransitionPos[transitionZone] * cellSize) + backupPos)
|
||||||
|
)
|
||||||
|
|
||||||
|
fn buildTransitionMatrixObj mt transitionZone cellSize =
|
||||||
|
(
|
||||||
|
-- Place at the origine
|
||||||
|
copyMt = transMatrix (TransitionPos[transitionZone] * cellSize)
|
||||||
|
|
||||||
|
-- Center the zone
|
||||||
|
copyMt = translate copyMt [-cellSize/2, -cellSize/2, 0]
|
||||||
|
|
||||||
|
-- Scale ?
|
||||||
|
if TransitionScale[transitionZone] == true then
|
||||||
|
(
|
||||||
|
copyMt = scale copyMt [-1,1,1] true
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Rotate
|
||||||
|
if TransitionRot[transitionZone] != 0 then
|
||||||
|
(
|
||||||
|
copyMt = rotateZ copyMt (90*TransitionRot[transitionZone])
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Translation
|
||||||
|
copyMt = translate copyMt [cellSize/2,cellSize/2,0]
|
||||||
|
|
||||||
|
-- Compose
|
||||||
|
return (mt * copyMt)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Export instance groups from the current loaded zone
|
||||||
|
fn exportInstanceGroupFromZone inputFile outputPath igName transitionZone cellSize =
|
||||||
|
(
|
||||||
|
-- Unhide
|
||||||
|
max unhide all
|
||||||
|
|
||||||
|
-- unselect
|
||||||
|
max select none
|
||||||
|
|
||||||
|
-- Exported object count
|
||||||
|
exported = 0
|
||||||
|
|
||||||
|
-- Ig array
|
||||||
|
ig_array = #()
|
||||||
|
|
||||||
|
-- Scan all the ig in this project
|
||||||
|
for node in geometry do
|
||||||
|
(
|
||||||
|
ig = getIg node
|
||||||
|
if ( (ig != undefined) and (ig != "") and ( (igName == "") or (ig == igName) ) ) then
|
||||||
|
(
|
||||||
|
-- Transition ?
|
||||||
|
if ( ig == IgName) then
|
||||||
|
(
|
||||||
|
-- Transform the object
|
||||||
|
node.transform = buildTransitionMatrixObj node.transform transitionZone cellSize
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Found ?
|
||||||
|
found = false
|
||||||
|
|
||||||
|
-- Already found ?
|
||||||
|
for j = 1 to ig_array.count do
|
||||||
|
(
|
||||||
|
if (ig_array[j]==ig) then
|
||||||
|
(
|
||||||
|
found = true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Found ?
|
||||||
|
if (found == false) then
|
||||||
|
(
|
||||||
|
append ig_array ig
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
for node in lights do
|
||||||
|
(
|
||||||
|
ig = getIg node
|
||||||
|
|
||||||
|
if ( (ig != undefined) and (ig != "") and ( (igName == "") or ( ig == igName) ) ) then
|
||||||
|
(
|
||||||
|
-- Transition ?
|
||||||
|
if ( ig == IgName) then
|
||||||
|
(
|
||||||
|
-- Transform the object
|
||||||
|
node.transform = buildTransitionMatrixObj node.transform transitionZone cellSize
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Found ?
|
||||||
|
found = false
|
||||||
|
|
||||||
|
-- Already found ?
|
||||||
|
for j = 1 to ig_array.count do
|
||||||
|
(
|
||||||
|
if (ig_array[j]==ig) then
|
||||||
|
(
|
||||||
|
found = true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Found ?
|
||||||
|
if (found == false) then
|
||||||
|
(
|
||||||
|
append ig_array ig
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
for node in helpers do
|
||||||
|
(
|
||||||
|
ig = getIg node
|
||||||
|
if ( (ig != undefined) and (ig != "") and ( (igName == "") or (ig == igName) ) ) then
|
||||||
|
(
|
||||||
|
-- Transition ?
|
||||||
|
if (ig == IgName) then
|
||||||
|
(
|
||||||
|
-- Transform the object
|
||||||
|
node.transform = buildTransitionMatrixObj node.transform transitionZone cellSize
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Found ?
|
||||||
|
found = false
|
||||||
|
-- Already found ?
|
||||||
|
for j = 1 to ig_array.count do
|
||||||
|
(
|
||||||
|
if (ig_array[j]==ig) then
|
||||||
|
(
|
||||||
|
found = true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
-- Found ?
|
||||||
|
if (found == false) then
|
||||||
|
(
|
||||||
|
append ig_array ig
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Have some ig ?
|
||||||
|
if (ig_array.count != 0) then
|
||||||
|
(
|
||||||
|
-- For each ig
|
||||||
|
for ig = 1 to ig_array.count do
|
||||||
|
(
|
||||||
|
if ( (igName == "") or (ig_array[ig] == IgName) ) then
|
||||||
|
(
|
||||||
|
-- Output filename
|
||||||
|
output = (outputPath + ig_array[ig] + ".ig")
|
||||||
|
|
||||||
|
-- Check date
|
||||||
|
if (NeLTestFileDate output inputFile) == true then
|
||||||
|
(
|
||||||
|
-- Select none
|
||||||
|
max select none
|
||||||
|
|
||||||
|
-- Select all node in this ig
|
||||||
|
for node in geometry do
|
||||||
|
(
|
||||||
|
-- Select it if in the ig
|
||||||
|
if ( (getIg node) == ig_array[ig]) then
|
||||||
|
selectmore node
|
||||||
|
)
|
||||||
|
-- Select all lights in this ig
|
||||||
|
for node in lights do
|
||||||
|
(
|
||||||
|
-- Select it if in the ig
|
||||||
|
if ( (getIg node) == ig_array[ig]) then
|
||||||
|
selectmore node
|
||||||
|
)
|
||||||
|
-- Select all helpers in this ig
|
||||||
|
for node in helpers do
|
||||||
|
(
|
||||||
|
-- Select it if in the ig
|
||||||
|
if ( (getIg node) == ig_array[ig]) then
|
||||||
|
selectmore node
|
||||||
|
)
|
||||||
|
-- Check export
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Export the ig
|
||||||
|
instancegroup2export = $selection as array
|
||||||
|
if (NelExportInstanceGroup instancegroup2export output) == true then
|
||||||
|
(
|
||||||
|
nlerror ("OK "+output)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting ig "+ig_array[ig]+" in file "+inputFile)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting ig "+ig_array[ig]+" in file "+inputFile)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("SKIPPED ligo ig "+output)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------------------------------------------
|
||||||
|
-- ENTRY POINT
|
||||||
|
-- ***********
|
||||||
|
|
||||||
|
ligopath = getINISetting ((GetDir #plugcfg)+"\\nelligo.ini") "LigoConfig" "LigoPath"
|
||||||
|
if ligopath != "" then ligo_root_path = ligopath
|
||||||
|
ligopath = getINISetting ((GetDir #plugcfg)+"\\nelligo.ini") "LigoConfig" "LigoExportPath"
|
||||||
|
if ligopath != "" then ligo_export_path = ligopath
|
||||||
|
|
||||||
|
MaxFilesList = getFiles (ligo_root_path + "*.max")
|
||||||
|
|
||||||
|
|
||||||
|
-- EXPORT ZONES
|
||||||
|
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Set the bank pathname
|
||||||
|
bank_filename = "bankFilename"
|
||||||
|
NelSetTileBank bank_filename
|
||||||
|
|
||||||
|
cellSize = NeLLigoGetCellSize ()
|
||||||
|
|
||||||
|
for curFileName in MaxFilesList do
|
||||||
|
(
|
||||||
|
-- Free memory and file handles
|
||||||
|
gc ()
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
|
||||||
|
tokenArray = filterString (getFilenameFile curFileName) "-"
|
||||||
|
if (tokenArray.count == 3) and (tokenArray[1] == "zonematerial") then
|
||||||
|
(
|
||||||
|
-- Get the tag file name
|
||||||
|
tag = ("output_directory_tag/"+(getFilenameFile curFileName)+(getFilenameType curFileName)+".tag")
|
||||||
|
|
||||||
|
-- Compare date with the tag file
|
||||||
|
if (NeLTestFileDate tag curFileName) == true then
|
||||||
|
(
|
||||||
|
-- Try to tag this file
|
||||||
|
tagThisFile = true
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
nlerror ("Scanning file "+curFileName+" ...")
|
||||||
|
mergeMaxFile curFileName quiet:true
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
unhidecategory()
|
||||||
|
|
||||||
|
DeleteDebugMarkersFn ()
|
||||||
|
selectAllPatch ()
|
||||||
|
-- nlerror ("EXPORT "+ (getFilenameFile curFileName))
|
||||||
|
|
||||||
|
props = #( #("zone", (tokenArray[2] + "-" + tokenArray[3])), #("material", tokenArray[2]) )
|
||||||
|
|
||||||
|
if (selection as array).count > 1 then
|
||||||
|
(
|
||||||
|
nlerror ("ERROR In file "+(getFilenameFile curFileName)+", multiple NelPatchMesh. Can't export.");
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
if (selection as array).count == 0 then
|
||||||
|
(
|
||||||
|
nlerror ("WARNING In file "+(getFilenameFile curFileName)+", no NelPatchMesh to export.");
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
addProperties $ props
|
||||||
|
|
||||||
|
dstFileName = ligo_export_path + tokenArray[2] + "-" + tokenArray[3] + ".ligozone"
|
||||||
|
|
||||||
|
-- Error catching
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- export ligo zone
|
||||||
|
if (NeLLigoExportZone $ dstFileName props false false) then
|
||||||
|
(
|
||||||
|
nlerror ("OK "+ (getFilenameFile curFileName))
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("ERROR Error exporting ligo zone from file "+ (getFilenameFile curFileName))
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting ligo zone "+curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- export matching igs
|
||||||
|
try
|
||||||
|
(
|
||||||
|
exportInstanceGroupFromZone curFileName (ligo_export_path + "igs\\") "" 0 cellSize
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
nlerror("couldn't export ig for " + curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
-- export collisions
|
||||||
|
try
|
||||||
|
(
|
||||||
|
exportCollisionsFromZone (ligo_export_path + "cmb\\") curFileName
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
nlerror("couldn't export collision for " + curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Write a tag file
|
||||||
|
if tagThisFile == true then
|
||||||
|
(
|
||||||
|
tagFile = createFile tag
|
||||||
|
if tagFile == undefined then
|
||||||
|
(
|
||||||
|
nlerror ("WARNING can't create tag file "+tag)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
print "toto" to: tagFile
|
||||||
|
close tagFile
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("SKIPPED BY TAG ligozone "+ (getFilenameFile curFileName))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- EXPORT TRANSZONES
|
||||||
|
|
||||||
|
for curFileName in MaxFilesList do
|
||||||
|
(
|
||||||
|
-- Free memory and file handles
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- Reset 3dsmax
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
tokenArray = filterString (getFilenameFile curFileName) "-"
|
||||||
|
if (tokenArray.count == 4) and (tokenArray[1] == "zonetransition") then
|
||||||
|
(
|
||||||
|
HaveToExport = #()
|
||||||
|
for zone = 1 to 9 do
|
||||||
|
(
|
||||||
|
filename = tokenArray[2] + "-" + tokenArray[3] + "-" + tokenArray[4] + "-" + ((zone-1) as string)
|
||||||
|
filename = ligo_export_path + "zoneLigos\\" + filename + ".ligozone"
|
||||||
|
|
||||||
|
if (nelTestFileDate filename curFileName) == true then
|
||||||
|
(
|
||||||
|
append HaveToExport true
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
append HaveToExport false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Get the tag file name
|
||||||
|
tag = ("output_directory_tag/"+(getFilenameFile curFileName)+(getFilenameType curFileName)+".tag")
|
||||||
|
|
||||||
|
-- Compare date with the tag file
|
||||||
|
if (NeLTestFileDate tag curFileName) == true then
|
||||||
|
(
|
||||||
|
-- Try to tag this file
|
||||||
|
tagThisFile = true
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
nlerror ("Scanning file "+curFileName+" ...")
|
||||||
|
mergeMaxFile curFileName quiet:true
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
unhidecategory()
|
||||||
|
|
||||||
|
DeleteDebugMarkersFn ()
|
||||||
|
selectAllPatch ()
|
||||||
|
-- nlerror ("EXPORT "+ (getFilenameFile curFileName))
|
||||||
|
|
||||||
|
-- Array of selection
|
||||||
|
nodeArray = #()
|
||||||
|
if $ == $selection then
|
||||||
|
(
|
||||||
|
nodeArray = $selection as array
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
append nodeArray $
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Ok flag
|
||||||
|
ok = true
|
||||||
|
findOne = false
|
||||||
|
|
||||||
|
-- Cell Size
|
||||||
|
if cellSize != undefined then
|
||||||
|
(
|
||||||
|
-- Array of transitions zones
|
||||||
|
transitionZone = #()
|
||||||
|
for zone = 1 to 9 do
|
||||||
|
append transitionZone undefined
|
||||||
|
for zone = 1 to nodeArray.count do
|
||||||
|
(
|
||||||
|
-- Find one
|
||||||
|
findOne = true;
|
||||||
|
|
||||||
|
-- Get the zone coordinates
|
||||||
|
x = #()
|
||||||
|
y = #()
|
||||||
|
ok = getTransitionZoneCoordinates nodeArray[zone] x y
|
||||||
|
|
||||||
|
-- No error ?
|
||||||
|
if ok == true then
|
||||||
|
(
|
||||||
|
-- Transition number
|
||||||
|
id = TransitionIds[y[1]+1][x[1]+1]
|
||||||
|
|
||||||
|
-- Store it
|
||||||
|
if (id == undefined) then
|
||||||
|
(
|
||||||
|
nlerror ("ERROR A zone is not at the right position in "+ (getFilenameFile curFileName))
|
||||||
|
tagThisFile = false
|
||||||
|
ok = false
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
transitionZone[id] = nodeArray[zone]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Continue ?
|
||||||
|
if (ok == true) and (findOne == true) then
|
||||||
|
(
|
||||||
|
-- For each zone selected
|
||||||
|
for zone = 1 to 9 do
|
||||||
|
(
|
||||||
|
-- Zone name
|
||||||
|
zoneBaseName = tokenArray[2] + "-" + tokenArray[3] + "-" + tokenArray[4] + "-" + ((zone-1) as string)
|
||||||
|
|
||||||
|
-- Get the destination filename for export
|
||||||
|
filename = ligo_export_path + zoneBaseName + ".ligozone"
|
||||||
|
|
||||||
|
if (HaveToExport[zone] == true) then
|
||||||
|
(
|
||||||
|
-- Defined ?
|
||||||
|
if (transitionZone[zone] != undefined) then
|
||||||
|
(
|
||||||
|
-- Make an array of properties
|
||||||
|
props = #( #("zone", zoneBaseName), #("transname", (tokenArray[2]+"-"+tokenArray[3]) ), #("transtype", TransitionType[zone] ), #("transtype", TransitionType[zone] ), #("transnum", (TransitionNumBis[zone] as string) ) )
|
||||||
|
|
||||||
|
-- Add the properties
|
||||||
|
addProperties transitionZone[zone] props
|
||||||
|
|
||||||
|
-- Transform the zone
|
||||||
|
c = instance transitionZone[zone]
|
||||||
|
|
||||||
|
-- Change the name
|
||||||
|
c.name = "[NELLIGO] tmp export"
|
||||||
|
|
||||||
|
-- The matrix
|
||||||
|
mt = buildTransitionMatrix transitionZone[zone].transform zone cellSize
|
||||||
|
|
||||||
|
-- Scale ?
|
||||||
|
if TransitionScale[zone] == true then
|
||||||
|
(
|
||||||
|
setappdata c ligo_scale_app "1"
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Rotate
|
||||||
|
if TransitionRot[zone] != 0 then
|
||||||
|
(
|
||||||
|
setappdata c ligo_rotate_app (TransitionRot[zone] as string)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Transform the node
|
||||||
|
c.transform = mt
|
||||||
|
|
||||||
|
-- Export the zone
|
||||||
|
|
||||||
|
-- Error catching
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- nlerror ("EXPORT "+ (getFilenameFile filename))
|
||||||
|
if (NeLLigoExportZone c filename props false false) then
|
||||||
|
(
|
||||||
|
nlerror ("OK "+ (getFilenameFile filename))
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("ERROR Error exporting ligo zone from file "+ (getFilenameFile filename))
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting ligo zone "+curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Delete
|
||||||
|
delete c
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("SKIPPED ligozone transition "+ (getFilenameFile filename))
|
||||||
|
)
|
||||||
|
|
||||||
|
-- export igs
|
||||||
|
try
|
||||||
|
(
|
||||||
|
exportInstanceGroupFromZone curFileName (ligo_export_path + "igs\\") (lowercase (zoneBaseName)) zone cellSize
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
nlerror("couldn't export ig for " + curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
-- export collisions
|
||||||
|
try
|
||||||
|
(
|
||||||
|
exportCollisionsFromZone (ligo_export_path + "cmb\\") curFileName
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
nlerror("couldn't export collision for " + curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Write a tag file
|
||||||
|
if tagThisFile == true then
|
||||||
|
(
|
||||||
|
tagFile = createFile tag
|
||||||
|
if tagFile == undefined then
|
||||||
|
(
|
||||||
|
nlerror ("WARNING can't create tag file "+tag)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
print "toto" to: tagFile
|
||||||
|
close tagFile
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("SKIPPED BY TAG transition "+ (getFilenameFile curFileName))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- EXPORT SPECIAL ZONES
|
||||||
|
|
||||||
|
for curFileName in MaxFilesList do
|
||||||
|
(
|
||||||
|
-- Free memory and file handles
|
||||||
|
gc ()
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
tokenArray = filterString (getFilenameFile curFileName) "-"
|
||||||
|
if (tokenArray.count == 2) and (tokenArray[1] == "zonespecial") then
|
||||||
|
(
|
||||||
|
-- Get the tag file name
|
||||||
|
tag = ("output_directory_tag/"+(getFilenameFile curFileName)+(getFilenameType curFileName)+".tag")
|
||||||
|
|
||||||
|
-- Compare date with the tag file
|
||||||
|
if (NeLTestFileDate tag curFileName) == true then
|
||||||
|
(
|
||||||
|
-- Try to tag this file
|
||||||
|
tagThisFile = true
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
nlerror ("Scanning file "+curFileName+" ...")
|
||||||
|
mergeMaxFile curFileName quiet:true
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
unhidecategory()
|
||||||
|
|
||||||
|
DeleteDebugMarkersFn ()
|
||||||
|
selectAllPatch ()
|
||||||
|
-- nlerror ("EXPORT "+ (getFilenameFile curFileName))
|
||||||
|
|
||||||
|
props = #( #("zone", tokenArray[2]), #("material", "special") )
|
||||||
|
|
||||||
|
if (selection as array).count > 1 then
|
||||||
|
(
|
||||||
|
nlerror ("ERROR In file "+(getFilenameFile curFileName)+", multiple NelPatchMesh. Can't export.");
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
if (selection as array).count == 0 then
|
||||||
|
(
|
||||||
|
nlerror ("WARNING In file "+(getFilenameFile curFileName)+", no NelPatchMesh to export.");
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
addProperties $ props
|
||||||
|
|
||||||
|
dstFileName = ligo_export_path + tokenArray[2] + ".ligozone"
|
||||||
|
|
||||||
|
-- Error catching
|
||||||
|
try
|
||||||
|
(
|
||||||
|
if (NeLLigoExportZone $ dstFileName props false false) then
|
||||||
|
(
|
||||||
|
nlerror ("OK "+ (getFilenameFile curFileName))
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("ERROR Error exporting ligo zone from file "+ (getFilenameFile curFileName))
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting ligo zone "+curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- export matching igs
|
||||||
|
try
|
||||||
|
(
|
||||||
|
exportInstanceGroupFromZone curFileName (ligo_export_path + "igs\\") "" 0 cellSize
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
nlerror("couldn't export ig for " + curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
-- export collisions
|
||||||
|
try
|
||||||
|
(
|
||||||
|
exportCollisionsFromZone (ligo_export_path + "cmb\\") curFileName
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
nlerror("couldn't export collision for " + curFileName)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Write a tag file
|
||||||
|
if tagThisFile == true then
|
||||||
|
(
|
||||||
|
tagFile = createFile tag
|
||||||
|
if tagFile == undefined then
|
||||||
|
(
|
||||||
|
nlerror ("WARNING can't create tag file "+tag)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
print "toto" to: tagFile
|
||||||
|
close tagFile
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("SKIPPED BY TAG ligozone special "+ (getFilenameFile curFileName))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting ligo zone in folder"+ligo_root_path)
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
quitMAX #noPrompt
|
||||||
|
quitMAX () #noPrompt
|
||||||
|
|
68
code/nel/tools/build_gamedata/processes/map/0_setup.py
Normal file
68
code/nel/tools/build_gamedata/processes/map/0_setup.py
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup map
|
||||||
|
# \date 2009-03-10 14:56GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup map
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 map")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Setup source directories
|
||||||
|
printLog(log, ">>> Setup source directories <<<")
|
||||||
|
for dir in MapSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
for dir in MapUncompressedSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + MapClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/map/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/map/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export map
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export map
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 map")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
108
code/nel/tools/build_gamedata/processes/map/2_build.py
Normal file
108
code/nel/tools/build_gamedata/processes/map/2_build.py
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build map
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build map
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 map")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
PanoplyMaker = findTool(log, ToolDirectories, PanoplyMakerTool, ToolSuffix)
|
||||||
|
HlsBankMaker = findTool(log, ToolDirectories, HlsBankMakerTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each map directory
|
||||||
|
printLog(log, ">>> Build map compressed: compress tga and png to dds <<<")
|
||||||
|
if TgaToDds == "":
|
||||||
|
toolLogFail(log, TgaToDdsTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapBuildDirectory)
|
||||||
|
for dir in MapSourceDirectories:
|
||||||
|
sourcePath = DatabaseDirectory + "/" + dir
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
||||||
|
mkPath(log, destPath)
|
||||||
|
files = findFiles(log, sourcePath, "", ".tga")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = sourcePath + "/" + file
|
||||||
|
destFile = destPath + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
||||||
|
files = findFiles(log, sourcePath, "", ".png")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = sourcePath + "/" + file
|
||||||
|
destFile = destPath + "/" + os.path.basename(file)[0:-len(".png")] + ".dds"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-m", "-r" + str(ReduceBitmapFactor) ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build map uncompressed: copy tga, png, dds <<<")
|
||||||
|
for dir in MapSourceDirectories:
|
||||||
|
sourcePath = DatabaseDirectory + "/" + dir
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
destPath = ExportBuildDirectory + "/" + MapBuildDirectory
|
||||||
|
mkPath(log, destPath)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, sourcePath, destPath, ".dds")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, sourcePath, destPath, ".png")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, sourcePath, destPath, ".tga")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build panoply <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build panoply dds <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build hls map <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
69
code/nel/tools/build_gamedata/processes/map/3_install.py
Normal file
69
code/nel/tools/build_gamedata/processes/map/3_install.py
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install map
|
||||||
|
# \date 2009-03-10 13:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install map
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 map")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + MapClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install map <<<")
|
||||||
|
sourcePath = ExportBuildDirectory + "/" + MapBuildDirectory
|
||||||
|
mkPath(log, sourcePath)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, sourcePath, clientPath, ".dds")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, sourcePath, clientPath, ".png")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, sourcePath, clientPath, ".tga")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install map panoply <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + MapPanoplyBuildDirectory, clientPath, ".dds")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install map hlsbank <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
90
code/nel/tools/build_gamedata/processes/rbank/0_setup.py
Normal file
90
code/nel/tools/build_gamedata/processes/rbank/0_setup.py
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup rbank
|
||||||
|
# \date 2009-03-10-22-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup rbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 rbank")
|
||||||
|
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 <<<")
|
||||||
|
mkPath(log, LeveldesignWorldDirectory)
|
||||||
|
#for dir in rbankSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
#for dir in rbankDxtcSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
#for dir in rbankFullscreenSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
#for dir in rbank3DSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + rbankExportDirectory)
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + rbankDxtcExportDirectory)
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + rbankFullscreenExportDirectory)
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + rbank3DExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
for dir in RbankIgPaths:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
for dir in RbankShapePaths:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankBboxBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgVillageBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankTessellationBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankRawBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankPreprocBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankMeshBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + PacsClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
98
code/nel/tools/build_gamedata/processes/rbank/1_export.py
Normal file
98
code/nel/tools/build_gamedata/processes/rbank/1_export.py
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export rbank
|
||||||
|
# \date 2009-03-10-22-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export rbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 *
|
||||||
|
|
||||||
|
# ################### result = subprocess.Popen([ dfdsklfjslk ], stdout = PIPE).communicate()[0] ######################################
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, "--- Export rbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each rbank directory
|
||||||
|
printLog(log, ">>> Export rbank test 1 <<<")
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + rbankExportDirectory)
|
||||||
|
#for dir in rbankSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
# niouname = dir.replace("/", "_")
|
||||||
|
# newpath = ExportBuildDirectory + "/" + rbankExportDirectory + "/" + niouname
|
||||||
|
# mkPath(log, newpath)
|
||||||
|
# copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, newpath, ".tga")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each rbank directory to compress in one DXTC
|
||||||
|
printLog(log, ">>> Export rbank test 2 <<<")
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + rbankDxtcExportDirectory)
|
||||||
|
#for dir in rbankDxtcSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
# copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + rbankDxtcExportDirectory, ".tga")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each rbank fullscreen directory compress independently all in dds
|
||||||
|
printLog(log, ">>> Export rbank test 3 <<<")
|
||||||
|
#if TgaToDds == "":
|
||||||
|
# toolLogFail(log, TgaToDdsTool, ToolSuffix)
|
||||||
|
#else:
|
||||||
|
# mkPath(log, ExportBuildDirectory + "/" + rbankFullscreenExportDirectory)
|
||||||
|
# for dir in rbankFullscreenSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
# files = findFiles(log, DatabaseDirectory + "/" + dir, "", ".tga")
|
||||||
|
# for file in files:
|
||||||
|
# sourceFile = DatabaseDirectory + "/" + dir + "/" + file
|
||||||
|
# destFile = ExportBuildDirectory + "/" + rbankFullscreenExportDirectory + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
|
||||||
|
# if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
# subprocess.call([ TgaToDds, sourceFile, "-o", destFile, "-a", "5" ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each rbank 3d directory
|
||||||
|
printLog(log, ">>> Export rbank test 4 <<<")
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + rbank3DExportDirectory)
|
||||||
|
#for dir in rbank3DSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
# copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + rbank3DExportDirectory, ".tga")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
248
code/nel/tools/build_gamedata/processes/rbank/2_build.py
Normal file
248
code/nel/tools/build_gamedata/processes/rbank/2_build.py
Normal file
|
@ -0,0 +1,248 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build rbank
|
||||||
|
# \date 2009-03-10-22-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build rbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 rbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BuildIgBoxes = findTool(log, ToolDirectories, BuildIgBoxesTool, ToolSuffix)
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
BuildRbank = findTool(log, ToolDirectories, BuildRbankTool, ToolSuffix)
|
||||||
|
GetNeighbors = findTool(log, ToolDirectories, GetNeighborsTool, ToolSuffix)
|
||||||
|
BuildIndoorRbank = findTool(log, ToolDirectories, BuildIndoorRbankTool, ToolSuffix)
|
||||||
|
# AiBuildWmap = findTool(log, ToolDirectories, AiBuildWmapTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Build rbank bbox
|
||||||
|
printLog(log, ">>> Build rbank bbox <<<")
|
||||||
|
if BuildIgBoxes == "":
|
||||||
|
toolLogFail(log, BuildIgBoxesTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankBboxBuildDirectory)
|
||||||
|
cf = open("build_ig_boxes.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Pathes = {\n")
|
||||||
|
for dir in RbankIgPaths:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
for dir in RbankShapePaths:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("IGs = {\n")
|
||||||
|
for dir in RbankIgPaths:
|
||||||
|
files = findFiles(log, ExportBuildDirectory + "/" + dir, "", ".ig")
|
||||||
|
for file in files:
|
||||||
|
cf.write("\t\"" + os.path.basename(file)[0:-len(".ig")] + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Output = \"" + ExportBuildDirectory + "/" + RbankBboxBuildDirectory + "/temp.bbox\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ BuildIgBoxes ])
|
||||||
|
os.remove("build_ig_boxes.cfg")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank build config <<<")
|
||||||
|
cf = open("build_rbank.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// Rbank settings\n")
|
||||||
|
cf.write("\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
cf.write("ZonePath = \"" + ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
cf.write("BanksPath = \"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "/\";\n")
|
||||||
|
cf.write("Bank = \"" + ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + RbankBankName + ".smallbank\";\n")
|
||||||
|
cf.write("ZoneExt = \".zonew\";\n")
|
||||||
|
cf.write("ZoneNHExt = \".zonenhw\";\n")
|
||||||
|
cf.write("IGBoxes = \"" + ExportBuildDirectory + "/" + RbankBboxBuildDirectory + "/temp.bbox\";\n")
|
||||||
|
mkPath(log, LeveldesignWorldDirectory)
|
||||||
|
cf.write("LevelDesignWorldPath = \"" + LeveldesignWorldDirectory + "\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgLandBuildDirectory)
|
||||||
|
cf.write("IgLandPath = \"" + ExportBuildDirectory + "/" + IgLandBuildDirectory + "\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + IgVillageBuildDirectory)
|
||||||
|
cf.write("IgVillagePath = \"" + ExportBuildDirectory + "/" + IgVillageBuildDirectory + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankTessellationBuildDirectory)
|
||||||
|
cf.write("TessellationPath = \"" + ExportBuildDirectory + "/" + RbankTessellationBuildDirectory + "/\";\n")
|
||||||
|
cf.write("TessellateLevel = " + str(BuildQuality) + ";\n") # BuildQuality
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("WaterThreshold = 1.0;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("OutputRootPath = \"" + ExportBuildDirectory + "/\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory)
|
||||||
|
cf.write("SmoothDirectory = \"" + RbankSmoothBuildDirectory + "/\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankRawBuildDirectory)
|
||||||
|
cf.write("RawDirectory = \"" + RbankRawBuildDirectory + "/\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ReduceSurfaces = " + str(RbankReduceSurfaces) + ";\n")
|
||||||
|
cf.write("SmoothBorders = " + str(RbankSmoothBorders) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("ComputeElevation = " + str(RbankComputeElevation) + ";\n")
|
||||||
|
cf.write("ComputeLevels = " + str(RbankComputeLevels) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("LinkElements = " + str(RbankLinkElements) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("CutEdges = " + str(RbankCutEdges) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("UseZoneSquare = " + str(RbankUseZoneSquare) + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// The whole landscape\n")
|
||||||
|
cf.write("ZoneUL = \"" + RbankZoneUl + "\";\n")
|
||||||
|
cf.write("ZoneDR = \"" + RbankZoneDr + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankPreprocBuildDirectory)
|
||||||
|
cf.write("PreprocessDirectory = \"" + ExportBuildDirectory + "/" + RbankPreprocBuildDirectory + "/\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// The global retriever processing settings\n")
|
||||||
|
cf.write("GlobalRetriever = \"temp.gr\";\n")
|
||||||
|
cf.write("RetrieverBank = \"temp.rbank\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("GlobalUL = \"" + RbankZoneUl + "\";\n")
|
||||||
|
cf.write("GlobalDR = \"" + RbankZoneDr + "\";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("// Which kind of stuff to do\n")
|
||||||
|
cf.write("TessellateZones = 0;\n")
|
||||||
|
cf.write("MoulineZones = 0;\n")
|
||||||
|
cf.write("ProcessRetrievers = 0;\n")
|
||||||
|
cf.write("ProcessGlobal = 0;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Zones = {\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
files = findFiles(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory, "", ".zonew")
|
||||||
|
for file in files:
|
||||||
|
cf.write("\t\"" + os.path.basename(file) + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("Pathes = {\n")
|
||||||
|
for dir in RbankIgPaths:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
for dir in RbankShapePaths:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + dir)
|
||||||
|
cf.write("\t\"" + ExportBuildDirectory + "/" + dir + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank check prims <<<")
|
||||||
|
if BuildRbank == "":
|
||||||
|
toolLogFail(log, BuildRbankTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
subprocess.call([ ExecTimeout, str(RbankBuildTesselTimeout), BuildRbank, "-C", "-p", "-g" ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank process all passes <<<")
|
||||||
|
if BuildRbank == "":
|
||||||
|
toolLogFail(log, BuildRbankTool, ToolSuffix)
|
||||||
|
if GetNeighbors == "":
|
||||||
|
toolLogFail(log, GetNeighborsTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
zonefiles = findFiles(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory, "", ".zonew")
|
||||||
|
for zonefile in zonefiles:
|
||||||
|
zone = os.path.basename(zonefile)[0:-len(".zonew")]
|
||||||
|
lr1 = ExportBuildDirectory + "/" + RbankSmoothBuildDirectory + "/" + zone + ".lr"
|
||||||
|
nearzones = subprocess.Popen([ GetNeighbors, zone ], stdout = subprocess.PIPE).communicate()[0].strip().split(" ")
|
||||||
|
printLog(log, "ZONE " + zone + ": " + str(nearzones))
|
||||||
|
zone_to_build = 0
|
||||||
|
for nearzone in nearzones:
|
||||||
|
sourcePath = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + nearzone + ".zonew"
|
||||||
|
if (os.path.isfile(sourcePath)):
|
||||||
|
if (needUpdate(log, sourcePath, lr1)):
|
||||||
|
zone_to_build = 1
|
||||||
|
sourcePath = ExportBuildDirectory + "/" + ZoneWeldBuildDirectory + "/" + zone + ".zonew"
|
||||||
|
if zone_to_build:
|
||||||
|
printLog(log, sourcePath + " -> " + lr1)
|
||||||
|
subprocess.call([ ExecTimeout, str(RbankBuildTesselTimeout), BuildRbank, "-c", "-P", "-g", os.path.basename(zonefile) ])
|
||||||
|
else:
|
||||||
|
printLog(log, "SKIP " + lr1)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank process global <<<") # TODO: Check if the LR changed?
|
||||||
|
if BuildRbank == "":
|
||||||
|
toolLogFail(log, BuildRbankTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
subprocess.call([ ExecTimeout, str(RbankBuildProcglobalTimeout), BuildRbank, "-c", "-P", "-G" ])
|
||||||
|
printLog(log, "")
|
||||||
|
os.remove("build_rbank.cfg")
|
||||||
|
|
||||||
|
printLog(log, ">>> Build rbank indoor <<<")
|
||||||
|
if BuildIndoorRbank == "":
|
||||||
|
toolLogFail(log, BuildIndoorRbankTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
cf = open("build_indoor_rbank.cfg", "w")
|
||||||
|
cf.write("\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankMeshBuildDirectory)
|
||||||
|
cf.write("MeshPath = \"" + ExportBuildDirectory + "/" + RbankMeshBuildDirectory + "/\";\n")
|
||||||
|
cf.write("Meshes = { };\n") # *********************** TODO export CMB ********************************************
|
||||||
|
# mkPath(log, ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory)
|
||||||
|
# cf.write("OutputPath = \"" + ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory + "/\";\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankOutputBuildDirectory)
|
||||||
|
cf.write("OutputPath = \"" + ExportBuildDirectory + "/" + RbankOutputBuildDirectory + "/\";\n")
|
||||||
|
cf.write("OutputPrefix = \"unused\";\n")
|
||||||
|
cf.write("Merge = 1;\n")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + RbankSmoothBuildDirectory)
|
||||||
|
cf.write("MergePath = \"" + ExportBuildDirectory + "/" + RbankSmoothBuildDirectory + "/\";\n")
|
||||||
|
cf.write("MergeInputPrefix = \"temp\";\n")
|
||||||
|
# cf.write("MergeOutputPrefix = \"tempMerged\";\n")
|
||||||
|
cf.write("MergeOutputPrefix = \"" + RbankRbankName + "\";\n")
|
||||||
|
cf.write("AddToRetriever = 1;\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ ExecTimeout, str(RbankBuildIndoorTimeout), BuildIndoorRbank ])
|
||||||
|
os.remove("build_indoor_rbank.cfg")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
68
code/nel/tools/build_gamedata/processes/rbank/3_install.py
Normal file
68
code/nel/tools/build_gamedata/processes/rbank/3_install.py
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install rbank
|
||||||
|
# \date 2009-03-10-22-43-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install rbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 rbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install rbank <<<")
|
||||||
|
clientPath = ClientDataDirectory + "/" + PacsClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
srcPath = ExportBuildDirectory + "/" + RbankOutputBuildDirectory
|
||||||
|
mkPath(log, srcPath)
|
||||||
|
copyFilesNoTreeIfNeeded(log, srcPath, clientPath)
|
||||||
|
#clientPath = ClientDataDirectory + "/" + PacsClientDirectory
|
||||||
|
#mkPath(log, clientPath)
|
||||||
|
#srcPath = ExportBuildDirectory + "/" + RbankRetrieversBuildDirectory
|
||||||
|
#mkPath(log, srcPath)
|
||||||
|
#copyFileIfNeeded(log, srcPath + "/tempMerged.rbank", clientPath + "/" + RbankRbankName + ".rbank")
|
||||||
|
#copyFileIfNeeded(log, srcPath + "/tempMerged.gr", clientPath + "/" + RbankRbankName + ".gr")
|
||||||
|
#for file in findFiles(log, srcPath, "", ".lr"):
|
||||||
|
# copyFileIfNeeded(log, srcPath + "/" + file, clientPath + "/" + file.replace("tempMerged", RbankRbankName))
|
||||||
|
# mkPath(log, ExportBuildDirectory + "/" + rbankBuildDirectory)
|
||||||
|
# copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + rbankBuildDirectory, clientPath)
|
||||||
|
#copyFileIfNeeded
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
72
code/nel/tools/build_gamedata/processes/shape/0_setup.py
Normal file
72
code/nel/tools/build_gamedata/processes/shape/0_setup.py
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup shape
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup shape
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 shape")
|
||||||
|
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 ShapeSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
for dir in MapSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeTagExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeLightmapNotOptimizedExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + ShapeClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
136
code/nel/tools/build_gamedata/processes/shape/1_export.py
Normal file
136
code/nel/tools/build_gamedata/processes/shape/1_export.py
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export shape
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export shape
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 shape")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Override config values for draft mode
|
||||||
|
if BuildQuality == 0:
|
||||||
|
ShapeExportOptExportLighting = "false"
|
||||||
|
ShapeExportOptShadow = "false"
|
||||||
|
ShapeExportOptLightingLimit = 0
|
||||||
|
ShapeExportOptLumelSize = "0.25"
|
||||||
|
ShapeExportOptOversampling = 1
|
||||||
|
|
||||||
|
if MaxAvailable:
|
||||||
|
# Find tools
|
||||||
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
|
# ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Export shape 3dsmax
|
||||||
|
printLog(log, ">>> Export shape 3dsmax <<<")
|
||||||
|
|
||||||
|
# Build paths
|
||||||
|
scriptSrc = "maxscript/shape_export.ms"
|
||||||
|
# scriptDst = MaxDirectory + "/scripts/shape_export.ms"
|
||||||
|
scriptDst = MaxUserDirectory + "/scripts/shape_export.ms"
|
||||||
|
logFile = ScriptDirectory + "/processes/shape/log.log"
|
||||||
|
outDirTag = ExportBuildDirectory + "/" + ShapeTagExportDirectory
|
||||||
|
mkPath(log, outDirTag)
|
||||||
|
outDirWithoutCoarse = ExportBuildDirectory + "/" + ShapeExportDirectory
|
||||||
|
mkPath(log, outDirWithoutCoarse)
|
||||||
|
outDirWithCoarse = ExportBuildDirectory + "/" + ShapeWithCoarseMeshExportDirectory
|
||||||
|
mkPath(log, outDirWithCoarse)
|
||||||
|
outDirLightmap = ExportBuildDirectory + "/" + ShapeLightmapNotOptimizedExportDirectory
|
||||||
|
mkPath(log, outDirLightmap)
|
||||||
|
outDirAnim = ExportBuildDirectory + "/" + ShapeAnimExportDirectory
|
||||||
|
mkPath(log, outDirAnim)
|
||||||
|
|
||||||
|
tagList = findFiles(log, outDirTag, "", ".tag")
|
||||||
|
tagLen = len(tagList)
|
||||||
|
|
||||||
|
# For each directoy
|
||||||
|
if os.path.isfile(scriptDst):
|
||||||
|
os.remove(scriptDst)
|
||||||
|
for dir in ShapeSourceDirectories:
|
||||||
|
tagDiff = 1
|
||||||
|
shapeSourceDir = DatabaseDirectory + "/" + dir
|
||||||
|
mkPath(log, shapeSourceDir)
|
||||||
|
sSrc = open(scriptSrc, "r")
|
||||||
|
sDst = open(scriptDst, "w")
|
||||||
|
for line in sSrc:
|
||||||
|
newline = line.replace("output_logfile", logFile)
|
||||||
|
newline = newline.replace("shape_source_directory", shapeSourceDir)
|
||||||
|
newline = newline.replace("output_directory_tag", outDirTag)
|
||||||
|
newline = newline.replace("output_directory_without_coarse_mesh", outDirWithoutCoarse)
|
||||||
|
newline = newline.replace("output_directory_with_coarse_mesh", outDirWithCoarse)
|
||||||
|
newline = newline.replace("shape_export_opt_export_lighting", ShapeExportOptExportLighting)
|
||||||
|
newline = newline.replace("shape_export_opt_shadow", ShapeExportOptShadow)
|
||||||
|
newline = newline.replace("shape_export_opt_lighting_limit", str(ShapeExportOptLightingLimit))
|
||||||
|
newline = newline.replace("shape_export_opt_lumel_size", ShapeExportOptLumelSize)
|
||||||
|
newline = newline.replace("shape_export_opt_oversampling", str(ShapeExportOptOversampling))
|
||||||
|
newline = newline.replace("shape_export_opt_lightmap_log", ShapeExportOptLightmapLog)
|
||||||
|
newline = newline.replace("shape_lightmap_path", outDirLightmap)
|
||||||
|
newline = newline.replace("output_directory_anim", outDirAnim)
|
||||||
|
sDst.write(newline)
|
||||||
|
sSrc.close()
|
||||||
|
sDst.close()
|
||||||
|
while tagDiff > 0:
|
||||||
|
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||||
|
subprocess.call([ Max, "-U", "MAXScript", "shape_export.ms", "-q", "-mi", "-vn" ])
|
||||||
|
tagList = findFiles(log, outDirTag, "", ".tag")
|
||||||
|
newTagLen = len(tagList)
|
||||||
|
tagDiff = newTagLen - tagLen
|
||||||
|
tagLen = newTagLen
|
||||||
|
printLog(log, "Exported " + str(tagDiff) + " .max files!")
|
||||||
|
os.remove(scriptDst)
|
||||||
|
|
||||||
|
# Export clod 3dsmax
|
||||||
|
printLog(log, ">>> Export character lod shape files (.clod) from Max <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
# cat ../clodbank/maxscript/clod_export.ms
|
||||||
|
#| sed -e "s&shape_source_directory&$database_directory/$i&g"
|
||||||
|
#| sed -e "s&output_directory_clod&$build_gamedata_directory/processes/shape/clod&g"
|
||||||
|
#| sed -e "s&output_directory_tag&$build_gamedata_directory/processes/shape/tag&g"
|
||||||
|
# > $max_directory/scripts/clod_export.ms
|
||||||
|
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
118
code/nel/tools/build_gamedata/processes/shape/2_build.py
Normal file
118
code/nel/tools/build_gamedata/processes/shape/2_build.py
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build shape
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build shape
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 shape")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
BuildShadowSkin = findTool(log, ToolDirectories, BuildShadowSkinTool, ToolSuffix)
|
||||||
|
BuildClodtex = findTool(log, ToolDirectories, BuildClodtexTool, ToolSuffix)
|
||||||
|
LightmapOptimizer = findTool(log, ToolDirectories, LightmapOptimizerTool, ToolSuffix)
|
||||||
|
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
|
BuildCoarseMesh = findTool(log, ToolDirectories, BuildCoarseMeshTool, ToolSuffix)
|
||||||
|
|
||||||
|
if DoBuildShadowSkin:
|
||||||
|
printLog(log, ">>> BuildShadowSkin <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
if ClodConfigFile != "":
|
||||||
|
printLog(log, ">>> BuildClodtex <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
printLog(log, ">>> LightmapOptimizer <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
printLog(log, ">>> TgaToDds <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
|
||||||
|
if 1: # todo: CoarseMeshTextureNames length > 0 ...
|
||||||
|
printLog(log, ">>> Build coarse meshes <<<")
|
||||||
|
shapeWithCoarseMesh = ExportBuildDirectory + "/" + ShapeWithCoarseMeshExportDirectory
|
||||||
|
mkPath(log, shapeWithCoarseMesh)
|
||||||
|
shapeWithCoarseMeshBuilded = ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory
|
||||||
|
mkPath(log, shapeWithCoarseMeshBuilded)
|
||||||
|
cf = open("config_generated.cfg", "w")
|
||||||
|
cf.write("texture_mul_size = " + TextureMulSizeValue + ";\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("search_path = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
cf.write("\t\"" + shapeWithCoarseMesh + "\", \n")
|
||||||
|
for dir in MapSourceDirectories:
|
||||||
|
cf.write("\t\"" + DatabaseDirectory + "/" + dir + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("list_mesh = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
# For each shape with coarse mesh
|
||||||
|
files = findFiles(log, shapeWithCoarseMesh, "", ".shape")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = shapeWithCoarseMesh + "/" + file
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
destFile = shapeWithCoarseMeshBuilded + "/" + file
|
||||||
|
cf.write("\t\"" + file + "\", \"" + destFile + "\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.write("\n")
|
||||||
|
cf.write("output_textures = \n")
|
||||||
|
cf.write("{\n")
|
||||||
|
# For each shape with coarse mesh
|
||||||
|
for tn in CoarseMeshTextureNames:
|
||||||
|
cf.write("\t\"" + shapeWithCoarseMesh + "/" + tn + ".tga\", \n")
|
||||||
|
cf.write("};\n")
|
||||||
|
cf.close()
|
||||||
|
subprocess.call([ BuildCoarseMesh, "config_generated.cfg" ])
|
||||||
|
os.remove("config_generated.cfg")
|
||||||
|
for tn in CoarseMeshTextureNames:
|
||||||
|
subprocess.call([ TgaToDds, shapeWithCoarseMesh + "/" + tn + ".tga", "-o", shapeWithCoarseMeshBuilded + "/" + tn + ".dds", "-a", "5" ])
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
70
code/nel/tools/build_gamedata/processes/shape/3_install.py
Normal file
70
code/nel/tools/build_gamedata/processes/shape/3_install.py
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install shape
|
||||||
|
# \date 2010-05-24 13:42GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install shape
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 shape")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + ShapeClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install shape <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeExportDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeExportDirectory, clientPath, ".shape")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".shape")
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeWithCoarseMeshBuildDirectory, clientPath, ".dds")
|
||||||
|
|
||||||
|
#if test "$lightmap_install_directory"; then
|
||||||
|
# mkdir $client_directory/$lightmap_install_directory 2>> log.log 2> /dev/null
|
||||||
|
# cp -u -p -R lightmap_16_bits/. $client_directory/$lightmap_install_directory 2>> log.log
|
||||||
|
#fi
|
||||||
|
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + ShapeAnimExportDirectory, clientPath, ".anim")
|
||||||
|
|
||||||
|
# ls anim | grep ".anim" >> $client_directory/auto_animations_list.txt
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,511 @@
|
||||||
|
-- Some globals
|
||||||
|
|
||||||
|
NEL3D_APPDATA_ACCEL = 1423062561 -- type of accelerator : "32" = is not an accelerator and IS clusterized
|
||||||
|
-- "0" = is not an accelerator and IS NOT clusterized (always visible)
|
||||||
|
-- "1" = is an accelerator type PORTAL
|
||||||
|
-- "2" = is an accelerator type CLUSTER
|
||||||
|
-- "6" = is an accelerator type CLUSTER FATHER-VISIBLE
|
||||||
|
-- "10" = is an accelerator type CLUSTER VISIBLE-FROM-FATHER
|
||||||
|
-- "14" = is an accelerator type CLUSTER FATHER-VISIBLE and VISIBLE-FROM-FATHER
|
||||||
|
-- "17" = is an accelerator type PORTAL DYNAMIC
|
||||||
|
|
||||||
|
NEL3D_APPDATA_DONOTEXPORT = 1423062565 -- do not export me : "undefined" = export me
|
||||||
|
-- "0" = export me
|
||||||
|
-- "1" = DONT export me
|
||||||
|
|
||||||
|
NEL3D_APPDATA_LOD_NAME_COUNT_MAX = 10
|
||||||
|
NEL3D_APPDATA_LOD = 1423062537
|
||||||
|
NEL3D_APPDATA_LOD_NAME_COUNT = NEL3D_APPDATA_LOD
|
||||||
|
NEL3D_APPDATA_LOD_NAME = NEL3D_APPDATA_LOD_NAME_COUNT+1
|
||||||
|
NEL3D_APPDATA_LOD_BLEND_IN = NEL3D_APPDATA_LOD_NAME+NEL3D_APPDATA_LOD_NAME_COUNT_MAX
|
||||||
|
NEL3D_APPDATA_LOD_BLEND_OUT = NEL3D_APPDATA_LOD_BLEND_IN+1
|
||||||
|
NEL3D_APPDATA_LOD_COARSE_MESH = NEL3D_APPDATA_LOD_BLEND_OUT+1
|
||||||
|
NEL3D_APPDATA_COLLISION = 1423062613
|
||||||
|
NEL3D_APPDATA_COLLISION_EXTERIOR = 1423062614
|
||||||
|
NEL3D_APPDATA_AUTOMATIC_ANIMATION = 1423062617
|
||||||
|
|
||||||
|
-- Allocate 20 Me for the script
|
||||||
|
heapSize += 15000000
|
||||||
|
|
||||||
|
nlErrorFilename = "output_logfile"
|
||||||
|
nlErrorStream = openFile nlErrorFilename mode:"a"
|
||||||
|
if nlErrorStream == undefined then
|
||||||
|
nlErrorStream = createFile nlErrorFilename
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
fn unhidecategory =
|
||||||
|
(
|
||||||
|
if (geometry.count > 0) then
|
||||||
|
(
|
||||||
|
unhide geometry[1]
|
||||||
|
if (geometry[1].ishidden == true) then
|
||||||
|
max hide object toggle
|
||||||
|
)
|
||||||
|
if (shapes.count > 0) then
|
||||||
|
(
|
||||||
|
unhide shapes[1]
|
||||||
|
if (shapes[1].ishidden == true) then
|
||||||
|
max hide shape toggle
|
||||||
|
)
|
||||||
|
if (lights.count > 0) then
|
||||||
|
(
|
||||||
|
unhide lights[1]
|
||||||
|
if (lights[1].ishidden == true) then
|
||||||
|
max hide light toggle
|
||||||
|
)
|
||||||
|
if (cameras.count > 0) then
|
||||||
|
(
|
||||||
|
unhide cameras[1]
|
||||||
|
if (cameras[1].ishidden == true) then
|
||||||
|
max hide camera toggle
|
||||||
|
)
|
||||||
|
if (helpers.count > 0) then
|
||||||
|
(
|
||||||
|
unhide helpers[1]
|
||||||
|
if (helpers[1].ishidden == true) then
|
||||||
|
max hide helper toggle
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Log a message
|
||||||
|
fn nlerror message =
|
||||||
|
(
|
||||||
|
if nlErrorStream != undefined then
|
||||||
|
(
|
||||||
|
format "%\n" message to:nlErrorStream
|
||||||
|
flush nlErrorStream
|
||||||
|
)
|
||||||
|
|
||||||
|
-- To the console
|
||||||
|
print message
|
||||||
|
)
|
||||||
|
|
||||||
|
-- This node is n accelerator ?
|
||||||
|
fn isAccelerator node =
|
||||||
|
(
|
||||||
|
accel = getappdata node NEL3D_APPDATA_ACCEL
|
||||||
|
if (accel != undefined) then
|
||||||
|
(
|
||||||
|
if (accel == "0") or (accel == "32") then
|
||||||
|
return false
|
||||||
|
else
|
||||||
|
return true
|
||||||
|
)
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Must export this node ?
|
||||||
|
fn isToBeExported node =
|
||||||
|
(
|
||||||
|
if (isAccelerator node) == true then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == RklPatch) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == nel_ps) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == nel_pacs_cylinder) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == nel_pacs_box) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
doNotExport = getappdata node NEL3D_APPDATA_DONOTEXPORT
|
||||||
|
if (doNotExport != undefined) then
|
||||||
|
(
|
||||||
|
if (doNotExport == "1") then
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
doNotExport = getappdata node NEL3D_APPDATA_COLLISION
|
||||||
|
if (doNotExport != undefined) then
|
||||||
|
(
|
||||||
|
if (doNotExport == "1") then
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
doNotExport = getappdata node NEL3D_APPDATA_COLLISION_EXTERIOR
|
||||||
|
if (doNotExport != undefined) then
|
||||||
|
(
|
||||||
|
if (doNotExport == "1") then
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
return true
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Must export this node ?
|
||||||
|
fn isAnimToBeExported node =
|
||||||
|
(
|
||||||
|
automaticAnimation = getappdata node NEL3D_APPDATA_AUTOMATIC_ANIMATION
|
||||||
|
if (automaticAnimation == undefined) then
|
||||||
|
return false
|
||||||
|
if (automaticAnimation == "0") then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if (isAccelerator node) == true then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == nel_pacs_cylinder) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if ((classof node) == nel_pacs_box) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
doNotExport = getappdata node NEL3D_APPDATA_DONOTEXPORT
|
||||||
|
if (doNotExport != undefined) then
|
||||||
|
(
|
||||||
|
if (doNotExport == "1") then
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
doNotExport = getappdata node NEL3D_APPDATA_COLLISION
|
||||||
|
if (doNotExport != undefined) then
|
||||||
|
(
|
||||||
|
if (doNotExport == "1") then
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
doNotExport = getappdata node NEL3D_APPDATA_COLLISION_EXTERIOR
|
||||||
|
if (doNotExport != undefined) then
|
||||||
|
(
|
||||||
|
if (doNotExport == "1") then
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
return true
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Cast shadow ?
|
||||||
|
fn isCastShadow node =
|
||||||
|
(
|
||||||
|
if (classof node == nel_ps) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
if (isAccelerator node) == true then
|
||||||
|
(
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
return true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- List the lod
|
||||||
|
lod_array = #()
|
||||||
|
|
||||||
|
-- is a lod ?
|
||||||
|
fn isLod node =
|
||||||
|
(
|
||||||
|
for i = 1 to lod_array.count do
|
||||||
|
(
|
||||||
|
if (lod_array[i] == node) then
|
||||||
|
return true
|
||||||
|
)
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
-- have a coarse mesh ?
|
||||||
|
fn haveCoarseMesh node =
|
||||||
|
(
|
||||||
|
-- Get lod count
|
||||||
|
nodeCount = getappdata node NEL3D_APPDATA_LOD_NAME_COUNT
|
||||||
|
if (nodeCount != undefined) then
|
||||||
|
(
|
||||||
|
-- For each lod
|
||||||
|
nodeCountNum = nodeCount as Integer
|
||||||
|
for lod = 1 to nodeCountNum do
|
||||||
|
(
|
||||||
|
-- Get the lod
|
||||||
|
lod = getappdata node (NEL3D_APPDATA_LOD_NAME+lod-1)
|
||||||
|
|
||||||
|
-- Exist ?
|
||||||
|
if (lod != undefined) then
|
||||||
|
(
|
||||||
|
-- Select a node
|
||||||
|
nd = execute ("$'"+lod+"'")
|
||||||
|
|
||||||
|
-- Node exist ?
|
||||||
|
if (nd != undefined) then
|
||||||
|
(
|
||||||
|
-- Is a coarse mesh ?
|
||||||
|
if (getappdata nd NEL3D_APPDATA_LOD_COARSE_MESH == "1") then
|
||||||
|
return true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
fn goShapeExport =
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Get files in the shape_source_directory
|
||||||
|
files = getFiles "shape_source_directory/*.max"
|
||||||
|
|
||||||
|
-- Sort files
|
||||||
|
sort files
|
||||||
|
|
||||||
|
-- No file ?
|
||||||
|
if files.count != 0 then
|
||||||
|
(
|
||||||
|
-- For each files
|
||||||
|
for i = 1 to files.count do
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Delete lod files
|
||||||
|
lod_array = #()
|
||||||
|
|
||||||
|
-- Ok ?
|
||||||
|
ok = false
|
||||||
|
|
||||||
|
-- Free memory and file handles
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- Reset 3dsmax
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
-- Get the tag file name
|
||||||
|
tag = ("output_directory_tag/"+(getFilenameFile files[i])+(getFilenameType files[i])+".tag")
|
||||||
|
|
||||||
|
-- Compare date with the tag file
|
||||||
|
if (NeLTestFileDate tag files[i]) == true then
|
||||||
|
(
|
||||||
|
-- Open the max project
|
||||||
|
nlerror ("Scanning file "+files[i]+" ...")
|
||||||
|
if loadMaxFile files[i] quiet:true == true then
|
||||||
|
(
|
||||||
|
-- Unhide category
|
||||||
|
unhidecategory()
|
||||||
|
|
||||||
|
-- Unhide
|
||||||
|
max unhide all
|
||||||
|
|
||||||
|
-- unselect
|
||||||
|
max select none
|
||||||
|
|
||||||
|
-- Exported object count
|
||||||
|
exported = 0
|
||||||
|
|
||||||
|
-- Add the lod
|
||||||
|
for node in geometry do
|
||||||
|
(
|
||||||
|
-- Get lod count
|
||||||
|
nodeCount = getappdata node NEL3D_APPDATA_LOD_NAME_COUNT
|
||||||
|
if (nodeCount != undefined) then
|
||||||
|
(
|
||||||
|
-- For each lod
|
||||||
|
nodeCountNum = nodeCount as Integer
|
||||||
|
for lod = 1 to nodeCountNum do
|
||||||
|
(
|
||||||
|
-- Get the lod
|
||||||
|
lod = getappdata node (NEL3D_APPDATA_LOD_NAME+lod-1)
|
||||||
|
|
||||||
|
-- Exist ?
|
||||||
|
if (lod != undefined) then
|
||||||
|
(
|
||||||
|
-- Select a node
|
||||||
|
try
|
||||||
|
(
|
||||||
|
nd = execute ("$'"+lod+"'")
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
nlerror ("Error in Execute $'"+lod+"' from node "+node.name)
|
||||||
|
nd = undefined
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Node exist ?
|
||||||
|
if (nd != undefined) then
|
||||||
|
(
|
||||||
|
append lod_array nd
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Select objects for shadows
|
||||||
|
for node in geometry do
|
||||||
|
(
|
||||||
|
if (node.parent == undefined) then
|
||||||
|
(
|
||||||
|
-- Cast shadow ?
|
||||||
|
if (isCastShadow node == true) then
|
||||||
|
(
|
||||||
|
-- Select this node
|
||||||
|
selectmore node
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Tag this file ?
|
||||||
|
tagThisFile = true
|
||||||
|
|
||||||
|
-- Array of node to export
|
||||||
|
array_node = #()
|
||||||
|
|
||||||
|
-- Add geometry
|
||||||
|
for node in geometry do
|
||||||
|
append array_node node
|
||||||
|
|
||||||
|
-- Add shapes
|
||||||
|
for node in shapes do
|
||||||
|
append array_node node
|
||||||
|
|
||||||
|
-- For each node
|
||||||
|
for node in array_node do
|
||||||
|
(
|
||||||
|
-- It is root ?
|
||||||
|
if (node.parent == undefined) then
|
||||||
|
(
|
||||||
|
-- Is not a skeleton ?
|
||||||
|
if (node.name != "Bip01") then
|
||||||
|
(
|
||||||
|
-- Can be exported ?
|
||||||
|
if (isToBeExported node == true) then
|
||||||
|
(
|
||||||
|
-- Not a lod ?
|
||||||
|
if ((isLod node) == false) then
|
||||||
|
(
|
||||||
|
-- Output directory
|
||||||
|
if (haveCoarseMesh node) == true then
|
||||||
|
output = ("output_directory_with_coarse_mesh/"+(node.name)+".shape")
|
||||||
|
else
|
||||||
|
output = ("output_directory_without_coarse_mesh/"+(node.name)+".shape")
|
||||||
|
|
||||||
|
-- Compare file date
|
||||||
|
if (NeLTestFileDate output files[i]) == true then
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Export the shape
|
||||||
|
if (NelExportShapeEx node output shape_export_opt_shadow shape_export_opt_export_lighting "shape_lightmap_path" shape_export_opt_lighting_limit shape_export_opt_lumel_size shape_export_opt_oversampling true false shape_export_opt_lightmap_log) == true then
|
||||||
|
(
|
||||||
|
nlerror ("OK "+output)
|
||||||
|
exported = exported+1
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting shape "+node.name+" in file "+files[i])
|
||||||
|
tagThisFile = false
|
||||||
|
return 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting shape "+node.name+" in file "+files[i])
|
||||||
|
tagThisFile = false
|
||||||
|
return 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("SKIPPED "+output)
|
||||||
|
exported = exported+1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Export default animations
|
||||||
|
|
||||||
|
for node in objects do
|
||||||
|
(
|
||||||
|
-- Can export it ?
|
||||||
|
if (isAnimToBeExported node) == true then
|
||||||
|
(
|
||||||
|
-- Anim output directory
|
||||||
|
output = ("output_directory_anim/"+(node.name)+".anim")
|
||||||
|
|
||||||
|
-- Export the animation
|
||||||
|
if (NelExportAnimation #(node) output false) == false then
|
||||||
|
(
|
||||||
|
nlerror ("ERROR exporting animation "+output)
|
||||||
|
return 0
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("OK "+output)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Write a tag file
|
||||||
|
if tagThisFile == true then
|
||||||
|
(
|
||||||
|
tagFile = createFile tag
|
||||||
|
if tagFile == undefined then
|
||||||
|
(
|
||||||
|
nlerror ("WARNING can't create tag file "+tag)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
print "toto" to: tagFile
|
||||||
|
close tagFile
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Something exported
|
||||||
|
if exported == 0 then
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("WARNING no shape exported from the file "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting shape: can't open the file "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("SKIPPED BY TAG "+files[i])
|
||||||
|
)
|
||||||
|
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- Reset 3dsmax
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting shape in file " + files[i])
|
||||||
|
-- return 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("WARNING no max file in folder shape_source_directory")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting shape in folder shape_source_directory")
|
||||||
|
return 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
goShapeExport()
|
||||||
|
|
||||||
|
nlerror ("BYE")
|
||||||
|
|
||||||
|
quitMAX #noPrompt
|
||||||
|
quitMAX () #noPrompt
|
||||||
|
|
65
code/nel/tools/build_gamedata/processes/sheet_id/0_setup.py
Normal file
65
code/nel/tools/build_gamedata/processes/sheet_id/0_setup.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup sheet_id
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup sheet_id
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sheet_id")
|
||||||
|
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 <<<")
|
||||||
|
mkPath(log, LeveldesignDirectory)
|
||||||
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + SheetIdClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/sheet_id/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/sheet_id/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export sheet_id
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export sheet_id
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sheet_id")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
64
code/nel/tools/build_gamedata/processes/sheet_id/2_build.py
Normal file
64
code/nel/tools/build_gamedata/processes/sheet_id/2_build.py
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build sheet_id
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build sheet_id
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sheet_id")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
MakeSheetId = findTool(log, ToolDirectories, MakeSheetIdTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each sheet_id directory
|
||||||
|
printLog(log, ">>> Build sheet_id <<<")
|
||||||
|
if MakeSheetId == "":
|
||||||
|
toolLogFail(log, MakeSheetIdTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, LeveldesignDirectory)
|
||||||
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
||||||
|
subprocess.call([ MakeSheetId, "-c" + ScriptDirectory + "/configuration/make_sheet_id.cfg", "-o" + ExportBuildDirectory + "/" + SheetIdBuildDirectory + "/" + "sheet_id.bin", LeveldesignDirectory ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install sheet_id
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install sheet_id
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sheet_id")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
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, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
66
code/nel/tools/build_gamedata/processes/sheets/0_setup.py
Normal file
66
code/nel/tools/build_gamedata/processes/sheets/0_setup.py
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup sheets
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup sheets
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sheets")
|
||||||
|
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 <<<")
|
||||||
|
mkPath(log, LeveldesignDirectory)
|
||||||
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + SheetsClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/sheets/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/sheets/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export sheets
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export sheets
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sheets")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
65
code/nel/tools/build_gamedata/processes/sheets/2_build.py
Normal file
65
code/nel/tools/build_gamedata/processes/sheets/2_build.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build sheets
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build sheets
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sheets")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BuildSheets = findTool(log, ToolDirectories, BuildSheetsTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each sheets directory
|
||||||
|
printLog(log, ">>> Build sheets <<<")
|
||||||
|
if BuildSheets == "":
|
||||||
|
toolLogFail(log, BuildSheetsTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, LeveldesignDirectory)
|
||||||
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SheetIdBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
|
subprocess.call([ BuildSheets, LeveldesignDirectory, LeveldesignDfnDirectory, ExportBuildDirectory + "/" + SheetIdBuildDirectory, ExportBuildDirectory + "/" + SheetsBuildDirectory ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
57
code/nel/tools/build_gamedata/processes/sheets/3_install.py
Normal file
57
code/nel/tools/build_gamedata/processes/sheets/3_install.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install sheets
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install sheets
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sheets")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + SheetsClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install sheets <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SheetsBuildDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SheetsBuildDirectory, clientPath, ".packed_sheets")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
65
code/nel/tools/build_gamedata/processes/skel/0_setup.py
Normal file
65
code/nel/tools/build_gamedata/processes/skel/0_setup.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup skel
|
||||||
|
# \date 2009-03-10-20-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup skel
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 skel")
|
||||||
|
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 SkelSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + SkelClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
63
code/nel/tools/build_gamedata/processes/skel/1_export.py
Normal file
63
code/nel/tools/build_gamedata/processes/skel/1_export.py
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export skel
|
||||||
|
# \date 2009-03-10-20-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export skel
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 skel")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each skel directory
|
||||||
|
printLog(log, ">>> Export skel 3dsmax <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||||
|
for dir in SkelSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/skel/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/skel/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build skel
|
||||||
|
# \date 2009-03-10-20-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build skel
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 skel")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
57
code/nel/tools/build_gamedata/processes/skel/3_install.py
Normal file
57
code/nel/tools/build_gamedata/processes/skel/3_install.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install skel
|
||||||
|
# \date 2009-03-10-20-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install skel
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 skel")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + SkelClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install skel <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SkelExportDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SkelExportDirectory, clientPath)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
64
code/nel/tools/build_gamedata/processes/smallbank/0_setup.py
Normal file
64
code/nel/tools/build_gamedata/processes/smallbank/0_setup.py
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup smallbank
|
||||||
|
# \date 2009-03-10-20-54-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup smallbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 smallbank")
|
||||||
|
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 <<<")
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + BankSourceDirectory)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + BankClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,72 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export smallbank
|
||||||
|
# \date 2009-03-10-20-54-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export smallbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 smallbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
BuildSmallbank = findTool(log, ToolDirectories, BuildSmallbankTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each bank export smallbank
|
||||||
|
printLog(log, ">>> Export smallbank <<<")
|
||||||
|
if ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
elif BuildSmallbank == "":
|
||||||
|
toolLogFail(log, BuildSmallbankTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + BankSourceDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
files = findFiles(log, DatabaseDirectory + "/" + BankSourceDirectory, "", ".bank")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = DatabaseDirectory + "/" + BankSourceDirectory + "/" + file
|
||||||
|
if os.path.isfile(sourceFile):
|
||||||
|
destFile = ExportBuildDirectory + "/" + SmallbankExportDirectory + "/" + file[0:-len(".bank")] + ".smallbank"
|
||||||
|
if (needUpdateLogRemoveDest(log, sourceFile, destFile)):
|
||||||
|
subprocess.call([ ExecTimeout, str(SmallbankBuildTimeout), BuildSmallbank, sourceFile, destFile, DatabaseDirectory + "/" + TileRootSourceDirectory + "/" ])
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/smallbank/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/smallbank/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build smallbank
|
||||||
|
# \date 2009-03-10-20-54-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build smallbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 smallbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install smallbank
|
||||||
|
# \date 2009-03-10-20-54-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install smallbank
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 smallbank")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + BankClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install smallbank <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SmallbankExportDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SmallbankExportDirectory, clientPath, ".smallbank")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
68
code/nel/tools/build_gamedata/processes/sound/0_setup.py
Normal file
68
code/nel/tools/build_gamedata/processes/sound/0_setup.py
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup sound
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup sound
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sound")
|
||||||
|
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 <<<")
|
||||||
|
mkPath(log, LeveldesignDirectory)
|
||||||
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + SoundSamplebanksSourceDirectory)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + SoundSheetsClientDirectory)
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/sound/1_export.py
Normal file
49
code/nel/tools/build_gamedata/processes/sound/1_export.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export sound
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export sound
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sound")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
67
code/nel/tools/build_gamedata/processes/sound/2_build.py
Normal file
67
code/nel/tools/build_gamedata/processes/sound/2_build.py
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build sound
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build sound
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sound")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
BuildSound = findTool(log, ToolDirectories, BuildSoundTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each sound directory
|
||||||
|
printLog(log, ">>> Build sound <<<")
|
||||||
|
if BuildSound == "":
|
||||||
|
toolLogFail(log, BuildSoundTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, LeveldesignDirectory)
|
||||||
|
mkPath(log, LeveldesignDfnDirectory)
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + SoundSamplebanksSourceDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
|
||||||
|
subprocess.call([ BuildSound, LeveldesignDirectory, LeveldesignDfnDirectory, DatabaseDirectory + "/" + SoundSamplebanksSourceDirectory, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory ])
|
||||||
|
moveFilesExtNoTree(log, DatabaseDirectory + "/" + SoundSamplebanksSourceDirectory, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory, ".sample_bank")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
60
code/nel/tools/build_gamedata/processes/sound/3_install.py
Normal file
60
code/nel/tools/build_gamedata/processes/sound/3_install.py
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install sound
|
||||||
|
# \date 2009-06-03 10:47GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install sound
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 sound")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install sound packed_sheets <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory)
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + SoundSheetsClientDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSheetsBuildDirectory, ClientDataDirectory + "/" + SoundSheetsClientDirectory, ".packed_sheets")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install sound samplebanks <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory)
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SoundSamplebanksBuildDirectory, ClientDataDirectory + "/" + SoundSamplebanksClientDirectory, ".sample_bank")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
65
code/nel/tools/build_gamedata/processes/swt/0_setup.py
Normal file
65
code/nel/tools/build_gamedata/processes/swt/0_setup.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup swt
|
||||||
|
# \date 2009-03-10-20-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup swt
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 skeleton weigths")
|
||||||
|
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 SwtSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SwtExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + SwtClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
63
code/nel/tools/build_gamedata/processes/swt/1_export.py
Normal file
63
code/nel/tools/build_gamedata/processes/swt/1_export.py
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export swt
|
||||||
|
# \date 2009-03-10-20-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export swt
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 skeleton weigths")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each swt directory
|
||||||
|
printLog(log, ">>> Export skeleton weigths 3dsmax <<<")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
printLog(log, "******** TODO ********")
|
||||||
|
printLog(log, "********************************")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SwtExportDirectory)
|
||||||
|
for dir in SwtSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/swt/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/swt/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build swt
|
||||||
|
# \date 2009-03-10-20-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build swt
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 skeleton weigths")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
57
code/nel/tools/build_gamedata/processes/swt/3_install.py
Normal file
57
code/nel/tools/build_gamedata/processes/swt/3_install.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install swt
|
||||||
|
# \date 2009-03-10-20-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install swt
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 skeleton weigths")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + SwtClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install skeleton weigths <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + SwtExportDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + SwtExportDirectory, clientPath)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,139 @@
|
||||||
|
-- Allocate 20 Me for the script
|
||||||
|
heapSize += 15000000
|
||||||
|
|
||||||
|
nlErrorFilename = "output_logfile"
|
||||||
|
nlErrorStream = openFile nlErrorFilename mode:"a"
|
||||||
|
if nlErrorStream == undefined then
|
||||||
|
nlErrorStream = createFile nlErrorFilename
|
||||||
|
|
||||||
|
-- Log a message
|
||||||
|
fn nlerror message =
|
||||||
|
(
|
||||||
|
if nlErrorStream != undefined then
|
||||||
|
(
|
||||||
|
format "%\n" message to:nlErrorStream
|
||||||
|
flush nlErrorStream
|
||||||
|
)
|
||||||
|
|
||||||
|
-- To the console
|
||||||
|
print message
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
fn unhidecategory =
|
||||||
|
(
|
||||||
|
if (geometry.count > 0) then
|
||||||
|
(
|
||||||
|
unhide geometry[1]
|
||||||
|
if (geometry[1].ishidden == true) then
|
||||||
|
max hide object toggle
|
||||||
|
)
|
||||||
|
if (shapes.count > 0) then
|
||||||
|
(
|
||||||
|
unhide shapes[1]
|
||||||
|
if (shapes[1].ishidden == true) then
|
||||||
|
max hide shape toggle
|
||||||
|
)
|
||||||
|
if (lights.count > 0) then
|
||||||
|
(
|
||||||
|
unhide lights[1]
|
||||||
|
if (lights[1].ishidden == true) then
|
||||||
|
max hide light toggle
|
||||||
|
)
|
||||||
|
if (cameras.count > 0) then
|
||||||
|
(
|
||||||
|
unhide cameras[1]
|
||||||
|
if (cameras[1].ishidden == true) then
|
||||||
|
max hide camera toggle
|
||||||
|
)
|
||||||
|
if (helpers.count > 0) then
|
||||||
|
(
|
||||||
|
unhide helpers[1]
|
||||||
|
if (helpers[1].ishidden == true) then
|
||||||
|
max hide helper toggle
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Get files in the swt_source_directory
|
||||||
|
files = getFiles "swt_source_directory/*.max"
|
||||||
|
|
||||||
|
-- Sort files
|
||||||
|
sort files
|
||||||
|
|
||||||
|
-- No file ?
|
||||||
|
if files.count != 0 then
|
||||||
|
(
|
||||||
|
-- For each files
|
||||||
|
for i = 1 to files.count do
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Output file
|
||||||
|
output = ("output_directory/"+(getFilenameFile files[i])+".swt")
|
||||||
|
|
||||||
|
-- Compare file date
|
||||||
|
if (NeLTestFileDate output files[i]) == true then
|
||||||
|
(
|
||||||
|
-- Free memory and file handles
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- Reset 3dsmax
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
-- Open the max project
|
||||||
|
nlerror ("Scanning file "+files[i]+" ...")
|
||||||
|
if loadMaxFile files[i] == true then
|
||||||
|
(
|
||||||
|
-- Unhide category
|
||||||
|
unhidecategory()
|
||||||
|
|
||||||
|
-- Select all the nodes
|
||||||
|
max select all
|
||||||
|
|
||||||
|
-- Export the skeleton template
|
||||||
|
if NelExportSkeletonWeight ($selection as array) output == false then
|
||||||
|
(
|
||||||
|
nlerror ("ERROR exporting skeleton weight "+files[i])
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("OK "+output)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting skeleton weight: can't open the file "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("SKIPPED "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR error exporting skeleton weight in files " + files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("WARNING no skeleton weight file in folder swt_source_directory")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR error exporting skeleton weight in folder swt_source_directory")
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Bye
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
quitMAX #noPrompt
|
||||||
|
quitMAX () #noPrompt
|
||||||
|
|
65
code/nel/tools/build_gamedata/processes/tiles/0_setup.py
Normal file
65
code/nel/tools/build_gamedata/processes/tiles/0_setup.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup tiles
|
||||||
|
# \date 2009-03-10-21-31-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup tiles
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 tiles")
|
||||||
|
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 TilesSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + TilesClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
84
code/nel/tools/build_gamedata/processes/tiles/1_export.py
Normal file
84
code/nel/tools/build_gamedata/processes/tiles/1_export.py
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export tiles
|
||||||
|
# \date 2009-03-10-21-31-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export tiles
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 tiles")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Find tools
|
||||||
|
TgaToDds = findTool(log, ToolDirectories, TgaToDdsTool, ToolSuffix)
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each tiles directory
|
||||||
|
printLog(log, ">>> Export tiles as DDS <<<")
|
||||||
|
if TgaToDds == "":
|
||||||
|
toolLogFail(log, TgaToDdsTool, ToolSuffix)
|
||||||
|
elif ExecTimeout == "":
|
||||||
|
toolLogFail(log, ExecTimeoutTool, ToolSuffix)
|
||||||
|
else:
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory)
|
||||||
|
for dir in TilesSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
files = findFiles(log, DatabaseDirectory + "/" + dir, "", ".tga")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = DatabaseDirectory + "/" + dir + "/" + file
|
||||||
|
destFile = ExportBuildDirectory + "/" + TilesExportDirectory + "/" + os.path.basename(file)[0:-len(".tga")] + ".dds"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-a", "5", "-m" ])
|
||||||
|
files = findFiles(log, DatabaseDirectory + "/" + dir, "", ".png")
|
||||||
|
for file in files:
|
||||||
|
sourceFile = DatabaseDirectory + "/" + dir + "/" + file
|
||||||
|
destFile = ExportBuildDirectory + "/" + TilesExportDirectory + "/" + os.path.basename(file)[0:-len(".png")] + ".dds"
|
||||||
|
if needUpdateLogRemoveDest(log, sourceFile, destFile):
|
||||||
|
subprocess.call([ ExecTimeout, str(MapsBuildTimeout), TgaToDds, sourceFile, "-o", destFile, "-a", "5", "-m" ])
|
||||||
|
|
||||||
|
#printLog(log, ">>> Copy PNG tiles <<<")
|
||||||
|
#mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory)
|
||||||
|
#for dir in TilesSourceDirectories:
|
||||||
|
# mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
# copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + TilesExportDirectory, ".png")
|
||||||
|
#printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/tiles/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/tiles/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build tiles
|
||||||
|
# \date 2009-03-10-21-31-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build tiles
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 tiles")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
55
code/nel/tools/build_gamedata/processes/tiles/3_install.py
Normal file
55
code/nel/tools/build_gamedata/processes/tiles/3_install.py
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install tiles
|
||||||
|
# \date 2009-03-10-21-31-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install tiles
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 tiles")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
printLog(log, ">>> Install tiles <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + TilesClientDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + TilesExportDirectory)
|
||||||
|
copyFilesNoTreeIfNeeded(log, ExportBuildDirectory + "/" + TilesExportDirectory, ClientDataDirectory + "/" + TilesClientDirectory)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
66
code/nel/tools/build_gamedata/processes/veget/0_setup.py
Normal file
66
code/nel/tools/build_gamedata/processes/veget/0_setup.py
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup veget
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup veget
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 veget")
|
||||||
|
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 VegetSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + VegetExportDirectory)
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + VegetTagExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + VegetClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
91
code/nel/tools/build_gamedata/processes/veget/1_export.py
Normal file
91
code/nel/tools/build_gamedata/processes/veget/1_export.py
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export veget
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export veget
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 veget")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
if MaxAvailable:
|
||||||
|
# Find tools
|
||||||
|
Max = findMax(log, MaxDirectory, MaxExecutable)
|
||||||
|
ExecTimeout = findTool(log, ToolDirectories, ExecTimeoutTool, ToolSuffix)
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# Export veget 3dsmax
|
||||||
|
printLog(log, ">>> Export veget 3dsmax <<<")
|
||||||
|
|
||||||
|
# Build paths
|
||||||
|
scriptSrc = "maxscript/veget_export.ms"
|
||||||
|
# scriptDst = MaxDirectory + "/scripts/veget_export.ms"
|
||||||
|
scriptDst = MaxUserDirectory + "/scripts/veget_export.ms"
|
||||||
|
logFile = ScriptDirectory + "/processes/veget/log.log"
|
||||||
|
outputDirVeget = ExportBuildDirectory + "/" + VegetExportDirectory
|
||||||
|
mkPath(log, outputDirVeget)
|
||||||
|
outputDirTag = ExportBuildDirectory + "/" + VegetTagExportDirectory
|
||||||
|
mkPath(log, outputDirTag)
|
||||||
|
|
||||||
|
# For each directoy
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + VegetExportDirectory)
|
||||||
|
if os.path.isfile(scriptDst):
|
||||||
|
os.remove(scriptDst)
|
||||||
|
for dir in VegetSourceDirectories:
|
||||||
|
vegetSourceDir = DatabaseDirectory + "/" + dir
|
||||||
|
mkPath(log, vegetSourceDir)
|
||||||
|
sSrc = open(scriptSrc, "r")
|
||||||
|
sDst = open(scriptDst, "w")
|
||||||
|
for line in sSrc:
|
||||||
|
newline = line.replace("output_logfile", logFile)
|
||||||
|
newline = newline.replace("veget_source_directory", vegetSourceDir)
|
||||||
|
newline = newline.replace("output_directory_veget", outputDirVeget)
|
||||||
|
newline = newline.replace("output_directory_tag", outputDirTag)
|
||||||
|
sDst.write(newline)
|
||||||
|
sSrc.close()
|
||||||
|
sDst.close()
|
||||||
|
printLog(log, "MAXSCRIPT " + scriptDst)
|
||||||
|
subprocess.call([ Max, "-U", "MAXScript", "veget_export.ms", "-q", "-mi", "-vn" ])
|
||||||
|
os.remove(scriptDst)
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/veget/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/veget/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build veget
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build veget
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 veget")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
57
code/nel/tools/build_gamedata/processes/veget/3_install.py
Normal file
57
code/nel/tools/build_gamedata/processes/veget/3_install.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install veget
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install veget
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 veget")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + VegetClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install veget <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + VegetExportDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + VegetExportDirectory, clientPath, ".veget")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,249 @@
|
||||||
|
-- Some globals
|
||||||
|
|
||||||
|
NEL3D_APPDATA_DONOTEXPORT = 1423062565 -- do not export me : "undefined" = export me
|
||||||
|
-- "0" = export me
|
||||||
|
-- "1" = DONT export me
|
||||||
|
|
||||||
|
NEL3D_APPDATA_VEGETABLE = 1423062580 -- "undefined" = not vegetable
|
||||||
|
-- "0" = not vegetable
|
||||||
|
-- "1" = vegetable
|
||||||
|
|
||||||
|
-- Allocate 20 Me for the script
|
||||||
|
heapSize += 15000000
|
||||||
|
|
||||||
|
nlErrorFilename = "output_logfile"
|
||||||
|
nlErrorStream = openFile nlErrorFilename mode:"a"
|
||||||
|
if nlErrorStream == undefined then
|
||||||
|
nlErrorStream = createFile nlErrorFilename
|
||||||
|
|
||||||
|
-- Unhide category
|
||||||
|
fn unhidecategory =
|
||||||
|
(
|
||||||
|
if (geometry.count > 0) then
|
||||||
|
(
|
||||||
|
unhide geometry[1]
|
||||||
|
if (geometry[1].ishidden == true) then
|
||||||
|
max hide object toggle
|
||||||
|
)
|
||||||
|
if (shapes.count > 0) then
|
||||||
|
(
|
||||||
|
unhide shapes[1]
|
||||||
|
if (shapes[1].ishidden == true) then
|
||||||
|
max hide shape toggle
|
||||||
|
)
|
||||||
|
if (lights.count > 0) then
|
||||||
|
(
|
||||||
|
unhide lights[1]
|
||||||
|
if (lights[1].ishidden == true) then
|
||||||
|
max hide light toggle
|
||||||
|
)
|
||||||
|
if (cameras.count > 0) then
|
||||||
|
(
|
||||||
|
unhide cameras[1]
|
||||||
|
if (cameras[1].ishidden == true) then
|
||||||
|
max hide camera toggle
|
||||||
|
)
|
||||||
|
if (helpers.count > 0) then
|
||||||
|
(
|
||||||
|
unhide helpers[1]
|
||||||
|
if (helpers[1].ishidden == true) then
|
||||||
|
max hide helper toggle
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Log a message
|
||||||
|
fn nlerror message =
|
||||||
|
(
|
||||||
|
if nlErrorStream != undefined then
|
||||||
|
(
|
||||||
|
format "%\n" message to:nlErrorStream
|
||||||
|
flush nlErrorStream
|
||||||
|
)
|
||||||
|
|
||||||
|
-- To the console
|
||||||
|
print message
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Must export this node ?
|
||||||
|
fn isToBeExported node =
|
||||||
|
(
|
||||||
|
if (classof node == nel_ps) then
|
||||||
|
return false
|
||||||
|
|
||||||
|
doNotExport = getappdata node NEL3D_APPDATA_DONOTEXPORT
|
||||||
|
if (doNotExport != undefined) then
|
||||||
|
(
|
||||||
|
if (doNotExport == "1") then
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
vegetable = getappdata node NEL3D_APPDATA_VEGETABLE
|
||||||
|
if (vegetable != undefined) then
|
||||||
|
if (vegetable == "1") then
|
||||||
|
return true
|
||||||
|
|
||||||
|
-- Do not export
|
||||||
|
return false
|
||||||
|
)
|
||||||
|
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Get files in the veget_source_directory
|
||||||
|
files = getFiles "veget_source_directory/*.max"
|
||||||
|
|
||||||
|
-- Sort files
|
||||||
|
sort files
|
||||||
|
|
||||||
|
-- No file ?
|
||||||
|
if files.count != 0 then
|
||||||
|
(
|
||||||
|
-- For each files
|
||||||
|
for i = 1 to files.count do
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Delete lod files
|
||||||
|
lod_array = #()
|
||||||
|
|
||||||
|
-- Ok ?
|
||||||
|
ok = false
|
||||||
|
|
||||||
|
-- Free memory and file handles
|
||||||
|
gc ()
|
||||||
|
|
||||||
|
-- Reset 3dsmax
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
|
||||||
|
-- Get the tag file name
|
||||||
|
tag = ("output_directory_tag/"+(getFilenameFile files[i])+(getFilenameType files[i])+".tag")
|
||||||
|
|
||||||
|
-- Compare date with the tag file
|
||||||
|
if (NeLTestFileDate tag files[i]) == true then
|
||||||
|
(
|
||||||
|
-- Open the max project
|
||||||
|
nlerror ("Scanning file "+files[i]+" ...")
|
||||||
|
if loadMaxFile files[i] quiet:true == true then
|
||||||
|
(
|
||||||
|
-- Unhide category
|
||||||
|
unhidecategory()
|
||||||
|
|
||||||
|
tagThisFile = true
|
||||||
|
|
||||||
|
-- Unhide
|
||||||
|
max unhide all
|
||||||
|
|
||||||
|
-- unselect
|
||||||
|
max select none
|
||||||
|
|
||||||
|
-- Exported object count
|
||||||
|
exported = 0
|
||||||
|
|
||||||
|
-- For each node
|
||||||
|
for node in geometry do
|
||||||
|
(
|
||||||
|
-- It is root ?
|
||||||
|
if (node.parent == undefined) then
|
||||||
|
(
|
||||||
|
-- Is not a skeleton ?
|
||||||
|
if (node.name != "Bip01") then
|
||||||
|
(
|
||||||
|
-- Can be exported ?
|
||||||
|
if (isToBeExported node == true) then
|
||||||
|
(
|
||||||
|
-- Output directory
|
||||||
|
output = ("output_directory_veget/"+(node.name)+".veget")
|
||||||
|
|
||||||
|
-- Compare file date
|
||||||
|
if (NeLTestFileDate output files[i]) == true then
|
||||||
|
(
|
||||||
|
try
|
||||||
|
(
|
||||||
|
-- Export the veget
|
||||||
|
if (NelExportVegetable node output false) == true then
|
||||||
|
(
|
||||||
|
nlerror ("OK "+output)
|
||||||
|
exported = exported+1
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting veget "+node.name+" in file "+files[i])
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fata error exporting veget "+node.name+" in file "+files[i])
|
||||||
|
tagThisFile = false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("SKIPPED "+output)
|
||||||
|
exported = exported+1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Something exported
|
||||||
|
if exported == 0 then
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("WARNING no veget exported from the file "+files[i])
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Write a tag file
|
||||||
|
if tagThisFile == true then
|
||||||
|
(
|
||||||
|
tagFile = createFile tag
|
||||||
|
if tagFile == undefined then
|
||||||
|
(
|
||||||
|
nlerror ("WARNING can't create tag file "+tag)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
print "toto" to: tagFile
|
||||||
|
close tagFile
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR exporting veget: can't open the file "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("SKIPPED BY TAG "+files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR error exporting veget in files " + files[i])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else
|
||||||
|
(
|
||||||
|
nlerror ("WARNING no max file in folder veget_source_directory")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
catch
|
||||||
|
(
|
||||||
|
-- Error
|
||||||
|
nlerror ("ERROR fatal error exporting veget in folder veget_source_directory")
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Bye
|
||||||
|
|
||||||
|
resetMAXFile #noprompt
|
||||||
|
quitMAX #noPrompt
|
||||||
|
quitMAX () #noPrompt
|
||||||
|
|
65
code/nel/tools/build_gamedata/processes/vegetset/0_setup.py
Normal file
65
code/nel/tools/build_gamedata/processes/vegetset/0_setup.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief setup vegetset
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup vegetset
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 vegetset")
|
||||||
|
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 VegetSetSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + VegetSetExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + VegetSetClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
57
code/nel/tools/build_gamedata/processes/vegetset/1_export.py
Normal file
57
code/nel/tools/build_gamedata/processes/vegetset/1_export.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 1_export.py
|
||||||
|
# \brief Export vegetset
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Export vegetset
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 vegetset")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
# For each vegetset directoy
|
||||||
|
printLog(log, ">>> Export vegetset <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + VegetSetExportDirectory)
|
||||||
|
for dir in VegetSetSourceDirectories:
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + dir)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, DatabaseDirectory + "/" + dir, ExportBuildDirectory + "/" + VegetSetExportDirectory, ".vegetset")
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
49
code/nel/tools/build_gamedata/processes/vegetset/2_build.py
Normal file
49
code/nel/tools/build_gamedata/processes/vegetset/2_build.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 2_build.py
|
||||||
|
# \brief Build vegetset
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Build vegetset
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 vegetset")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 3_install.py
|
||||||
|
# \brief Install vegetset
|
||||||
|
# \date 2010-05-24 08:13GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Install vegetset
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 vegetset")
|
||||||
|
printLog(log, "-------")
|
||||||
|
printLog(log, time.strftime("%Y-%m-%d %H:%MGMT", time.gmtime(time.time())))
|
||||||
|
printLog(log, "")
|
||||||
|
|
||||||
|
clientPath = ClientDataDirectory + "/" + VegetSetClientDirectory
|
||||||
|
mkPath(log, clientPath)
|
||||||
|
|
||||||
|
printLog(log, ">>> Install vegetset <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + VegetSetExportDirectory)
|
||||||
|
copyFilesExtNoTreeIfNeeded(log, ExportBuildDirectory + "/" + VegetSetExportDirectory, clientPath, ".vegetset")
|
||||||
|
|
||||||
|
printLog(log, "")
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
65
code/nel/tools/build_gamedata/processes/zone/0_setup.py
Normal file
65
code/nel/tools/build_gamedata/processes/zone/0_setup.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
#
|
||||||
|
# \file 0_setup.py
|
||||||
|
# \brief Setup zone
|
||||||
|
# \date 2009-03-10-22-23-GMT
|
||||||
|
# \author Jan Boon (Kaetemi)
|
||||||
|
# Python port of game data build pipeline.
|
||||||
|
# Setup zone
|
||||||
|
#
|
||||||
|
# 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")
|
||||||
|
sys.path.append("../../configuration/project")
|
||||||
|
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 zone")
|
||||||
|
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 <<<")
|
||||||
|
mkPath(log, DatabaseDirectory + "/" + ZoneSourceDirectory)
|
||||||
|
|
||||||
|
# Setup export directories
|
||||||
|
printLog(log, ">>> Setup export directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneExportDirectory)
|
||||||
|
|
||||||
|
# Setup build directories
|
||||||
|
printLog(log, ">>> Setup build directories <<<")
|
||||||
|
mkPath(log, ExportBuildDirectory + "/" + ZoneWeldBuildDirectory)
|
||||||
|
|
||||||
|
# Setup client directories
|
||||||
|
printLog(log, ">>> Setup client directories <<<")
|
||||||
|
mkPath(log, ClientDataDirectory + "/" + ZoneClientDirectory)
|
||||||
|
|
||||||
|
log.close()
|
||||||
|
|
||||||
|
|
||||||
|
# end of file
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue