diff --git a/voxelman/the_tower_gles2/.gitignore b/voxelman/the_tower_gles2/.gitignore new file mode 100644 index 0000000..e9f4f1f --- /dev/null +++ b/voxelman/the_tower_gles2/.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_gles2/LICENSE b/voxelman/the_tower_gles2/LICENSE new file mode 100644 index 0000000..a7d5e8f --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/README.md b/voxelman/the_tower_gles2/README.md new file mode 100644 index 0000000..d26dc25 --- /dev/null +++ b/voxelman/the_tower_gles2/README.md @@ -0,0 +1,270 @@ +# The Tower Pandemonium + +A really simple (and visually strange) demonstration project for Voxelman in the Pandemonium engine. + +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 the proper version of the [Pandemonium Engine](https://github.com/Relintai/pandemonium_engine)! + +You can either just get an executable at the [releases tab](https://github.com/Relintai/the_tower_pandemonium/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_pandemonium/). + +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. + +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. + +## 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_pandemonium ``` + +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 the Pandemonium Engine: + +``` git clone https://github.com/Relintai/pandemonium_engine ``` + +go into engine's modules folder. + +``` 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_pandemonium/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_gles2/areas/ExitPortal.tscn b/voxelman/the_tower_gles2/areas/ExitPortal.tscn new file mode 100644 index 0000000..d47505d --- /dev/null +++ b/voxelman/the_tower_gles2/areas/ExitPortal.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=6 format=3] + +[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="BoxShape" id=4] +extents = Vector3( 1, 1.65801, 1 ) + +[sub_resource type="SpatialMaterial" id=5] +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=6] +material = SubResource( 5 ) + +[node name="ExitPortal" type="Area"] +script = ExtResource( 1 ) + +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.67644, 0 ) +shape = SubResource( 4 ) + +[node name="Particles" type="CPUParticles" parent="."] +mesh = SubResource( 6 ) +emission_shape = 2 +emission_box_extents = Vector3( 0.5, 1, 0.5 ) +gravity = Vector3( 0, 9.8, 0 ) +scale_amount = 0.1 +color = Color( 0.26, 0.33, 0.84, 1 ) diff --git a/voxelman/the_tower_gles2/default_bus_layout.tres b/voxelman/the_tower_gles2/default_bus_layout.tres new file mode 100644 index 0000000..fe1781a --- /dev/null +++ b/voxelman/the_tower_gles2/default_bus_layout.tres @@ -0,0 +1,18 @@ +[gd_resource type="AudioBusLayout" load_steps=2 format=3] + +[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_gles2/default_env.tres b/voxelman/the_tower_gles2/default_env.tres new file mode 100644 index 0000000..8419635 --- /dev/null +++ b/voxelman/the_tower_gles2/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment3D" load_steps=2 format=3] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/voxelman/the_tower_gles2/environments/red_env.tres b/voxelman/the_tower_gles2/environments/red_env.tres new file mode 100644 index 0000000..4a1f851 --- /dev/null +++ b/voxelman/the_tower_gles2/environments/red_env.tres @@ -0,0 +1,23 @@ +[gd_resource type="Environment3D" load_steps=2 format=3] + +[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_gles2/icon.png b/voxelman/the_tower_gles2/icon.png new file mode 100644 index 0000000..b6a755f Binary files /dev/null and b/voxelman/the_tower_gles2/icon.png differ diff --git a/voxelman/the_tower_gles2/icon.png.import b/voxelman/the_tower_gles2/icon.png.import new file mode 100644 index 0000000..3160b45 --- /dev/null +++ b/voxelman/the_tower_gles2/icon.png.import @@ -0,0 +1,35 @@ +[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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles2/levels/LICENSE.txt b/voxelman/the_tower_gles2/levels/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/levels/Level0.gd b/voxelman/the_tower_gles2/levels/Level0.gd new file mode 100644 index 0000000..48d2791 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/levels/Level0.tscn b/voxelman/the_tower_gles2/levels/Level0.tscn new file mode 100644 index 0000000..fc5c66c --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level0.tscn @@ -0,0 +1,357 @@ +[gd_scene load_steps=20 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" 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://levels/WorldEnvironment.tscn" type="PackedScene" id=4] +[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( "HwABACM/AQEBOQAjDwIAbQ63AA8SAAAP3gBUD0QB/zAvAQG/AQAPAgCSDrcADxIAAA+IAlQeAnsADwIAbA6RAA8SAAAPPwMADyYAAg4VAA8CAD8PZgBTDwIAGg/3AFEPAgA6D8wDgA9EAWoOfQAPEgAjDwIAbA61AA8CAGoOjwAPEgARDwIA/yAOVgEPAgD/IA9EAX4PkQB+DwIAoA9EAf///84O3gMPEgAOHwE9DIAPAgCdDmUBDwIA/w0OMQEOTw8OJAAPAgD7DiABHQIhAQ4SAA8CAP8/UAAAAAAA" ) + +[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( "HwABAP//vC8BAc8C//92D4gC/zIPRAH/Mg8CAP///////////6oP+Ar/Mg9EAf8fDjEBDkwRDyQAAA9gDPoOIAEdAiABDhIADjYADwIA6Q4OAQ4yAQsSAFAAAAAAAA==" ) + +[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( "HwABAP////////////////////////8NHwEOE/8xD0QB/zIPAgD/G1AAAAAAAA==" ) + +[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( "HwABAP//Lh0BQAIfAhIAEA8CAPsORAEPEgARDwIA/////////////////////////wlQAAAAAAA=" ) + +[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( "HwABAP////////////////////////8LHQEMEw4SAA8CAP8OHQIhAQ9EAf8gDgIAD0QB/wtQAAAAAAA=" ) + +[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( "HwABAA4fASIADg8CAP0dAhEBD0QB/yAOMgEOEgAPAgD//////////////////////////whQAAAAAAA=" ) + +[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( "HwABAPgdAQwBHwISABAPAgD7D0QBIw42AA8CAOkODgEPEgAjDwIA////////////////////////5lAAAAAAAA==" ) + +[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( "HwABAP9DHwFWAf8xD0QB/zIPAgD////////////////////////kUAAAAAAA" ) + +[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( "HwABAP//////////////////////3B0B3xEsAQEVAA8SAAAAOQAJJgANJAA9AQIBFAAAJwAaATcAARMAABoAAwIAAB4AAAQACQIACSIAIQACEgAKFAABNQALOAAPJAAAAJMAAC0ADwIATAycAA8CAJUOHQEPEgAAD0QBUw9mAFMPAgBADzIBAA1mAA6aAg8CAEMPiAL0UAAAAAAA" ) + +[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( "HwABAP/////////////////////////////FUAAAAAAA" ) + +[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( "HwABAP//////////////////////////hx8BhxT//ypQAAAAAAA=" ) + +[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( "HwABAP///////+sdAfkGDxIAIw8CAOkOMgEdAg8BDhIADjYADhIADwIAEQ42AA4SAA8CAI8OtAAOMgEOEgAONgAPAgA1D1oARw8CAEcOtAAPEgAjDwIA//////////////+uUAAAAAAA" ) + +[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 ) ] +num_lods = 5 +script = ExtResource( 2 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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" parent="." instance=ExtResource( 1 )] + +[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 + +[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 ) + +[node name="HelpText" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_constants/margin_left = 30 +custom_constants/margin_right = 30 + +[node name="VBoxContainer" type="VBoxContainer" parent="HelpText"] +margin_left = 30.0 +margin_right = 994.0 +margin_bottom = 600.0 +alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="HelpText/VBoxContainer"] +margin_top = 242.0 +margin_right = 964.0 +margin_bottom = 358.0 + +[node name="Label" type="Label" parent="HelpText/VBoxContainer/HBoxContainer"] +margin_right = 121.0 +margin_bottom = 116.0 +text = "Controls + +w,a,s,d: Movement +space: jump +shift: run +r: reload level +esc: ingame menu" diff --git a/voxelman/the_tower_gles2/levels/Level1.gd b/voxelman/the_tower_gles2/levels/Level1.gd new file mode 100644 index 0000000..c995f10 --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level1.gd @@ -0,0 +1,2 @@ +extends VoxelWorldBlocky + diff --git a/voxelman/the_tower_gles2/levels/Level1.tscn b/voxelman/the_tower_gles2/levels/Level1.tscn new file mode 100644 index 0000000..30016a3 --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level1.tscn @@ -0,0 +1,285 @@ +[gd_scene load_steps=18 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" 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://levels/WorldEnvironment.tscn" type="PackedScene" id=4] +[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( "HwABACM/AQEBOQAjDwIAbQ63AA8SAAAP3gBUD0QB/zAvAQG/AQAPAgCSDrcADxIAAA+IAlQeAnsADwIAbA6RAA8SAAAPPwMADyYAAg4VAA8CAD8PZgBTDwIAGg/3AFEPAgA6D8wDgA9EAWoOfQAPEgAjDwIAbA61AA8CAGoOjwAPEgARDwIA/yAOVgEPAgD/IA9EAX4PkQB+DwIAoA9EAf///84O3gMPEgAOHwE9DIAPAgCdDmUBDwIA/w0OMQEOTw8OJAAPAgD7DiABHQIhAQ4SAA8CAP8/UAAAAAAA" ) + +[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( "HwABAP//vC8BAc8C//92D4gC/zIPRAH/Mg8CAP///////////6oP+Ar/Mg9EAf8fDjEBDkwRDyQAAA9gDPoOIAEdAiABDhIADjYADwIA6Q4OAQ4yAQsSAFAAAAAAAA==" ) + +[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( "HwABAP////////////////////////8NHwEOE/8xD0QB/zIPAgD/G1AAAAAAAA==" ) + +[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( "HwABAP//Lh0BQAIfAhIAEA8CAPsORAEPEgARDwIA/////////////////////////wlQAAAAAAA=" ) + +[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( "HwABAP////////////////////////8LHQEMEw4SAA8CAP8OHQIhAQ9EAf8gDgIAD0QB/wtQAAAAAAA=" ) + +[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( "HwABAA4fASIADg8CAP0dAhEBD0QB/yAOMgEOEgAPAgD//////////////////////////whQAAAAAAA=" ) + +[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( "HwABAPgdAQwBHwISABAPAgD7D0QBIw42AA8CAOkODgEPEgAjDwIA////////////////////////5lAAAAAAAA==" ) + +[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( "HwABAP9DHwFWAf8xD0QB/zIPAgD////////////////////////kUAAAAAAA" ) + +[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( "HwABAP//////////////////////3B0B3xEsAQEVAA8SAAAAOQAJJgANJAA9AQIBFAAAJwAaATcAARMAABoAAwIAAB4AAAQACQIACSIAIQACEgAKFAABNQALOAAPJAAAAJMAAC0ADwIATAycAA8CAJUOHQEPEgAAD0QBUw9mAFMPAgBADzIBAA1mAA6aAg8CAEMPiAL0UAAAAAAA" ) + +[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( "HwABAP/////////////////////////////FUAAAAAAA" ) + +[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( "HwABAP//////////////////////////hx8BhxT//ypQAAAAAAA=" ) + +[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( "HwABAP///////+sdAfkGDxIAIw8CAOkOMgEdAg8BDhIADjYADhIADwIAEQ42AA4SAA8CAI8OtAAOMgEOEgAONgAPAgA1D1oARw8CAEcOtAAPEgAjDwIA//////////////+uUAAAAAAA" ) + +[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" parent="." instance=ExtResource( 4 )] + +[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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/Level10.gd b/voxelman/the_tower_gles2/levels/Level10.gd new file mode 100644 index 0000000..ae661ab --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/levels/Level10.tscn b/voxelman/the_tower_gles2/levels/Level10.tscn new file mode 100644 index 0000000..739ad3b --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level10.tscn @@ -0,0 +1,238 @@ +[gd_scene load_steps=15 format=3] + +[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://levels/Particles.tscn" type="PackedScene" 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://levels/WorldEnvironment.tscn" type="PackedScene" 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( "HwABAP//////////////////////////Tx8BTxT//2JQAAAAAAA=" ) + +[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( "HwABAMEfAdUANA5IAA4SAA8CAMUP6gAjDjYADxIAEQ8CAP//////////////////////////P1AAAAAAAA==" ) + +[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( "HwABAP////////////////////8CHwEGEP8xDkQBHwETAAAPaQH/DA4xAQ8CAP8fD3UCAA8CAP8fD4cCNQ5IAA4SAA8CAMUP6gAjDjYADxIAD1AAAAAAAA==" ) + +[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( "HwABAP9AHwFTAf9ADwIA//////////////////////////8eUAAAAAAA" ) + +[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( "HwABAP////+6HwHKBP8xD0QB/0QOVgEPEgARDwIA6Q4gAQ8CAP///////zUPVAb5DwwBJQ84ACUPAgDBDgwBLQEBFAAOEgAdACQADwIA6A8MAfkPAgAlD0QB/zIPAgD/q1AAAAAAAA==" ) + +[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( "HwABAP///////0gdAVYGDxIAAA0TAA4SAA8lAAAfACUAAA1uAA8CAP///////////////////+lQAAAAAAA=" ) + +[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( "HwABAP///////////////////zIdATcPDhIADwIA/w4dAiEBDUQBHAESABwBEgAMEAAPAgDcD0QBEA8CAA8MZQEPAgDcDv8ADhIADwIADg8zACAPAgD///84UAAAAAAA" ) + +[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( "HwABAP////////////////////8vHQEzEA8SACMPAgDpDjIBHQIPAQ4SAA42AA8CAOkODgEOMgEOEgAONgAPAgDpDg4BDxIAIw8CAP//a1AAAAAAAA==" ) + +[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 ) ] +num_lods = 5 +script = ExtResource( 5 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=ExtResource( 6 )] + +[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="ExitPortal" parent="." instance=ExtResource( 2 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.922967, 6.98507, -18.9305 ) + +[node name="Particles" parent="." instance=ExtResource( 3 )] + +[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_gles2/levels/Level2.tscn b/voxelman/the_tower_gles2/levels/Level2.tscn new file mode 100644 index 0000000..22684c7 --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level2.tscn @@ -0,0 +1,258 @@ +[gd_scene load_steps=19 format=3] + +[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://levels/Particles.tscn" type="PackedScene" id=5] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" 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( "HwABAP///////////+YfAfEJ/0YPWQH/Lw9BAf8vDwIA////igzbBBwBEQAdABEADxIAEg8CAOksAQFGAQwQAA54AQ8SAAEPAgD/IA6sAg8CAP8NDzEB/w4OIAEOEgAPAgAHUAAAAAAA" ) + +[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( "HwABAP8SHwElAf8NDiABDhIADwIA/w4PMgERDiQADhIADwIA+w4gAQ8SABEPAgD/////8A4jBQ8CAP8ODjIBDhIADwIA//9lD4gC/zIPRAH/Mg8CAP///////05QAAAAAAA=" ) + +[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( "HwABABUfASkAFQsCABsCEAAPSQAmDwIADw5aAA8SABEPAgBYDo8ADwIAEw44AA4SAA0CAA4jAA8SAFkPAgAiD6EAEQ8CAFoPkQARDyQARw8CAAgOdQAEAgAOGgAOEgAPAgBaDn8ADxIAIw8CAD4OhwAPAgCGD6sAEQ8kADUPAgAaHwF2ABEPAgBPDoYADpkADyQAAA2ZAA8kACMPAgAaD2MAAA0TAA0RAA8CAD8PYwARDiQADhIADgIADiQALAEBBQgOJAAPAgAaD90BAA9SABkPLAAZDwIACQ5IAA4SAA8CACQNSQAP8wAsDgIAD1EAGg2PAA88AwAPAgARD0gAEQ8kABAOIwAPAgAADiUAD/MAEQ42AAYCAA4cAA8SACMPAgAHD1AAIw82ACIODQEPAgASDjcADhIADwIACQ+sACIcAEAEBgIAD1AAEQ8CAAILOQALDwAP4gImDgIAD1oAAA0TAA9EAX0PAgAADbQADgMEDsYADzUAEA8CACUPWwAsDz8AEQ8kABEPAgAaFgEBAAM4AAUJAAQCAB8BEgAABBwABAIADhIADwIAJA/hACwOPwAPAgA/DjIBJAADAQAEbgAMiAAdAZsCDjIBDiQADwIAJAx9AA8SAAEPAgAIDj8ADwIAQAH/AAdaAhYBVwEDbgAFCQAEAgAHLgADAgAPEgASAywADwIAHA8FAVIPAgAwC6gABEUBBFoAAhAABA4AAC8AARIAAAsAAwIADBAAAEYFCSEADwIAJwucAA8CAIMOpQAOEgAPAgANDjABD0QAHw8CAP+7UAAAAAAA" ) + +[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( "HwABAP////////////8gHwEqCv8uD0EB/y8PAgCkD/gB+w8OASMONgAOEgAPAgC0D9kAEA8jABAPJAASDwIAag6hAA4SAA8CABIdATgADREADyQAEQ8jAAAvAQKBABILAgAOfgAPAgBGDmsADxIAAA0TAA/qAAAN6QANNQAPSAATDTcADREAPQABAG0ADwIAfA60AA8CAEgNZAIPngEAD38AIw/HAFcPagARDyQAEQ8CAAENLQIPSQAlDwIADw5aAA8SABEPAgBYDo8ADwIAEw44AA4SAA0CAA4jAA8SAFkPAgAYUAAAAAAA" ) + +[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( "HwABAP///////yIfATAG/zEPRAH/IA4yAQ4SAA8CAP8ODjIBDhIADwIA+w4gAQ8SABEPAgD7DzIBEQ4kAA8CAPsOIAEPEgARDwIA+w8yAREOJAAPAgA1HwFbAEcPAgBYD8UAWQ4yAS8DA+sAWA8CAEYPRAFaDcYADlYBDwIA/yAPRAH/Mg8CAP//PFAAAAAAAA==" ) + +[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( "HwABAP/////////////////////////////FUAAAAAAA" ) + +[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( "HwABAP//hR8BlwL/MQ9EAf8zD0UB/zEORAENEQAPAgD/Dw5EAQ8CAP8gD0QB/zIPuwMADxIAIw8CAOkOMgEdAg8BDhIADjYADwIA6Q4OAQ4yAQ4SAA42AA8CAOkODgEPEgAjDwIA//////////90UAAAAAAA" ) + +[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( "HwABABodAS4ADhIADwIADR0BMwANEQAPAgD/////////////////////////////MVAAAAAAAA==" ) + +[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( "HwABAP/////////////////////////////FUAAAAAAA" ) + +[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( "HwABAP////////////8oHQEyCg8SABEPAgD7HQIPAQ4SAA5WAQ8CAPsOMgEOEgAPRAH/Dg4gAQ8SABEPAgD//////////4RQAAAAAAA=" ) + +[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 ) ] +num_lods = 5 +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="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="WorldEnvironment" parent="." instance=ExtResource( 6 )] + +[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="Particles" parent="." instance=ExtResource( 5 )] + +[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_gles2/levels/Level3.tscn b/voxelman/the_tower_gles2/levels/Level3.tscn new file mode 100644 index 0000000..37ce09f --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level3.tscn @@ -0,0 +1,220 @@ +[gd_scene load_steps=14 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] + +[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( "HwABAP///////////////0QfAUwM/zEPRAH/RA5WAQ0SAB0BEgAPAgD/IA9DAf8xD0QB//93Dw8F/0QO3QMOEgAPAgD7DiABDRIAUAAAAAAA" ) + +[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( "HwABAAwdASAADxIAEQ8CAOkPIAERDiQADwIA////////////////////////////PVAAAAAAAA==" ) + +[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( "HwABAP8JHQEcAQ4SAA8CAP8ODjIBDxIAEQ8CAP//////////////////////////LlAAAAAAAA==" ) + +[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( "HwABAP//////oh8BsQX/MQ9EAf///7wPAgD///+8D5gH//9QDmECDxIAAC4BARUADwIAwg7nAA8SACMPAgDpDzIBEQ8CANcPDgERDyQAEQ8CAPsPMgH/DVAAAAAAAA==" ) + +[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( "HwABALsfAc8Auw8CACoNDAE9AQEBFAAfABIAEQ8CAPgOLwEPAgD///////9pD8oHAA8CAP8fD0QB/y4ADAkABAAPAgD/Kg9AAf8uAAIADkQBDxIAIw8CAP////////+rUAAAAAAA" ) + +[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( "HwABAP9/LwEBkwH/fw8CAP//KA7LAwsSABEBAwAIAgALIQANEAAPAgD/AA4iAQwSAB8BVAX/MQxUAQ8CAP8iD0QB/zIPAgD///+8DxAF/zIPRAH/MQ8eCv8xDwIA/////21QAAAAAAA=" ) + +[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( "HwABAP//////////////////////zy8BAdMRIA81ACIPAgD///+GD8sD3lAAAAAAAA==" ) + +[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( "HwABAP////////////////////odAf8PDxIAIw8CAOkOMgEdAg8BDhIADjYADwIA6Q4OAQ4yAQ4SAA42AA8CABAfATYAIg8CAJAO2AAPEgAjDwIA6Q4yAQ8CAOcNDAEvAQE8AwANJgAPEgAADwIAS1AAAAAAAA==" ) + +[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 ) ] +num_lods = 5 +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/Level4.tscn b/voxelman/the_tower_gles2/levels/Level4.tscn new file mode 100644 index 0000000..0e101c4 --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level4.tscn @@ -0,0 +1,224 @@ +[gd_scene load_steps=14 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] + +[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( "HwABAP//////////////////////wx8BxhH/MQ9EAf//dw8CAP8fUAAAAAAA" ) + +[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( "HwABAP8JLAEBHQENEQAPAgD///////////////////////////+GUAAAAAAA" ) + +[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( "HwABANQfAegA1A8CAP/////////nD9sI/zIPRAH//////wEdARAFDREADwIA/w8PMgH/IA4CAA9EAREPrAIRD0gAEQ8CAP8OD0QB/yAPmgIRDwIA/zFQAAAAAAA=" ) + +[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( "HwABAP/////////////////////////////FUAAAAAAA" ) + +[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( "HwABAP////////////////////////9UHQFVEw8SADQdAUgADxIAAA99ABAPAgD/IA15AQ8CAP94UAAAAAAA" ) + +[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( "HwABAP////////////////////////4rAQEBEw8RAA8PIwAiDjUADxIAAQuMAA8jAAEMsAAONQAPEgAADwIA/yANZwEPAgD/iFAAAAAAAA==" ) + +[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( "HwABAP////////////////////////+3OgEBAboTDxEAEQoyACsAAEMAAEUAAAYACAIADRIADREADwIAqA/MALkPAgAwDQ8CDiECDxIAEg8CAFxQAAAAAAA=" ) + +[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( "HwABAKkvAQG+AKkPAgA+Dg4BDxIAIw8CAOkOMgEdAg8BDhIADjYADwIA6Q4OAQ4yAQ4SAA42AA8CAOkODgEPEgAjDwIA/////////////////////+BQAAAAAAA=" ) + +[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 ) ] +num_lods = 5 +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/Level5.tscn b/voxelman/the_tower_gles2/levels/Level5.tscn new file mode 100644 index 0000000..700568d --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level5.tscn @@ -0,0 +1,257 @@ +[gd_scene load_steps=16 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] + +[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( "HwABAJ0fAbEAnQ8CADgP/ABaDm0ADhIADwIAoA/FALIPAgAmDv4ADhIADwIADw80ACEPAgD//+cOLAMOEgAPAgD//2UPiAL//3cNAgAfAZoC/zAPQwH//3UfAMkD/zAPAgD/////8Q5CBg0SAFAAAAAAAA==" ) + +[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( "HwABAP8/HQFSAQ8SABEPAgD///////////////////////////89UAAAAAAA" ) + +[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( "HwABAP//Th0BYAIPEgARDwIA//////////////////////////8uUAAAAAAA" ) + +[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( "HwABAP//////////////ax8BdAv/MB8BRAH/MA9DAf8xHwCGAv8wDwIA//////8WDmYGDhIADwIA6FAAAAAAAA==" ) + +[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( "HwABAP/3HQEKAg4SAA8CAP+NDrEBDxIAEQ8CAP///z4dAXMDDREADwIA//9mD4gC//93DQIADjMFDwIA/yAP3QP/WA9qAf8yD0QB////vA8CAP//cFAAAAAAAA==" ) + +[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( "HwABAP//////////////XB8BZQv//////////////1VQAAAAAAA=" ) + +[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( "HwABAP//////////////////////////8R8B8RToD/wAWg5tAA4SAA8CADJQAAAAAAA=" ) + +[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( "HwABAP/////////////////////////////FUAAAAAAA" ) + +[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( "HwABAP/////LLAEB3AQNEQAPEgAADwIA/////8wP7QT/////3g8CAP8xDjAGDxIAIw8CAOkOMgEdAg8BDhIADjYADwIA6Q4OAQ4yAQ4SAA42AA8CAOkODgEPEgAjDwIA//+CUAAAAAAA" ) + +[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( "HwABAP/////bHQHrBA4SAA8CAP//////////////////////slAAAAAAAA==" ) + +[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 ) ] +num_lods = 5 +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/Level6.tscn b/voxelman/the_tower_gles2/levels/Level6.tscn new file mode 100644 index 0000000..0e8ea6a --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level6.tscn @@ -0,0 +1,204 @@ +[gd_scene load_steps=13 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] + +[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( "HwABAP//////////////////////////UB8BUBT//2FQAAAAAAA=" ) + +[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( "HwABAIAdAZQADxIAIw8CAOkOMgEdAg8BDhIADjYADwIA6Q4OAQ4yAQ4SAA42AA8CAOkODgEPEgAjDwIA+w5EAQ8CAP8gD0QBww7WAA4SAA8CACMOSAAuAQEUAA8CALEP1gDDDwIAWg8aAsQPAgBZD0MB/zEPygP/Mg9EAf8zDwIA//+vD0gF/zIPAgD/eQ1bCQ0RAA/2BiQOKAMOEgAPAgD/P1AAAAAAAA==" ) + +[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( "HwABAMIdAdYADhIADwIAEQ42AA4SAA8CAP8ODjIBDhIADwIA//////////////////////////8+UAAAAAAA" ) + +[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( "HwABAP////////////9dHwFnCv8wHwFEAf8yD4cC/zAPRAH/Mw8CAP//////gQ1aCQ5sCQ0jAA8CABIONgAOEgAPAgD/Dg4yAQsSAFAAAAAAAA==" ) + +[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( "HwABAP9BHwFUAf9BDwIA//////////////////////////8cUAAAAAAA" ) + +[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( "HwABAKEsAQG2AA0RAA8CAP9oDosBDhIADwIA//////////////////////////9OUAAAAAAA" ) + +[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( "HwABAP//////////////////////////1B0B1BQPEgAjDwIA6Q4yAR0CDwEOEgAONgAPAgBQUAAAAAAA" ) + +[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 ) ] +num_lods = 5 +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/Level7.tscn b/voxelman/the_tower_gles2/levels/Level7.tscn new file mode 100644 index 0000000..08c234a --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level7.tscn @@ -0,0 +1,188 @@ +[gd_scene load_steps=12 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] + +[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( "HwABAP////////////////+tLwEBtQ3/MA9EAf8xHwFEAf8zD8sD/zEPQwH/MA9EAf8hDoQHDxIAIw8CAP8gDGgBUAAAAAAA" ) + +[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( "HwABAP9AHwFTAf9ADwIA//////////////////////////8eUAAAAAAA" ) + +[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( "HwABAOUdAfkADxIAIw8CAP8gDmgBDwIA//////////////////////////8/UAAAAAAA" ) + +[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( "HwABAP//////////////////////////Tx8BTxT//2JQAAAAAAA=" ) + +[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( "HwABACYfAToAIg42AB0CSAAOEgAONgAPAgCzDtgADxIAWQ8CALMOMgEPAgD/IA9EAf//iQ6aAg8SABEPAgD/IA5WAQ8CAP/////tHQEPBQ0RAA8SAAAPAgAjDkgADBIAHgGPAA8CAP8fD0MB/zEPRAH/NA+6A/8fDwIA/////xJQAAAAAAA=" ) + +[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( "HwABAP///////////////////////yYdASgSDxIAIw8CALMO/AAPAgARDjYAHQI3AA4SAA42AA8CALMP2AAjDjYADjIBDhIADjYADwIAsw7YAA8SAFkPAgB0UAAAAAAA" ) + +[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 ) ] +num_lods = 5 +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/Level8.tscn b/voxelman/the_tower_gles2/levels/Level8.tscn new file mode 100644 index 0000000..3ba9079 --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level8.tscn @@ -0,0 +1,204 @@ +[gd_scene load_steps=13 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] + +[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( "HwABAP////////////9LHQFVCg8SADUPAgAjD34AEQ8CAH0OtAAPAgD//wsPLgL/MR8BRAH/Mg+kBP8xD4cC/zEPiAL//4oP3gP/IA4yAQsSAFAAAAAAAA==" ) + +[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( "HwABAP//QB0BUgIOEgAPAgD//////////////////////////05QAAAAAAA=" ) + +[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( "HwABAP8LHQEeAQ4SAA8CAP8ODjIBDhIADwIA//////////////////////////8+UAAAAAAA" ) + +[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( "HwABAP9BHwFUAf9BDwIA//////////////////////////8cUAAAAAAA" ) + +[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( "HwABAP//////////////////////////UB8BUBT//2FQAAAAAAA=" ) + +[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( "HwABAP////////////87HQFFCg8SADUPAgAjD34AEQ8CACQeAVwADwIAMw9ZAEYPAgB/D+sARw+dAUUPAgB+D0MBRw8CANYPQwH/MQ9wA9cPAgBID0QBJQ44AA8SABEPAgDDDvoADwIAEw44AA4SAA8CANUP+gDnDwIANw5EAQ4SAA8CAP8/UAAAAAAA" ) + +[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( "HwABAP////////////////////MdAfgPDxIAIw8CAOkOMgEdAg8BDhIADjYADwIA6Q4OAQ4yAQ4SAA42AA8SACMPAgCzD/wAIw42AA4CAA4kAA4SAA8CAP//cFAAAAAAAA==" ) + +[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 ) ] +num_lods = 5 +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/Level9.tscn b/voxelman/the_tower_gles2/levels/Level9.tscn new file mode 100644 index 0000000..4e6d3ba --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Level9.tscn @@ -0,0 +1,220 @@ +[gd_scene load_steps=14 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] + +[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( "HwABAP//////////////////////////Tx8BTxT//2JQAAAAAAA=" ) + +[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( "HwABAMEfAdUANA5IAA4SAA8CAMUP6gAjDjYADxIAEQ8CAP//////////////////////////P1AAAAAAAA==" ) + +[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( "HwABAP////////////////////8CHwEGEP8xDkQBHwETAAAPaQH/DA4xAQ8CAP8fD3UCAA8CAP8fD4cCNQ5IAA4SAA8CAMUP6gAjDjYADxIAD1AAAAAAAA==" ) + +[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( "HwABAP9AHwFTAf9ADwIA//////////////////////////8eUAAAAAAA" ) + +[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( "HwABAP////+6HwHKBP8xD0QB/0QOVgEPEgARDwIA6Q4gAQ8CAP///////zUPVAb5DwwBJQ84ACUPAgDBDgwBLQEBFAAOEgAdACQADwIA6A8MAfkPAgAlD0QB/zIPAgD/q1AAAAAAAA==" ) + +[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( "HwABAP///////0gdAVYGDxIAAA0TAA4SAA8lAAAfACUAAA1uAA8CAP///////////////////+lQAAAAAAA=" ) + +[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( "HwABAP///////////////////zIdATcPDhIADwIA/w4dAiEBDUQBHAESABwBEgAMEAAPAgDcD0QBEA8CAA8MZQEPAgDcDv8ADhIADwIADg8zACAPAgD///84UAAAAAAA" ) + +[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( "HwABAP////////////////////8vHQEzEA8SACMPAgDpDjIBHQIPAQ4SAA42AA8CAOkODgEOMgEOEgAONgAPAgDpDg4BDxIAIw8CAP//a1AAAAAAAA==" ) + +[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 ) ] +num_lods = 5 +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/LevelKit.tscn b/voxelman/the_tower_gles2/levels/LevelKit.tscn new file mode 100644 index 0000000..fe9a528 --- /dev/null +++ b/voxelman/the_tower_gles2/levels/LevelKit.tscn @@ -0,0 +1,84 @@ +[gd_scene load_steps=6 format=3] + +[ext_resource path="res://levels/Particles.tscn" type="PackedScene" id=1] +[ext_resource path="res://areas/ExitPortal.tscn" type="PackedScene" id=2] +[ext_resource path="res://levels/WorldEnvironment.tscn" type="PackedScene" id=3] +[ext_resource path="res://library/MainLibrary.tres" type="VoxelLibrarySimple" id=4] +[ext_resource path="res://player/Player.tscn" type="PackedScene" id=5] + +[node name="LevelKit" type="VoxelWorldBlocky"] +editable = true +max_concurrent_generations = 5 +library = ExtResource( 4 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="WorldEnvironment" parent="." instance=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="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" parent="." instance=ExtResource( 1 )] + +[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_gles2/levels/Particles.tscn b/voxelman/the_tower_gles2/levels/Particles.tscn new file mode 100644 index 0000000..c6850c6 --- /dev/null +++ b/voxelman/the_tower_gles2/levels/Particles.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=5 format=3] + +[ext_resource path="res://particles/flake.png" type="Texture" id=1] + +[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( 1 ) + +[sub_resource type="QuadMesh" id=14] +material = SubResource( 13 ) + +[sub_resource type="Gradient" id=15] + +[node name="Particles" type="CPUParticles"] +mesh = SubResource( 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_amount = 0.4 +color_ramp = SubResource( 15 ) +hue_variation = 0.48 +hue_variation_random = 0.09 +anim_speed = 44.14 +anim_offset = 0.07 diff --git a/voxelman/the_tower_gles2/levels/Roboto-Black.ttf b/voxelman/the_tower_gles2/levels/Roboto-Black.ttf new file mode 100644 index 0000000..2d45238 Binary files /dev/null and b/voxelman/the_tower_gles2/levels/Roboto-Black.ttf differ diff --git a/voxelman/the_tower_gles2/levels/WorldEnvironment.tscn b/voxelman/the_tower_gles2/levels/WorldEnvironment.tscn new file mode 100644 index 0000000..33e6ff3 --- /dev/null +++ b/voxelman/the_tower_gles2/levels/WorldEnvironment.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://environments/red_env.tres" type="Environment3D" id=1] + +[node name="WorldEnvironment" type="WorldEnvironment3D"] +environment = ExtResource( 1 ) diff --git a/voxelman/the_tower_gles2/levels/title_font.tres b/voxelman/the_tower_gles2/levels/title_font.tres new file mode 100644 index 0000000..bf0c970 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/levels/title_subtext_font.tres b/voxelman/the_tower_gles2/levels/title_subtext_font.tres new file mode 100644 index 0000000..5fb9704 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/library/MainLibrary.tres b/voxelman/the_tower_gles2/library/MainLibrary.tres new file mode 100644 index 0000000..ec1b8a1 --- /dev/null +++ b/voxelman/the_tower_gles2/library/MainLibrary.tres @@ -0,0 +1,38 @@ +[gd_resource type="VoxelLibrarySimple" load_steps=7 format=3] + +[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_gles2/library/liquid_material.tres b/voxelman/the_tower_gles2/library/liquid_material.tres new file mode 100644 index 0000000..ff9e644 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/library/main_atlas.png b/voxelman/the_tower_gles2/library/main_atlas.png new file mode 100644 index 0000000..e5e4ca5 Binary files /dev/null and b/voxelman/the_tower_gles2/library/main_atlas.png differ diff --git a/voxelman/the_tower_gles2/library/main_atlas.png.import b/voxelman/the_tower_gles2/library/main_atlas.png.import new file mode 100644 index 0000000..a4ceb0f --- /dev/null +++ b/voxelman/the_tower_gles2/library/main_atlas.png.import @@ -0,0 +1,35 @@ +[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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles2/library/main_atlas.pxo b/voxelman/the_tower_gles2/library/main_atlas.pxo new file mode 100644 index 0000000..903fe4e Binary files /dev/null and b/voxelman/the_tower_gles2/library/main_atlas.pxo differ diff --git a/voxelman/the_tower_gles2/library/main_emission.png b/voxelman/the_tower_gles2/library/main_emission.png new file mode 100644 index 0000000..7a04597 Binary files /dev/null and b/voxelman/the_tower_gles2/library/main_emission.png differ diff --git a/voxelman/the_tower_gles2/library/main_emission.png.import b/voxelman/the_tower_gles2/library/main_emission.png.import new file mode 100644 index 0000000..a56ee68 --- /dev/null +++ b/voxelman/the_tower_gles2/library/main_emission.png.import @@ -0,0 +1,35 @@ +[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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles2/library/main_emission.pxo b/voxelman/the_tower_gles2/library/main_emission.pxo new file mode 100644 index 0000000..82850bd Binary files /dev/null and b/voxelman/the_tower_gles2/library/main_emission.pxo differ diff --git a/voxelman/the_tower_gles2/library/surface_material.tres b/voxelman/the_tower_gles2/library/surface_material.tres new file mode 100644 index 0000000..0af99d4 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/particles/flake.png b/voxelman/the_tower_gles2/particles/flake.png new file mode 100644 index 0000000..5d1584a Binary files /dev/null and b/voxelman/the_tower_gles2/particles/flake.png differ diff --git a/voxelman/the_tower_gles2/particles/flake.png.import b/voxelman/the_tower_gles2/particles/flake.png.import new file mode 100644 index 0000000..7d3dcd8 --- /dev/null +++ b/voxelman/the_tower_gles2/particles/flake.png.import @@ -0,0 +1,35 @@ +[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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles2/particles/flake.pxo b/voxelman/the_tower_gles2/particles/flake.pxo new file mode 100644 index 0000000..c7b7ae6 Binary files /dev/null and b/voxelman/the_tower_gles2/particles/flake.pxo differ diff --git a/voxelman/the_tower_gles2/player/Exit.gd b/voxelman/the_tower_gles2/player/Exit.gd new file mode 100644 index 0000000..9106104 --- /dev/null +++ b/voxelman/the_tower_gles2/player/Exit.gd @@ -0,0 +1,4 @@ +extends Button + +func _pressed(): + get_tree().quit() diff --git a/voxelman/the_tower_gles2/player/Menu.gd b/voxelman/the_tower_gles2/player/Menu.gd new file mode 100644 index 0000000..956d0c4 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/player/Player.gd b/voxelman/the_tower_gles2/player/Player.gd new file mode 100644 index 0000000..d8e9646 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/player/Player.tscn b/voxelman/the_tower_gles2/player/Player.tscn new file mode 100644 index 0000000..d774e83 --- /dev/null +++ b/voxelman/the_tower_gles2/player/Player.tscn @@ -0,0 +1,71 @@ +[gd_scene load_steps=8 format=3] + +[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.4 +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_gles2/player/Volume.gd b/voxelman/the_tower_gles2/player/Volume.gd new file mode 100644 index 0000000..5c8abf9 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/player/VolumeControl.tscn b/voxelman/the_tower_gles2/player/VolumeControl.tscn new file mode 100644 index 0000000..331f8b8 --- /dev/null +++ b/voxelman/the_tower_gles2/player/VolumeControl.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=2 format=3] + +[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_gles2/player/button.png b/voxelman/the_tower_gles2/player/button.png new file mode 100644 index 0000000..be3b35b Binary files /dev/null and b/voxelman/the_tower_gles2/player/button.png differ diff --git a/voxelman/the_tower_gles2/player/button.png.import b/voxelman/the_tower_gles2/player/button.png.import new file mode 100644 index 0000000..4097868 --- /dev/null +++ b/voxelman/the_tower_gles2/player/button.png.import @@ -0,0 +1,35 @@ +[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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles2/player/panel.png b/voxelman/the_tower_gles2/player/panel.png new file mode 100644 index 0000000..7c4b354 Binary files /dev/null and b/voxelman/the_tower_gles2/player/panel.png differ diff --git a/voxelman/the_tower_gles2/player/panel.png.import b/voxelman/the_tower_gles2/player/panel.png.import new file mode 100644 index 0000000..653b7c4 --- /dev/null +++ b/voxelman/the_tower_gles2/player/panel.png.import @@ -0,0 +1,35 @@ +[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 +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/voxelman/the_tower_gles2/player/ui_theme.tres b/voxelman/the_tower_gles2/player/ui_theme.tres new file mode 100644 index 0000000..9f5f9bc --- /dev/null +++ b/voxelman/the_tower_gles2/player/ui_theme.tres @@ -0,0 +1,62 @@ +[gd_resource type="Theme" load_steps=8 format=3] + +[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_gles2/project.pandemonium b/voxelman/the_tower_gles2/project.pandemonium new file mode 100644 index 0000000..745c872 --- /dev/null +++ b/voxelman/the_tower_gles2/project.pandemonium @@ -0,0 +1,62 @@ +; 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,"action_match_force_exact":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,"action_match_force_exact":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,"action_match_force_exact":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,"action_match_force_exact":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,"action_match_force_exact":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,"action_match_force_exact":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,"action_match_force_exact":false,"script":null) + ] +} diff --git a/voxelman/the_tower_gles2/scenes/Main.gd b/voxelman/the_tower_gles2/scenes/Main.gd new file mode 100644 index 0000000..53c77b5 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/scenes/Main.tscn b/voxelman/the_tower_gles2/scenes/Main.tscn new file mode 100644 index 0000000..e57102d --- /dev/null +++ b/voxelman/the_tower_gles2/scenes/Main.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=13 format=3] + +[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_gles2/scripts/Ladder.gd b/voxelman/the_tower_gles2/scripts/Ladder.gd new file mode 100644 index 0000000..de0dfb5 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/scripts/exit_portal.gd b/voxelman/the_tower_gles2/scripts/exit_portal.gd new file mode 100644 index 0000000..2f7c6c8 --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/sounds/edited/README.txt b/voxelman/the_tower_gles2/sounds/edited/README.txt new file mode 100644 index 0000000..699453c --- /dev/null +++ b/voxelman/the_tower_gles2/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_gles2/sounds/edited/stepdirt_1.wav b/voxelman/the_tower_gles2/sounds/edited/stepdirt_1.wav new file mode 100644 index 0000000..af0c999 Binary files /dev/null and b/voxelman/the_tower_gles2/sounds/edited/stepdirt_1.wav differ diff --git a/voxelman/the_tower_gles2/sounds/edited/stepdirt_1.wav.import b/voxelman/the_tower_gles2/sounds/edited/stepdirt_1.wav.import new file mode 100644 index 0000000..645cd43 --- /dev/null +++ b/voxelman/the_tower_gles2/sounds/edited/stepdirt_1.wav.import @@ -0,0 +1,23 @@ +[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_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0