This commit is contained in:
Relintai 2024-09-26 21:25:23 +02:00
parent eb7fa528dc
commit e68f280f54
61 changed files with 4259 additions and 0 deletions

16
voxelman/the_tower_gles2/.gitignore vendored Normal file
View File

@ -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

View File

@ -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.

View File

@ -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 ```

View File

@ -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 )

View File

@ -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

View File

@ -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 )

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -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

View File

@ -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.

View File

@ -0,0 +1,6 @@
extends VoxelWorldBlocky
func _unhandled_key_input(event : InputEventKey) -> void:
if event.scancode == KEY_ENTER:
get_parent().next_level()

View File

@ -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"

View File

@ -0,0 +1,2 @@
extends VoxelWorldBlocky

View File

@ -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 )

View File

@ -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)

View File

@ -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

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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

Binary file not shown.

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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 ) ]

View File

@ -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 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

View File

@ -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

Binary file not shown.

View File

@ -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 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

View File

@ -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

Binary file not shown.

View File

@ -0,0 +1,4 @@
extends Button
func _pressed():
get_tree().quit()

View File

@ -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)

View File

@ -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

View File

@ -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 )

View File

@ -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)

View File

@ -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 )

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

View File

@ -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

View File

@ -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 )

View File

@ -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)
]
}

View File

@ -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)

View File

@ -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 ) ]

View File

@ -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)

View File

@ -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()

View File

@ -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

Binary file not shown.

View File

@ -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