diff --git a/voxelman/the_tower_gles3/.gitignore b/voxelman/the_tower_gles3/.gitignore new file mode 100644 index 0000000..e9f4f1f --- /dev/null +++ b/voxelman/the_tower_gles3/.gitignore @@ -0,0 +1,16 @@ +\exports/ +\.import/ + +addons/scene_notes/ + +addons/todo/ + +scene-notes\.ini + +todo\.cache\.ini + +todo\.config\.ini + +export_presets\.cfg + +export.cfg \ No newline at end of file diff --git a/voxelman/the_tower_gles3/LICENSE b/voxelman/the_tower_gles3/LICENSE new file mode 100644 index 0000000..a7d5e8f --- /dev/null +++ b/voxelman/the_tower_gles3/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2019-present Péter Magyar + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/voxelman/the_tower_gles3/README.md b/voxelman/the_tower_gles3/README.md new file mode 100644 index 0000000..adf61ba --- /dev/null +++ b/voxelman/the_tower_gles3/README.md @@ -0,0 +1,300 @@ +# The Tower + +A really simple (and visually strange) demonstration project for Voxelman. + +It is a first person parkour game. Reach the weird glowing teleporter at the end of each level. + +In order to open this, you need to have a Godot built with [voxelman](https://github.com/Relintai/voxelman) added! + +You can either just get an executable at the [releases tab](https://github.com/Relintai/the_tower/releases), or +you can build one yourself see [here](#compiling). + +You can also try a live version running in the browser [here](https://relintai.github.io/the_tower/). + +Unfortunately the web editor needs custom http headers to work and I can't set that up from github.io, so right now I don't have a hosted version of that. + +Uses GLES3, and is loaded with effects. It will likely make low powered devices (like phones) cry. + +Should work on all platforms (even when there is no threading available).\ +It does not have touchscreen controls tough. + +## Controls + +`w`,`a`,`s`,`d`: Movement \ +`space`: jump (you can also double jump) \ +`shift`: run \ +`r`: reload level \ +`esc`: ingame menu + +## Screenshots + +![The menu](pictures/screenshot_menu.jpg) +![The game](pictures/screenshot_game.jpg) +![A teleporter](pictures/screenshot_teleporter.jpg) +![The editor](pictures/screenshot_editor.jpg) + +## Assets + +### The sound effect + +https://opengameart.org/content/foot-walking-step-sounds-on-stone-water-snow-wood-and-dirt + +Author: \ +Jute (Submitted by qubodup)\ +Thursday, February 11, 2010 - 02:27\ +Art Type: Sound Effect \ +Tags: snow step walk walking movement dirt Wood water wet footstep foot run Action RPG Fantasy Other\ +License(s): GPL 3.0, GPL 2.0 + +These sounds were made by Jute for DungeonHack. They are based on sounds from pdsounds.org. + +I did modify the effect I use from it. + +### The font + +The font is licensed under the Apache License. (it's next to it.) + +## Editing the game + +Grab an engine which has voxelman built in, and then open the project inside the `game` folder. + +## The provided engine + +Currently this project uses [my fork](https://github.com/Relintai/godot) of godot (3.x). \ +This contains a port of [TokageItLab's SkeletonEditor pr](https://github.com/godotengine/godot/pull/45699).\ +The original godot source will work, if you want to use that in your build. + +Also, it doesn't just come with voxelman and it's optional dependencies, I decided to include (keep), +some of my more useful modules aswell. + +here's the full list: + +https://github.com/Relintai/entity_spell_system.git \ +https://github.com/Relintai/ui_extensions.git \ +https://github.com/Relintai/texture_packer.git \ +https://github.com/Relintai/godot_fastnoise.git \ +https://github.com/Relintai/mesh_data_resource.git \ +https://github.com/Relintai/props.git \ +https://github.com/Relintai/mesh_utils.git \ +https://github.com/Relintai/thread_pool.git \ +https://github.com/Relintai/voxelman.git + +If you don't want some of these in your build, then you can remove them by editing the project's [module_config.py](https://github.com/Relintai/the_tower/blob/master/module_config.py) file. + + +## Compiling + +First make sure, that you have everything installed to be able to compile the godot engine. See [the official docs for compiling Godot](https://docs.godotengine.org/en/latest/development/compiling/index.html) for more info. My setup/compile script uses the same tools, so +you don't need to install anything else. + +Now let's clone this repository: + +``` git clone https://github.com/Relintai/the_tower ``` + +cd into the new folder: + +``` cd the_tower ``` + +Now let's run the project's setup script, by calling scons without arguments. + +``` scons ``` + +This will clone and setup the engine, and all of the required modules into a new `engine` folder inside the project, using http. + +(If you want to use the github's ssh links append `repository_type=ssh` like ``` scons repository_type=ssh ```) + +Once it is done you can compile the engine. + +To build the editor on windows with 4 threads run the following command: + +``` scons bew -j4 ``` + +To build the editor on linux with 4 threads run the following command: + +``` scons bel -j4 ``` + +I call this feature of the setup script build words. [See](#build-words). + +Once the build finishes you can find the editor executable inside the `./engine/bin/` folder. + +For convenience there is a provided `editor.sh`, or `editor.bat` for running it from the project's folder. +These will create a copy, so you can even compile while the editor is running. + +Alternatively if you don't want to use build words, you can also just go into the engine folder: + +``` cd engine ``` + +And compile godot as per the [official docs](https://docs.godotengine.org/en/latest/development/compiling/index.html). + +### Build words + +The project's setup script contains support for "build words". These can be used from the root of this project. + +For example to build the editor for windows with 4 threads you can use: + +``` scons bew -j4 ``` + +The first argument must start with b (build), then it needs to be followed by a few abbreviations (the order does not matters) + +The rest of the arguments will be passed directly to godot's scons script. + +#### Editor + +Append `e` to build with `tools=yes` a.k.a. the editor. + +``` scons bew -j4 ``` + +if you omit `e`, the system will build the export template for you. For example: + +``` scons bw -j4 ``` + +This will be the `release_debug` windows export template. + +#### Platform abbreviations + +`l`: linux \ +`w`: windows \ +`a`: android \ +`j`: Javascript \ +`i`: iphone (Not yet finished, use `build_ios.sh`, and `build_ios_release.sh`) \ +Mac OSX: Not yet finished, use `build_osx.sh` + +#### Target abbreviations + +By default the system builds in release_debug. + +Append `d` for debug, or `r` for release. + +``` scons bewd -j4 ``` + +build editor windows debug + +``` scons bwr -j4 ``` + +build windows release (this will build the windows release export template) + +#### Shared modules + +Note: This only works on linux! + +append `s` to the build string. + +Optionally you can also make the build system only build a target module, by appending one of these: + +`E`: Entity Spell System \ +`T`: Texture Packer \ +`V`: Voxelman \ +`W`: World Generator \ +`P`: Procedural Animations + +Example: + +``` scons belsE -j4 ``` + +build editor linux shared (Entity Spell System) with 4 threads + +Note: to easily run the editor you can use the `editor.sh` or `editor.bat` in the root of the project. + +#### Other + +Append `v` to pass the `vsproj=yes` parameter to the build script. This will generate Visual Studio project files. + +#### Postfixes + +There are a few postfixes for the build words. These are more complex options. You have to append them to your build word with an underscore. + +You can use as many as you want. + +For example: + +``` scons bel_slim_latomic -j4 ``` + +##### slim + +With this postfix you can build a slimmed down version of the engine. This disables quite a few unneeded modules. + +``` scons bel_slim -j4 ``` + +##### latomic + +If you get linker errors while building the game/editor about undefined referenced with atomic related functions you can use this postfix. +It will add the ` -latomic ` command line switch to the linker flags. + +I ran into this issue while building on a raspberry pi 4 with the x11 platform. It might be related to the recent reworks to threading. + +``` scons bel_latomic -j4 ``` + +##### strip + +Appends `debug_symbols=no` to the build command, which will strip the resulting binary from debug symbols. + +``` scons bel_strip -j4 ``` + +##### threads + +Appends `threads_enabled=yes` to the build command. Useful for building the editor for html. + +``` scons bej_threads -j4 ``` + +#### Scons cache, and sdk locations + +In order to use scons cache and to tell the build system where some of the required sdks are located you usually +have to use environment variables. Most of the time you might just want to add them globally, +howewer this is sometimes unfeasible (e.g. you don't have administrator access, or you just want to have +multiple sdk versions installed). + +In order to solve this a build config file was added. + +If you want to use the config simply rename the provided `build.config.example` to `build.config`, and customize +the settings inside. + +### Manual Setup + +If you you don't want to use the setup script (or just want to know what it actually does), +this section will explain how to set everything up manually. + +First clone godot. Either my fork (recommended at the moment): + +``` git clone https://github.com/Relintai/godot.git ``` + +or the official 3.x master: + +``` git clone https://github.com/godotengine/godot.git -b 3.x ``` + +go into engine's modules fodler. + +``` cd godot/modules/ ``` + +Now go ahead and get every single required engine module from [here](#the-required-engine-modules). + +``` cd ../../ ``` + +Now if you look at the [HEADS file](https://github.com/Relintai/the_tower/blob/master/HEADS). + +It contains the commit hashes for that particular revision for every module and the engine. + +You need to go through them and checkout the proper commits. + +Now you can go ahead and compile godot normally. + +## Pulling upstream changes + +First pull the changes by calling + +``` git pull orgin master ``` + +Then just run `scons`, to update the modules. + +## Upgrading the modules + +Note: this is how to update the HEADS file. Normally you don't need to do this. + +If you want to update the modules, and the engine to the latest, you can use (`action=update`): + +``` scons a=u ``` + +You can also update different targets: `all`, `engine`, `modules`, `all_addons`, `addons`, `third_party_addons` + +For example to update the engine to the latest: ``` scons a=u target=engine ``` + + diff --git a/voxelman/the_tower_gles3/areas/ExitPortal.tscn b/voxelman/the_tower_gles3/areas/ExitPortal.tscn new file mode 100644 index 0000000..aa48438 --- /dev/null +++ b/voxelman/the_tower_gles3/areas/ExitPortal.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://scripts/exit_portal.gd" type="Script" id=1] +[ext_resource path="res://particles/flake.png" type="Texture" id=2] + +[sub_resource type="ParticlesMaterial" id=1] +emission_shape = 2 +emission_box_extents = Vector3( 0.5, 1, 0.5 ) +gravity = Vector3( 0, 9.8, 0 ) +scale = 0.1 +color = Color( 0.258824, 0.329412, 0.835294, 1 ) + +[sub_resource type="SpatialMaterial" id=2] +flags_transparent = true +vertex_color_use_as_albedo = true +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 2 ) + +[sub_resource type="QuadMesh" id=3] +material = SubResource( 2 ) + +[sub_resource type="BoxShape" id=4] +extents = Vector3( 1, 1.65801, 1 ) + +[node name="ExitPortal" type="Area"] +script = ExtResource( 1 ) + +[node name="Particles" type="Particles" parent="."] +amount = 13 +lifetime = 0.63 +process_material = SubResource( 1 ) +draw_pass_1 = SubResource( 3 ) + +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.67644, 0 ) +shape = SubResource( 4 ) diff --git a/voxelman/the_tower_gles3/default_bus_layout.tres b/voxelman/the_tower_gles3/default_bus_layout.tres new file mode 100644 index 0000000..cdd188b --- /dev/null +++ b/voxelman/the_tower_gles3/default_bus_layout.tres @@ -0,0 +1,18 @@ +[gd_resource type="AudioBusLayout" load_steps=2 format=2] + +[sub_resource type="AudioEffectReverb" id=1] +resource_name = "Reverb" +room_size = 0.13 +damping = 0.09 +wet = 0.13 + +[resource] +bus/0/volume_db = 0.0672607 +bus/1/name = "Footsteps" +bus/1/solo = false +bus/1/mute = false +bus/1/bypass_fx = false +bus/1/volume_db = -4.25003 +bus/1/send = "Master" +bus/1/effect/0/effect = SubResource( 1 ) +bus/1/effect/0/enabled = true diff --git a/voxelman/the_tower_gles3/default_env.tres b/voxelman/the_tower_gles3/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/voxelman/the_tower_gles3/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/voxelman/the_tower_gles3/environments/red_env.tres b/voxelman/the_tower_gles3/environments/red_env.tres new file mode 100644 index 0000000..1908f2f --- /dev/null +++ b/voxelman/the_tower_gles3/environments/red_env.tres @@ -0,0 +1,23 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] +sky_top_color = Color( 0.490196, 0.364706, 0.45098, 1 ) +sky_horizon_color = Color( 0.52549, 0.168627, 0.203922, 1 ) +sky_curve = 0.564901 +ground_bottom_color = Color( 0.329412, 0.156863, 0.2, 1 ) +ground_horizon_color = Color( 0.498039, 0.117647, 0.235294, 1 ) +ground_curve = 0.0828212 +sun_color = Color( 0, 0, 0, 1 ) +sun_latitude = 30.76 +sun_angle_min = 5.24 +sun_curve = 0.237841 + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) +ambient_light_color = Color( 0.772549, 0.772549, 0.772549, 1 ) +fog_enabled = true +ss_reflections_enabled = true +ssao_enabled = true +dof_blur_far_distance = 11.61 +glow_enabled = true diff --git a/voxelman/the_tower_gles3/gi_probes/level1.tres b/voxelman/the_tower_gles3/gi_probes/level1.tres new file mode 100644 index 0000000..1fa1ac3 --- /dev/null +++ b/voxelman/the_tower_gles3/gi_probes/level1.tres @@ -0,0 +1,13 @@ +[gd_resource type="GIProbeData" format=2] + +[resource] +bounds = AABB( -13.3083, -8.74279, -16.0324, 26.6166, 17.4856, 32.0648 ) +cell_size = 0.250506 +to_cell_xform = Transform( 3.99192, 0, 0, 0, 3.99192, 0, 0, 0, 3.99192, 53.1256, 34.9005, 64 ) +dynamic_data = PoolIntArray( 0, 8, 128, 128, 128, 1, 0, 0, 253476880, 0, 319888848, 0, 220676784, 0, 1, 1082096526, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 4 +energy = 3.33 +bias = 1.772 +normal_bias = 0.816 +propagation = 0.41 +interior = true diff --git a/voxelman/the_tower_gles3/gi_probes/level2.tres b/voxelman/the_tower_gles3/gi_probes/level2.tres new file mode 100644 index 0000000..c50dbe5 --- /dev/null +++ b/voxelman/the_tower_gles3/gi_probes/level2.tres @@ -0,0 +1,12 @@ +[gd_resource type="GIProbeData" format=2] + +[resource] +bounds = AABB( -16.5585, -7.39551, -12.7828, 33.117, 14.791, 25.5656 ) +cell_size = 0.258727 +to_cell_xform = Transform( 3.86508, 0, 0, 0, 3.86508, 0, 0, 0, 3.86508, 64, 28.5843, 49.4066 ) +dynamic_data = PoolIntArray( 0, 8, 128, 64, 128, 1, 0, 0, 0, 0, 0, 65536, 0, 0, 87420128, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 8 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 +interior = true diff --git a/voxelman/the_tower_gles3/icon.png b/voxelman/the_tower_gles3/icon.png new file mode 100644 index 0000000..c98fbb6 Binary files /dev/null and b/voxelman/the_tower_gles3/icon.png differ diff --git a/voxelman/the_tower_gles3/icon.png.import b/voxelman/the_tower_gles3/icon.png.import new file mode 100644 index 0000000..9678a81 --- /dev/null +++ b/voxelman/the_tower_gles3/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles3/levels/LICENSE.txt b/voxelman/the_tower_gles3/levels/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/voxelman/the_tower_gles3/levels/Level0.gd b/voxelman/the_tower_gles3/levels/Level0.gd new file mode 100644 index 0000000..48d2791 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level0.gd @@ -0,0 +1,6 @@ +extends VoxelWorldBlocky + + +func _unhandled_key_input(event : InputEventKey) -> void: + if event.scancode == KEY_ENTER: + get_parent().next_level() diff --git a/voxelman/the_tower_gles3/levels/Level0.tscn b/voxelman/the_tower_gles3/levels/Level0.tscn new file mode 100644 index 0000000..4c8795b --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level0.tscn @@ -0,0 +1,382 @@ +[gd_scene load_steps=26 format=2] + +[ext_resource path="res://environments/red_env.tres" type="Environment" id=1] +[ext_resource path="res://levels/Level0.gd" type="Script" id=2] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=3] +[ext_resource path="res://gi_probes/level2.tres" type="GIProbeData" id=4] +[ext_resource path="res://particles/flake.png" type="Texture" id=5] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=6] +[ext_resource path="res://levels/title_font.tres" type="DynamicFont" id=7] +[ext_resource path="res://levels/title_subtext_font.tres" type="DynamicFont" id=8] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 35, 63, 1, 1, 1, 57, 0, 35, 15, 2, 0, 109, 14, 183, 0, 15, 18, 0, 0, 15, 222, 0, 84, 15, 68, 1, 255, 48, 47, 1, 1, 191, 1, 0, 15, 2, 0, 146, 14, 183, 0, 15, 18, 0, 0, 15, 136, 2, 84, 30, 2, 123, 0, 15, 2, 0, 108, 14, 145, 0, 15, 18, 0, 0, 15, 63, 3, 0, 15, 38, 0, 2, 14, 21, 0, 15, 2, 0, 63, 15, 102, 0, 83, 15, 2, 0, 26, 15, 247, 0, 81, 15, 2, 0, 58, 15, 204, 3, 128, 15, 68, 1, 106, 14, 125, 0, 15, 18, 0, 35, 15, 2, 0, 108, 14, 181, 0, 15, 2, 0, 106, 14, 143, 0, 15, 18, 0, 17, 15, 2, 0, 255, 32, 14, 86, 1, 15, 2, 0, 255, 32, 15, 68, 1, 126, 15, 145, 0, 126, 15, 2, 0, 160, 15, 68, 1, 255, 255, 255, 206, 14, 222, 3, 15, 18, 0, 14, 31, 1, 61, 12, 128, 15, 2, 0, 157, 14, 101, 1, 15, 2, 0, 255, 13, 14, 49, 1, 14, 79, 15, 14, 36, 0, 15, 2, 0, 251, 14, 32, 1, 29, 2, 33, 1, 14, 18, 0, 15, 2, 0, 255, 63, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 188, 47, 1, 1, 207, 2, 255, 255, 118, 15, 136, 2, 255, 50, 15, 68, 1, 255, 50, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 170, 15, 248, 10, 255, 50, 15, 68, 1, 255, 31, 14, 49, 1, 14, 76, 17, 15, 36, 0, 0, 15, 96, 12, 250, 14, 32, 1, 29, 2, 32, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 11, 18, 0, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[0,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16 ) +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 31, 1, 14, 19, 255, 49, 15, 68, 1, 255, 50, 15, 2, 0, 255, 27, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=4] +resource_name = "Chunk[-1,0,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, 0 ) +position_x = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 46, 29, 1, 64, 2, 31, 2, 18, 0, 16, 15, 2, 0, 251, 14, 68, 1, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=5] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 29, 1, 12, 19, 14, 18, 0, 15, 2, 0, 255, 14, 29, 2, 33, 1, 15, 68, 1, 255, 32, 14, 2, 0, 15, 68, 1, 255, 11, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=6] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 14, 31, 1, 34, 0, 14, 15, 2, 0, 253, 29, 2, 17, 1, 15, 68, 1, 255, 32, 14, 50, 1, 14, 18, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=7] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 248, 29, 1, 12, 1, 31, 2, 18, 0, 16, 15, 2, 0, 251, 15, 68, 1, 35, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 230, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=8] +resource_name = "Chunk[0,0,0]" +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 67, 31, 1, 86, 1, 255, 49, 15, 68, 1, 255, 50, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=9] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 220, 29, 1, 223, 17, 44, 1, 1, 21, 0, 15, 18, 0, 0, 0, 57, 0, 9, 38, 0, 13, 36, 0, 61, 1, 2, 1, 20, 0, 0, 39, 0, 26, 1, 55, 0, 1, 19, 0, 0, 26, 0, 3, 2, 0, 0, 30, 0, 0, 4, 0, 9, 2, 0, 9, 34, 0, 33, 0, 2, 18, 0, 10, 20, 0, 1, 53, 0, 11, 56, 0, 15, 36, 0, 0, 0, 147, 0, 0, 45, 0, 15, 2, 0, 76, 12, 156, 0, 15, 2, 0, 149, 14, 29, 1, 15, 18, 0, 0, 15, 68, 1, 83, 15, 102, 0, 83, 15, 2, 0, 64, 15, 50, 1, 0, 13, 102, 0, 14, 154, 2, 15, 2, 0, 67, 15, 136, 2, 244, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=10] +resource_name = "Chunk[0,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -32 ) +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=11] +resource_name = "Chunk[-1,-1,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -32 ) +position_x = -1 +position_y = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 135, 31, 1, 135, 20, 255, 255, 42, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=12] +resource_name = "Chunk[-2,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 0, -16 ) +position_x = -2 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 235, 29, 1, 249, 6, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 14, 18, 0, 15, 2, 0, 17, 14, 54, 0, 14, 18, 0, 15, 2, 0, 143, 14, 180, 0, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 53, 15, 90, 0, 71, 15, 2, 0, 71, 14, 180, 0, 15, 18, 0, 35, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 174, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="Gradient" id=13] + +[sub_resource type="GradientTexture" id=14] +gradient = SubResource( 13 ) + +[sub_resource type="ParticlesMaterial" id=15] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 14 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=16] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 5 ) + +[sub_resource type="QuadMesh" id=17] +material = SubResource( 16 ) + +[node name="Level0" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 3 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ) ] +script = ExtResource( 2 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 1 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = ExtResource( 4 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 15 ) +draw_pass_1 = SubResource( 17 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 6 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -21.9693, 3.02528, -9.99266 ) + +[node name="Texts" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="Texts"] +margin_right = 1024.0 +margin_bottom = 600.0 + +[node name="Container" type="MarginContainer" parent="Texts/VBoxContainer"] +margin_right = 1024.0 +margin_bottom = 397.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +size_flags_stretch_ratio = 4.88 + +[node name="Label" type="Label" parent="Texts/VBoxContainer/Container"] +margin_top = 168.0 +margin_right = 1024.0 +margin_bottom = 228.0 +custom_fonts/font = ExtResource( 7 ) +text = "The Tower" +align = 1 +valign = 1 + +[node name="Label2" type="Label" parent="Texts/VBoxContainer"] +margin_top = 401.0 +margin_right = 1024.0 +margin_bottom = 425.0 +custom_fonts/font = ExtResource( 8 ) +text = "Press ENTER to begin" +align = 1 +valign = 1 + +[node name="Control2" type="Control" parent="Texts/VBoxContainer"] +margin_top = 429.0 +margin_right = 1024.0 +margin_bottom = 600.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +size_flags_stretch_ratio = 2.1 + +[node name="Camera" type="Camera" parent="."] +transform = Transform( 0.666715, 0, 0.745313, 0, 1, 0, -0.745313, 0, 0.666715, 0, 6.15975, -5.948 ) diff --git a/voxelman/the_tower_gles3/levels/Level1.gd b/voxelman/the_tower_gles3/levels/Level1.gd new file mode 100644 index 0000000..c995f10 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level1.gd @@ -0,0 +1,2 @@ +extends VoxelWorldBlocky + diff --git a/voxelman/the_tower_gles3/levels/Level1.tscn b/voxelman/the_tower_gles3/levels/Level1.tscn new file mode 100644 index 0000000..f7e7ddd --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level1.tscn @@ -0,0 +1,336 @@ +[gd_scene load_steps=24 format=2] + +[ext_resource path="res://environments/red_env.tres" type="Environment" id=1] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=2] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=3] +[ext_resource path="res://gi_probes/level2.tres" type="GIProbeData" id=4] +[ext_resource path="res://particles/flake.png" type="Texture" id=5] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=6] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 35, 63, 1, 1, 1, 57, 0, 35, 15, 2, 0, 109, 14, 183, 0, 15, 18, 0, 0, 15, 222, 0, 84, 15, 68, 1, 255, 48, 47, 1, 1, 191, 1, 0, 15, 2, 0, 146, 14, 183, 0, 15, 18, 0, 0, 15, 136, 2, 84, 30, 2, 123, 0, 15, 2, 0, 108, 14, 145, 0, 15, 18, 0, 0, 15, 63, 3, 0, 15, 38, 0, 2, 14, 21, 0, 15, 2, 0, 63, 15, 102, 0, 83, 15, 2, 0, 26, 15, 247, 0, 81, 15, 2, 0, 58, 15, 204, 3, 128, 15, 68, 1, 106, 14, 125, 0, 15, 18, 0, 35, 15, 2, 0, 108, 14, 181, 0, 15, 2, 0, 106, 14, 143, 0, 15, 18, 0, 17, 15, 2, 0, 255, 32, 14, 86, 1, 15, 2, 0, 255, 32, 15, 68, 1, 126, 15, 145, 0, 126, 15, 2, 0, 160, 15, 68, 1, 255, 255, 255, 206, 14, 222, 3, 15, 18, 0, 14, 31, 1, 61, 12, 128, 15, 2, 0, 157, 14, 101, 1, 15, 2, 0, 255, 13, 14, 49, 1, 14, 79, 15, 14, 36, 0, 15, 2, 0, 251, 14, 32, 1, 29, 2, 33, 1, 14, 18, 0, 15, 2, 0, 255, 63, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 188, 47, 1, 1, 207, 2, 255, 255, 118, 15, 136, 2, 255, 50, 15, 68, 1, 255, 50, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 170, 15, 248, 10, 255, 50, 15, 68, 1, 255, 31, 14, 49, 1, 14, 76, 17, 15, 36, 0, 0, 15, 96, 12, 250, 14, 32, 1, 29, 2, 32, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 11, 18, 0, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[0,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16 ) +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 31, 1, 14, 19, 255, 49, 15, 68, 1, 255, 50, 15, 2, 0, 255, 27, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=4] +resource_name = "Chunk[-1,0,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, 0 ) +position_x = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 46, 29, 1, 64, 2, 31, 2, 18, 0, 16, 15, 2, 0, 251, 14, 68, 1, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=5] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 29, 1, 12, 19, 14, 18, 0, 15, 2, 0, 255, 14, 29, 2, 33, 1, 15, 68, 1, 255, 32, 14, 2, 0, 15, 68, 1, 255, 11, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=6] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 14, 31, 1, 34, 0, 14, 15, 2, 0, 253, 29, 2, 17, 1, 15, 68, 1, 255, 32, 14, 50, 1, 14, 18, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=7] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 248, 29, 1, 12, 1, 31, 2, 18, 0, 16, 15, 2, 0, 251, 15, 68, 1, 35, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 230, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=8] +resource_name = "Chunk[0,0,0]" +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 67, 31, 1, 86, 1, 255, 49, 15, 68, 1, 255, 50, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=9] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 220, 29, 1, 223, 17, 44, 1, 1, 21, 0, 15, 18, 0, 0, 0, 57, 0, 9, 38, 0, 13, 36, 0, 61, 1, 2, 1, 20, 0, 0, 39, 0, 26, 1, 55, 0, 1, 19, 0, 0, 26, 0, 3, 2, 0, 0, 30, 0, 0, 4, 0, 9, 2, 0, 9, 34, 0, 33, 0, 2, 18, 0, 10, 20, 0, 1, 53, 0, 11, 56, 0, 15, 36, 0, 0, 0, 147, 0, 0, 45, 0, 15, 2, 0, 76, 12, 156, 0, 15, 2, 0, 149, 14, 29, 1, 15, 18, 0, 0, 15, 68, 1, 83, 15, 102, 0, 83, 15, 2, 0, 64, 15, 50, 1, 0, 13, 102, 0, 14, 154, 2, 15, 2, 0, 67, 15, 136, 2, 244, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=10] +resource_name = "Chunk[0,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -32 ) +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=11] +resource_name = "Chunk[-1,-1,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -32 ) +position_x = -1 +position_y = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 135, 31, 1, 135, 20, 255, 255, 42, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=12] +resource_name = "Chunk[-2,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 0, -16 ) +position_x = -2 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 235, 29, 1, 249, 6, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 14, 18, 0, 15, 2, 0, 17, 14, 54, 0, 14, 18, 0, 15, 2, 0, 143, 14, 180, 0, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 53, 15, 90, 0, 71, 15, 2, 0, 71, 14, 180, 0, 15, 18, 0, 35, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 174, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="Gradient" id=13] + +[sub_resource type="GradientTexture" id=14] +gradient = SubResource( 13 ) + +[sub_resource type="ParticlesMaterial" id=15] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 14 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=16] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 5 ) + +[sub_resource type="QuadMesh" id=17] +material = SubResource( 16 ) + +[node name="Level1" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 3 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ) ] +num_lods = 5 +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 1 ) + +[node name="Player" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.852744, 0.165382, 0 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = ExtResource( 4 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 15 ) +draw_pass_1 = SubResource( 17 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 6 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -21.9693, 3.02528, -9.99266 ) diff --git a/voxelman/the_tower_gles3/levels/Level10.gd b/voxelman/the_tower_gles3/levels/Level10.gd new file mode 100644 index 0000000..ae661ab --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level10.gd @@ -0,0 +1,12 @@ +extends VoxelWorldBlocky + +var time : float = 0 + +func _process(delta): + time += delta + + if time > 3: + if get_parent().has_method("next_level"): + get_parent().next_level() + + set_process(false) diff --git a/voxelman/the_tower_gles3/levels/Level10.tscn b/voxelman/the_tower_gles3/levels/Level10.tscn new file mode 100644 index 0000000..2e8ac53 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level10.tscn @@ -0,0 +1,298 @@ +[gd_scene load_steps=21 format=2] + +[ext_resource path="res://levels/title_font.tres" type="DynamicFont" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://levels/Level10.gd" type="Script" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 31, 1, 79, 20, 255, 255, 98, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 193, 31, 1, 213, 0, 52, 14, 72, 0, 14, 18, 0, 15, 2, 0, 197, 15, 234, 0, 35, 14, 54, 0, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2, 31, 1, 6, 16, 255, 49, 14, 68, 1, 31, 1, 19, 0, 0, 15, 105, 1, 255, 12, 14, 49, 1, 15, 2, 0, 255, 31, 15, 117, 2, 0, 15, 2, 0, 255, 31, 15, 135, 2, 53, 14, 72, 0, 14, 18, 0, 15, 2, 0, 197, 15, 234, 0, 35, 14, 54, 0, 15, 18, 0, 15, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=4] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 64, 31, 1, 83, 1, 255, 64, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 30, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=5] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 186, 31, 1, 202, 4, 255, 49, 15, 68, 1, 255, 68, 14, 86, 1, 15, 18, 0, 17, 15, 2, 0, 233, 14, 32, 1, 15, 2, 0, 255, 255, 255, 255, 255, 255, 53, 15, 84, 6, 249, 15, 12, 1, 37, 15, 56, 0, 37, 15, 2, 0, 193, 14, 12, 1, 45, 1, 1, 20, 0, 14, 18, 0, 29, 0, 36, 0, 15, 2, 0, 232, 15, 12, 1, 249, 15, 2, 0, 37, 15, 68, 1, 255, 50, 15, 2, 0, 255, 171, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=6] +resource_name = "Chunk[0,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16 ) +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 72, 29, 1, 86, 6, 15, 18, 0, 0, 13, 19, 0, 14, 18, 0, 15, 37, 0, 0, 31, 0, 37, 0, 0, 13, 110, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 233, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=7] +resource_name = "Chunk[0,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -32 ) +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 50, 29, 1, 55, 15, 14, 18, 0, 15, 2, 0, 255, 14, 29, 2, 33, 1, 13, 68, 1, 28, 1, 18, 0, 28, 1, 18, 0, 12, 16, 0, 15, 2, 0, 220, 15, 68, 1, 16, 15, 2, 0, 15, 12, 101, 1, 15, 2, 0, 220, 14, 255, 0, 14, 18, 0, 15, 2, 0, 14, 15, 51, 0, 32, 15, 2, 0, 255, 255, 255, 56, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=8] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 47, 29, 1, 51, 16, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 255, 255, 107, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="GIProbeData" id=9] +bounds = AABB( -16.5585, -7.39551, -12.7828, 33.117, 14.791, 25.5656 ) +cell_size = 0.258727 +to_cell_xform = Transform( 3.86508, 0, 0, 0, 3.86508, 0, 0, 0, 3.86508, 64, 28.5843, 49.4066 ) +dynamic_data = PoolIntArray( 0, 8, 128, 64, 128, 1, 0, 1140378789, 1058757252, 1025358976, 1061895146, 1069779988, 1057062291, 1062748971, 1043518650, 1070762029, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 8 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 +interior = true + +[sub_resource type="Gradient" id=10] + +[sub_resource type="GradientTexture" id=11] +gradient = SubResource( 10 ) + +[sub_resource type="ParticlesMaterial" id=12] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 11 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=13] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=14] +material = SubResource( 13 ) + +[node name="Level10" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ) ] +script = ExtResource( 5 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = SubResource( 9 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 12 ) +draw_pass_1 = SubResource( 14 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.922967, 6.98507, -18.9305 ) + +[node name="Camera" type="Camera" parent="."] +transform = Transform( 0.689822, -0.472154, 0.548832, 0, 0.758077, 0.652165, -0.723979, -0.449877, 0.522938, 5.55108, 12.3711, -5.69769 ) + +[node name="MarginContainer" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="MarginContainer"] +margin_top = 270.0 +margin_right = 1024.0 +margin_bottom = 330.0 +custom_fonts/font = ExtResource( 1 ) +text = "The End" +align = 1 +valign = 1 diff --git a/voxelman/the_tower_gles3/levels/Level2.tscn b/voxelman/the_tower_gles3/levels/Level2.tscn new file mode 100644 index 0000000..579b4b2 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level2.tscn @@ -0,0 +1,267 @@ +[gd_scene load_steps=19 format=2] + +[ext_resource path="res://levels/Level1.gd" type="Script" id=1] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=2] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=3] +[ext_resource path="res://scripts/Ladder.gd" type="Script" id=4] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=5] +[ext_resource path="res://gi_probes/level1.tres" type="GIProbeData" id=6] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=7] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[-2,1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 16, 0 ) +position_x = -2 +position_y = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 230, 31, 1, 241, 9, 255, 70, 15, 89, 1, 255, 47, 15, 65, 1, 255, 47, 15, 2, 0, 255, 255, 255, 138, 12, 219, 4, 28, 1, 17, 0, 29, 0, 17, 0, 15, 18, 0, 18, 15, 2, 0, 233, 44, 1, 1, 70, 1, 12, 16, 0, 14, 120, 1, 15, 18, 0, 1, 15, 2, 0, 255, 32, 14, 172, 2, 15, 2, 0, 255, 13, 15, 49, 1, 255, 14, 14, 32, 1, 14, 18, 0, 15, 2, 0, 7, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[-2,1,1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 16, 16 ) +position_x = -2 +position_y = 1 +position_z = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 18, 31, 1, 37, 1, 255, 13, 14, 32, 1, 14, 18, 0, 15, 2, 0, 255, 14, 15, 50, 1, 17, 14, 36, 0, 14, 18, 0, 15, 2, 0, 251, 14, 32, 1, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 240, 14, 35, 5, 15, 2, 0, 255, 14, 14, 50, 1, 14, 18, 0, 15, 2, 0, 255, 255, 101, 15, 136, 2, 255, 50, 15, 68, 1, 255, 50, 15, 2, 0, 255, 255, 255, 255, 255, 255, 78, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[-1,1,1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 16, 16 ) +position_x = -1 +position_y = 1 +position_z = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 21, 31, 1, 41, 0, 21, 11, 2, 0, 27, 2, 16, 0, 15, 73, 0, 38, 15, 2, 0, 15, 14, 90, 0, 15, 18, 0, 17, 15, 2, 0, 88, 14, 143, 0, 15, 2, 0, 19, 14, 56, 0, 14, 18, 0, 13, 2, 0, 14, 35, 0, 15, 18, 0, 89, 15, 2, 0, 34, 15, 161, 0, 17, 15, 2, 0, 90, 15, 145, 0, 17, 15, 36, 0, 71, 15, 2, 0, 8, 14, 117, 0, 4, 2, 0, 14, 26, 0, 14, 18, 0, 15, 2, 0, 90, 14, 127, 0, 15, 18, 0, 35, 15, 2, 0, 62, 14, 135, 0, 15, 2, 0, 134, 15, 171, 0, 17, 15, 36, 0, 53, 15, 2, 0, 26, 31, 1, 118, 0, 17, 15, 2, 0, 79, 14, 134, 0, 14, 153, 0, 15, 36, 0, 0, 13, 153, 0, 15, 36, 0, 35, 15, 2, 0, 26, 15, 99, 0, 0, 13, 19, 0, 13, 17, 0, 15, 2, 0, 63, 15, 99, 0, 17, 14, 36, 0, 14, 18, 0, 14, 2, 0, 14, 36, 0, 44, 1, 1, 5, 8, 14, 36, 0, 15, 2, 0, 26, 15, 221, 1, 0, 15, 82, 0, 25, 15, 44, 0, 25, 15, 2, 0, 9, 14, 72, 0, 14, 18, 0, 15, 2, 0, 36, 13, 73, 0, 15, 243, 0, 44, 14, 2, 0, 15, 81, 0, 26, 13, 143, 0, 15, 60, 3, 0, 15, 2, 0, 17, 15, 72, 0, 17, 15, 36, 0, 16, 14, 35, 0, 15, 2, 0, 0, 14, 37, 0, 15, 243, 0, 17, 14, 54, 0, 6, 2, 0, 14, 28, 0, 15, 18, 0, 35, 15, 2, 0, 7, 15, 80, 0, 35, 15, 54, 0, 34, 14, 13, 1, 15, 2, 0, 18, 14, 55, 0, 14, 18, 0, 15, 2, 0, 9, 15, 172, 0, 34, 28, 0, 64, 4, 6, 2, 0, 15, 80, 0, 17, 15, 2, 0, 2, 11, 57, 0, 11, 15, 0, 15, 226, 2, 38, 14, 2, 0, 15, 90, 0, 0, 13, 19, 0, 15, 68, 1, 125, 15, 2, 0, 0, 13, 180, 0, 14, 3, 4, 14, 198, 0, 15, 53, 0, 16, 15, 2, 0, 37, 15, 91, 0, 44, 15, 63, 0, 17, 15, 36, 0, 17, 15, 2, 0, 26, 22, 1, 1, 0, 3, 56, 0, 5, 9, 0, 4, 2, 0, 31, 1, 18, 0, 0, 4, 28, 0, 4, 2, 0, 14, 18, 0, 15, 2, 0, 36, 15, 225, 0, 44, 14, 63, 0, 15, 2, 0, 63, 14, 50, 1, 36, 0, 3, 1, 0, 4, 110, 0, 12, 136, 0, 29, 1, 155, 2, 14, 50, 1, 14, 36, 0, 15, 2, 0, 36, 12, 125, 0, 15, 18, 0, 1, 15, 2, 0, 8, 14, 63, 0, 15, 2, 0, 64, 1, 255, 0, 7, 90, 2, 22, 1, 87, 1, 3, 110, 0, 5, 9, 0, 4, 2, 0, 7, 46, 0, 3, 2, 0, 15, 18, 0, 18, 3, 44, 0, 15, 2, 0, 28, 15, 5, 1, 82, 15, 2, 0, 48, 11, 168, 0, 4, 69, 1, 4, 90, 0, 2, 16, 0, 4, 14, 0, 0, 47, 0, 1, 18, 0, 0, 11, 0, 3, 2, 0, 12, 16, 0, 0, 70, 5, 9, 33, 0, 15, 2, 0, 39, 11, 156, 0, 15, 2, 0, 131, 14, 165, 0, 14, 18, 0, 15, 2, 0, 13, 14, 48, 1, 15, 68, 0, 31, 15, 2, 0, 255, 187, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=4] +resource_name = "Chunk[-1,1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 16, 0 ) +position_x = -1 +position_y = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 32, 31, 1, 42, 10, 255, 46, 15, 65, 1, 255, 47, 15, 2, 0, 164, 15, 248, 1, 251, 15, 14, 1, 35, 14, 54, 0, 14, 18, 0, 15, 2, 0, 180, 15, 217, 0, 16, 15, 35, 0, 16, 15, 36, 0, 18, 15, 2, 0, 106, 14, 161, 0, 14, 18, 0, 15, 2, 0, 18, 29, 1, 56, 0, 13, 17, 0, 15, 36, 0, 17, 15, 35, 0, 0, 47, 1, 2, 129, 0, 18, 11, 2, 0, 14, 126, 0, 15, 2, 0, 70, 14, 107, 0, 15, 18, 0, 0, 13, 19, 0, 15, 234, 0, 0, 13, 233, 0, 13, 53, 0, 15, 72, 0, 19, 13, 55, 0, 13, 17, 0, 61, 0, 1, 0, 109, 0, 15, 2, 0, 124, 14, 180, 0, 15, 2, 0, 72, 13, 100, 2, 15, 158, 1, 0, 15, 127, 0, 35, 15, 199, 0, 87, 15, 106, 0, 17, 15, 36, 0, 17, 15, 2, 0, 1, 13, 45, 2, 15, 73, 0, 37, 15, 2, 0, 15, 14, 90, 0, 15, 18, 0, 17, 15, 2, 0, 88, 14, 143, 0, 15, 2, 0, 19, 14, 56, 0, 14, 18, 0, 13, 2, 0, 14, 35, 0, 15, 18, 0, 89, 15, 2, 0, 24, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=5] +resource_name = "Chunk[-1,2,1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 32, 16 ) +position_x = -1 +position_y = 2 +position_z = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 34, 31, 1, 48, 6, 255, 49, 15, 68, 1, 255, 32, 14, 50, 1, 14, 18, 0, 15, 2, 0, 255, 14, 14, 50, 1, 14, 18, 0, 15, 2, 0, 251, 14, 32, 1, 15, 18, 0, 17, 15, 2, 0, 251, 15, 50, 1, 17, 14, 36, 0, 15, 2, 0, 251, 14, 32, 1, 15, 18, 0, 17, 15, 2, 0, 251, 15, 50, 1, 17, 14, 36, 0, 15, 2, 0, 53, 31, 1, 91, 0, 71, 15, 2, 0, 88, 15, 197, 0, 89, 14, 50, 1, 47, 3, 3, 235, 0, 88, 15, 2, 0, 70, 15, 68, 1, 90, 13, 198, 0, 14, 86, 1, 15, 2, 0, 255, 32, 15, 68, 1, 255, 50, 15, 2, 0, 255, 255, 60, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=6] +resource_name = "Chunk[0,1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 16, 0 ) +position_y = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=7] +resource_name = "Chunk[0,1,1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 16, 16 ) +position_y = 1 +position_z = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 133, 31, 1, 151, 2, 255, 49, 15, 68, 1, 255, 51, 15, 69, 1, 255, 49, 14, 68, 1, 13, 17, 0, 15, 2, 0, 255, 15, 14, 68, 1, 15, 2, 0, 255, 32, 15, 68, 1, 255, 50, 15, 187, 3, 0, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 116, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=8] +resource_name = "Chunk[-1,1,2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 16, 32 ) +position_x = -1 +position_y = 1 +position_z = 2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 26, 29, 1, 46, 0, 14, 18, 0, 15, 2, 0, 13, 29, 1, 51, 0, 13, 17, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 49, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=9] +resource_name = "Chunk[-2,2,1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 32, 16 ) +position_x = -2 +position_y = 2 +position_z = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=10] +resource_name = "Chunk[0,2,1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 32, 16 ) +position_y = 2 +position_z = 1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 3 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 29, 1, 50, 10, 15, 18, 0, 17, 15, 2, 0, 251, 29, 2, 15, 1, 14, 18, 0, 14, 86, 1, 15, 2, 0, 251, 14, 50, 1, 14, 18, 0, 15, 68, 1, 255, 14, 14, 32, 1, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 132, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="BoxShape" id=11] +extents = Vector3( 0.470313, 4.46225, 0.754098 ) + +[node name="Level2" type="VoxelWorldBlocky"] +editable = true +library = ExtResource( 3 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ) ] +script = ExtResource( 1 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 1, 0, 0, 0, 0.238161, 0.971226, 0, -0.971226, 0.238161, 0, 14.9531, 0 ) +light_color = Color( 0.298039, 0.627451, 0.784314, 1 ) +light_energy = 0.19 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 1, 0, 0, 0, -0.498533, 0.866871, 0, -0.866871, -0.498533, 0, 14.9531, -0.0236439 ) +light_color = Color( 0.894118, 0.901961, 0.905882, 1 ) +light_energy = 0.19 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16.3737, 22.2862, 17.3319 ) +light_color = Color( 0.545098, 0.803922, 0.403922, 1 ) +shadow_enabled = true + +[node name="Player" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.12439, 25.2891, 17.5787 ) + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 5 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -9.24192, 27.1703, 21.894 ) +extents = Vector3( 13.3083, 8.74279, 16.0324 ) +energy = 3.33 +propagation = 0.41 +bias = 1.772 +normal_bias = 0.816 +interior = true +compress = true +data = ExtResource( 6 ) + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.96332, 24.167, 17.7326 ) +light_color = Color( 0.627451, 0.0862745, 0.776471, 1 ) +light_energy = 1.65 +shadow_enabled = true + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -13.3812, 25.2187, 20.8924 ) +light_energy = 0.96 +light_indirect_energy = 5.3 +light_negative = true +light_specular = 0.98 +shadow_enabled = true +omni_range = 12.7 +omni_attenuation = 2.82842 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.639428, 24.7962, 15.2102 ) +light_color = Color( 0.517647, 0.623529, 0.180392, 1 ) +shadow_enabled = true + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11.1076, 29.5305, 27.24 ) +light_color = Color( 0.815686, 0.831373, 0.764706, 1 ) +shadow_enabled = true +omni_range = 8.8008 + +[node name="ExitPortal" parent="." instance=ExtResource( 7 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.95379, 32.0067, 25.0291 ) + +[node name="Ladder" type="Area" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -12.039, 25.5516, 28.331 ) +script = ExtResource( 4 ) + +[node name="CollisionShape" type="CollisionShape" parent="Ladder"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.519846, 2.90384, 0.339609 ) +shape = SubResource( 11 ) diff --git a/voxelman/the_tower_gles3/levels/Level3.tscn b/voxelman/the_tower_gles3/levels/Level3.tscn new file mode 100644 index 0000000..4e028bc --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level3.tscn @@ -0,0 +1,270 @@ +[gd_scene load_steps=20 format=2] + +[ext_resource path="res://gi_probes/level2.tres" type="GIProbeData" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 68, 31, 1, 76, 12, 255, 49, 15, 68, 1, 255, 68, 14, 86, 1, 13, 18, 0, 29, 1, 18, 0, 15, 2, 0, 255, 32, 15, 67, 1, 255, 49, 15, 68, 1, 255, 255, 119, 15, 15, 5, 255, 68, 14, 221, 3, 14, 18, 0, 15, 2, 0, 251, 14, 32, 1, 13, 18, 0, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 12, 29, 1, 32, 0, 15, 18, 0, 17, 15, 2, 0, 233, 15, 32, 1, 17, 14, 36, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 61, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 9, 29, 1, 28, 1, 14, 18, 0, 15, 2, 0, 255, 14, 14, 50, 1, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=4] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 162, 31, 1, 177, 5, 255, 49, 15, 68, 1, 255, 255, 255, 188, 15, 2, 0, 255, 255, 255, 188, 15, 152, 7, 255, 255, 80, 14, 97, 2, 15, 18, 0, 0, 46, 1, 1, 21, 0, 15, 2, 0, 194, 14, 231, 0, 15, 18, 0, 35, 15, 2, 0, 233, 15, 50, 1, 17, 15, 2, 0, 215, 15, 14, 1, 17, 15, 36, 0, 17, 15, 2, 0, 251, 15, 50, 1, 255, 13, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=5] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 187, 31, 1, 207, 0, 187, 15, 2, 0, 42, 13, 12, 1, 61, 1, 1, 1, 20, 0, 31, 0, 18, 0, 17, 15, 2, 0, 248, 14, 47, 1, 15, 2, 0, 255, 255, 255, 255, 255, 255, 105, 15, 202, 7, 0, 15, 2, 0, 255, 31, 15, 68, 1, 255, 46, 0, 12, 9, 0, 4, 0, 15, 2, 0, 255, 42, 15, 64, 1, 255, 46, 0, 2, 0, 14, 68, 1, 15, 18, 0, 35, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 171, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=6] +resource_name = "Chunk[0,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16 ) +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 127, 47, 1, 1, 147, 1, 255, 127, 15, 2, 0, 255, 255, 40, 14, 203, 3, 11, 18, 0, 17, 1, 3, 0, 8, 2, 0, 11, 33, 0, 13, 16, 0, 15, 2, 0, 255, 0, 14, 34, 1, 12, 18, 0, 31, 1, 84, 5, 255, 49, 12, 84, 1, 15, 2, 0, 255, 34, 15, 68, 1, 255, 50, 15, 2, 0, 255, 255, 255, 188, 15, 16, 5, 255, 50, 15, 68, 1, 255, 49, 15, 30, 10, 255, 49, 15, 2, 0, 255, 255, 255, 255, 109, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=7] +resource_name = "Chunk[0,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -32 ) +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 47, 1, 1, 211, 17, 32, 15, 53, 0, 34, 15, 2, 0, 255, 255, 255, 134, 15, 203, 3, 222, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=8] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 29, 1, 255, 15, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 16, 31, 1, 54, 0, 34, 15, 2, 0, 144, 14, 216, 0, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 15, 2, 0, 231, 13, 12, 1, 47, 1, 1, 60, 3, 0, 13, 38, 0, 15, 18, 0, 0, 15, 2, 0, 75, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="Gradient" id=9] + +[sub_resource type="GradientTexture" id=10] +gradient = SubResource( 9 ) + +[sub_resource type="ParticlesMaterial" id=11] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 10 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=12] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=13] +material = SubResource( 12 ) + +[node name="Level3" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ) ] +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.852744, -0.947732, 0 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = ExtResource( 1 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 11 ) +draw_pass_1 = SubResource( 13 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.00102, 9.20603, -19.3076 ) diff --git a/voxelman/the_tower_gles3/levels/Level4.tscn b/voxelman/the_tower_gles3/levels/Level4.tscn new file mode 100644 index 0000000..9883095 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level4.tscn @@ -0,0 +1,284 @@ +[gd_scene load_steps=20 format=2] + +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 195, 31, 1, 198, 17, 255, 49, 15, 68, 1, 255, 255, 119, 15, 2, 0, 255, 31, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 9, 44, 1, 1, 29, 1, 13, 17, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 134, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 212, 31, 1, 232, 0, 212, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 231, 15, 219, 8, 255, 50, 15, 68, 1, 255, 255, 255, 255, 255, 1, 29, 1, 16, 5, 13, 17, 0, 15, 2, 0, 255, 15, 15, 50, 1, 255, 32, 14, 2, 0, 15, 68, 1, 17, 15, 172, 2, 17, 15, 72, 0, 17, 15, 2, 0, 255, 14, 15, 68, 1, 255, 32, 15, 154, 2, 17, 15, 2, 0, 255, 49, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=4] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=5] +resource_name = "Chunk[-1,-1,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -32 ) +position_x = -1 +position_y = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 84, 29, 1, 85, 19, 15, 18, 0, 52, 29, 1, 72, 0, 15, 18, 0, 0, 15, 125, 0, 16, 15, 2, 0, 255, 32, 13, 121, 1, 15, 2, 0, 255, 120, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=6] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 43, 1, 1, 1, 19, 15, 17, 0, 15, 15, 35, 0, 34, 14, 53, 0, 15, 18, 0, 1, 11, 140, 0, 15, 35, 0, 1, 12, 176, 0, 14, 53, 0, 15, 18, 0, 0, 15, 2, 0, 255, 32, 13, 103, 1, 15, 2, 0, 255, 136, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=7] +resource_name = "Chunk[-2,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 0, -32 ) +position_x = -2 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 183, 58, 1, 1, 1, 186, 19, 15, 17, 0, 17, 10, 50, 0, 43, 0, 0, 67, 0, 0, 69, 0, 0, 6, 0, 8, 2, 0, 13, 18, 0, 13, 17, 0, 15, 2, 0, 168, 15, 204, 0, 185, 15, 2, 0, 48, 13, 15, 2, 14, 33, 2, 15, 18, 0, 18, 15, 2, 0, 92, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=8] +resource_name = "Chunk[-2,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 0, -16 ) +position_x = -2 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 169, 47, 1, 1, 190, 0, 169, 15, 2, 0, 62, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 224, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="GIProbeData" id=9] +bounds = AABB( -16.5585, -7.39551, -12.7828, 33.117, 14.791, 25.5656 ) +cell_size = 0.258727 +to_cell_xform = Transform( 3.86508, 0, 0, 0, 3.86508, 0, 0, 0, 3.86508, 64, 28.5843, 49.4066 ) +dynamic_data = PoolIntArray( 0, 8, 128, 64, 128, 1, 0, 1120403456, -1097435647, 0, 1064612430, 0, 0, 1057843183, 1062561503, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 8 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 +interior = true + +[sub_resource type="Gradient" id=10] + +[sub_resource type="GradientTexture" id=11] +gradient = SubResource( 10 ) + +[sub_resource type="ParticlesMaterial" id=12] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 11 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=13] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=14] +material = SubResource( 13 ) + +[node name="Level4" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ) ] +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.379907, 0.165382, -0.480157 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11.9561, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = SubResource( 9 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 12 ) +draw_pass_1 = SubResource( 14 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -23.7753, 10.3203, -13.9228 ) diff --git a/voxelman/the_tower_gles3/levels/Level5.tscn b/voxelman/the_tower_gles3/levels/Level5.tscn new file mode 100644 index 0000000..a75a743 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level5.tscn @@ -0,0 +1,317 @@ +[gd_scene load_steps=22 format=2] + +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 157, 31, 1, 177, 0, 157, 15, 2, 0, 56, 15, 252, 0, 90, 14, 109, 0, 14, 18, 0, 15, 2, 0, 160, 15, 197, 0, 178, 15, 2, 0, 38, 14, 254, 0, 14, 18, 0, 15, 2, 0, 15, 15, 52, 0, 33, 15, 2, 0, 255, 255, 231, 14, 44, 3, 14, 18, 0, 15, 2, 0, 255, 255, 101, 15, 136, 2, 255, 255, 119, 13, 2, 0, 31, 1, 154, 2, 255, 48, 15, 67, 1, 255, 255, 117, 31, 0, 201, 3, 255, 48, 15, 2, 0, 255, 255, 255, 255, 241, 14, 66, 6, 13, 18, 0, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 63, 29, 1, 82, 1, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 61, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 78, 29, 1, 96, 2, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=4] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 107, 31, 1, 116, 11, 255, 48, 31, 1, 68, 1, 255, 48, 15, 67, 1, 255, 49, 31, 0, 134, 2, 255, 48, 15, 2, 0, 255, 255, 255, 255, 255, 22, 14, 102, 6, 14, 18, 0, 15, 2, 0, 232, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=5] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 247, 29, 1, 10, 2, 14, 18, 0, 15, 2, 0, 255, 141, 14, 177, 1, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 62, 29, 1, 115, 3, 13, 17, 0, 15, 2, 0, 255, 255, 102, 15, 136, 2, 255, 255, 119, 13, 2, 0, 14, 51, 5, 15, 2, 0, 255, 32, 15, 221, 3, 255, 88, 15, 106, 1, 255, 50, 15, 68, 1, 255, 255, 255, 188, 15, 2, 0, 255, 255, 112, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=6] +resource_name = "Chunk[0,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16 ) +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 92, 31, 1, 101, 11, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 85, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=7] +resource_name = "Chunk[-1,-1,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -32 ) +position_x = -1 +position_y = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 31, 1, 241, 20, 232, 15, 252, 0, 90, 14, 109, 0, 14, 18, 0, 15, 2, 0, 50, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=8] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=9] +resource_name = "Chunk[-2,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 0, -16 ) +position_x = -2 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 203, 44, 1, 1, 220, 4, 13, 17, 0, 15, 18, 0, 0, 15, 2, 0, 255, 255, 255, 255, 204, 15, 237, 4, 255, 255, 255, 255, 222, 15, 2, 0, 255, 49, 14, 48, 6, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 255, 255, 130, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=10] +resource_name = "Chunk[-2,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, -16, -16 ) +position_x = -2 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 219, 29, 1, 235, 4, 14, 18, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 178, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="GIProbeData" id=11] +bounds = AABB( -16.5585, -7.39551, -12.7828, 33.117, 14.791, 25.5656 ) +cell_size = 0.258727 +to_cell_xform = Transform( 3.86508, 0, 0, 0, 3.86508, 0, 0, 0, 3.86508, 64, 28.5843, 49.4066 ) +dynamic_data = PoolIntArray( 0, 8, 128, 64, 128, 1, 0, 21, 23, 22, 22, 24, 23, 23, 25, 24, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 8 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 +interior = true + +[sub_resource type="Gradient" id=12] + +[sub_resource type="GradientTexture" id=13] +gradient = SubResource( 12 ) + +[sub_resource type="ParticlesMaterial" id=14] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 13 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=15] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=16] +material = SubResource( 15 ) + +[node name="Level5" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ) ] +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.852744, -0.91547, 0.534943 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = SubResource( 11 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 14 ) +draw_pass_1 = SubResource( 16 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -18.0323, 2.06599, -2.96928 ) diff --git a/voxelman/the_tower_gles3/levels/Level6.tscn b/voxelman/the_tower_gles3/levels/Level6.tscn new file mode 100644 index 0000000..9e97baf --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level6.tscn @@ -0,0 +1,264 @@ +[gd_scene load_steps=19 format=2] + +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="VoxelChunkBlocky" id=14] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 80, 31, 1, 80, 20, 255, 255, 97, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=15] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 128, 29, 1, 148, 0, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 251, 14, 68, 1, 15, 2, 0, 255, 32, 15, 68, 1, 195, 14, 214, 0, 14, 18, 0, 15, 2, 0, 35, 14, 72, 0, 46, 1, 1, 20, 0, 15, 2, 0, 177, 15, 214, 0, 195, 15, 2, 0, 90, 15, 26, 2, 196, 15, 2, 0, 89, 15, 67, 1, 255, 49, 15, 202, 3, 255, 50, 15, 68, 1, 255, 51, 15, 2, 0, 255, 255, 175, 15, 72, 5, 255, 50, 15, 2, 0, 255, 121, 13, 91, 9, 13, 17, 0, 15, 246, 6, 36, 14, 40, 3, 14, 18, 0, 15, 2, 0, 255, 63, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=16] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 194, 29, 1, 214, 0, 14, 18, 0, 15, 2, 0, 17, 14, 54, 0, 14, 18, 0, 15, 2, 0, 255, 14, 14, 50, 1, 14, 18, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=17] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 93, 31, 1, 103, 10, 255, 48, 31, 1, 68, 1, 255, 50, 15, 135, 2, 255, 48, 15, 68, 1, 255, 51, 15, 2, 0, 255, 255, 255, 255, 255, 129, 13, 90, 9, 14, 108, 9, 13, 35, 0, 15, 2, 0, 18, 14, 54, 0, 14, 18, 0, 15, 2, 0, 255, 14, 14, 50, 1, 11, 18, 0, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=18] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 65, 31, 1, 84, 1, 255, 65, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 28, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=19] +resource_name = "Chunk[-1,0,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, 0 ) +position_x = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 161, 44, 1, 1, 182, 0, 13, 17, 0, 15, 2, 0, 255, 104, 14, 139, 1, 14, 18, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=7] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 212, 29, 1, 212, 20, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 80, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="GIProbeData" id=8] +bounds = AABB( -16.5585, -7.39551, -12.7828, 33.117, 14.791, 25.5656 ) +cell_size = 0.258727 +to_cell_xform = Transform( 3.86508, 0, 0, 0, 3.86508, 0, 0, 0, 3.86508, 64, 28.5843, 49.4066 ) +dynamic_data = PoolIntArray( 0, 8, 128, 64, 128, 1, 0, 1120403456, -1091222646, 0, 1063303008, 0, 0, 1059679456, 1061153291, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 8 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 +interior = true + +[sub_resource type="Gradient" id=9] + +[sub_resource type="GradientTexture" id=10] +gradient = SubResource( 9 ) + +[sub_resource type="ParticlesMaterial" id=11] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 10 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=12] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=13] +material = SubResource( 12 ) + +[node name="Level6" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +chunks = [ SubResource( 14 ), SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ), SubResource( 19 ), SubResource( 7 ) ] +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.995627, 1.18497, 0.0195603 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = SubResource( 8 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 11 ) +draw_pass_1 = SubResource( 13 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -6.98108, 4.06104, -14.9795 ) diff --git a/voxelman/the_tower_gles3/levels/Level7.tscn b/voxelman/the_tower_gles3/levels/Level7.tscn new file mode 100644 index 0000000..ca1dea5 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level7.tscn @@ -0,0 +1,248 @@ +[gd_scene load_steps=18 format=2] + +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="VoxelChunkBlocky" id=13] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 173, 47, 1, 1, 181, 13, 255, 48, 15, 68, 1, 255, 49, 31, 1, 68, 1, 255, 51, 15, 203, 3, 255, 49, 15, 67, 1, 255, 48, 15, 68, 1, 255, 33, 14, 132, 7, 15, 18, 0, 35, 15, 2, 0, 255, 32, 12, 104, 1, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=14] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 64, 31, 1, 83, 1, 255, 64, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 30, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=15] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 229, 29, 1, 249, 0, 15, 18, 0, 35, 15, 2, 0, 255, 32, 14, 104, 1, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=16] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 31, 1, 79, 20, 255, 255, 98, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=17] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 38, 31, 1, 58, 0, 34, 14, 54, 0, 29, 2, 72, 0, 14, 18, 0, 14, 54, 0, 15, 2, 0, 179, 14, 216, 0, 15, 18, 0, 89, 15, 2, 0, 179, 14, 50, 1, 15, 2, 0, 255, 32, 15, 68, 1, 255, 255, 137, 14, 154, 2, 15, 18, 0, 17, 15, 2, 0, 255, 32, 14, 86, 1, 15, 2, 0, 255, 255, 255, 255, 237, 29, 1, 15, 5, 13, 17, 0, 15, 18, 0, 0, 15, 2, 0, 35, 14, 72, 0, 12, 18, 0, 30, 1, 143, 0, 15, 2, 0, 255, 31, 15, 67, 1, 255, 49, 15, 68, 1, 255, 52, 15, 186, 3, 255, 31, 15, 2, 0, 255, 255, 255, 255, 18, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=18] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 38, 29, 1, 40, 18, 15, 18, 0, 35, 15, 2, 0, 179, 14, 252, 0, 15, 2, 0, 17, 14, 54, 0, 29, 2, 55, 0, 14, 18, 0, 14, 54, 0, 15, 2, 0, 179, 15, 216, 0, 35, 14, 54, 0, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 179, 14, 216, 0, 15, 18, 0, 89, 15, 2, 0, 116, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="GIProbeData" id=7] +bounds = AABB( -16.5585, -7.39551, -12.7828, 33.117, 14.791, 25.5656 ) +cell_size = 0.258727 +to_cell_xform = Transform( 3.86508, 0, 0, 0, 3.86508, 0, 0, 0, 3.86508, 64, 28.5843, 49.4066 ) +dynamic_data = PoolIntArray( 0, 8, 128, 64, 128, 1, 0, 1120141312, 0, 1119617024, 649100670, 1120141312, 0, 1119617024, -1065353216, 1119617024, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 8 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 +interior = true + +[sub_resource type="Gradient" id=8] + +[sub_resource type="GradientTexture" id=9] +gradient = SubResource( 8 ) + +[sub_resource type="ParticlesMaterial" id=10] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 9 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=11] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=12] +material = SubResource( 11 ) + +[node name="Level7" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +chunks = [ SubResource( 13 ), SubResource( 14 ), SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ) ] +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.41305, 0.165382, 0 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = SubResource( 7 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 10 ) +draw_pass_1 = SubResource( 12 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.96747, 4.02385, -16.9428 ) diff --git a/voxelman/the_tower_gles3/levels/Level8.tscn b/voxelman/the_tower_gles3/levels/Level8.tscn new file mode 100644 index 0000000..d205eed --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level8.tscn @@ -0,0 +1,264 @@ +[gd_scene load_steps=19 format=2] + +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 75, 29, 1, 85, 10, 15, 18, 0, 53, 15, 2, 0, 35, 15, 126, 0, 17, 15, 2, 0, 125, 14, 180, 0, 15, 2, 0, 255, 255, 11, 15, 46, 2, 255, 49, 31, 1, 68, 1, 255, 50, 15, 164, 4, 255, 49, 15, 135, 2, 255, 49, 15, 136, 2, 255, 255, 138, 15, 222, 3, 255, 32, 14, 50, 1, 11, 18, 0, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[-1,0,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, 0 ) +position_x = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 64, 29, 1, 82, 2, 14, 18, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 11, 29, 1, 30, 1, 14, 18, 0, 15, 2, 0, 255, 14, 14, 50, 1, 14, 18, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=14] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 65, 31, 1, 84, 1, 255, 65, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 28, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=15] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 80, 31, 1, 80, 20, 255, 255, 97, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=16] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 59, 29, 1, 69, 10, 15, 18, 0, 53, 15, 2, 0, 35, 15, 126, 0, 17, 15, 2, 0, 36, 30, 1, 92, 0, 15, 2, 0, 51, 15, 89, 0, 70, 15, 2, 0, 127, 15, 235, 0, 71, 15, 157, 1, 69, 15, 2, 0, 126, 15, 67, 1, 71, 15, 2, 0, 214, 15, 67, 1, 255, 49, 15, 112, 3, 215, 15, 2, 0, 72, 15, 68, 1, 37, 14, 56, 0, 15, 18, 0, 17, 15, 2, 0, 195, 14, 250, 0, 15, 2, 0, 19, 14, 56, 0, 14, 18, 0, 15, 2, 0, 213, 15, 250, 0, 231, 15, 2, 0, 55, 14, 68, 1, 14, 18, 0, 15, 2, 0, 255, 63, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=17] +resource_name = "Chunk[-2,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -32, 0, -16 ) +position_x = -2 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 243, 29, 1, 248, 15, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 18, 0, 35, 15, 2, 0, 179, 15, 252, 0, 35, 14, 54, 0, 14, 2, 0, 14, 36, 0, 14, 18, 0, 15, 2, 0, 255, 255, 112, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="GIProbeData" id=18] +bounds = AABB( -16.5585, -7.39551, -12.7828, 33.117, 14.791, 25.5656 ) +cell_size = 0.258727 +to_cell_xform = Transform( 3.86508, 0, 0, 0, 3.86508, 0, 0, 0, 3.86508, 64, 28.5843, 49.4066 ) +dynamic_data = PoolIntArray( 0, 8, 128, 64, 128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 8 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 +interior = true + +[sub_resource type="Gradient" id=9] + +[sub_resource type="GradientTexture" id=10] +gradient = SubResource( 9 ) + +[sub_resource type="ParticlesMaterial" id=11] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 10 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=12] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=13] +material = SubResource( 12 ) + +[node name="Level8" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 14 ), SubResource( 15 ), SubResource( 16 ), SubResource( 17 ) ] +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.852744, 0.758311, 0 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = SubResource( 18 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 11 ) +draw_pass_1 = SubResource( 13 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -19.9552, 2.02718, -3.01009 ) diff --git a/voxelman/the_tower_gles3/levels/Level9.tscn b/voxelman/the_tower_gles3/levels/Level9.tscn new file mode 100644 index 0000000..0625bf8 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/Level9.tscn @@ -0,0 +1,280 @@ +[gd_scene load_steps=20 format=2] + +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="VoxelChunkBlocky" id=1] +resource_name = "Chunk[0,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, -16 ) +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 31, 1, 79, 20, 255, 255, 98, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=2] +resource_name = "Chunk[-1,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, 0 ) +position_x = -1 +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 193, 31, 1, 213, 0, 52, 14, 72, 0, 14, 18, 0, 15, 2, 0, 197, 15, 234, 0, 35, 14, 54, 0, 15, 18, 0, 17, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=3] +resource_name = "Chunk[-1,-1,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -16, -16 ) +position_x = -1 +position_y = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2, 31, 1, 6, 16, 255, 49, 14, 68, 1, 31, 1, 19, 0, 0, 15, 105, 1, 255, 12, 14, 49, 1, 15, 2, 0, 255, 31, 15, 117, 2, 0, 15, 2, 0, 255, 31, 15, 135, 2, 53, 14, 72, 0, 14, 18, 0, 15, 2, 0, 197, 15, 234, 0, 35, 14, 54, 0, 15, 18, 0, 15, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=4] +resource_name = "Chunk[0,-1,0]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -16, 0 ) +position_y = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 64, 31, 1, 83, 1, 255, 64, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 30, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=15] +resource_name = "Chunk[-1,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -16 ) +position_x = -1 +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 186, 31, 1, 202, 4, 255, 49, 15, 68, 1, 255, 68, 14, 86, 1, 15, 18, 0, 17, 15, 2, 0, 233, 14, 32, 1, 15, 2, 0, 255, 255, 255, 255, 255, 255, 53, 15, 84, 6, 249, 15, 12, 1, 37, 15, 56, 0, 37, 15, 2, 0, 193, 14, 12, 1, 45, 1, 1, 20, 0, 14, 18, 0, 29, 0, 36, 0, 15, 2, 0, 232, 15, 12, 1, 249, 15, 2, 0, 37, 15, 68, 1, 255, 50, 15, 2, 0, 255, 171, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=16] +resource_name = "Chunk[0,0,-1]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16 ) +position_z = -1 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 72, 29, 1, 86, 6, 15, 18, 0, 0, 13, 19, 0, 14, 18, 0, 15, 37, 0, 0, 31, 0, 37, 0, 0, 13, 110, 0, 15, 2, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 233, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=17] +resource_name = "Chunk[0,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -32 ) +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 50, 29, 1, 55, 15, 14, 18, 0, 15, 2, 0, 255, 14, 29, 2, 33, 1, 13, 68, 1, 28, 1, 18, 0, 28, 1, 18, 0, 12, 16, 0, 15, 2, 0, 220, 15, 68, 1, 16, 15, 2, 0, 15, 12, 101, 1, 15, 2, 0, 220, 14, 255, 0, 14, 18, 0, 15, 2, 0, 14, 15, 51, 0, 32, 15, 2, 0, 255, 255, 255, 56, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="VoxelChunkBlocky" id=18] +resource_name = "Chunk[-1,0,-2]" +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16, 0, -32 ) +position_x = -1 +position_z = -2 +size_x = 16 +size_y = 16 +size_z = 16 +data_size_x = 18 +data_size_y = 18 +data_size_z = 18 +margin_start = 1 +margin_end = 1 +library = ExtResource( 4 ) +channel_count = 1 +data_channel = PoolByteArray( 31, 0, 1, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 47, 29, 1, 51, 16, 15, 18, 0, 35, 15, 2, 0, 233, 14, 50, 1, 29, 2, 15, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 14, 50, 1, 14, 18, 0, 14, 54, 0, 15, 2, 0, 233, 14, 14, 1, 15, 18, 0, 35, 15, 2, 0, 255, 255, 107, 80, 0, 0, 0, 0, 0 ) + +[sub_resource type="GIProbeData" id=19] +bounds = AABB( -16.5585, -7.39551, -12.7828, 33.117, 14.791, 25.5656 ) +cell_size = 0.258727 +to_cell_xform = Transform( 3.86508, 0, 0, 0, 3.86508, 0, 0, 0, 3.86508, 64, 28.5843, 49.4066 ) +dynamic_data = PoolIntArray( 0, 8, 128, 64, 128, 1, 0, 1120403456, -1091222646, 0, 1063303008, 0, 0, 1059679456, 1061153291, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 8355711, 0 ) +dynamic_range = 8 +bias = 1.5 +normal_bias = 0.0 +propagation = 0.7 +interior = true + +[sub_resource type="Gradient" id=10] + +[sub_resource type="GradientTexture" id=11] +gradient = SubResource( 10 ) + +[sub_resource type="ParticlesMaterial" id=12] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 11 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=13] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=14] +material = SubResource( 13 ) + +[node name="Level9" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +chunks = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ) ] +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.852744, 0.290306, 0.122863 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true +data = SubResource( 19 ) + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 12 ) +draw_pass_1 = SubResource( 14 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.922967, 6.98507, -18.9305 ) diff --git a/voxelman/the_tower_gles3/levels/LevelKit.tscn b/voxelman/the_tower_gles3/levels/LevelKit.tscn new file mode 100644 index 0000000..1cf433c --- /dev/null +++ b/voxelman/the_tower_gles3/levels/LevelKit.tscn @@ -0,0 +1,133 @@ +[gd_scene load_steps=11 format=2] + +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://environments/red_env.tres" type="Environment" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] +[ext_resource path="res://particles/flake.png" type="Texture" id=6] + +[sub_resource type="Gradient" id=1] + +[sub_resource type="GradientTexture" id=2] +gradient = SubResource( 1 ) + +[sub_resource type="ParticlesMaterial" id=3] +emission_shape = 2 +emission_box_extents = Vector3( 70, 70, 70 ) +gravity = Vector3( 0, -0.4, 0 ) +initial_velocity_random = 0.15 +angular_velocity = 16.55 +angular_velocity_random = 0.51 +radial_accel = -0.05 +radial_accel_random = 0.37 +scale = 0.4 +color_ramp = SubResource( 2 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 + +[sub_resource type="SpatialMaterial" id=4] +flags_transparent = true +vertex_color_use_as_albedo = true +params_specular_mode = 4 +params_billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +albedo_texture = ExtResource( 6 ) + +[sub_resource type="QuadMesh" id=5] +material = SubResource( 4 ) + +[node name="LevelKit" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource( 3 ) + +[node name="Player" parent="." instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.852744, 0.165382, 0 ) + +[node name="GIProbe" type="GIProbe" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53486, 2.91956, -10.1021 ) +extents = Vector3( 16.5585, 7.39551, 12.7828 ) +dynamic_range = 8 +interior = true + +[node name="DirectionalLight" type="DirectionalLight" parent="."] +transform = Transform( 0.969817, 0.22762, -0.0874344, 0, 0.35858, 0.933499, 0.243835, -0.905323, 0.347757, 0, 5.5679, -6.05193 ) +light_color = Color( 0.47451, 0.352941, 0.607843, 1 ) +light_energy = 0.31 +shadow_enabled = true + +[node name="DirectionalLight2" type="DirectionalLight" parent="."] +transform = Transform( 0.902848, -0.382056, -0.197228, 0, -0.458712, 0.888585, -0.42996, -0.802257, -0.414147, 0, 5.5679, -6.94149 ) +light_color = Color( 0.682353, 0.145098, 0.145098, 1 ) +light_energy = 0.17 +shadow_enabled = true + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.33566, 8.78919, -13.4252 ) +light_color = Color( 0.894118, 0.894118, 0.894118, 1 ) +light_energy = 1.17 +light_negative = true +shadow_enabled = true +omni_range = 7.3664 +omni_attenuation = 2.0 +omni_shadow_mode = 0 + +[node name="OmniLight2" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.18059, 1.65957, -15.6395 ) +light_color = Color( 0.141176, 0.427451, 0.552941, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight3" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -17.2802, 1.65957, -7.3639 ) +light_color = Color( 0.462745, 0.0980392, 0.380392, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 1.1487 + +[node name="OmniLight4" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.53726, 4.41136, -7.73945 ) +light_color = Color( 0.164706, 0.054902, 0.690196, 1 ) +light_energy = 2.55 +light_indirect_energy = 5.47 +light_specular = 0.61 +omni_range = 8.88538 +omni_attenuation = 0.406128 + +[node name="OmniLight5" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.674599, 2.49094, 1.27345 ) +light_color = Color( 0.372549, 0.572549, 0.705882, 1 ) +light_energy = 0.83 +light_indirect_energy = 5.47 +light_negative = true +light_specular = 0.61 +omni_range = 7.6254 +omni_attenuation = 0.70711 + +[node name="Particles" type="Particles" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1743, 5.65334, -9.91923 ) +amount = 50 +lifetime = 8.41 +speed_scale = 4.44 +randomness = 0.38 +visibility_aabb = AABB( -61.9632, -36.4177, -64.4469, 123.926, 72.8355, 128.894 ) +process_material = SubResource( 3 ) +draw_pass_1 = SubResource( 5 ) + +[node name="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -21.9693, 3.02528, -9.99266 ) diff --git a/voxelman/the_tower_gles3/levels/Roboto-Black.ttf b/voxelman/the_tower_gles3/levels/Roboto-Black.ttf new file mode 100644 index 0000000..2d45238 Binary files /dev/null and b/voxelman/the_tower_gles3/levels/Roboto-Black.ttf differ diff --git a/voxelman/the_tower_gles3/levels/title_font.tres b/voxelman/the_tower_gles3/levels/title_font.tres new file mode 100644 index 0000000..bf0c970 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/title_font.tres @@ -0,0 +1,7 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://levels/Roboto-Black.ttf" type="DynamicFontData" id=1] + +[resource] +size = 50 +font_data = ExtResource( 1 ) diff --git a/voxelman/the_tower_gles3/levels/title_subtext_font.tres b/voxelman/the_tower_gles3/levels/title_subtext_font.tres new file mode 100644 index 0000000..5fb9704 --- /dev/null +++ b/voxelman/the_tower_gles3/levels/title_subtext_font.tres @@ -0,0 +1,7 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://levels/Roboto-Black.ttf" type="DynamicFontData" id=1] + +[resource] +size = 20 +font_data = ExtResource( 1 ) diff --git a/voxelman/the_tower_gles3/library/MainLibrary.tres b/voxelman/the_tower_gles3/library/MainLibrary.tres new file mode 100644 index 0000000..802f6cc --- /dev/null +++ b/voxelman/the_tower_gles3/library/MainLibrary.tres @@ -0,0 +1,38 @@ +[gd_resource type="VoxelLibrarySimple" load_steps=7 format=2] + +[ext_resource path="res://library/liquid_material.tres" type="Material" id=1] +[ext_resource path="res://library/surface_material.tres" type="Material" id=2] + +[sub_resource type="VoxelSurfaceSimple" id=1] +resource_name = "A" +voxel_name = "A" + +[sub_resource type="VoxelSurfaceSimple" id=2] +resource_name = "B" +id = 1 +voxel_name = "B" +top_atlas_x = 1 +bottom_atlas_x = 1 +side_atlas_x = 1 + +[sub_resource type="VoxelSurfaceSimple" id=3] +resource_name = "Ladder" +voxel_name = "Ladder" +top_atlas_x = 2 +bottom_atlas_x = 2 +side_atlas_x = 2 + +[sub_resource type="VoxelSurfaceSimple" id=4] +resource_name = "Water" +voxel_name = "Water" +liquid = true +top_atlas_x = 3 +bottom_atlas_x = 3 +side_atlas_x = 3 + +[resource] +materials = [ ExtResource( 2 ), ExtResource( 2 ), ExtResource( 2 ), ExtResource( 2 ) ] +liquid_materials = [ ExtResource( 1 ), ExtResource( 1 ), ExtResource( 1 ), ExtResource( 1 ) ] +atlas_columns = 4 +atlas_rows = 4 +voxel_surfaces = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ) ] diff --git a/voxelman/the_tower_gles3/library/liquid_material.tres b/voxelman/the_tower_gles3/library/liquid_material.tres new file mode 100644 index 0000000..ff9e644 --- /dev/null +++ b/voxelman/the_tower_gles3/library/liquid_material.tres @@ -0,0 +1,6 @@ +[gd_resource type="SpatialMaterial" load_steps=2 format=2] + +[ext_resource path="res://icon.png" type="Texture" id=1] + +[resource] +albedo_texture = ExtResource( 1 ) diff --git a/voxelman/the_tower_gles3/library/main_atlas.png b/voxelman/the_tower_gles3/library/main_atlas.png new file mode 100644 index 0000000..e5e4ca5 Binary files /dev/null and b/voxelman/the_tower_gles3/library/main_atlas.png differ diff --git a/voxelman/the_tower_gles3/library/main_atlas.png.import b/voxelman/the_tower_gles3/library/main_atlas.png.import new file mode 100644 index 0000000..016e74e --- /dev/null +++ b/voxelman/the_tower_gles3/library/main_atlas.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/main_atlas.png-b5c8475f969ccbf3571485ba0e461048.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://library/main_atlas.png" +dest_files=[ "res://.import/main_atlas.png-b5c8475f969ccbf3571485ba0e461048.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles3/library/main_atlas.pxo b/voxelman/the_tower_gles3/library/main_atlas.pxo new file mode 100644 index 0000000..903fe4e Binary files /dev/null and b/voxelman/the_tower_gles3/library/main_atlas.pxo differ diff --git a/voxelman/the_tower_gles3/library/main_emission.png b/voxelman/the_tower_gles3/library/main_emission.png new file mode 100644 index 0000000..7a04597 Binary files /dev/null and b/voxelman/the_tower_gles3/library/main_emission.png differ diff --git a/voxelman/the_tower_gles3/library/main_emission.png.import b/voxelman/the_tower_gles3/library/main_emission.png.import new file mode 100644 index 0000000..ba74cfd --- /dev/null +++ b/voxelman/the_tower_gles3/library/main_emission.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/main_emission.png-bed3b454d6b789e788e1a92ce7e197d2.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://library/main_emission.png" +dest_files=[ "res://.import/main_emission.png-bed3b454d6b789e788e1a92ce7e197d2.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=true +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles3/library/main_emission.pxo b/voxelman/the_tower_gles3/library/main_emission.pxo new file mode 100644 index 0000000..82850bd Binary files /dev/null and b/voxelman/the_tower_gles3/library/main_emission.pxo differ diff --git a/voxelman/the_tower_gles3/library/surface_material.tres b/voxelman/the_tower_gles3/library/surface_material.tres new file mode 100644 index 0000000..0af99d4 --- /dev/null +++ b/voxelman/the_tower_gles3/library/surface_material.tres @@ -0,0 +1,13 @@ +[gd_resource type="SpatialMaterial" load_steps=3 format=2] + +[ext_resource path="res://library/main_atlas.png" type="Texture" id=1] +[ext_resource path="res://library/main_emission.png" type="Texture" id=2] + +[resource] +albedo_texture = ExtResource( 1 ) +emission_enabled = true +emission = Color( 0, 0, 0, 1 ) +emission_energy = 2.92 +emission_operator = 0 +emission_on_uv2 = false +emission_texture = ExtResource( 2 ) diff --git a/voxelman/the_tower_gles3/particles/flake.png b/voxelman/the_tower_gles3/particles/flake.png new file mode 100644 index 0000000..5d1584a Binary files /dev/null and b/voxelman/the_tower_gles3/particles/flake.png differ diff --git a/voxelman/the_tower_gles3/particles/flake.png.import b/voxelman/the_tower_gles3/particles/flake.png.import new file mode 100644 index 0000000..84455c1 --- /dev/null +++ b/voxelman/the_tower_gles3/particles/flake.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/flake.png-e35d9e06b95683c10cf763d53898bb0b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://particles/flake.png" +dest_files=[ "res://.import/flake.png-e35d9e06b95683c10cf763d53898bb0b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=true +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=1 +process/fix_alpha_border=false +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles3/particles/flake.pxo b/voxelman/the_tower_gles3/particles/flake.pxo new file mode 100644 index 0000000..c7b7ae6 Binary files /dev/null and b/voxelman/the_tower_gles3/particles/flake.pxo differ diff --git a/voxelman/the_tower_gles3/player/Exit.gd b/voxelman/the_tower_gles3/player/Exit.gd new file mode 100644 index 0000000..9106104 --- /dev/null +++ b/voxelman/the_tower_gles3/player/Exit.gd @@ -0,0 +1,4 @@ +extends Button + +func _pressed(): + get_tree().quit() diff --git a/voxelman/the_tower_gles3/player/Menu.gd b/voxelman/the_tower_gles3/player/Menu.gd new file mode 100644 index 0000000..956d0c4 --- /dev/null +++ b/voxelman/the_tower_gles3/player/Menu.gd @@ -0,0 +1,8 @@ +extends CenterContainer + +func _ready(): + $Main/VBoxContainer/Resume.connect("pressed", self, "on_pressed") + +func on_pressed(): + hide() + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) diff --git a/voxelman/the_tower_gles3/player/Player.gd b/voxelman/the_tower_gles3/player/Player.gd new file mode 100644 index 0000000..d8e9646 --- /dev/null +++ b/voxelman/the_tower_gles3/player/Player.gd @@ -0,0 +1,210 @@ +extends KinematicBody + +var camera_angle : float = 0 +var mouse_sensitivity : float = 0.3 +var camera_change : Vector2 + +var velocity : Vector3 +var direction : Vector3 + +#flying +const FLY_SPEED = 10 +const FLY_ACCEL = 8 +var flying : bool = false + +#waling +var gravity : float = -9.8 * 4 +const MAX_SPEED = 10 +const MAX_RUNNING_SPEED = 16 +const ACCEL = 14 +const DEACCEL = 14 + +#jumping +var jump_height = 12 +var has_contact : bool = false +var double_jumped : bool = false + +var jump_height_modifier : float = 1 +var gravity_modifier : float = 1 +var walk_speed_modifier : float = 1 +var run_speed_modifier : float = 1 +var accel_modifier : float = 1 + +#audio player +const WALK_STEP_TIME = 0.5 +const MIN_SOUND_TIME_LIMIT = 0.3 + +var foot_audio : AudioStreamPlayer3D +var step_timer : float = 0 +var foot : bool = false +var last_sound_timer : float = 0 + +func _ready(): + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + + foot_audio = $foot as AudioStreamPlayer3D + +func _process(delta): + if Input.is_action_just_pressed("ui_cancel"): + if not $Menu.visible: + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) + $Menu.show() + else: + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + $Menu.hide() + + if Input.is_action_just_pressed("restart"): + if get_node("../../").has_method("reload"): + get_node("../../").reload() + +func _physics_process(delta): + aim() + + last_sound_timer += delta + + if flying: + fly(delta) + else: + walk(delta) + +func fly(delta): + direction = Vector3() + + var aim : Basis = $Head/Camera.global_transform.basis + + if Input.is_action_pressed("move_forward"): + direction -= aim.z + + if Input.is_action_pressed("move_backward"): + direction += aim.z + + if Input.is_action_pressed("move_left"): + direction -= aim.x + + if Input.is_action_pressed("move_right"): + direction += aim.x + + if Input.is_action_pressed("move_jump"): + direction.y += 1 + + direction = direction.normalized() + + var target : Vector3 = direction * FLY_SPEED * run_speed_modifier + velocity = velocity.linear_interpolate(target, FLY_ACCEL * delta) + + move_and_slide(velocity) + +func walk(delta): + direction = Vector3() + + var aim : Basis = $Head/Camera.global_transform.basis + + if Input.is_action_pressed("move_forward"): + direction -= aim.z + + if Input.is_action_pressed("move_backward"): + direction += aim.z + + if Input.is_action_pressed("move_left"): + direction -= aim.x + + if Input.is_action_pressed("move_right"): + direction += aim.x + + direction = direction.normalized() + + if is_on_floor(): + has_contact = true + else: + if !$Contact.is_colliding(): + has_contact = false + + if has_contact and !is_on_floor(): + move_and_collide(Vector3(0, -1, 0)) + + velocity.y += gravity * delta * gravity_modifier + + var temp_velocity : Vector3 = velocity + temp_velocity.y = 0 + + var speed : float + var accel_multiplier : float = 1 + if Input.is_action_pressed("move_sprint"): + accel_multiplier = 1.2 + speed = MAX_RUNNING_SPEED * run_speed_modifier + else: + speed = MAX_SPEED * walk_speed_modifier + + var accel : float + if direction.dot(temp_velocity) > 0: + accel = ACCEL * accel_multiplier + else: + accel = DEACCEL * accel_multiplier + + var target : Vector3 = direction * speed + temp_velocity = temp_velocity.linear_interpolate(target, ACCEL * delta) + + velocity.x = temp_velocity.x + velocity.z = temp_velocity.z + + if not has_contact and not double_jumped and Input.is_action_just_pressed("move_jump"): + double_jumped = true + velocity.y = jump_height * jump_height_modifier + + if has_contact and Input.is_action_just_pressed("move_jump"): + velocity.y = jump_height * jump_height_modifier + has_contact = false + double_jumped = false + + if not foot_audio.playing and last_sound_timer >= MIN_SOUND_TIME_LIMIT: + foot_audio.play() + last_sound_timer = 0 + + step_timer = 0 + + velocity = move_and_slide(velocity, Vector3(0, 1, 0), true) + + if not has_contact and is_on_floor(): + if not foot_audio.playing and last_sound_timer >= MIN_SOUND_TIME_LIMIT: + foot_audio.play() + last_sound_timer = 0 + + step_timer = 0 + + var v : Vector3 = velocity + v.y = 0 + if has_contact and v.length() > 1: + step_timer += delta + + if step_timer >= WALK_STEP_TIME: + step_timer = 0 + + if not foot_audio.playing and last_sound_timer >= MIN_SOUND_TIME_LIMIT: + foot_audio.play() + last_sound_timer = 0 + + +func _unhandled_input(event): + if event is InputEventMouseMotion: + camera_change = event.relative + +func aim(): + if camera_change.length() > 0: + $Head.rotate_y(deg2rad(-camera_change.x * mouse_sensitivity)) + + var change : float = -camera_change.y * mouse_sensitivity + + if camera_angle + change > -90 and camera_angle + change < 90: + $Head/Camera.rotate_x(deg2rad(change)) + camera_angle += change + + camera_change = Vector2() + +func ladder_area_entered(ladder): + flying = true + +func ladder_area_exited(ladder): + flying = false + +func is_player(): + return true diff --git a/voxelman/the_tower_gles3/player/Player.tscn b/voxelman/the_tower_gles3/player/Player.tscn new file mode 100644 index 0000000..692de35 --- /dev/null +++ b/voxelman/the_tower_gles3/player/Player.tscn @@ -0,0 +1,71 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://player/Player.gd" type="Script" id=1] +[ext_resource path="res://sounds/edited/stepdirt_1.wav" type="AudioStream" id=2] +[ext_resource path="res://player/VolumeControl.tscn" type="PackedScene" id=3] +[ext_resource path="res://player/Menu.gd" type="Script" id=4] +[ext_resource path="res://player/Exit.gd" type="Script" id=5] +[ext_resource path="res://player/ui_theme.tres" type="Theme" id=6] + +[sub_resource type="CapsuleShape" id=1] +radius = 0.5 +height = 1.6 + +[node name="Player" type="KinematicBody"] +script = ExtResource( 1 ) + +[node name="Capsule" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 1.30561, 0 ) +shape = SubResource( 1 ) + +[node name="Head" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.25899, 0 ) + +[node name="Camera" type="Camera" parent="Head"] +current = true + +[node name="Contact" type="RayCast" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.209, 0 ) +enabled = true +cast_to = Vector3( 0, -0.4, 0 ) + +[node name="foot" type="AudioStreamPlayer3D" parent="."] +stream = ExtResource( 2 ) +bus = "Footsteps" + +[node name="Menu" type="CenterContainer" parent="."] +visible = false +anchor_right = 1.0 +anchor_bottom = 1.0 +theme = ExtResource( 6 ) +script = ExtResource( 4 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Main" type="PanelContainer" parent="Menu"] +margin_left = 508.0 +margin_top = 296.0 +margin_right = 515.401 +margin_bottom = 303.085 + +[node name="VBoxContainer" type="VBoxContainer" parent="Menu/Main"] +margin_left = 7.0 +margin_top = 7.0 +margin_right = 160.0 +margin_bottom = 89.0 +custom_constants/separation = 13 + +[node name="Resume" type="Button" parent="Menu/Main/VBoxContainer"] +margin_right = 153.0 +margin_bottom = 20.0 +text = "Resume" + +[node name="VolumeControl" parent="Menu/Main/VBoxContainer" instance=ExtResource( 3 )] + +[node name="Exit" type="Button" parent="Menu/Main/VBoxContainer"] +margin_top = 62.0 +margin_right = 153.0 +margin_bottom = 82.0 +text = "Exit" +script = ExtResource( 5 ) diff --git a/voxelman/the_tower_gles3/player/Volume.gd b/voxelman/the_tower_gles3/player/Volume.gd new file mode 100644 index 0000000..5c8abf9 --- /dev/null +++ b/voxelman/the_tower_gles3/player/Volume.gd @@ -0,0 +1,8 @@ +extends HSlider + +func _ready(): + connect("value_changed", self, "on_value_changed") + +func on_value_changed(value): + AudioServer.set_bus_volume_db(0, value) + diff --git a/voxelman/the_tower_gles3/player/VolumeControl.tscn b/voxelman/the_tower_gles3/player/VolumeControl.tscn new file mode 100644 index 0000000..99575b3 --- /dev/null +++ b/voxelman/the_tower_gles3/player/VolumeControl.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://player/Volume.gd" type="Script" id=1] + +[node name="VolumeControl" type="HBoxContainer"] +margin_top = 33.0 +margin_right = 153.0 +margin_bottom = 49.0 + +[node name="Label" type="Label" parent="."] +margin_top = 1.0 +margin_right = 49.0 +margin_bottom = 15.0 +text = "Volume" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Volume" type="HSlider" parent="."] +margin_left = 53.0 +margin_right = 153.0 +margin_bottom = 16.0 +rect_min_size = Vector2( 100, 0 ) +min_value = -80.0 +max_value = 0.0 +script = ExtResource( 1 ) diff --git a/voxelman/the_tower_gles3/player/button.png b/voxelman/the_tower_gles3/player/button.png new file mode 100644 index 0000000..be3b35b Binary files /dev/null and b/voxelman/the_tower_gles3/player/button.png differ diff --git a/voxelman/the_tower_gles3/player/button.png.import b/voxelman/the_tower_gles3/player/button.png.import new file mode 100644 index 0000000..eaa20aa --- /dev/null +++ b/voxelman/the_tower_gles3/player/button.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/button.png-53465f78fd94fd9aec24f3f23eb81fdf.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://player/button.png" +dest_files=[ "res://.import/button.png-53465f78fd94fd9aec24f3f23eb81fdf.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles3/player/panel.png b/voxelman/the_tower_gles3/player/panel.png new file mode 100644 index 0000000..7c4b354 Binary files /dev/null and b/voxelman/the_tower_gles3/player/panel.png differ diff --git a/voxelman/the_tower_gles3/player/panel.png.import b/voxelman/the_tower_gles3/player/panel.png.import new file mode 100644 index 0000000..b71d777 --- /dev/null +++ b/voxelman/the_tower_gles3/player/panel.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/panel.png-e188ef6e7ca785861bf20b8a2e99961c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://player/panel.png" +dest_files=[ "res://.import/panel.png-e188ef6e7ca785861bf20b8a2e99961c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles3/player/ui_theme.tres b/voxelman/the_tower_gles3/player/ui_theme.tres new file mode 100644 index 0000000..5ad62d5 --- /dev/null +++ b/voxelman/the_tower_gles3/player/ui_theme.tres @@ -0,0 +1,62 @@ +[gd_resource type="Theme" load_steps=8 format=2] + +[ext_resource path="res://player/button.png" type="Texture" id=1] +[ext_resource path="res://player/panel.png" type="Texture" id=2] + +[sub_resource type="StyleBoxTexture" id=1] +texture = ExtResource( 1 ) +region_rect = Rect2( 0, 0, 20, 20 ) +margin_left = 4.12948 +margin_right = 4.27187 +margin_top = 4.55666 +margin_bottom = 3.84469 + +[sub_resource type="StyleBoxTexture" id=2] +texture = ExtResource( 1 ) +region_rect = Rect2( 0, 0, 20, 20 ) +margin_left = 3.59834 +margin_right = 3.98388 +margin_top = 3.59834 +margin_bottom = 3.72685 +modulate_color = Color( 0.752941, 0.752941, 0.752941, 1 ) + +[sub_resource type="StyleBoxTexture" id=3] +texture = ExtResource( 1 ) +region_rect = Rect2( 0, 0, 20, 20 ) +margin_left = 4.36941 +margin_right = 4.2409 +margin_top = 4.49793 +margin_bottom = 4.62644 + +[sub_resource type="StyleBoxTexture" id=4] +texture = ExtResource( 1 ) +region_rect = Rect2( 0, 0, 20, 20 ) +margin_left = 3.78773 +margin_right = 3.923 +margin_top = 3.78773 +margin_bottom = 3.78773 +modulate_color = Color( 0.505882, 0.505882, 0.505882, 1 ) + +[sub_resource type="StyleBoxTexture" id=5] +texture = ExtResource( 2 ) +region_rect = Rect2( 0, 0, 20, 20 ) +margin_left = 3.74726 +margin_right = 3.65383 +margin_top = 3.59737 +margin_bottom = 3.48775 +modulate_color = Color( 0.184314, 0.184314, 0.184314, 1 ) + +[resource] +Button/colors/font_color = Color( 0.88, 0.88, 0.88, 1 ) +Button/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 ) +Button/colors/font_color_hover = Color( 0.94, 0.94, 0.94, 1 ) +Button/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +Button/constants/hseparation = 2 +Button/fonts/font = null +Button/styles/disabled = null +Button/styles/focus = SubResource( 1 ) +Button/styles/hover = SubResource( 2 ) +Button/styles/normal = SubResource( 3 ) +Button/styles/pressed = SubResource( 4 ) +Panel/styles/panel = SubResource( 5 ) +PanelContainer/styles/panel = SubResource( 5 ) diff --git a/voxelman/the_tower_gles3/project.godot b/voxelman/the_tower_gles3/project.godot new file mode 100644 index 0000000..0c5032b --- /dev/null +++ b/voxelman/the_tower_gles3/project.godot @@ -0,0 +1,66 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ +} + +[application] + +config/name="The Tower" +config/description="A really simple (and visually strange) demonstration project for Voxelman." +run/main_scene="res://scenes/Main.tscn" +config/icon="res://icon.png" + +[display] + +window/size/fullscreen=true + +[input] + +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_forward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_backward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_sprint={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +move_jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} +restart={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"physical_scancode":0,"unicode":0,"echo":false,"script":null) + ] +} + +[rendering] + +environment/default_environment="res://default_env.tres" diff --git a/voxelman/the_tower_gles3/scenes/Main.gd b/voxelman/the_tower_gles3/scenes/Main.gd new file mode 100644 index 0000000..53c77b5 --- /dev/null +++ b/voxelman/the_tower_gles3/scenes/Main.gd @@ -0,0 +1,34 @@ +extends Node + +export(Array, PackedScene) var levels + +var current_level_index : int = 0 + +var level : Node = null + +func _enter_tree(): + level = levels[current_level_index].instance() + add_child(level) + +func next_level(): + call_deferred("next") + +func next(): + level.queue_free() + remove_child(level) + current_level_index += 1 + + if current_level_index >= levels.size(): + current_level_index = 0 + + level = levels[current_level_index].instance() + add_child(level) + +func reload(): + call_deferred("reload_deferred") + +func reload_deferred(): + level.queue_free() + remove_child(level) + level = levels[current_level_index].instance() + add_child(level) diff --git a/voxelman/the_tower_gles3/scenes/Main.tscn b/voxelman/the_tower_gles3/scenes/Main.tscn new file mode 100644 index 0000000..40f1275 --- /dev/null +++ b/voxelman/the_tower_gles3/scenes/Main.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=13 format=2] + +[ext_resource path="res://scenes/Main.gd" type="Script" id=1] +[ext_resource path="res://levels/Level2.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/Level1.tscn" type="PackedScene" id=3] +[ext_resource path="res://levels/Level0.tscn" type="PackedScene" id=4] +[ext_resource path="res://levels/Level3.tscn" type="PackedScene" id=5] +[ext_resource path="res://levels/Level4.tscn" type="PackedScene" id=6] +[ext_resource path="res://levels/Level5.tscn" type="PackedScene" id=7] +[ext_resource path="res://levels/Level6.tscn" type="PackedScene" id=8] +[ext_resource path="res://levels/Level7.tscn" type="PackedScene" id=9] +[ext_resource path="res://levels/Level9.tscn" type="PackedScene" id=10] +[ext_resource path="res://levels/Level8.tscn" type="PackedScene" id=11] +[ext_resource path="res://levels/Level10.tscn" type="PackedScene" id=12] + +[node name="Main" type="Node"] +script = ExtResource( 1 ) +levels = [ ExtResource( 4 ), ExtResource( 3 ), ExtResource( 2 ), ExtResource( 5 ), ExtResource( 6 ), ExtResource( 7 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 11 ), ExtResource( 10 ), ExtResource( 12 ) ] diff --git a/voxelman/the_tower_gles3/scripts/Ladder.gd b/voxelman/the_tower_gles3/scripts/Ladder.gd new file mode 100644 index 0000000..de0dfb5 --- /dev/null +++ b/voxelman/the_tower_gles3/scripts/Ladder.gd @@ -0,0 +1,15 @@ +extends Area + + +func _ready(): + connect("body_entered", self, "on_body_entered") + connect("body_exited", self, "on_body_exited") + +func on_body_entered(body): + if body.has_method("ladder_area_entered"): + body.ladder_area_entered(self) + + +func on_body_exited(body): + if body.has_method("ladder_area_exited"): + body.ladder_area_exited(self) diff --git a/voxelman/the_tower_gles3/scripts/exit_portal.gd b/voxelman/the_tower_gles3/scripts/exit_portal.gd new file mode 100644 index 0000000..2f7c6c8 --- /dev/null +++ b/voxelman/the_tower_gles3/scripts/exit_portal.gd @@ -0,0 +1,16 @@ +extends Area + + +func _ready(): + connect("body_entered", self, "on_body_entered") + +func on_body_entered(body): + if body.has_method("is_player"): + if body.is_player(): + var parent : Node = get_parent() + while parent != null: + if parent.has_method("next_level"): + parent.next_level() + return + parent = parent.get_parent() + diff --git a/voxelman/the_tower_gles3/sounds/edited/README.txt b/voxelman/the_tower_gles3/sounds/edited/README.txt new file mode 100644 index 0000000..699453c --- /dev/null +++ b/voxelman/the_tower_gles3/sounds/edited/README.txt @@ -0,0 +1,32 @@ +Author: +Jute +(Submitted by qubodup) +Thursday, February 11, 2010 - 02:27 +Art Type: +Sound Effect +Tags: +snow +step +walk +walking +movement +dirt +Wood +water +wet +footstep +foot +run +Action +RPG +Fantasy +Other +License(s): +GPL 3.0 +GPL 2.0 + + +These sounds were made by Jute for DungeonHack. They are based on sounds from pdsounds.org. + + +https://opengameart.org/content/foot-walking-step-sounds-on-stone-water-snow-wood-and-dirt diff --git a/voxelman/the_tower_gles3/sounds/edited/stepdirt_1.wav b/voxelman/the_tower_gles3/sounds/edited/stepdirt_1.wav new file mode 100644 index 0000000..af0c999 Binary files /dev/null and b/voxelman/the_tower_gles3/sounds/edited/stepdirt_1.wav differ diff --git a/voxelman/the_tower_gles3/sounds/edited/stepdirt_1.wav.import b/voxelman/the_tower_gles3/sounds/edited/stepdirt_1.wav.import new file mode 100644 index 0000000..2268865 --- /dev/null +++ b/voxelman/the_tower_gles3/sounds/edited/stepdirt_1.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/stepdirt_1.wav-477ef04dfa836bd223c0f17f39122ed4.sample" + +[deps] + +source_file="res://sounds/edited/stepdirt_1.wav" +dest_files=[ "res://.import/stepdirt_1.wav-477ef04dfa836bd223c0f17f39122ed4.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0