From a557f98aa8ed49825fe55668a210b51b81ad7e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20G=C3=A1lffy?= Date: Mon, 21 Oct 2024 23:57:01 +0200 Subject: [PATCH] feat(game): Moving platforms (#313) --- examples/forest-brawl/maps/three-peaks.tscn | 16 ++++- examples/forest-brawl/scenes/brawler.tscn | 71 +------------------ .../forest-brawl/scenes/moving-platform.tscn | 27 +++++++ .../scripts/brawler-controller.gd | 13 +++- .../forest-brawl/scripts/moving-platform.gd | 27 +++++++ 5 files changed, 82 insertions(+), 72 deletions(-) create mode 100644 examples/forest-brawl/scenes/moving-platform.tscn create mode 100644 examples/forest-brawl/scripts/moving-platform.gd diff --git a/examples/forest-brawl/maps/three-peaks.tscn b/examples/forest-brawl/maps/three-peaks.tscn index 419534a..d0a2115 100644 --- a/examples/forest-brawl/maps/three-peaks.tscn +++ b/examples/forest-brawl/maps/three-peaks.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=3 uid="uid://d1544gxqaoptc"] +[gd_scene load_steps=12 format=3 uid="uid://d1544gxqaoptc"] [ext_resource type="MeshLibrary" uid="uid://do0y7f0sy12jg" path="res://examples/forest-brawl/models/forest-blocks.meshlib" id="1_124j6"] [ext_resource type="PackedScene" uid="uid://ijqx6kjl3qf4" path="res://examples/forest-brawl/scenes/powerup.tscn" id="2_4e2nk"] @@ -6,6 +6,7 @@ [ext_resource type="PackedScene" uid="uid://c5l8x303sjqhs" path="res://examples/forest-brawl/scenes/doodads/clouds-2.tscn" id="4_dfl7h"] [ext_resource type="PackedScene" uid="uid://dq14vitb32x5p" path="res://examples/forest-brawl/scenes/doodads/clouds-3.tscn" id="5_doyli"] [ext_resource type="Script" path="res://examples/forest-brawl/scripts/cloud-area3d.gd" id="6_ymimw"] +[ext_resource type="PackedScene" uid="uid://cjavt41cokqv5" path="res://examples/forest-brawl/scenes/moving-platform.tscn" id="7_fuq03"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_xjsj7"] sky_top_color = Color(0.384314, 0.454902, 0.54902, 1) @@ -32,13 +33,22 @@ mesh_library = ExtResource("1_124j6") cell_size = Vector3(1, 1, 1) cell_center_y = false data = { -"cells": PackedInt32Array(3, 6, 0, 3, 7, 0, 3, 8, 0, 4, 5, 0, 4, 6, 0, 4, 7, 0, 4, 8, 0, 4, 9, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 5, 7, 0, 5, 8, 0, 5, 9, 0, 5, 10, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 6, 6, 0, 6, 7, 0, 6, 8, 0, 6, 9, 0, 6, 10, 0, 6, 11, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 7, 7, 0, 7, 8, 0, 7, 9, 0, 7, 10, 0, 7, 11, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 8, 6, 0, 8, 7, 0, 8, 8, 0, 8, 9, 0, 8, 10, 0, 8, 11, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 9, 7, 0, 9, 8, 0, 9, 9, 0, 9, 10, 0, 10, 5, 0, 10, 6, 0, 10, 7, 0, 10, 8, 0, 10, 9, 0, 11, 6, 0, 11, 7, 0, 11, 8, 0, 8, 12, 0, 9, 11, 0, 9, 12, 0, 9, 13, 0, 10, 10, 0, 10, 11, 0, 10, 12, 0, 10, 13, 0, 11, 5, 0, 11, 9, 0, 11, 10, 0, 11, 11, 0, 11, 12, 0, 11, 13, 0, 12, 6, 0, 12, 7, 0, 12, 8, 0, 12, 9, 0, 12, 10, 0, 12, 11, 0, 12, 12, 0, 13, 7, 0, 13, 8, 0, 13, 9, 0, 13, 10, 0, 13, 11, 0, 14, 8, 0, 14, 9, 0, 14, 10, 0, 2, 10, 0, 2, 11, 0, 2, 12, 0, 3, 9, 0, 3, 10, 0, 3, 11, 0, 3, 12, 0, 3, 13, 0, 4, 10, 0, 4, 11, 0, 4, 12, 0, 4, 13, 0, 4, 14, 0, 5, 11, 0, 5, 12, 0, 5, 13, 0, 5, 14, 0, 5, 15, 0, 6, 12, 0, 6, 13, 0, 6, 14, 0, 6, 15, 0, 7, 12, 0, 7, 13, 0, 7, 14, 0, 7, 15, 0, 8, 13, 0, 8, 14, 0, 1, 6, 0, 1, 7, 0, 1, 8, 0, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 9, 0, 3, 4, 0, 3, 5, 0, 4, 3, 0, 4, 4, 0, 5, 3, 0, 65535, 65527, 0, 65535, 65528, 0, 65535, 65529, 0, 0, 65526, 0, 0, 65527, 0, 0, 65528, 0, 0, 65529, 0, 0, 65530, 0, 1, 65525, 0, 1, 65526, 0, 1, 65527, 0, 1, 65528, 0, 1, 65529, 0, 1, 65530, 0, 1, 65531, 0, 2, 65524, 0, 2, 65525, 0, 2, 65526, 0, 2, 65527, 0, 2, 65528, 0, 2, 65529, 0, 2, 65530, 0, 2, 65531, 0, 2, 65532, 0, 3, 65524, 0, 3, 65525, 0, 3, 65526, 0, 3, 65527, 0, 3, 65528, 0, 3, 65529, 0, 3, 65530, 0, 3, 65531, 0, 3, 65532, 0, 4, 65523, 0, 4, 65524, 0, 4, 65527, 0, 4, 65528, 0, 4, 65529, 0, 4, 65530, 0, 4, 65531, 0, 4, 65532, 0, 5, 65522, 0, 5, 65523, 0, 5, 65524, 0, 5, 65525, 0, 5, 65529, 0, 5, 65530, 0, 5, 65531, 0, 5, 65532, 0, 6, 65522, 0, 6, 65523, 0, 6, 65524, 0, 6, 65525, 0, 6, 65526, 0, 6, 65527, 0, 6, 65530, 0, 6, 65531, 0, 6, 65532, 0, 7, 65522, 0, 7, 65523, 0, 7, 65524, 0, 7, 65525, 0, 7, 65526, 0, 7, 65527, 0, 7, 65528, 0, 7, 65531, 0, 7, 65532, 0, 8, 65522, 0, 8, 65523, 0, 8, 65524, 0, 8, 65525, 0, 8, 65526, 0, 8, 65527, 0, 8, 65528, 0, 8, 65529, 0, 8, 65532, 0, 9, 65522, 0, 9, 65523, 0, 9, 65524, 0, 9, 65525, 0, 9, 65526, 0, 9, 65527, 0, 9, 65528, 0, 9, 65529, 0, 9, 65530, 0, 9, 65531, 0, 9, 65532, 0, 10, 65523, 0, 10, 65524, 0, 10, 65525, 0, 10, 65526, 0, 10, 65527, 0, 10, 65528, 0, 10, 65529, 0, 10, 65530, 0, 10, 65531, 0, 11, 65524, 0, 11, 65525, 0, 11, 65526, 0, 11, 65527, 0, 11, 65528, 0, 11, 65529, 0, 11, 65530, 0, 11, 65531, 0, 12, 65525, 0, 12, 65526, 0, 12, 65527, 0, 12, 65528, 0, 12, 65529, 0, 12, 65530, 0, 12, 65531, 0, 13, 65527, 0, 13, 65528, 0, 13, 65529, 0, 13, 65530, 0, 13, 65531, 0, 14, 65528, 0, 14, 65529, 0, 14, 65530, 0, 65526, 16, 0, 65526, 17, 0, 65526, 18, 0, 65527, 15, 0, 65527, 16, 0, 65527, 17, 0, 65527, 18, 0, 65527, 19, 0, 65528, 14, 0, 65528, 15, 0, 65528, 16, 0, 65528, 17, 0, 65528, 18, 0, 65528, 19, 0, 65528, 20, 0, 65529, 13, 0, 65529, 14, 0, 65529, 15, 0, 65529, 16, 0, 65529, 17, 0, 65529, 18, 0, 65529, 19, 0, 65529, 20, 0, 65529, 21, 0, 65530, 13, 0, 65530, 14, 0, 65530, 15, 0, 65530, 16, 0, 65530, 17, 0, 65530, 18, 0, 65530, 19, 0, 65530, 20, 0, 65530, 21, 0, 65531, 13, 0, 65531, 14, 0, 65531, 15, 0, 65531, 16, 0, 65531, 17, 0, 65531, 18, 0, 65531, 19, 0, 65531, 20, 0, 65531, 21, 0, 65532, 14, 0, 65532, 15, 0, 65532, 16, 0, 65532, 17, 0, 65532, 18, 0, 65532, 19, 0, 65532, 20, 0, 65532, 21, 0, 65532, 22, 0, 65533, 14, 0, 65533, 15, 0, 65533, 16, 0, 65533, 17, 0, 65533, 18, 0, 65533, 19, 0, 65533, 20, 0, 65533, 21, 0, 65533, 22, 0, 65534, 14, 0, 65534, 15, 0, 65534, 16, 0, 65534, 17, 0, 65534, 18, 0, 65534, 19, 0, 65534, 20, 0, 65534, 21, 0, 65534, 22, 0, 65535, 15, 0, 65535, 16, 0, 65535, 17, 0, 65535, 18, 0, 65535, 19, 0, 65535, 20, 0, 65535, 21, 0, 0, 16, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 1, 18, 0, 1, 19, 0, 16, 16, 0, 16, 17, 0, 16, 18, 0, 17, 15, 0, 17, 16, 0, 17, 17, 0, 17, 18, 0, 17, 19, 0, 18, 14, 0, 18, 15, 0, 18, 16, 0, 18, 17, 0, 18, 18, 0, 18, 19, 0, 18, 20, 0, 19, 13, 0, 19, 14, 0, 19, 15, 0, 19, 16, 0, 19, 17, 0, 19, 18, 0, 19, 19, 0, 19, 20, 0, 19, 21, 0, 20, 12, 0, 20, 13, 0, 20, 14, 0, 20, 15, 0, 20, 16, 0, 20, 17, 0, 20, 18, 0, 20, 19, 0, 20, 20, 0, 20, 21, 0, 21, 11, 0, 21, 12, 0, 21, 13, 0, 21, 14, 0, 21, 15, 0, 21, 16, 0, 21, 17, 0, 21, 18, 0, 21, 19, 0, 21, 20, 0, 21, 21, 0, 22, 11, 0, 22, 12, 0, 22, 13, 0, 22, 14, 0, 22, 15, 0, 22, 16, 0, 22, 17, 0, 22, 18, 0, 22, 19, 0, 22, 20, 0, 22, 21, 0, 23, 11, 0, 23, 12, 0, 23, 13, 0, 23, 14, 0, 23, 15, 0, 23, 16, 0, 23, 17, 0, 23, 18, 0, 23, 19, 0, 23, 20, 0, 23, 21, 0, 24, 11, 0, 24, 12, 0, 24, 13, 0, 24, 14, 0, 24, 15, 0, 24, 16, 0, 24, 17, 0, 24, 18, 0, 24, 19, 0, 24, 20, 0, 24, 21, 0, 25, 11, 0, 25, 12, 0, 25, 13, 0, 25, 14, 0, 25, 15, 0, 25, 16, 0, 25, 17, 0, 25, 18, 0, 25, 19, 0, 25, 20, 0, 25, 21, 0, 26, 12, 0, 26, 13, 0, 26, 14, 0, 26, 15, 0, 26, 16, 0, 26, 17, 0, 26, 18, 0, 26, 19, 0, 26, 20, 0, 27, 13, 0, 27, 14, 0, 27, 15, 0, 27, 16, 0, 27, 17, 0, 27, 18, 0, 27, 19, 0, 28, 14, 0, 28, 15, 0, 28, 16, 0, 28, 17, 0, 28, 18, 0, 5, 1, 6, 7, 0, 6, 5, 65534, 6, 4, 65525, 0, 4, 65526, 0, 5, 65526, 0, 5, 65527, 0, 5, 65528, 0, 6, 65528, 0, 6, 65529, 0, 7, 65529, 0, 7, 65530, 0, 8, 65530, 0, 8, 65531, 0, 65539, 65526, 18, 65538, 65528, 18, 65540, 65527, 18, 65541, 65525, 18, 65544, 65526, 18, 65546, 65528, 18, 65547, 65525, 18, 65549, 65529, 18, 65540, 65529, 18, 65539, 65528, 23, 65538, 65529, 23, 65546, 65527, 23, 65545, 65528, 23, 65548, 65529, 23, 65546, 65525, 23, 65543, 65526, 23, 65536, 65527, 16, 21, 22, 0, 22, 22, 0, 22, 23, 0, 23, 22, 0, 23, 23, 0, 23, 24, 0, 24, 22, 0, 24, 23, 0, 24, 24, 0, 25, 22, 0, 25, 23, 0, 25, 24, 0, 26, 21, 0, 26, 22, 0, 26, 23, 0, 26, 24, 0, 27, 20, 0, 27, 21, 0, 27, 22, 0, 27, 23, 0, 27, 24, 0, 28, 19, 0, 28, 20, 0, 28, 21, 0, 28, 22, 0, 28, 23, 0, 29, 16, 0, 29, 17, 0, 29, 18, 0, 29, 19, 0, 29, 20, 0, 29, 21, 0, 29, 22, 0, 30, 17, 0, 30, 18, 0, 30, 19, 0, 30, 20, 0, 30, 21, 0, 65558, 16, 0, 65558, 17, 0, 65558, 18, 0, 65559, 15, 0, 65559, 16, 0, 65559, 17, 0, 65559, 18, 0, 65559, 19, 0, 65560, 14, 0, 65560, 15, 0, 65560, 16, 0, 65560, 17, 0, 65560, 18, 0, 65560, 19, 0, 65560, 20, 0, 65561, 13, 0, 65561, 14, 0, 65561, 15, 0, 65561, 16, 0, 65561, 17, 0, 65561, 18, 0, 65561, 19, 0, 65561, 20, 0, 65561, 21, 0, 65562, 13, 0, 65562, 14, 0, 65562, 15, 0, 65562, 16, 0, 65562, 17, 0, 65562, 18, 0, 65562, 19, 0, 65562, 20, 0, 65562, 21, 0, 65563, 13, 0, 65563, 14, 0, 65563, 15, 0, 65563, 16, 0, 65563, 17, 0, 65563, 18, 0, 65563, 19, 0, 65563, 20, 0, 65563, 21, 0, 65564, 14, 0, 65564, 15, 0, 65564, 16, 0, 65564, 17, 0, 65564, 18, 0, 65564, 19, 0, 65564, 20, 0, 65565, 15, 0, 65565, 16, 0, 65565, 17, 0, 65565, 18, 0, 65565, 19, 0, 65566, 16, 0, 65566, 17, 0, 65566, 18, 0, 65558, 19, 0, 65558, 20, 0, 65558, 21, 0, 65558, 22, 0, 65559, 20, 0, 65559, 21, 0, 65559, 22, 0, 65559, 23, 0, 65560, 21, 0, 65560, 22, 0, 65560, 23, 0, 65560, 24, 0, 65561, 22, 0, 65561, 23, 0, 65561, 24, 0, 65562, 22, 0, 65562, 23, 0, 65562, 24, 0, 65563, 22, 0, 65563, 23, 0, 65564, 21, 0, 65564, 22, 0, 65565, 20, 0, 65565, 21, 0, 65557, 16, 1048593, 65557, 17, 1048593, 65557, 18, 1048593, 65557, 19, 1048593, 65557, 20, 1048593, 65557, 21, 1048593, 65557, 22, 1048593, 65558, 15, 1048593, 65559, 14, 1048593, 65560, 13, 1048593, 65558, 23, 1048593, 65559, 24, 1048593, 65563, 24, 1441794, 65564, 23, 1441794, 65565, 22, 1441794, 65566, 21, 1441809, 65566, 20, 1441809, 65566, 19, 1441809, 131097, 15, 1441802, 131097, 16, 1441802, 131097, 17, 1441802, 131097, 18, 1441802, 131097, 19, 1441802, 131097, 20, 1441802, 131097, 21, 1441802, 131097, 22, 1441802, 131097, 23, 1441802, 131098, 23, 1441802, 131096, 23, 1441802, 131095, 22, 1441802, 131095, 21, 1441802, 131095, 20, 1441802, 131095, 19, 1441802, 131095, 18, 1441802, 131095, 17, 1441802, 131095, 16, 1441802, 131096, 15, 1441802, 131098, 15, 1441802, 131099, 16, 1441802, 131099, 17, 1441802, 131099, 18, 1441802, 131099, 19, 1441802, 131099, 20, 1441802, 131099, 21, 1441802, 131099, 22, 1441802, 131098, 22, 1441802, 131098, 21, 1441802, 131098, 20, 1441802, 131098, 19, 1441802, 131098, 17, 1441802, 131098, 16, 1441802, 131098, 18, 1441802, 131096, 18, 1441802, 131096, 17, 1441802, 131096, 16, 1441802, 131096, 19, 1441802, 131096, 20, 1441802, 131096, 21, 1441802, 131096, 22, 1441802, 131100, 16, 1441806, 131100, 17, 1441806, 131100, 18, 1441806, 131100, 19, 1441806, 131100, 20, 1441806, 131100, 21, 1441806, 131100, 22, 1441806, 131099, 23, 1441806, 131099, 15, 1441806, 131095, 15, 1048590, 131094, 16, 1048590, 131094, 17, 1048590, 131094, 18, 1048590, 131094, 19, 1048590, 131094, 20, 1048590, 131094, 21, 1048590, 131094, 22, 1048590, 131095, 23, 1048590, 196634, 16, 1048595, 196632, 22, 1048595, 196634, 21, 1048595, 65558, 12, 1048598, 65557, 12, 1048594, 65554, 16, 1048598, 65555, 20, 1048598, 196633, 17, 1048592, 16, 14, 1048577, 16, 15, 0, 17, 14, 0, 14, 13, 1048576, 13, 12, 1048576, 14, 11, 1048576, 15, 12, 1048576, 14, 12, 1048576, 15, 13, 1048576, 15, 11, 1048576, 13, 13, 1048576, 12, 13, 1048576, 1, 17, 0, 0, 17, 0, 3, 14, 655362, 2, 14, 1048585, 0, 15, 2, 1, 15, 1048585, 2, 15, 1048585, 1, 14, 1048585, 2, 13, 655362, 1, 16, 2, 131067, 15, 1048594, 131069, 18, 1048594, 131065, 18, 1048594, 65526, 47, 0, 65527, 46, 0, 65527, 47, 0, 65527, 48, 0, 65528, 47, 0, 65532, 46, 0, 65532, 47, 0, 65532, 48, 0, 65533, 45, 0, 65533, 46, 0, 65533, 47, 0, 65533, 48, 0, 65533, 49, 0, 65534, 45, 0, 65534, 46, 0, 65534, 47, 0, 65534, 48, 0, 65534, 49, 0, 65535, 45, 0, 65535, 46, 0, 65535, 47, 0, 65535, 48, 0, 65535, 49, 0, 0, 46, 0, 0, 47, 0, 0, 48, 0, 4, 46, 0, 4, 47, 0, 4, 48, 0, 5, 45, 0, 5, 46, 0, 5, 47, 0, 5, 48, 0, 5, 49, 0, 6, 44, 0, 6, 45, 0, 6, 46, 0, 6, 47, 0, 6, 48, 0, 6, 49, 0, 6, 50, 0, 7, 43, 0, 7, 44, 0, 7, 45, 0, 7, 46, 0, 7, 47, 0, 7, 48, 0, 7, 49, 0, 7, 50, 0, 7, 51, 0, 8, 43, 0, 8, 44, 0, 8, 45, 0, 8, 46, 0, 8, 47, 0, 8, 48, 0, 8, 49, 0, 8, 50, 0, 8, 51, 0, 9, 43, 0, 9, 44, 0, 9, 45, 0, 9, 46, 0, 9, 47, 0, 9, 48, 0, 9, 49, 0, 9, 50, 0, 9, 51, 0, 10, 44, 0, 10, 45, 0, 10, 46, 0, 10, 47, 0, 10, 48, 0, 10, 49, 0, 10, 50, 0, 11, 45, 0, 11, 46, 0, 11, 47, 0, 11, 48, 0, 11, 49, 0, 12, 46, 0, 12, 47, 0, 12, 48, 0, 16, 45, 0, 16, 46, 0, 16, 47, 0, 16, 48, 0, 16, 49, 0, 17, 44, 0, 17, 45, 0, 17, 46, 0, 17, 47, 0, 17, 48, 0, 17, 49, 0, 17, 50, 0, 18, 43, 0, 18, 44, 0, 18, 45, 0, 18, 46, 0, 18, 47, 0, 18, 48, 0, 18, 49, 0, 18, 50, 0, 18, 51, 0, 19, 42, 0, 19, 43, 0, 19, 44, 0, 19, 45, 0, 19, 46, 0, 19, 47, 0, 19, 48, 0, 19, 49, 0, 19, 50, 0, 19, 51, 0, 19, 52, 0, 20, 42, 0, 20, 43, 0, 20, 44, 0, 20, 45, 0, 20, 46, 0, 20, 47, 0, 20, 48, 0, 20, 49, 0, 20, 50, 0, 20, 51, 0, 20, 52, 0, 21, 42, 0, 21, 43, 0, 21, 44, 0, 21, 45, 0, 21, 46, 0, 21, 47, 0, 21, 48, 0, 21, 49, 0, 21, 50, 0, 21, 51, 0, 21, 52, 0, 22, 42, 0, 22, 43, 0, 22, 44, 0, 22, 45, 0, 22, 46, 0, 22, 47, 0, 22, 48, 0, 22, 49, 0, 22, 50, 0, 22, 51, 0, 22, 52, 0, 23, 42, 0, 23, 43, 0, 23, 44, 0, 23, 45, 0, 23, 46, 0, 23, 47, 0, 23, 48, 0, 23, 49, 0, 23, 50, 0, 23, 51, 0, 23, 52, 0, 24, 43, 0, 24, 44, 0, 24, 45, 0, 24, 46, 0, 24, 47, 0, 24, 48, 0, 24, 49, 0, 24, 50, 0, 24, 51, 0, 25, 44, 0, 25, 45, 0, 25, 46, 0, 25, 47, 0, 25, 48, 0, 25, 49, 0, 25, 50, 0, 26, 45, 0, 26, 46, 0, 26, 47, 0, 26, 48, 0, 26, 49, 0, 196635, 19, 24, 65546, 8, 21, 65546, 9, 21, 65546, 10, 21, 65545, 10, 21, 65546, 11, 21, 65547, 11, 21, 65548, 10, 21, 65548, 9, 21, 65547, 9, 21, 65547, 10, 18, 65539, 7, 21, 65539, 8, 21, 65540, 8, 21, 65541, 8, 21, 65542, 8, 21, 65542, 7, 21, 65541, 7, 21, 65540, 7, 18, 65541, 6, 21, 65540, 6, 21, 65540, 9, 21, 65541, 9, 21, 65545, 9, 21, 65547, 8, 21, 65541, 15, 20, 65539, 13, 20, 65543, 0, 20, 9, 3, 2, 10, 4, 2, 12, 5, 2, 13, 6, 2, 14, 7, 2, 15, 10, 2, 16, 12, 2, 17, 13, 2, 26, 11, 2, 27, 12, 2, 65532, 13, 2, 14, 65527, 2, 13, 65526, 2, 12, 65524, 2, 11, 65523, 2, 10, 65522, 2, 14, 65531, 1441794, 10, 65532, 1441794, 9, 14, 1441794, 8, 15, 1441794, 1, 20, 1441794, 0, 21, 1441794, 65535, 22, 1441794, 65531, 22, 655362, 65528, 21, 655362, 65527, 20, 655362, 65526, 19, 655362, 4, 15, 655362, 1, 9, 655362, 1, 65532, 655362, 0, 65531, 655362, 65535, 65530, 655362, 18, 21, 655362, 17, 20, 655362, 16, 19, 655362, 21, 23, 655362, 20, 22, 655362, 22, 24, 655362, 15, 15, 655362, 14, 14, 655362, 18, 13, 1048578, 19, 12, 1048578, 20, 11, 1048578, 65528, 13, 1048578, 65527, 14, 1048578, 65526, 15, 1048578, 1, 5, 1048578, 2, 4, 1048578, 3, 3, 1048578, 65535, 65526, 1048578, 0, 65525, 1048578, 1, 65524, 1048578, 3, 65523, 1048578, 4, 65522, 1048578, 65535, 14, 2, 28, 24, 1441794, 29, 23, 1441794, 30, 22, 1441794, 28, 13, 2, 29, 14, 2, 30, 15, 2, 30, 16, 0, 65564, 13, 2, 65565, 14, 2, 65566, 15, 2, 16, 13, 0, 15, 14, 0) +"cells": PackedInt32Array(3, 6, 0, 3, 7, 0, 3, 8, 0, 4, 5, 0, 4, 6, 0, 4, 7, 0, 4, 8, 0, 4, 9, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 5, 7, 0, 5, 8, 0, 5, 9, 0, 5, 10, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 6, 6, 0, 6, 7, 0, 6, 8, 0, 6, 9, 0, 6, 10, 0, 6, 11, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 7, 7, 0, 7, 8, 0, 7, 9, 0, 7, 10, 0, 7, 11, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 8, 6, 0, 8, 7, 0, 8, 8, 0, 8, 9, 0, 8, 10, 0, 8, 11, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 9, 7, 0, 9, 8, 0, 9, 9, 0, 9, 10, 0, 10, 5, 0, 10, 6, 0, 10, 7, 0, 10, 8, 0, 10, 9, 0, 11, 6, 0, 11, 7, 0, 11, 8, 0, 8, 12, 0, 9, 11, 0, 9, 12, 0, 9, 13, 0, 10, 10, 0, 10, 11, 0, 10, 12, 0, 10, 13, 0, 11, 5, 0, 11, 9, 0, 11, 10, 0, 11, 11, 0, 11, 12, 0, 11, 13, 0, 12, 6, 0, 12, 7, 0, 12, 8, 0, 12, 9, 0, 12, 10, 0, 12, 11, 0, 12, 12, 0, 13, 7, 0, 13, 8, 0, 13, 9, 0, 13, 10, 0, 13, 11, 0, 14, 8, 0, 14, 9, 0, 14, 10, 0, 2, 10, 0, 2, 11, 0, 2, 12, 0, 3, 9, 0, 3, 10, 0, 3, 11, 0, 3, 12, 0, 3, 13, 0, 4, 10, 0, 4, 11, 0, 4, 12, 0, 4, 13, 0, 4, 14, 0, 5, 11, 0, 5, 12, 0, 5, 13, 0, 5, 14, 0, 5, 15, 0, 6, 12, 0, 6, 13, 0, 6, 14, 0, 6, 15, 0, 7, 12, 0, 7, 13, 0, 7, 14, 0, 7, 15, 0, 8, 13, 0, 8, 14, 0, 1, 6, 0, 1, 7, 0, 1, 8, 0, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 9, 0, 3, 4, 0, 3, 5, 0, 4, 3, 0, 4, 4, 0, 5, 3, 0, 65535, 65527, 0, 65535, 65528, 0, 65535, 65529, 0, 0, 65526, 0, 0, 65527, 0, 0, 65528, 0, 0, 65529, 0, 0, 65530, 0, 1, 65525, 0, 1, 65526, 0, 1, 65527, 0, 1, 65528, 0, 1, 65529, 0, 1, 65530, 0, 1, 65531, 0, 2, 65524, 0, 2, 65525, 0, 2, 65526, 0, 2, 65527, 0, 2, 65528, 0, 2, 65529, 0, 2, 65530, 0, 2, 65531, 0, 2, 65532, 0, 3, 65524, 0, 3, 65525, 0, 3, 65526, 0, 3, 65527, 0, 3, 65528, 0, 3, 65529, 0, 3, 65530, 0, 3, 65531, 0, 3, 65532, 0, 4, 65523, 0, 4, 65524, 0, 4, 65527, 0, 4, 65528, 0, 4, 65529, 0, 4, 65530, 0, 4, 65531, 0, 4, 65532, 0, 5, 65522, 0, 5, 65523, 0, 5, 65524, 0, 5, 65525, 0, 5, 65529, 0, 5, 65530, 0, 5, 65531, 0, 5, 65532, 0, 6, 65522, 0, 6, 65523, 0, 6, 65524, 0, 6, 65525, 0, 6, 65526, 0, 6, 65527, 0, 6, 65530, 0, 6, 65531, 0, 6, 65532, 0, 7, 65522, 0, 7, 65523, 0, 7, 65524, 0, 7, 65525, 0, 7, 65526, 0, 7, 65527, 0, 7, 65528, 0, 7, 65531, 0, 7, 65532, 0, 8, 65522, 0, 8, 65523, 0, 8, 65524, 0, 8, 65525, 0, 8, 65526, 0, 8, 65527, 0, 8, 65528, 0, 8, 65529, 0, 8, 65532, 0, 9, 65522, 0, 9, 65523, 0, 9, 65524, 0, 9, 65525, 0, 9, 65526, 0, 9, 65527, 0, 9, 65528, 0, 9, 65529, 0, 9, 65530, 0, 9, 65531, 0, 9, 65532, 0, 10, 65523, 0, 10, 65524, 0, 10, 65525, 0, 10, 65526, 0, 10, 65527, 0, 10, 65528, 0, 10, 65529, 0, 10, 65530, 0, 10, 65531, 0, 11, 65524, 0, 11, 65525, 0, 11, 65526, 0, 11, 65527, 0, 11, 65528, 0, 11, 65529, 0, 11, 65530, 0, 11, 65531, 0, 12, 65525, 0, 12, 65526, 0, 12, 65527, 0, 12, 65528, 0, 12, 65529, 0, 12, 65530, 0, 12, 65531, 0, 13, 65527, 0, 13, 65528, 0, 13, 65529, 0, 13, 65530, 0, 13, 65531, 0, 14, 65528, 0, 14, 65529, 0, 14, 65530, 0, 65526, 16, 0, 65526, 17, 0, 65526, 18, 0, 65527, 15, 0, 65527, 16, 0, 65527, 17, 0, 65527, 18, 0, 65527, 19, 0, 65528, 14, 0, 65528, 15, 0, 65528, 16, 0, 65528, 17, 0, 65528, 18, 0, 65528, 19, 0, 65528, 20, 0, 65529, 13, 0, 65529, 14, 0, 65529, 15, 0, 65529, 16, 0, 65529, 17, 0, 65529, 18, 0, 65529, 19, 0, 65529, 20, 0, 65529, 21, 0, 65530, 13, 0, 65530, 14, 0, 65530, 15, 0, 65530, 16, 0, 65530, 17, 0, 65530, 18, 0, 65530, 19, 0, 65530, 20, 0, 65530, 21, 0, 65531, 13, 0, 65531, 14, 0, 65531, 15, 0, 65531, 16, 0, 65531, 17, 0, 65531, 18, 0, 65531, 19, 0, 65531, 20, 0, 65531, 21, 0, 65532, 14, 0, 65532, 15, 0, 65532, 16, 0, 65532, 17, 0, 65532, 18, 0, 65532, 19, 0, 65532, 20, 0, 65532, 21, 0, 65532, 22, 0, 65533, 14, 0, 65533, 15, 0, 65533, 16, 0, 65533, 17, 0, 65533, 18, 0, 65533, 19, 0, 65533, 20, 0, 65533, 21, 0, 65533, 22, 0, 65534, 14, 0, 65534, 15, 0, 65534, 16, 0, 65534, 17, 0, 65534, 18, 0, 65534, 19, 0, 65534, 20, 0, 65534, 21, 0, 65534, 22, 0, 65535, 15, 0, 65535, 16, 0, 65535, 17, 0, 65535, 18, 0, 65535, 19, 0, 65535, 20, 0, 65535, 21, 0, 0, 16, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 1, 18, 0, 1, 19, 0, 16, 16, 0, 16, 17, 0, 16, 18, 0, 17, 15, 0, 17, 16, 0, 17, 17, 0, 17, 18, 0, 17, 19, 0, 18, 14, 0, 18, 15, 0, 18, 16, 0, 18, 17, 0, 18, 18, 0, 18, 19, 0, 18, 20, 0, 19, 13, 0, 19, 14, 0, 19, 15, 0, 19, 16, 0, 19, 17, 0, 19, 18, 0, 19, 19, 0, 19, 20, 0, 19, 21, 0, 20, 12, 0, 20, 13, 0, 20, 14, 0, 20, 15, 0, 20, 16, 0, 20, 17, 0, 20, 18, 0, 20, 19, 0, 20, 20, 0, 20, 21, 0, 21, 11, 0, 21, 12, 0, 21, 13, 0, 21, 14, 0, 21, 15, 0, 21, 16, 0, 21, 17, 0, 21, 18, 0, 21, 19, 0, 21, 20, 0, 21, 21, 0, 22, 11, 0, 22, 12, 0, 22, 13, 0, 22, 14, 0, 22, 15, 0, 22, 16, 0, 22, 17, 0, 22, 18, 0, 22, 19, 0, 22, 20, 0, 22, 21, 0, 23, 11, 0, 23, 12, 0, 23, 13, 0, 23, 14, 0, 23, 15, 0, 23, 16, 0, 23, 17, 0, 23, 18, 0, 23, 19, 0, 23, 20, 0, 23, 21, 0, 24, 11, 0, 24, 12, 0, 24, 13, 0, 24, 14, 0, 24, 15, 0, 24, 16, 0, 24, 17, 0, 24, 18, 0, 24, 19, 0, 24, 20, 0, 24, 21, 0, 25, 11, 0, 25, 12, 0, 25, 13, 0, 25, 14, 0, 25, 15, 0, 25, 16, 0, 25, 17, 0, 25, 18, 0, 25, 19, 0, 25, 20, 0, 25, 21, 0, 26, 12, 0, 26, 13, 0, 26, 14, 0, 26, 15, 0, 26, 16, 0, 26, 17, 0, 26, 18, 0, 26, 19, 0, 26, 20, 0, 27, 13, 0, 27, 14, 0, 27, 15, 0, 27, 16, 0, 27, 17, 0, 27, 18, 0, 27, 19, 0, 28, 14, 0, 28, 15, 0, 28, 16, 0, 28, 17, 0, 28, 18, 0, 4, 65525, 0, 4, 65526, 0, 5, 65526, 0, 5, 65527, 0, 5, 65528, 0, 6, 65528, 0, 6, 65529, 0, 7, 65529, 0, 7, 65530, 0, 8, 65530, 0, 8, 65531, 0, 65539, 65526, 18, 65538, 65528, 18, 65540, 65527, 18, 65541, 65525, 18, 65544, 65526, 18, 65546, 65528, 18, 65547, 65525, 18, 65549, 65529, 18, 65540, 65529, 18, 65539, 65528, 23, 65538, 65529, 23, 65546, 65527, 23, 65545, 65528, 23, 65548, 65529, 23, 65546, 65525, 23, 65543, 65526, 23, 65536, 65527, 16, 21, 22, 0, 22, 22, 0, 22, 23, 0, 23, 22, 0, 23, 23, 0, 23, 24, 0, 24, 22, 0, 24, 23, 0, 24, 24, 0, 25, 22, 0, 25, 23, 0, 25, 24, 0, 26, 21, 0, 26, 22, 0, 26, 23, 0, 26, 24, 0, 27, 20, 0, 27, 21, 0, 27, 22, 0, 27, 23, 0, 27, 24, 0, 28, 19, 0, 28, 20, 0, 28, 21, 0, 28, 22, 0, 28, 23, 0, 29, 16, 0, 29, 17, 0, 29, 18, 0, 29, 19, 0, 29, 20, 0, 29, 21, 0, 29, 22, 0, 30, 17, 0, 30, 18, 0, 30, 19, 0, 30, 20, 0, 30, 21, 0, 65558, 16, 0, 65558, 17, 0, 65558, 18, 0, 65559, 15, 0, 65559, 16, 0, 65559, 17, 0, 65559, 18, 0, 65559, 19, 0, 65560, 14, 0, 65560, 15, 0, 65560, 16, 0, 65560, 17, 0, 65560, 18, 0, 65560, 19, 0, 65560, 20, 0, 65561, 13, 0, 65561, 14, 0, 65561, 15, 0, 65561, 16, 0, 65561, 17, 0, 65561, 18, 0, 65561, 19, 0, 65561, 20, 0, 65561, 21, 0, 65562, 13, 0, 65562, 14, 0, 65562, 15, 0, 65562, 16, 0, 65562, 17, 0, 65562, 18, 0, 65562, 19, 0, 65562, 20, 0, 65562, 21, 0, 65563, 13, 0, 65563, 14, 0, 65563, 15, 0, 65563, 16, 0, 65563, 17, 0, 65563, 18, 0, 65563, 19, 0, 65563, 20, 0, 65563, 21, 0, 65564, 14, 0, 65564, 15, 0, 65564, 16, 0, 65564, 17, 0, 65564, 18, 0, 65564, 19, 0, 65564, 20, 0, 65565, 15, 0, 65565, 16, 0, 65565, 17, 0, 65565, 18, 0, 65565, 19, 0, 65566, 16, 0, 65566, 17, 0, 65566, 18, 0, 65558, 19, 0, 65558, 20, 0, 65558, 21, 0, 65558, 22, 0, 65559, 20, 0, 65559, 21, 0, 65559, 22, 0, 65559, 23, 0, 65560, 21, 0, 65560, 22, 0, 65560, 23, 0, 65560, 24, 0, 65561, 22, 0, 65561, 23, 0, 65561, 24, 0, 65562, 22, 0, 65562, 23, 0, 65562, 24, 0, 65563, 22, 0, 65563, 23, 0, 65564, 21, 0, 65564, 22, 0, 65565, 20, 0, 65565, 21, 0, 65557, 16, 1048593, 65557, 17, 1048593, 65557, 18, 1048593, 65557, 19, 1048593, 65557, 20, 1048593, 65557, 21, 1048593, 65557, 22, 1048593, 65558, 15, 1048593, 65559, 14, 1048593, 65560, 13, 1048593, 65558, 23, 1048593, 65559, 24, 1048593, 65563, 24, 1441794, 65564, 23, 1441794, 65565, 22, 1441794, 65566, 21, 1441809, 65566, 20, 1441809, 65566, 19, 1441809, 131097, 15, 1441802, 131097, 16, 1441802, 131097, 17, 1441802, 131097, 18, 1441802, 131097, 19, 1441802, 131097, 20, 1441802, 131097, 21, 1441802, 131097, 22, 1441802, 131097, 23, 1441802, 131098, 23, 1441802, 131096, 23, 1441802, 131095, 22, 1441802, 131095, 21, 1441802, 131095, 20, 1441802, 131095, 19, 1441802, 131095, 18, 1441802, 131095, 17, 1441802, 131095, 16, 1441802, 131096, 15, 1441802, 131098, 15, 1441802, 131099, 16, 1441802, 131099, 17, 1441802, 131099, 18, 1441802, 131099, 19, 1441802, 131099, 20, 1441802, 131099, 21, 1441802, 131099, 22, 1441802, 131098, 22, 1441802, 131098, 21, 1441802, 131098, 20, 1441802, 131098, 19, 1441802, 131098, 17, 1441802, 131098, 16, 1441802, 131098, 18, 1441802, 131096, 18, 1441802, 131096, 17, 1441802, 131096, 16, 1441802, 131096, 19, 1441802, 131096, 20, 1441802, 131096, 21, 1441802, 131096, 22, 1441802, 131100, 16, 1441806, 131100, 17, 1441806, 131100, 18, 1441806, 131100, 19, 1441806, 131100, 20, 1441806, 131100, 21, 1441806, 131100, 22, 1441806, 131099, 23, 1441806, 131099, 15, 1441806, 131095, 15, 1048590, 131094, 16, 1048590, 131094, 17, 1048590, 131094, 18, 1048590, 131094, 19, 1048590, 131094, 20, 1048590, 131094, 21, 1048590, 131094, 22, 1048590, 131095, 23, 1048590, 196634, 16, 1048595, 196632, 22, 1048595, 196634, 21, 1048595, 65558, 12, 1048598, 65557, 12, 1048594, 65554, 16, 1048598, 65555, 20, 1048598, 196633, 17, 1048592, 16, 14, 1048577, 16, 15, 0, 17, 14, 0, 14, 13, 1048576, 13, 12, 1048576, 14, 11, 1048576, 15, 12, 1048576, 14, 12, 1048576, 15, 13, 1048576, 15, 11, 1048576, 13, 13, 1048576, 12, 13, 1048576, 1, 17, 0, 0, 17, 0, 3, 14, 655362, 2, 14, 1048585, 0, 15, 2, 1, 15, 1048585, 2, 15, 1048585, 1, 14, 1048585, 2, 13, 655362, 1, 16, 2, 131067, 15, 1048594, 131069, 18, 1048594, 131065, 18, 1048594, 65526, 47, 0, 65527, 46, 0, 65527, 47, 0, 65527, 48, 0, 65528, 47, 0, 65532, 46, 0, 65532, 47, 0, 65532, 48, 0, 65533, 45, 0, 65533, 46, 0, 65533, 47, 0, 65533, 48, 0, 65533, 49, 0, 65534, 45, 0, 65534, 46, 0, 65534, 47, 0, 65534, 48, 0, 65534, 49, 0, 65535, 45, 0, 65535, 46, 0, 65535, 47, 0, 65535, 48, 0, 65535, 49, 0, 0, 46, 0, 0, 47, 0, 0, 48, 0, 4, 46, 0, 4, 47, 0, 4, 48, 0, 5, 45, 0, 5, 46, 0, 5, 47, 0, 5, 48, 0, 5, 49, 0, 6, 44, 0, 6, 45, 0, 6, 46, 0, 6, 47, 0, 6, 48, 0, 6, 49, 0, 6, 50, 0, 7, 43, 0, 7, 44, 0, 7, 45, 0, 7, 46, 0, 7, 47, 0, 7, 48, 0, 7, 49, 0, 7, 50, 0, 7, 51, 0, 8, 43, 0, 8, 44, 0, 8, 45, 0, 8, 46, 0, 8, 47, 0, 8, 48, 0, 8, 49, 0, 8, 50, 0, 8, 51, 0, 9, 43, 0, 9, 44, 0, 9, 45, 0, 9, 46, 0, 9, 47, 0, 9, 48, 0, 9, 49, 0, 9, 50, 0, 9, 51, 0, 10, 44, 0, 10, 45, 0, 10, 46, 0, 10, 47, 0, 10, 48, 0, 10, 49, 0, 10, 50, 0, 11, 45, 0, 11, 46, 0, 11, 47, 0, 11, 48, 0, 11, 49, 0, 12, 46, 0, 12, 47, 0, 12, 48, 0, 16, 45, 0, 16, 46, 0, 16, 47, 0, 16, 48, 0, 16, 49, 0, 17, 44, 0, 17, 45, 0, 17, 46, 0, 17, 47, 0, 17, 48, 0, 17, 49, 0, 17, 50, 0, 18, 43, 0, 18, 44, 0, 18, 45, 0, 18, 46, 0, 18, 47, 0, 18, 48, 0, 18, 49, 0, 18, 50, 0, 18, 51, 0, 19, 42, 0, 19, 43, 0, 19, 44, 0, 19, 45, 0, 19, 46, 0, 19, 47, 0, 19, 48, 0, 19, 49, 0, 19, 50, 0, 19, 51, 0, 19, 52, 0, 20, 42, 0, 20, 43, 0, 20, 44, 0, 20, 45, 0, 20, 46, 0, 20, 47, 0, 20, 48, 0, 20, 49, 0, 20, 50, 0, 20, 51, 0, 20, 52, 0, 21, 42, 0, 21, 43, 0, 21, 44, 0, 21, 45, 0, 21, 46, 0, 21, 47, 0, 21, 48, 0, 21, 49, 0, 21, 50, 0, 21, 51, 0, 21, 52, 0, 22, 42, 0, 22, 43, 0, 22, 44, 0, 22, 45, 0, 22, 46, 0, 22, 47, 0, 22, 48, 0, 22, 49, 0, 22, 50, 0, 22, 51, 0, 22, 52, 0, 23, 42, 0, 23, 43, 0, 23, 44, 0, 23, 45, 0, 23, 46, 0, 23, 47, 0, 23, 48, 0, 23, 49, 0, 23, 50, 0, 23, 51, 0, 23, 52, 0, 24, 43, 0, 24, 44, 0, 24, 45, 0, 24, 46, 0, 24, 47, 0, 24, 48, 0, 24, 49, 0, 24, 50, 0, 24, 51, 0, 25, 44, 0, 25, 45, 0, 25, 46, 0, 25, 47, 0, 25, 48, 0, 25, 49, 0, 25, 50, 0, 26, 45, 0, 26, 46, 0, 26, 47, 0, 26, 48, 0, 26, 49, 0, 196635, 19, 24, 65546, 8, 21, 65546, 9, 21, 65546, 10, 21, 65545, 10, 21, 65546, 11, 21, 65547, 11, 21, 65548, 10, 21, 65548, 9, 21, 65547, 9, 21, 65547, 10, 18, 65539, 7, 21, 65539, 8, 21, 65540, 8, 21, 65541, 8, 21, 65542, 8, 21, 65542, 7, 21, 65541, 7, 21, 65540, 7, 18, 65541, 6, 21, 65540, 6, 21, 65540, 9, 21, 65541, 9, 21, 65545, 9, 21, 65547, 8, 21, 65541, 15, 20, 65539, 13, 20, 9, 3, 2, 10, 4, 2, 12, 5, 2, 13, 6, 2, 14, 7, 2, 15, 10, 2, 16, 12, 2, 17, 13, 2, 26, 11, 2, 27, 12, 2, 65532, 13, 2, 14, 65527, 2, 13, 65526, 2, 12, 65524, 2, 11, 65523, 2, 10, 65522, 2, 14, 65531, 1441794, 10, 65532, 1441794, 9, 14, 1441794, 8, 15, 1441794, 1, 20, 1441794, 0, 21, 1441794, 65535, 22, 1441794, 65531, 22, 655362, 65528, 21, 655362, 65527, 20, 655362, 65526, 19, 655362, 4, 15, 655362, 1, 9, 655362, 1, 65532, 655362, 0, 65531, 655362, 65535, 65530, 655362, 18, 21, 655362, 17, 20, 655362, 16, 19, 655362, 21, 23, 655362, 20, 22, 655362, 22, 24, 655362, 15, 15, 655362, 14, 14, 655362, 18, 13, 1048578, 19, 12, 1048578, 20, 11, 1048578, 65528, 13, 1048578, 65527, 14, 1048578, 65526, 15, 1048578, 1, 5, 1048578, 2, 4, 1048578, 3, 3, 1048578, 65535, 65526, 1048578, 0, 65525, 1048578, 1, 65524, 1048578, 3, 65523, 1048578, 4, 65522, 1048578, 65535, 14, 2, 28, 24, 1441794, 29, 23, 1441794, 30, 22, 1441794, 28, 13, 2, 29, 14, 2, 30, 15, 2, 30, 16, 0, 65564, 13, 2, 65565, 14, 2, 65566, 15, 2, 16, 13, 0, 15, 14, 0) } metadata/_editor_floor_ = Vector3(0, 0, 0) [node name="Mountain Clouds" parent="." instance=ExtResource("3_ucvrj")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.824, 2.5, 12.082) +[node name="Moving Platform" parent="." instance=ExtResource("7_fuq03")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -6) + +[node name="Moving Platform2" parent="." instance=ExtResource("7_fuq03")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10) + +[node name="Target" parent="Moving Platform2" index="2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4) + [node name="Powerups" type="Node" parent="."] [node name="Powerup" parent="Powerups" instance=ExtResource("2_4e2nk")] @@ -149,3 +159,5 @@ float_speed_max = 2.0 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -34, 0) shape = SubResource("BoxShape3D_4u8tk") + +[editable path="Moving Platform2"] diff --git a/examples/forest-brawl/scenes/brawler.tscn b/examples/forest-brawl/scenes/brawler.tscn index 65be7ea..a7f29d8 100644 --- a/examples/forest-brawl/scenes/brawler.tscn +++ b/examples/forest-brawl/scenes/brawler.tscn @@ -95,6 +95,8 @@ properties/1/sync = false properties/1/watch = true [node name="Brawler" type="CharacterBody3D" groups=["Brawlers"]] +platform_on_leave = 2 +platform_floor_layers = 0 script = ExtResource("1_np8na") speed = 4.0 death_depth = 16.0 @@ -103,73 +105,6 @@ respawn_time = 8.0 [node name="bomber-guy" parent="." instance=ExtResource("7_ij3cr")] transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, -0.5, 0) -[node name="Skeleton3D" parent="bomber-guy/rig" index="0"] -bones/0/position = Vector3(3.20746e-15, 0.583857, -0.0893679) -bones/0/rotation = Quaternion(0.255292, -7.97688e-15, 1.00226e-14, 0.966864) -bones/1/rotation = Quaternion(0.0205548, 1.19184e-07, 2.45031e-09, 0.999789) -bones/1/scale = Vector3(1.01931, 0.96247, 1.01931) -bones/2/rotation = Quaternion(0.096395, -4.59033e-12, 2.30305e-08, 0.995343) -bones/2/scale = Vector3(1.04897, 0.907002, 1.05131) -bones/3/rotation = Quaternion(-0.181044, -1.17239e-07, -2.15821e-08, 0.983475) -bones/3/scale = Vector3(0.935252, 1.1196, 0.963441) -bones/4/rotation = Quaternion(0.376178, 1.10453e-07, 4.48439e-08, 0.926548) -bones/4/scale = Vector3(0.922825, 1.17435, 0.922825) -bones/5/rotation = Quaternion(-0.0765415, -3.93158e-08, -1.58714e-08, 0.997066) -bones/5/scale = Vector3(1.00009, 1.00661, 0.995893) -bones/6/rotation = Quaternion(-0.43687, -4.72473e-08, -2.26897e-08, 0.899525) -bones/6/scale = Vector3(1.08356, 1.00264, 0.945663) -bones/7/position = Vector3(-3.6176e-08, 0.583857, -0.0893679) -bones/7/rotation = Quaternion(-0.135651, -0.571304, -0.59224, 0.551781) -bones/8/position = Vector3(3.6176e-08, 0.583857, -0.0893679) -bones/8/rotation = Quaternion(-0.135651, 0.571304, 0.59224, 0.551781) -bones/9/position = Vector3(0.185305, 0.611893, -0.0339381) -bones/9/rotation = Quaternion(0.905251, -2.21189e-05, -0.000117811, 0.424877) -bones/9/scale = Vector3(1.00629, 0.987535, 1.00629) -bones/10/rotation = Quaternion(1.23085e-07, -5.52346e-06, -2.98159e-11, 1) -bones/11/rotation = Quaternion(0.385459, 6.31284e-06, -3.32111e-05, 0.922725) -bones/11/scale = Vector3(1.0012, 0.988229, 1.01087) -bones/12/rotation = Quaternion(-9.67563e-08, 8.29257e-06, -2.16274e-09, 1) -bones/13/rotation = Quaternion(-0.505198, 0.000109451, 2.25149e-05, 0.863003) -bones/13/scale = Vector3(0.992628, 0.997842, 1.00979) -bones/14/rotation = Quaternion(5.02433e-08, 0.977548, -0.210714, 2.33145e-07) -bones/14/scale = Vector3(0.99948, 1.00078, 0.999746) -bones/15/position = Vector3(-0.185305, 0.611893, -0.0339381) -bones/15/rotation = Quaternion(0.99633, 4.19078e-05, -0.000130651, -0.08559) -bones/15/scale = Vector3(1.00638, 0.987357, 1.00638) -bones/17/rotation = Quaternion(0.389683, 1.45563e-05, -3.68506e-05, 0.920949) -bones/17/scale = Vector3(1.00122, 0.987896, 1.0112) -bones/18/rotation = Quaternion(-4.84353e-08, 4.04099e-06, 1.10813e-08, 1) -bones/19/rotation = Quaternion(-0.871762, 8.53352e-05, 7.82363e-05, 0.48993) -bones/19/scale = Vector3(0.992445, 0.99873, 1.0091) -bones/20/rotation = Quaternion(1.02643e-08, 0.977516, -0.210861, -2.46051e-07) -bones/20/scale = Vector3(1.00003, 0.999961, 1.00001) -bones/21/position = Vector3(0.0507796, 1.02886, 0.287226) -bones/21/rotation = Quaternion(-0.472842, -0.270157, -0.416495, 0.727989) -bones/22/position = Vector3(0.242455, 1.04749, 0.191412) -bones/22/rotation = Quaternion(-0.280276, 0.143785, -0.88237, 0.349562) -bones/22/scale = Vector3(1.07211, 0.87008, 1.07211) -bones/23/rotation = Quaternion(3.18531e-08, 0.0853649, 8.32473e-08, 0.99635) -bones/24/rotation = Quaternion(0.421944, 0.147999, -0.308633, 0.839527) -bones/24/scale = Vector3(0.960023, 0.997541, 1.06918) -bones/25/rotation = Quaternion(2.97979e-08, -0.026165, -1.54692e-07, 0.999658) -bones/26/rotation = Quaternion(0.143976, -0.0275267, 0.0637975, 0.987139) -bones/26/scale = Vector3(1.00575, 0.989855, 1.00455) -bones/27/position = Vector3(-0.0507796, 1.02886, 0.287226) -bones/27/rotation = Quaternion(-0.472842, 0.270157, 0.416495, 0.727989) -bones/28/position = Vector3(-0.242455, 1.04749, 0.191412) -bones/28/rotation = Quaternion(-0.425562, -0.363618, 0.693798, 0.453127) -bones/28/scale = Vector3(0.983063, 1.03476, 0.983063) -bones/29/rotation = Quaternion(3.98409e-08, -0.0370571, -2.15209e-07, 0.999313) -bones/30/rotation = Quaternion(0.232389, -0.0893491, 0.253375, 0.93478) -bones/30/scale = Vector3(1.06864, 0.878868, 1.06637) -bones/31/rotation = Quaternion(-3.48398e-08, -0.117463, 1.57868e-07, 0.993077) -bones/32/rotation = Quaternion(0.41303, -0.11386, 0.189505, 0.883476) -bones/32/scale = Vector3(0.954337, 1.01045, 1.05417) -bones/33/position = Vector3(0.1184, 1.00881, 0.15031) -bones/33/rotation = Quaternion(-1.44276e-14, 0.544482, 0.838773, -2.01673e-14) -bones/34/position = Vector3(-0.1184, 1.00881, 0.15031) -bones/34/rotation = Quaternion(-1.44276e-14, 0.544482, 0.838773, -2.01673e-14) - [node name="AnimationTree" type="AnimationTree" parent="."] tree_root = SubResource("AnimationNodeBlendTree_8to0y") anim_player = NodePath("../bomber-guy/AnimationPlayer") @@ -227,5 +162,3 @@ replication_config = SubResource("SceneReplicationConfig_4cjl8") script = ExtResource("8_pj7o0") root = NodePath("..") properties = Array[String]([":transform"]) - -[editable path="bomber-guy"] diff --git a/examples/forest-brawl/scenes/moving-platform.tscn b/examples/forest-brawl/scenes/moving-platform.tscn new file mode 100644 index 0000000..86b436e --- /dev/null +++ b/examples/forest-brawl/scenes/moving-platform.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=5 format=3 uid="uid://cjavt41cokqv5"] + +[ext_resource type="Script" path="res://examples/forest-brawl/scripts/moving-platform.gd" id="1_q5d25"] +[ext_resource type="PackedScene" uid="uid://bnyoffewc4b" path="res://examples/forest-brawl/models/kenney-platformer-kit/blockHexagon.glb" id="2_h7k7v"] +[ext_resource type="Script" path="res://addons/netfox/tick-interpolator.gd" id="3_b65sx"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_y7a63"] +points = PackedVector3Array(-0.557, 0.890101, -0.299866, 0.648933, 0.781605, 0.229175, 0.62806, 0.823296, 0.270961, -0.0369031, 0.0136385, 0.556084, 0.0421915, 0.0163715, -0.552961, -0.163975, 0.823296, 0.646129, -0.5, 0.00740408, 0.281541, 0.0426543, 0.989841, -0.559451, 0.48164, 0.0113339, -0.2993, -0.495398, 0.988618, 0.298944, 0.523822, 0.76081, -0.45848, -0.5, 0.00740408, -0.281541, 0.48164, 0.0113339, 0.2993, 0.499254, 0.986877, 0.297878, -0.143102, 0.76081, -0.667022, 0.148614, 0.76081, 0.667022, -0.643422, 0.781605, 0.249937, 0.499253, 0.986876, -0.297878, -0.0372869, 0.991605, 0.561466, -0.518184, 0.76081, 0.45848, 0.148614, 0.802501, -0.667022, 0.648933, 0.781605, -0.229175, -0.643422, 0.781605, -0.249937, 0.523822, 0.76081, 0.45848, -0.518184, 0.76081, -0.45848, -0.495399, 0.988619, -0.298944, -0.0368981, 0.0136993, -0.556015, 0.0421962, 0.016314, 0.553027, -0.143102, 0.76081, 0.667022, -0.163975, 0.823296, -0.646129, 0.148614, 0.802501, 0.667022, -0.037283, 0.991557, -0.561412) + +[node name="Moving Platform" type="AnimatableBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, -6) +sync_to_physics = false +script = ExtResource("1_q5d25") +speed = 1.0 + +[node name="blockHexagon" parent="." instance=ExtResource("2_h7k7v")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_y7a63") + +[node name="Target" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -4) + +[node name="TickInterpolator" type="Node" parent="." node_paths=PackedStringArray("root")] +script = ExtResource("3_b65sx") +root = NodePath("..") +properties = Array[String]([":transform"]) diff --git a/examples/forest-brawl/scripts/brawler-controller.gd b/examples/forest-brawl/scripts/brawler-controller.gd index a0e01e6..bdd8a69 100644 --- a/examples/forest-brawl/scripts/brawler-controller.gd +++ b/examples/forest-brawl/scripts/brawler-controller.gd @@ -101,10 +101,19 @@ func _rollback_tick(delta, tick, is_fresh): if is_fresh: GameEvents.on_brawler_respawn.emit(self) - # Add the gravity. + # Apply gravity _force_update_is_on_floor() if not is_on_floor(): velocity.y -= gravity * delta + + # Stick to moving platforms + var platform_velocity := Vector3.ZERO + var collision_result := KinematicCollision3D.new() + if test_move(global_transform, Vector3.DOWN * delta, collision_result): + var collider := collision_result.get_collider() + if collider is MovingPlatform: + var platform := collider as MovingPlatform + platform_velocity = platform.get_velocity() # Jump if input.movement.y > 0 and is_on_floor(): @@ -124,9 +133,11 @@ func _rollback_tick(delta, tick, is_fresh): transform = transform.looking_at(position + Vector3(input.aim.x, 0, input.aim.z), Vector3.UP, true).scaled_local(scale) # Apply movement + velocity += platform_velocity velocity *= NetworkTime.physics_factor move_and_slide() velocity /= NetworkTime.physics_factor + velocity -= platform_velocity # Death if position.y < -death_depth and tick > respawn_tick and is_fresh: diff --git a/examples/forest-brawl/scripts/moving-platform.gd b/examples/forest-brawl/scripts/moving-platform.gd new file mode 100644 index 0000000..d527985 --- /dev/null +++ b/examples/forest-brawl/scripts/moving-platform.gd @@ -0,0 +1,27 @@ +extends AnimatableBody3D +class_name MovingPlatform + +@export var speed: float = 2. +@onready var _origin: Vector3 = global_position +@onready var _target: Vector3 = $Target.global_position +@onready var _distance: float = _origin.distance_to(_target) +var _velocity: Vector3 = Vector3.ZERO + +func get_velocity() -> Vector3: + return _velocity + +func _ready(): + NetworkRollback.on_prepare_tick.connect(_apply_tick) + +func _apply_tick(tick: int): + var previous_position = _get_position_for_tick(tick - 1) + global_position = _get_position_for_tick(tick) + + _velocity = (global_position - previous_position) / NetworkTime.ticktime + +func _get_position_for_tick(tick: int): + var distance_moved = NetworkTime.ticks_to_seconds(tick) * speed + var progress = distance_moved / _distance + progress = pingpong(progress, 1) + + return _origin.lerp(_target, progress)