diff --git a/.gitignore b/.gitignore index 0e41336..b71570f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ engine +pandemonium_engine modules/* ignore/* diff --git a/HEADS b/HEADS index 11b37fa..aeee610 100644 --- a/HEADS +++ b/HEADS @@ -1 +1 @@ -{"engine": {"3.2": "64a9e86c5c20bd4bd5833f0563457d0126617489", "3.x": "cdd4f2722a7c16d9e36521d7180cc80715591554"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "3c334566ff05a74e913cd5c5ff38ae45aba5f5d2"}, "ui_extensions": {"master": "80a3b96fc56991a0f88a1d441ed1e3cebaf3307a"}, "texture_packer": {"master": "ae4d222fbaade063ed6f0bc9f3aaa53df68a7fed"}, "fastnoise": {"master": "46bb1f610bfb7171613b5c708d312bcf94e89356"}, "thread_pool": {"master": "c401b7a027248158dae3fbce20d637d34eaaedb9"}, "mesh_data_resource": {"master": "2bf76b8d07c2821161886ea4ea6edc788ec2ee51"}, "mesh_utils": {"master": "902dae29797789d406faf256a22aa73b7f6d5261"}, "props": {"master": "2afd6eff45f9a921bdf4090ff3029def86df5cb5"}, "terraman_2d": {"master": "b547515ae3817b0088e2cf499af59c8f1dee7189"}, "broken_seals_module": {"master": "52c5a81350db1c29d375c63d95010260911ec034"}, "rtile_map": {"master": "389070cfef387b69902e23e6c4ac53997b69e42e"}} \ No newline at end of file +{"engine": {"3.2": "64a9e86c5c20bd4bd5833f0563457d0126617489", "3.x": "cdd4f2722a7c16d9e36521d7180cc80715591554"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "3c334566ff05a74e913cd5c5ff38ae45aba5f5d2"}, "ui_extensions": {"master": "80a3b96fc56991a0f88a1d441ed1e3cebaf3307a"}, "texture_packer": {"master": "ae4d222fbaade063ed6f0bc9f3aaa53df68a7fed"}, "fastnoise": {"master": "46bb1f610bfb7171613b5c708d312bcf94e89356"}, "thread_pool": {"master": "c401b7a027248158dae3fbce20d637d34eaaedb9"}, "mesh_data_resource": {"master": "2bf76b8d07c2821161886ea4ea6edc788ec2ee51"}, "mesh_utils": {"master": "902dae29797789d406faf256a22aa73b7f6d5261"}, "props": {"master": "2afd6eff45f9a921bdf4090ff3029def86df5cb5"}, "terraman_2d": {"master": "b547515ae3817b0088e2cf499af59c8f1dee7189"}, "broken_seals_module": {"master": "52c5a81350db1c29d375c63d95010260911ec034"}, "rtile_map": {"master": "389070cfef387b69902e23e6c4ac53997b69e42e"}, "pandemonium_engine": {"master": "f659bfe561d7177cd5baaf264893fe5f10539c13"}} \ No newline at end of file diff --git a/SConstruct b/SConstruct index 9865673..e8fe36c 100644 --- a/SConstruct +++ b/SConstruct @@ -21,78 +21,49 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -EnsureSConsVersion(0, 98, 1) - -import sys import os import subprocess import json -import shutil -import traceback +import sys import module_config repository_index = 0 -module_clone_path = '/modules/' clone_command = 'git clone {0} {1}' - -visual_studio_call_vcvarsall = False -visual_studio_vcvarsall_path = 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat' -visual_studio_arch = 'amd64' - -exports = { - 'global': [], - 'linux': [], - 'windows': [], - 'android': [], - 'javascript': [], -} - -additional_commands = { - 'global': [], - 'linux': [], - 'windows': [], - 'android': [], - 'javascript': [], -} - target_commits = {} -def onerror(func, path, exc_info): - """ - https://stackoverflow.com/questions/2656322/shutil-rmtree-fails-on-windows-with-access-is-denied +def setup_repository(data, clone_path, branch = 'master'): + cwd = os.getcwd() - Because Windows. + full_path = cwd + clone_path + data[1] + '/' + + if not os.path.isdir(full_path): + os.chdir(cwd + clone_path) - Error handler for ``shutil.rmtree``. + subprocess.call(clone_command.format(data[0][repository_index], data[1]), shell=True) - If the error is due to an access error (read only file) - it attempts to add write permission and then retries. + os.chdir(full_path) - If the error is for another reason it re-raises the error. + subprocess.call('git reset', shell=True) + subprocess.call('git reset --hard', shell=True) + subprocess.call('git clean -f -d', shell=True) + subprocess.call('git checkout -B ' + branch + ' origin/' + branch, shell=True) + subprocess.call('git pull origin ' + branch, shell=True) + subprocess.call('git reset', shell=True) + subprocess.call('git reset --hard', shell=True) - Usage : ``shutil.rmtree(path, onerror=onerror)`` - """ - import stat - if not os.access(path, os.W_OK): - # Is the error an access error ? - os.chmod(path, stat.S_IWUSR) - func(path) - else: - raise + target = "" -def load_target_commits_array(): - global target_commits + if data[1] in target_commits: + target = target_commits[data[1]][branch] - if os.path.isfile('./HEADS'): - with open('./HEADS', 'r') as infile: - target_commits = json.load(infile) - else: - target_commits = {} + subprocess.call('git checkout -B ' + branch + ' ' + target, shell=True) + subprocess.call('git clean -f -d', shell=True) + subprocess.call('git reset', shell=True) + subprocess.call('git reset --hard', shell=True) + + os.chdir(cwd) -def save_target_commits_array(): - with open('./HEADS', 'w') as outfile: - json.dump(target_commits, outfile) def update_repository(data, clone_path, branch = 'master'): cwd = os.getcwd() @@ -125,55 +96,6 @@ def update_repository(data, clone_path, branch = 'master'): os.chdir(cwd) -def setup_repository(data, clone_path, branch = 'master'): - cwd = os.getcwd() - - full_path = cwd + clone_path + data[1] + '/' - - if not os.path.isdir(full_path): - os.chdir(cwd + clone_path) - - subprocess.call(clone_command.format(data[0][repository_index], data[1]), shell=True) - - os.chdir(full_path) - - subprocess.call('git reset', shell=True) - subprocess.call('git reset --hard', shell=True) - subprocess.call('git clean -f -d', shell=True) - subprocess.call('git checkout -B ' + branch + ' origin/' + branch, shell=True) - subprocess.call('git pull origin ' + branch, shell=True) - subprocess.call('git reset', shell=True) - subprocess.call('git reset --hard', shell=True) - - if data[1] in target_commits: - target = target_commits[data[1]][branch] - - subprocess.call('git checkout -B ' + branch + ' ' + target, shell=True) - subprocess.call('git clean -f -d', shell=True) - subprocess.call('git reset', shell=True) - subprocess.call('git reset --hard', shell=True) - - os.chdir(cwd) - -def copy_repository(data, target_folder, clone_path): - copytree(os.path.abspath(clone_path + data[1] + '/' + data[2]), os.path.abspath(target_folder + data[1])) - -def copytree(src, dst): - for item in os.listdir(src): - sp = os.path.join(src, item) - dp = os.path.join(dst, item) - - if os.path.isdir(sp): - if os.path.isdir(dp): - shutil.rmtree(dp, onerror=onerror) - - shutil.copytree(sp, dp) - else: - if not os.path.isdir(dst): - os.makedirs(dst) - - shutil.copy2(sp, dp) - def validate_repository_origin(data, clone_path, branch = 'master'): full_path = os.path.abspath(clone_path) @@ -223,406 +145,29 @@ def validate_repository_origin(data, clone_path, branch = 'master'): os.chdir(cwd) -def remove_repository(data, target_folder): - folder = os.path.abspath(target_folder + data[1]) - - if os.path.isdir(folder): - shutil.rmtree(folder) - def update_engine(): - validate_repository_origin(module_config.engine_repository, './engine/', module_config.godot_branch) - update_repository(module_config.engine_repository, '/', module_config.godot_branch) - -def update_modules(): - for rep in module_config.module_repositories: - update_repository(rep, module_clone_path) - copy_repository(rep, './engine/modules/', '.' + module_clone_path) - -def update_addons(): - for rep in module_config.addon_repositories: - update_repository(rep, module_clone_path) - copy_repository(rep, './game/addons/', '.' + module_clone_path) - -def update_addons_third_party_addons(): - for rep in module_config.third_party_addon_repositories: - update_repository(rep, module_clone_path) - copy_repository(rep, './game/addons/', '.' + module_clone_path) - -def update_all(): - update_engine() - update_modules() - update_addons() - update_addons_third_party_addons() - - save_target_commits_array() - - -def setup_engine(): - validate_repository_origin(module_config.engine_repository, './engine/', module_config.godot_branch) - setup_repository(module_config.engine_repository, '/', module_config.godot_branch) - -def setup_modules(): - for rep in module_config.module_repositories: - setup_repository(rep, module_clone_path) - copy_repository(rep, './engine/modules/', '.' + module_clone_path) - - for rep in module_config.removed_modules: - remove_repository(rep, './engine/modules/') - - -def setup_addons(): - for rep in module_config.addon_repositories: - setup_repository(rep, module_clone_path) - copy_repository(rep, './game/addons/', '.' + module_clone_path) - -def setup_addons_third_party_addons(): - for rep in module_config.third_party_addon_repositories: - setup_repository(rep, module_clone_path) - copy_repository(rep, './game/addons/', '.' + module_clone_path) - -def setup_all(): - setup_engine() - setup_modules() - setup_addons() - setup_addons_third_party_addons() - -def format_path(path): - if 'win' in sys.platform: - path = path.replace('/', '\\') - path = path.replace('~', '%userprofile%') - - return path - -def get_exports_for(platform): - export_command = 'export ' - command_separator = ';' - - if 'win' in sys.platform: - command_separator = '&' - export_command = 'set ' - - command = '' - - for p in exports[platform]: - command += export_command + p + command_separator - - return command - -def get_additional_commands_for(platform): - command_separator = ';' - - if 'win' in sys.platform: - command_separator = '&' - - command = '' - - for p in additional_commands[platform]: - command += p + command_separator - - return command - - - -def parse_config(): - global visual_studio_vcvarsall_path - global visual_studio_arch - global visual_studio_call_vcvarsall - global exports - - if not os.path.isfile('build.config'): - return - - with open('build.config', 'r') as f: - - for line in f: - ls = line.strip() - if ls == '' or ls.startswith('#'): - continue - - words = line.split() - - if (len(words) < 2): - print('This build.config line is malformed, and got ignored: ' + ls) - continue - - if words[0] == 'visual_studio_vcvarsall_path': - visual_studio_vcvarsall_path = format_path(ls[29:]) - elif words[0] == 'visual_studio_arch': - visual_studio_arch = format_path(ls[19:]) - elif words[0] == 'visual_studio_call_vcvarsall': - visual_studio_call_vcvarsall = words[1].lower() in [ 'true', '1', 't', 'y', 'yes' ] - elif words[0] == 'export': - if (len(words) < 3) or not words[1] in exports: - print('This build.config line is malformed, and got ignored: ' + ls) - continue - - export_path = format_path(ls[8 + len(words[1]):]) - - exports[words[1]].append(export_path) - elif words[0] == 'run': - if (len(words) < 3) or not words[1] in additional_commands: - print('This build.config line is malformed, and got ignored: ' + ls) - continue - - final_cmd = format_path(ls[5 + len(words[1]):]) - - additional_commands[words[1]].append(final_cmd) - -parse_config() - -env = Environment() - -if len(sys.argv) > 1: - - arg = sys.argv[1] - - arg_split = arg.split('_') - arg = arg_split[0] - arg_split = arg_split[1:] - - if arg[0] == 'b': - build_string = get_exports_for('global') + get_additional_commands_for('global') + 'scons ' - - build_string += 'tools=' - if 'e' in arg: - build_string += 'yes' - else: - build_string += 'no' - build_string += ' ' - - build_string += 'target=' - if 'r' in arg: - build_string += 'release' - elif 'd' in arg: - build_string += 'debug' - else: - build_string += 'release_debug' - build_string += ' ' - - build_string += 'custom_modules_shared=' - if 's' in arg: - build_string += 'yes' - else: - build_string += 'no' - build_string += ' ' - - if 'm' in arg: - build_string += 'use_mingw=yes' - else: - if 'win' in sys.platform and visual_studio_call_vcvarsall: - build_string = 'call "{0}" {1}&'.format(visual_studio_vcvarsall_path, visual_studio_arch) + build_string - - if 'o' in arg: - build_string += 'use_llvm=yes' - - if 'v' in arg: - build_string += 'vsproj=yes' - - for i in range(2, len(sys.argv)): - build_string += ' ' + sys.argv[i] + ' ' - - if 'slim' in arg_split: - build_string += module_config.slim_args - build_string += ' ' - - if 'latomic' in arg_split: - build_string += 'LINKFLAGS="-latomic"' - build_string += ' ' - - if 'strip' in arg_split: - build_string += 'debug_symbols=no' - build_string += ' ' - - target = ' ' - - if 'E' in arg: - target += 'bin/libess.x11.opt.tools.64.so' - elif 'T' in arg: - target += 'bin/libtexture_packer.x11.opt.tools.64.so' - elif 'V' in arg: - target += 'bin/libvoxelman.x11.opt.tools.64.so' - elif 'W' in arg: - target += 'bin/libworld_generator.x11.opt.tools.64.so' - elif 'P' in arg: - target += 'bin/libprocedural_animations.x11.opt.tools.64.so' - - cwd = os.getcwd() - full_path = cwd + '/engine/' - - if not os.path.isdir(full_path): - print('engine directory doesnt exists.') - exit() - - os.chdir(full_path) - - if 'l' in arg: - build_string += 'platform=x11' - - build_string = get_exports_for('linux') + get_additional_commands_for('linux') + build_string + target - - print('Running command: ' + build_string) - - subprocess.call(build_string, shell=True) - elif 'w' in arg: - build_string += 'platform=windows' - - build_string = get_exports_for('windows') + get_additional_commands_for('windows') + build_string - - print('Running command: ' + build_string) - - subprocess.call(build_string, shell=True) - elif 'a' in arg: - build_string += 'platform=android' - - build_string = get_exports_for('android') + get_additional_commands_for('android') + build_string - - print('Running command: ' + build_string + ' android_arch=armv7') - subprocess.call(build_string + ' android_arch=armv7', shell=True) - print('Running command: ' + build_string + ' android_arch=arm64v8') - subprocess.call(build_string + ' android_arch=arm64v8', shell=True) - print('Running command: ' + build_string + ' android_arch=x86') - subprocess.call(build_string + ' android_arch=x86', shell=True) - - os.chdir(full_path + 'platform/android/java/') - - print('Running command: ' + get_exports_for('global') + get_additional_commands_for('global') + get_exports_for('android') + get_additional_commands_for('android') + './gradlew generateGodotTemplates') - subprocess.call(get_exports_for('global') + get_additional_commands_for('global') + get_exports_for('android') + get_additional_commands_for('android') + './gradlew generateGodotTemplates', shell=True) - elif 'j' in arg: - build_string += 'platform=javascript' - - build_string = get_exports_for('javascript') + get_additional_commands_for('javascript') + build_string - - print('Running command: ' + build_string) - subprocess.call(build_string, shell=True) - elif 'i' in arg: - build_string += 'platform=iphone' - - subprocess.call(build_string + ' arch=arm', shell=True) - subprocess.call(build_string + ' arch=arm64', shell=True) - - #subprocess.call('lipo -create bin/libgodot.iphone.{0}.arm.a bin/libgodot.iphone.{0}.arm64.a -output bin/libgodot.iphone.{1}.fat.a'.fomat(), shell=True) - - #lipo -create bin/libgodot.iphone.opt.debug.arm.a bin/libgodot.iphone.opt.debug.arm64.a -output bin/libgodot.iphone.debug.fat.a - #rm bin/ios_xcode/libgodot.iphone.debug.fat.a - #cp bin/libgodot.iphone.debug.fat.a bin/ios_xcode/libgodot.iphone.debug.fat.a - - #lipo -create bin/libgodot.iphone.opt.arm.a bin/libgodot.iphone.opt.arm64.a -output bin/libgodot.iphone.release.fat.a - #rm bin/ios_xcode/libgodot.iphone.release.fat.a - #cp bin/libgodot.iphone.release.fat.a bin/ios_xcode/libgodot.iphone.release.fat.a - - subprocess.call('rm bin/iphone.zip', shell=True) - #cd bin/ios_xcode - subprocess.call(build_string + ' arch=arm64', shell=True) - subprocess.call('zip -r -X ../iphone.zip .', shell=True) - - else: - print('No platform specified') - exit() - - exit() - elif arg[0] == 'p': - if arg == 'p': - print("Applies a patch. No Patches right now.Append s for the skeleton editor patch. For example: ps ") - exit() - - cwd = os.getcwd() - full_path = cwd + '/engine/' - - if not os.path.isdir(full_path): - print('engine directory does not exists.') - exit() - - os.chdir(full_path) - - #apply the patch to just the working directory, without creating a commit - - if 's' in arg: - subprocess.call('git apply --index ../patches/custom_skeleton_3d_editor_plugin.patch', shell=True) - - #unstage all files - subprocess.call('git reset', shell=True) - - vman_full_path = cwd + '/engine/modules/voxelman/' - - #also patch voxelman as the plugin changes forward_spatial_gui_input's definition - if os.path.isdir(vman_full_path): - os.chdir(vman_full_path) - - subprocess.call('git apply --index ../../../patches/fix-voxel-editor-after-the-skeleton-editor-patch.patch', shell=True) - - #unstage all files - subprocess.call('git reset', shell=True) - else: - print('Voxelman directory does not exists, skipping patch.') - + validate_repository_origin(module_config.engine_repository, './pandemonium_engine/', module_config.pandemonium_branch) + update_repository(module_config.engine_repository, '/', module_config.pandemonium_branch) +engine_abspath = os.path.abspath(module_config.engine_repository[1]) +if not os.path.isdir(engine_abspath): + if not os.path.isfile('./HEADS'): + print("Error! HEADS file doesn't exists! Exiting.") exit() -opts = Variables(args=ARGUMENTS) + with open('./HEADS', 'r') as infile: + target_commits = json.load(infile) -opts.Add('a', 'What to do', '') -opts.Add(EnumVariable('action', 'What to do', 'setup', ('setup', 'update'))) -opts.Add('t', 'Action target', '') -opts.Add(EnumVariable('target', 'Action target', 'all', ('all', 'engine', 'modules', 'all_addons', 'addons', 'third_party_addons'))) -opts.Add(EnumVariable('repository_type', 'Type of repositories to clone from first', 'http', ('http', 'ssh'))) + if 'repository_type=ssh' in sys.argv: + repository_index = 1 -opts.Update(env) -Help(opts.GenerateHelpText(env)) - -load_target_commits_array() - -rt = env['repository_type'] - -if rt == 'ssh': - repository_index = 1 - -action = env['action'] -target = env['target'] - -if env['a']: - action = env['a'] - -if env['t']: - target = env['t'] - -if not os.path.isdir('./modules'): - os.mkdir('./modules') - -if 'm' in action: - godot_branch = 'master' - -if 'setup' in action or action[0] == 's': - if target == 'all': - setup_all() - elif target == 'engine': - setup_engine() - elif target == 'modules': - setup_modules() - elif target == 'all_addons': - setup_addons() - setup_addons_third_party_addons() - elif target == 'addons': - setup_addons() - elif target == 'third_party_addons': - setup_addons_third_party_addons() -elif 'update' in action or action[0] == 'u': - if target == 'all': - update_all() - elif target == 'engine': + setup_repository(module_config.engine_repository, '/', module_config.pandemonium_branch) +else: + if not os.path.isfile('pandemonium_engine/misc/scripts_app/SConstruct'): update_engine() - save_target_commits_array() - elif target == 'modules': - update_modules() - save_target_commits_array() - elif target == 'all_addons': - update_addons() - update_addons_third_party_addons() - save_target_commits_array() - elif target == 'addons': - update_addons() - save_target_commits_array() - elif target == 'third_party_addons': - update_addons_third_party_addons() - save_target_commits_array() - + + +SConscript("pandemonium_engine/misc/scripts_app/SConstruct") + + diff --git a/editor.sh b/editor.sh index ce9ff0c..1aec724 100755 --- a/editor.sh +++ b/editor.sh @@ -1,6 +1,6 @@ #!/bin/bash -cp -u ./engine/bin/godot.x11.opt.tools.64 ./engine/bin/run.godot.x11.opt.tools.64 +cp -u ./pandemonium_engine/bin/pandemonium.x11.opt.tools.64 ./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64 -export LD_LIBRARY_PATH=`pwd`/engine/bin/ -./engine/bin/run.godot.x11.opt.tools.64 -v +export LD_LIBRARY_PATH=`pwd`/pandemonium_engine/bin/ +./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64 -v diff --git a/export_all.sh b/export_all.sh deleted file mode 100755 index 702ebbe..0000000 --- a/export_all.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -set -e - -project_root=$(pwd) - -rm -Rf ./export - -mkdir export -mkdir export/broken_seals_android_release -mkdir export/broken_seals_android_debug -mkdir export/broken_seals_linux -mkdir export/broken_seals_windows -mkdir export/broken_seals_javascript -mkdir export/broken_seals_pi4 -mkdir export/export_templates - -./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export-debug Android-Release ${project_root}/export/broken_seals_android_release/broken_seals.apk -./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export-debug Android ${project_root}/export/broken_seals_android_debug/broken_seals_debug.apk -./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export Linux/X11 ${project_root}/export/broken_seals_linux/broken_seals_x11 -./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export "Windows Desktop" ${project_root}/export/broken_seals_windows/broken_seals.exe -./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export HTML5 ${project_root}/export/broken_seals_javascript/broken_seals.html -./engine/bin/godot.x11.opt.tools.64 --path ./game/ --export PI4/X11 ${project_root}/export/broken_seals_pi4/broken_seals_pi4 - -cp ./engine/bin/godot.windows.opt.tools.64.exe ${project_root}/export/godot.bs.windows.opt.tools.64.exe -cp ./engine/bin/godot.x11.opt.tools.64 ${project_root}/export/godot.bs.x11.opt.tools.64 -cp ./engine/bin/godot.x11.pi4.opt.tools.32 ${project_root}/export/godot.bs.x11.pi4.opt.tools.32 - -cp ./engine/bin/android_debug.apk ${project_root}/export/export_templates/android_debug.apk -cp ./engine/bin/android_release.apk ${project_root}/export/export_templates/android_release.apk -cp ./engine/bin/godot.javascript.opt.debug.zip ${project_root}/export/export_templates/godot.javascript.opt.debug.zip -cp ./engine/bin/godot.javascript.opt.zip ${project_root}/export/export_templates/godot.javascript.opt.zip -cp ./engine/bin/godot.windows.opt.64.exe ${project_root}/export/export_templates/godot.windows.opt.64.exe -cp ./engine/bin/godot.windows.opt.debug.64.exe ${project_root}/export/export_templates/godot.windows.opt.debug.64.exe -cp ./engine/bin/godot.x11.opt.64 ${project_root}/export/export_templates/godot.x11.opt.64 -cp ./engine/bin/godot.x11.opt.debug.64 ${project_root}/export/export_templates/godot.x11.opt.debug.64 -cp ./engine/bin/godot.x11.pi4.opt.32 ${project_root}/export/export_templates/godot.x11.pi4.opt.32 -cp ./engine/bin/godot.x11.pi4.opt.debug.32 ${project_root}/export/export_templates/godot.x11.pi4.opt.debug.32 - - diff --git a/game/project.godot b/game/project.pandemonium similarity index 69% rename from game/project.godot rename to game/project.pandemonium index 556e0ef..1869803 100644 --- a/game/project.godot +++ b/game/project.pandemonium @@ -9,337 +9,223 @@ config_version=4 _global_script_classes=[ { -"base": "Reference", -"class": "BrushPrefabs", -"language": "GDScript", -"path": "res://addons/Godoxel/BrushPrefabs.gd" -}, { "base": "CharacterAtlas", -"class": "CharacterAtlas2D", -"language": "GDScript", +"class": @"CharacterAtlas2D", +"language": @"GDScript", "path": "res://scripts/item_visuals/CharacterAtlas2D.gd" }, { "base": "CharacterAtlasEntry", -"class": "CharacterAtlasEntry2D", -"language": "GDScript", +"class": @"CharacterAtlasEntry2D", +"language": @"GDScript", "path": "res://scripts/item_visuals/CharacterAtlasEntry2D.gd" }, { "base": "Spatial", -"class": "CharacterSkeketonAttachPoint", -"language": "GDScript", +"class": @"CharacterSkeketonAttachPoint", +"language": @"GDScript", "path": "res://player/CharacterSkeletonAttachPoint.gd" }, { "base": "CharacterSkeleton2D", -"class": "CharacterSkeleton2DGD", -"language": "GDScript", +"class": @"CharacterSkeleton2DGD", +"language": @"GDScript", "path": "res://player/CharacterSkeleton2DGD.gd" }, { "base": "ColorRect", -"class": "ColorTile", -"language": "GDScript", +"class": @"ColorTile", +"language": @"GDScript", "path": "res://addons/color-palette/ColorTile.gd" }, { "base": "Resource", -"class": "Continent", -"language": "GDScript", +"class": @"Continent", +"language": @"GDScript", "path": "res://addons/world_generator/resources/continent.gd" }, { "base": "Entity", -"class": "DisplayPlayerGD", -"language": "GDScript", +"class": @"DisplayPlayerGD", +"language": @"GDScript", "path": "res://player/DisplayPlayer.gd" }, { "base": "EntityAI", -"class": "EntityAIGD", -"language": "GDScript", +"class": @"EntityAIGD", +"language": @"GDScript", "path": "res://scripts/ai/EntityAIGD.gd" }, { "base": "EntityData", -"class": "EntityDataGD", -"language": "GDScript", +"class": @"EntityDataGD", +"language": @"GDScript", "path": "res://scripts/entities/EntityDataGD.gd" }, { "base": "Container", -"class": "FlexGridContainer", -"language": "GDScript", +"class": @"FlexGridContainer", +"language": @"GDScript", "path": "res://addons/color-palette/utilities/FlexGridContainer.gd" }, { -"base": "Node", -"class": "GEAction", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Action.gd" -}, { -"base": "GEAction", -"class": "GEBrighten", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Brighten.gd" -}, { -"base": "GEAction", -"class": "GEBrush", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Brush.gd" -}, { -"base": "GEAction", -"class": "GEBucket", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Bucket.gd" -}, { -"base": "Control", -"class": "GECanvas", -"language": "GDScript", -"path": "res://addons/Godoxel/Canvas.gd" -}, { -"base": "GEAction", -"class": "GECut", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Cut.gd" -}, { -"base": "GEAction", -"class": "GEDarken", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Darken.gd" -}, { -"base": "Reference", -"class": "GELayer", -"language": "GDScript", -"path": "res://addons/Godoxel/Layer.gd" -}, { -"base": "GEAction", -"class": "GELine", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Line.gd" -}, { -"base": "GEAction", -"class": "GEMultiLine", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/MultiLine.gd" -}, { -"base": "GEAction", -"class": "GEPasteCut", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/PasteCut.gd" -}, { -"base": "GEAction", -"class": "GEPencil", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Pencil.gd" -}, { -"base": "GEAction", -"class": "GERainbow", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Rainbow.gd" -}, { -"base": "GEAction", -"class": "GERect", -"language": "GDScript", -"path": "res://addons/Godoxel/actions/Rect.gd" -}, { -"base": "Node", -"class": "GEUtils", -"language": "GDScript", -"path": "res://addons/Godoxel/Util.gd" -}, { "base": "Resource", -"class": "GameModule", -"language": "GDScript", +"class": @"GameModule", +"language": @"GDScript", "path": "res://scripts/game_modules/GameModule.gd" }, { "base": "EntityResource", -"class": "HealthResource", -"language": "GDScript", +"class": @"HealthResource", +"language": @"GDScript", "path": "res://scripts/resources/HealthResource.gd" }, { "base": "CharacterBones", -"class": "HumanoidCharacterBones2D", -"language": "GDScript", +"class": @"HumanoidCharacterBones2D", +"language": @"GDScript", "path": "res://player/HumanoidCharacterBones2D.gd" }, { "base": "ItemTemplate", -"class": "ItemTemplateGD", -"language": "GDScript", +"class": @"ItemTemplateGD", +"language": @"GDScript", "path": "res://scripts/items/ItemTemplateGD.gd" }, { "base": "SkeletonModelEntry", -"class": "ItemVisual2D", -"language": "GDScript", +"class": @"ItemVisual2D", +"language": @"GDScript", "path": "res://scripts/item_visuals/ItemVisual2D.gd" }, { "base": "SkeletonModelEntry", -"class": "ItemVisualEntry2D", -"language": "GDScript", +"class": @"ItemVisualEntry2D", +"language": @"GDScript", "path": "res://scripts/item_visuals/ItemVisualEntry2D.gd" }, { "base": "Node2D", -"class": "LayeredTextureMaker", -"language": "GDScript", +"class": @"LayeredTextureMaker", +"language": @"GDScript", "path": "res://texture_tools/LayeredTextureMaker.gd" }, { -"base": "Resource", -"class": "MMMateial", -"language": "GDScript", -"path": "res://addons/mat_maker_gd/nodes/mm_material.gd" -}, { -"base": "Resource", -"class": "MMNode", -"language": "GDScript", -"path": "res://addons/mat_maker_gd/nodes/mm_node.gd" -}, { -"base": "Resource", -"class": "MMNodeUniversalProperty", -"language": "GDScript", -"path": "res://addons/mat_maker_gd/nodes/mm_node_universal_property.gd" -}, { "base": "Node", -"class": "Main", -"language": "GDScript", +"class": @"Main", +"language": @"GDScript", "path": "res://scenes/MainScene.gd" }, { "base": "EntityResource", -"class": "ManaResource", -"language": "GDScript", +"class": @"ManaResource", +"language": @"GDScript", "path": "res://scripts/resources/ManaResource.gd" }, { "base": "Control", -"class": "Menu", -"language": "GDScript", +"class": @"Menu", +"language": @"GDScript", "path": "res://scenes/Menu.gd" }, { "base": "Entity", -"class": "MobGD", -"language": "GDScript", +"class": @"MobGD", +"language": @"GDScript", "path": "res://player/Mob.gd" }, { "base": "", -"class": "NetworkedPlayerGD", -"language": "GDScript", +"class": @"NetworkedPlayerGD", +"language": @"GDScript", "path": "res://player/NetworkedPlayer.gd" }, { "base": "Reference", -"class": "Palette", -"language": "GDScript", +"class": @"Palette", +"language": @"GDScript", "path": "res://addons/color-palette/Palette.gd" }, { "base": "Reference", -"class": "PaletteImporter", -"language": "GDScript", +"class": @"PaletteImporter", +"language": @"GDScript", "path": "res://addons/color-palette/PaletteImporter.gd" }, { "base": "", -"class": "PlayerGD", -"language": "GDScript", +"class": @"PlayerGD", +"language": @"GDScript", "path": "res://player/Player.gd" }, { "base": "Resource", -"class": "PlayerMaster", -"language": "GDScript", +"class": @"PlayerMaster", +"language": @"GDScript", "path": "res://scripts/networking/PlayerMaster.gd" }, { "base": "EntityResource", -"class": "SpeedResource", -"language": "GDScript", +"class": @"SpeedResource", +"language": @"GDScript", "path": "res://scripts/resources/SpeedResource.gd" }, { "base": "SpellEffectVisual", -"class": "SpellEffectVisualBasic", -"language": "GDScript", +"class": @"SpellEffectVisualBasic", +"language": @"GDScript", "path": "res://scripts/resources/spell_effect_visual_basic.gd" }, { "base": "Spell", -"class": "SpellGD", -"language": "GDScript", +"class": @"SpellGD", +"language": @"GDScript", "path": "res://scripts/spells/gd_spell_script.gd" }, { "base": "Resource", -"class": "SubZone", -"language": "GDScript", +"class": @"SubZone", +"language": @"GDScript", "path": "res://addons/world_generator/resources/subzone.gd" }, { "base": "GameModule", -"class": "UIGuiChildModule", -"language": "GDScript", +"class": @"UIGuiChildModule", +"language": @"GDScript", "path": "res://scripts/game_modules/ui_gui_child_module.gd" }, { "base": "GameModule", -"class": "UIWindowModule", -"language": "GDScript", +"class": @"UIWindowModule", +"language": @"GDScript", "path": "res://scripts/game_modules/ui_window_module.gd" }, { "base": "Resource", -"class": "WorldGenBaseResource", -"language": "GDScript", +"class": @"WorldGenBaseResource", +"language": @"GDScript", "path": "res://addons/world_generator/resources/world_gen_base_resource.gd" }, { "base": "Resource", -"class": "WorldGenWorld", -"language": "GDScript", +"class": @"WorldGenWorld", +"language": @"GDScript", "path": "res://addons/world_generator/resources/world_gen_world.gd" }, { "base": "Resource", -"class": "WorldGeneratorSettings", -"language": "GDScript", +"class": @"WorldGeneratorSettings", +"language": @"GDScript", "path": "res://addons/world_generator/resources/world_generator_settings.gd" }, { "base": "Resource", -"class": "Zone", -"language": "GDScript", +"class": @"Zone", +"language": @"GDScript", "path": "res://addons/world_generator/resources/zone.gd" } ] _global_script_class_icons={ -"BrushPrefabs": "", -"CharacterAtlas2D": "", -"CharacterAtlasEntry2D": "", -"CharacterSkeketonAttachPoint": "", -"CharacterSkeleton2DGD": "", -"ColorTile": "", -"Continent": "", -"DisplayPlayerGD": "", -"EntityAIGD": "", -"EntityDataGD": "", -"FlexGridContainer": "res://addons/color-palette/utilities/FlexGridContainerIcon.png", -"GEAction": "", -"GEBrighten": "", -"GEBrush": "", -"GEBucket": "", -"GECanvas": "", -"GECut": "", -"GEDarken": "", -"GELayer": "", -"GELine": "", -"GEMultiLine": "", -"GEPasteCut": "", -"GEPencil": "", -"GERainbow": "", -"GERect": "", -"GEUtils": "", -"GameModule": "", -"HealthResource": "", -"HumanoidCharacterBones2D": "", -"ItemTemplateGD": "", -"ItemVisual2D": "", -"ItemVisualEntry2D": "", -"LayeredTextureMaker": "", -"MMMateial": "", -"MMNode": "", -"MMNodeUniversalProperty": "", -"Main": "", -"ManaResource": "", -"Menu": "", -"MobGD": "", -"NetworkedPlayerGD": "", -"Palette": "", -"PaletteImporter": "", -"PlayerGD": "", -"PlayerMaster": "", -"SpeedResource": "", -"SpellEffectVisualBasic": "", -"SpellGD": "", -"SubZone": "", -"UIGuiChildModule": "", -"UIWindowModule": "", -"WorldGenBaseResource": "", -"WorldGenWorld": "", -"WorldGeneratorSettings": "", -"Zone": "" +@"LayeredTextureMaker": "", +@"Palette": "", +@"CharacterAtlas2D": "", +@"CharacterSkeketonAttachPoint": "", +@"FlexGridContainer": "res://addons/color-palette/utilities/FlexGridContainerIcon.png", +@"GameModule": "", +@"PlayerGD": "", +@"WorldGeneratorSettings": "", +@"ItemVisual2D": "", +@"MobGD": "", +@"PaletteImporter": "", +@"PlayerMaster": "", +@"SpeedResource": "", +@"CharacterAtlasEntry2D": "", +@"Continent": "", +@"EntityAIGD": "", +@"EntityDataGD": "", +@"WorldGenWorld": "", +@"CharacterSkeleton2DGD": "", +@"ItemVisualEntry2D": "", +@"NetworkedPlayerGD": "", +@"SpellEffectVisualBasic": "", +@"SpellGD": "", +@"UIWindowModule": "", +@"Zone": "", +@"ColorTile": "", +@"Main": "", +@"ManaResource": "", +@"Menu": "", +@"UIGuiChildModule": "", +@"WorldGenBaseResource": "", +@"DisplayPlayerGD": "", +@"HealthResource": "", +@"ItemTemplateGD": "", +@"SubZone": "", +@"HumanoidCharacterBones2D": "" } Node="input/actionbar_5_11" @@ -383,7 +269,7 @@ window/size/ui_scale_touch=1.0 [editor_plugins] -enabled=PoolStringArray( "res://addons/Godoxel/plugin.cfg", "res://addons/color-palette/plugin.cfg", "res://addons/data_manager/plugin.cfg", "res://addons/mat_maker_gd/plugin.cfg", "res://addons/tile_generator/plugin.cfg", "res://addons/world_generator/plugin.cfg" ) +enabled=PoolStringArray( "res://addons/color-palette/plugin.cfg", "res://addons/tile_generator/plugin.cfg", "res://addons/world_generator/plugin.cfg" ) [ess] @@ -525,13 +411,8 @@ limits/message_queue/max_size_kb=2048 2d/default_gravity=0 -[props] - -default_prop_material_cache_class="PropMaterialCachePCM" - [rendering] -quality/driver/driver_name="GLES2" quality/driver/fallback_to_gles2=true quality/intended_usage/framebuffer_allocation=0 quality/intended_usage/framebuffer_allocation.mobile=0 diff --git a/game/scripts/networking/PlayerMaster.gd b/game/scripts/networking/PlayerMaster.gd index e23069a..baaeb00 100644 --- a/game/scripts/networking/PlayerMaster.gd +++ b/game/scripts/networking/PlayerMaster.gd @@ -24,7 +24,7 @@ class_name PlayerMaster # Player info, associate ID to data var player_info = {} # Info we send to other players -var my_info = { name = "Testname", selected_class = 1 } +#var my_info = { name = "Testname", selected_class = 1 } var sid : int var player : Entity diff --git a/game/world/WorldLayer.tscn b/game/world/WorldLayer.tscn index a590613..58aa235 100644 --- a/game/world/WorldLayer.tscn +++ b/game/world/WorldLayer.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=3 format=2] -[ext_resource path="res://tilesets/tileset.tres" type="TileSet" id=1] +[ext_resource path="res://tilesets/tileset.tres" type="RTileSet" id=1] [ext_resource path="res://world/WorldLayer.gd" type="Script" id=2] diff --git a/ged.sh b/ged.sh index cb71cb6..51ef2eb 100755 --- a/ged.sh +++ b/ged.sh @@ -1,6 +1,6 @@ #!/bin/bash -cp -u ./engine/bin/godot.x11.opt.tools.64 ./engine/bin/run.godot.x11.opt.tools.64 +cp -u ./pandemonium_engine/bin/pandemonium.x11.opt.tools.64 ./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64 -export LD_LIBRARY_PATH=`pwd`/engine/bin/ -./engine/bin/run.godot.x11.opt.tools.64 -e --path ./game/ +export LD_LIBRARY_PATH=`pwd`/pandemonium_engine/bin/ +./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64 -e --path ./game/ diff --git a/leditor.sh b/leditor.sh new file mode 100755 index 0000000..4d49417 --- /dev/null +++ b/leditor.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cp -u ./pandemonium_engine/bin/pandemonium.x11.opt.tools.64.llvm ./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64.llvm + +export LD_LIBRARY_PATH=`pwd`/pandemonium_engine/bin/ +./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64.llvm diff --git a/lged.sh b/lged.sh new file mode 100755 index 0000000..8d6c525 --- /dev/null +++ b/lged.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cp -u ./pandemonium_engine/bin/pandemonium.x11.opt.tools.64.llvm ./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64.llvm + +export LD_LIBRARY_PATH=`pwd`/pandemonium_engine/bin/ +./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64.llvm -e --path ./game/ diff --git a/make_release.sh b/make_release.sh deleted file mode 100755 index 07428d2..0000000 --- a/make_release.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -set -e - -project_root=$(pwd) - -rm -Rf ./release - -mkdir release - -cd export - -rm -Rf broken_seals_full_source -rm -Rf broken_seals_game_source - -mkdir broken_seals_full_source -mkdir broken_seals_game_source - -python ../tools/copy_repos.py ../ ./broken_seals_full_source -python ../tools/copy_repos.py ../game/ ./broken_seals_game_source - -zip ../release/broken_seals_android_debug.zip ./broken_seals_android_debug/* -zip ../release/broken_seals_android_release.zip ./broken_seals_android_release/* -zip ../release/broken_seals_javascript.zip ./broken_seals_javascript/* -zip ../release/broken_seals_linux.zip ./broken_seals_linux/* -zip ../release/broken_seals_windows.zip ./broken_seals_windows/* -zip ../release/broken_seals_pi4.zip ./broken_seals_pi4/* - -zip ../release/editor_windows.zip ./godot.bs.windows.opt.tools.64.exe -zip ../release/editor_linux.zip ./godot.bs.x11.opt.tools.64 -zip ../release/editor_pi4.zip ./godot.bs.x11.pi4.opt.tools.32 - -zip ../release/export_templates.zip ./export_templates/* - -zip -r ../release/broken_seals_full_source.zip ./broken_seals_full_source/* -zip -r ../release/broken_seals_game_source.zip ./broken_seals_game_source/* - -cd .. - diff --git a/module_config.py b/module_config.py index 75c830a..fd74a6e 100644 --- a/module_config.py +++ b/module_config.py @@ -1,22 +1,24 @@ -engine_repository = [ ['https://github.com/Relintai/godot.git', 'git@github.com:Relintai/godot.git'], 'engine', '' ] + +pandemonium_branch = 'master' + +engine_repository = [ ['https://github.com/Relintai/pandemonium_engine.git', 'git@github.com:Relintai/pandemonium_engine.git'], 'pandemonium_engine', '' ] module_repositories = [ - - [ ['https://github.com/Relintai/entity_spell_system.git', 'git@github.com:Relintai/entity_spell_system.git'], 'entity_spell_system', '' ], - [ ['https://github.com/Relintai/ui_extensions.git', 'git@github.com:Relintai/ui_extensions.git'], 'ui_extensions', '' ], - [ ['https://github.com/Relintai/texture_packer.git', 'git@github.com:Relintai/texture_packer.git'], 'texture_packer', '' ], - [ ['https://github.com/Relintai/godot_fastnoise.git', 'git@github.com:Relintai/godot_fastnoise.git'], 'fastnoise', '' ], - [ ['https://github.com/Relintai/thread_pool.git', 'git@github.com:Relintai/thread_pool.git'], 'thread_pool', '' ], - [ ['https://github.com/Relintai/mesh_data_resource.git', 'git@github.com:Relintai/mesh_data_resource.git'], 'mesh_data_resource', '' ], - [ ['https://github.com/Relintai/mesh_utils.git', 'git@github.com:Relintai/mesh_utils.git'], 'mesh_utils', '' ], - [ ['https://github.com/Relintai/broken_seals_module.git', 'git@github.com:Relintai/broken_seals_module.git'], 'broken_seals_module', '' ], - [ ['https://github.com/Relintai/rtile_map.git', 'git@github.com:Relintai/rtile_map.git'], 'rtile_map', '' ], + #[ ['https://github.com/Relintai/entity_spell_system.git', 'git@github.com:Relintai/entity_spell_system.git'], 'entity_spell_system', '' ], + #[ ['https://github.com/Relintai/ui_extensions.git', 'git@github.com:Relintai/ui_extensions.git'], 'ui_extensions', '' ], + #[ ['https://github.com/Relintai/texture_packer.git', 'git@github.com:Relintai/texture_packer.git'], 'texture_packer', '' ], + #[ ['https://github.com/Relintai/godot_fastnoise.git', 'git@github.com:Relintai/godot_fastnoise.git'], 'fastnoise', '' ], + #[ ['https://github.com/Relintai/thread_pool.git', 'git@github.com:Relintai/thread_pool.git'], 'thread_pool', '' ], + #[ ['https://github.com/Relintai/mesh_data_resource.git', 'git@github.com:Relintai/mesh_data_resource.git'], 'mesh_data_resource', '' ], + #[ ['https://github.com/Relintai/mesh_utils.git', 'git@github.com:Relintai/mesh_utils.git'], 'mesh_utils', '' ], + #[ ['https://github.com/Relintai/broken_seals_module.git', 'git@github.com:Relintai/broken_seals_module.git'], 'broken_seals_module', '' ], + #[ ['https://github.com/Relintai/rtile_map.git', 'git@github.com:Relintai/rtile_map.git'], 'rtile_map', '' ], ] removed_modules = [ - [ ['https://github.com/Relintai/world_generator.git', 'git@github.com:Relintai/world_generator.git'], 'world_generator', '' ], - [ ['https://github.com/Relintai/terraman_2d.git', 'git@github.com:Relintai/terraman_2d.git'], 'terraman_2d', '' ], - [ ['https://github.com/Relintai/props.git', 'git@github.com:Relintai/props.git'], 'props', '' ], + #[ ['https://github.com/Relintai/world_generator.git', 'git@github.com:Relintai/world_generator.git'], 'world_generator', '' ], + #[ ['https://github.com/Relintai/terraman_2d.git', 'git@github.com:Relintai/terraman_2d.git'], 'terraman_2d', '' ], + #[ ['https://github.com/Relintai/props.git', 'git@github.com:Relintai/props.git'], 'props', '' ], ] addon_repositories = [ @@ -25,6 +27,4 @@ addon_repositories = [ third_party_addon_repositories = [ ] -godot_branch = '3.x' - slim_args = 'module_webm_enabled=no module_arkit_enabled=no module_visual_script_enabled=no module_gdnative_enabled=no module_mobile_vr_enabled=no module_theora_enabled=no module_xatlas_unwrap_enabled=no no_editor_splash=yes module_bullet_enabled=no module_camera_enabled=no module_csg_enabled=no module_denoise_enabled=no module_fbx_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_lightmapper_cpu_enabled=no module_raycast_enabled=no module_recast_enabled=no module_vhacd_enabled=no module_webxr_enabled=no' diff --git a/play.sh b/play.sh index 6f916f0..385f12b 100755 --- a/play.sh +++ b/play.sh @@ -1,6 +1,6 @@ #!/bin/bash -cp -u ./engine/bin/godot.x11.opt.tools.64 ./engine/bin/run.godot.x11.opt.tools.64 +cp -u ./pandemonium_engine/bin/pandemonium.x11.opt.tools.64 ./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64 -export LD_LIBRARY_PATH=`pwd`/engine/bin/ -./engine/bin/run.godot.x11.opt.tools.64 -v --path ./game/ +export LD_LIBRARY_PATH=`pwd`/pandemonium_engine/bin/ +./pandemonium_engine/bin/run.pandemonium.x11.opt.tools.64 -v --path ./game/