diff --git a/assets/mesh_libraries/w1/w1_walls.meshlib b/assets/mesh_libraries/w1/w1_walls.meshlib index 1231501..11ff932 100644 Binary files a/assets/mesh_libraries/w1/w1_walls.meshlib and b/assets/mesh_libraries/w1/w1_walls.meshlib differ diff --git a/assets/shaders/flag.gdshader b/assets/shaders/flag.gdshader deleted file mode 100644 index cd18e0d..0000000 --- a/assets/shaders/flag.gdshader +++ /dev/null @@ -1,36 +0,0 @@ -shader_type spatial; -render_mode vertex_lighting, specular_disabled, cull_disabled; - -uniform vec3 color_bright : source_color = vec3(1.0); -uniform vec3 color_dark : source_color = vec3(0.0); -uniform float pivot = 0.0; -uniform float pivot_speed = 1.0; -uniform float waves = 4.0; -uniform float wave_speed = 1.0; -uniform float wave_scale = 0.25; - -void vertex() { - float body = (VERTEX.x) / 2.0; - - VERTEX.z = sin(VERTEX.x * waves + TIME * wave_speed) * wave_scale * body; - - float pivot_angle = cos(TIME * pivot_speed) * 0.1 * pivot; - mat2 rotation_matrix = mat2( - vec2(cos(pivot_angle), -sin(pivot_angle)), - vec2(sin(pivot_angle), cos(pivot_angle)) - ); - VERTEX.xz = rotation_matrix * VERTEX.xz; - - float color_weight = sin(VERTEX.x * waves + TIME * wave_speed); - COLOR = vec4(mix(color_dark, color_bright, color_weight), 1.0); - //VERTEX.z += cos(time + body) * wave; -} - -void fragment() { - ALBEDO = COLOR.rgb; -} - -//void light() { - // Called for every pixel for every light affecting the material. - // Uncomment to replace the default light processing function with this one. -//} diff --git a/assets/textures/objects/goal_hole.png b/assets/textures/objects/goal_hole.png deleted file mode 100644 index 2200068..0000000 Binary files a/assets/textures/objects/goal_hole.png and /dev/null differ diff --git a/assets/textures/objects/goal_hole.png.import b/assets/textures/objects/goal_hole.png.import deleted file mode 100644 index a4e55df..0000000 --- a/assets/textures/objects/goal_hole.png.import +++ /dev/null @@ -1,35 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cyxkbck2gs2wt" -path.s3tc="res://.godot/imported/goal_hole.png-82d98e7cb998351c16c7196fffe6486e.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} - -[deps] - -source_file="res://assets/textures/objects/goal_hole.png" -dest_files=["res://.godot/imported/goal_hole.png-82d98e7cb998351c16c7196fffe6486e.s3tc.ctex"] - -[params] - -compress/mode=2 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/assets/textures/shadow.png b/assets/textures/shadow.png index a29710e..07afc3a 100644 Binary files a/assets/textures/shadow.png and b/assets/textures/shadow.png differ diff --git a/objects/canny_cat.gd b/objects/canny_cat.gd index a4183ef..7059706 100644 --- a/objects/canny_cat.gd +++ b/objects/canny_cat.gd @@ -1,4 +1,3 @@ -class_name Player extends CharacterBody3D @@ -6,13 +5,9 @@ extends CharacterBody3D @export var power_sensitivity: float @export var power_threshold: float -@export var goal_animation_time: float = 1.0 - @export_group("Movement") @export var gravity: float @export var friction: float -@export var friction_coef: float -@export var friction_pow: float @export var stop_threshold: float @export_group("Camera", "camera_") @@ -23,10 +18,9 @@ extends CharacterBody3D @export_group("Node References") @export var state_chart: StateChart -@export var graphics: Node3D @export var power_indicator: Node3D @export var camera_arm: SpringArm3D -@export var collision_shape: CollisionShape3D +@export var wall_detector: PhysicsBody3D var power: float = 0.0: @@ -36,8 +30,6 @@ var power: float = 0.0: var charging_power: bool = false var prev_velocity: Vector3 = Vector3.ZERO -var _entered_goal: Node3D = self - func _ready() -> void: Input.mouse_mode = Input.MOUSE_MODE_CAPTURED @@ -65,13 +57,6 @@ func _unhandled_input(event: InputEvent) -> void: camera_arm.rotation.x = clampf(camera_arm.rotation.x, -camera_high_angle, -camera_low_angle) -#region Public Functions -func enter_goal(goal: GoalPost) -> void: - _entered_goal = goal - state_chart.send_event(&"goal_entered") -#endregion - - #region Charging func _start_charge() -> void: charging_power = true @@ -103,18 +88,13 @@ func _apply_gravity(delta: float) -> void: func _slow_to_stop(delta: float) -> void: if is_on_floor(): - var new_velocity = velocity * Vector3(1.0, 0.0, 1.0) - - #new_velocity = lerp(new_velocity, Vector3.ZERO, friction_coef * delta) - #new_velocity = lerp( - #new_velocity, Vector3.ZERO, - #power_scale * pow(friction_coef / new_velocity.length(), friction_pow * delta) - #) + var new_velocity = velocity + new_velocity.y = 0.0 new_velocity = new_velocity.move_toward(Vector3.ZERO, friction * delta) if new_velocity.length_squared() <= stop_threshold * stop_threshold: new_velocity = Vector3.ZERO - velocity.x = new_velocity.x - velocity.z = new_velocity.z + new_velocity.y = velocity.y + velocity = new_velocity func _bounce_on_walls(delta: float = 0.0) -> void: var h_vel = (prev_velocity * Vector3(1.0, 0.0, 1.0)) @@ -135,17 +115,3 @@ func _bounce_on_walls(delta: float = 0.0) -> void: #velocity.x = h_vel.x #velocity.z = h_vel.z #endregion - - -#region Winning -func _start_winning() -> void: - velocity = Vector3.ZERO - prev_velocity = velocity - collision_shape.disabled = true - - var tween = create_tween() - tween.set_process_mode(Tween.TWEEN_PROCESS_PHYSICS) - tween.tween_property(graphics, ^"scale", Vector3.ZERO, goal_animation_time) - tween.set_parallel(true) - tween.tween_property(graphics, ^"global_position", _entered_goal.global_position, goal_animation_time) -#endregion diff --git a/objects/canny_cat.tscn b/objects/canny_cat.tscn index 0a89229..be1cbb8 100644 --- a/objects/canny_cat.tscn +++ b/objects/canny_cat.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://cybm74xwbsivx"] +[gd_scene load_steps=15 format=3 uid="uid://cybm74xwbsivx"] [ext_resource type="Texture2D" uid="uid://3i17aqnrspma" path="res://assets/textures/player/canny.png" id="1_cp4br"] [ext_resource type="Script" path="res://objects/canny_cat.gd" id="1_twfq8"] @@ -9,8 +9,11 @@ [ext_resource type="Script" path="res://addons/godot_state_charts/transition.gd" id="7_epv8h"] [ext_resource type="Script" path="res://addons/godot_state_charts/expression_guard.gd" id="8_d5slg"] +[sub_resource type="CylinderShape3D" id="CylinderShape3D_0aipe"] +height = 0.25 +radius = 0.55 + [sub_resource type="SphereShape3D" id="SphereShape3D_4o01j"] -radius = 0.45 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2xpb7"] shading_mode = 0 @@ -32,7 +35,7 @@ resource_name = "Not Moving" script = ExtResource("8_d5slg") expression = "velocity.is_zero_approx()" -[node name="CannyCat" type="CharacterBody3D" node_paths=PackedStringArray("state_chart", "graphics", "power_indicator", "camera_arm", "collision_shape")] +[node name="CannyCat" type="CharacterBody3D" node_paths=PackedStringArray("state_chart", "power_indicator", "camera_arm", "wall_detector")] process_priority = -100 process_physics_priority = -100 collision_layer = 16 @@ -45,40 +48,32 @@ power_scale = 20.0 power_sensitivity = 0.01 power_threshold = 0.2 gravity = 10.0 -friction = 10.0 -friction_coef = 0.01 -friction_pow = 60.0 +friction = 5.0 stop_threshold = 0.1 camera_low_angle = 0.349066 camera_high_angle = 1.0472 camera_yaw_sensitivity = 0.00872665 camera_pitch_sensitivity = 0.00872665 state_chart = NodePath("StateChart") -graphics = NodePath("Graphics") power_indicator = NodePath("PowerIndicator") camera_arm = NodePath("CameraArm") -collision_shape = NodePath("CollisionShape3D") +wall_detector = NodePath("WallDetector") + +[node name="WallDetector" type="StaticBody3D" parent="."] +collision_layer = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="WallDetector"] +shape = SubResource("CylinderShape3D_0aipe") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] shape = SubResource("SphereShape3D_4o01j") -[node name="Graphics" type="Node3D" parent="."] - -[node name="CannySprite" type="Sprite3D" parent="Graphics"] +[node name="CannySprite" type="Sprite3D" parent="."] pixel_size = 0.0156 billboard = 1 texture_filter = 0 texture = ExtResource("1_cp4br") -[node name="ShadowArm" type="SpringArm3D" parent="Graphics"] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, -0.25, 0) -collision_mask = 7 -spring_length = 100.0 - -[node name="ShadowSprite" type="Sprite3D" parent="Graphics/ShadowArm"] -pixel_size = 0.0313 -texture = ExtResource("2_fwt6m") - [node name="PowerIndicator" type="Node3D" parent="."] visible = false @@ -89,6 +84,15 @@ cast_shadow = 0 gi_mode = 0 mesh = SubResource("CylinderMesh_b16dl") +[node name="ShadowArm" type="SpringArm3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) +collision_mask = 7 +spring_length = 100.0 + +[node name="ShadowSprite" type="Sprite3D" parent="ShadowArm"] +pixel_size = 0.0078 +texture = ExtResource("2_fwt6m") + [node name="CameraArm" type="SpringArm3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, 0, 0, 0) spring_length = 8.0 @@ -107,12 +111,6 @@ initial_expression_properties = { script = ExtResource("5_ox6hb") initial_state = NodePath("Moving") -[node name="on GoalEntered" type="Node" parent="StateChart/Root"] -script = ExtResource("7_epv8h") -to = NodePath("../Winning") -event = &"goal_entered" -delay_in_seconds = "0.0" - [node name="Idle" type="Node" parent="StateChart/Root"] script = ExtResource("6_bu01i") @@ -146,9 +144,6 @@ to = NodePath("../../Moving") event = &"charge_released" delay_in_seconds = "0.0" -[node name="Winning" type="Node" parent="StateChart/Root"] -script = ExtResource("6_bu01i") - [connection signal="state_physics_processing" from="StateChart/Root/Idle" to="." method="_apply_gravity"] [connection signal="state_physics_processing" from="StateChart/Root/Moving" to="." method="_slow_to_stop"] [connection signal="state_physics_processing" from="StateChart/Root/Moving" to="." method="_apply_gravity"] @@ -156,4 +151,3 @@ script = ExtResource("6_bu01i") [connection signal="state_entered" from="StateChart/Root/Charging" to="." method="_start_charge"] [connection signal="state_exited" from="StateChart/Root/Charging" to="." method="_end_charge"] [connection signal="state_physics_processing" from="StateChart/Root/Charging" to="." method="_update_charge"] -[connection signal="state_entered" from="StateChart/Root/Winning" to="." method="_start_winning"] diff --git a/objects/goal_post.gd b/objects/goal_post.gd deleted file mode 100644 index 21c8819..0000000 --- a/objects/goal_post.gd +++ /dev/null @@ -1,7 +0,0 @@ -class_name GoalPost -extends Node3D - - -func _on_player_detector_body_entered(body: Node3D) -> void: - if body is Player: - body.enter_goal(self) diff --git a/objects/goal_post.tscn b/objects/goal_post.tscn deleted file mode 100644 index 880dbcf..0000000 --- a/objects/goal_post.tscn +++ /dev/null @@ -1,70 +0,0 @@ -[gd_scene load_steps=9 format=3 uid="uid://cdpgby3r6xe4n"] - -[ext_resource type="Script" path="res://objects/goal_post.gd" id="1_08x2x"] -[ext_resource type="Shader" path="res://assets/shaders/flag.gdshader" id="2_xbid5"] -[ext_resource type="Texture2D" uid="uid://cyxkbck2gs2wt" path="res://assets/textures/objects/goal_hole.png" id="3_yg6kd"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_e2vbu"] -shading_mode = 2 -albedo_color = Color(0.196078, 0.235294, 0.223529, 1) -metallic_specular = 0.0 - -[sub_resource type="CylinderMesh" id="CylinderMesh_i27ie"] -material = SubResource("StandardMaterial3D_e2vbu") -top_radius = 0.1 -bottom_radius = 0.1 -height = 4.0 -radial_segments = 6 -rings = 8 - -[sub_resource type="ShaderMaterial" id="ShaderMaterial_3urv4"] -render_priority = 0 -shader = ExtResource("2_xbid5") -shader_parameter/color_bright = Color(1, 0.290196, 0.356863, 1) -shader_parameter/color_dark = Color(0.870588, 0.156863, 0.223529, 1) -shader_parameter/pivot = 2.0 -shader_parameter/pivot_speed = 1.0 -shader_parameter/waves = 6.0 -shader_parameter/wave_speed = 5.0 -shader_parameter/wave_scale = 0.25 - -[sub_resource type="QuadMesh" id="QuadMesh_mfpmh"] -material = SubResource("ShaderMaterial_3urv4") -size = Vector2(2, 1) -subdivide_width = 6 -center_offset = Vector3(1, 0, 0) - -[sub_resource type="CylinderShape3D" id="CylinderShape3D_eshe3"] -height = 0.5 - -[node name="GoalPost" type="Node3D"] -script = ExtResource("1_08x2x") - -[node name="Graphics" type="Node3D" parent="."] - -[node name="Pole" type="MeshInstance3D" parent="Graphics"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) -mesh = SubResource("CylinderMesh_i27ie") - -[node name="Flag" type="MeshInstance3D" parent="Graphics"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.5, 0) -mesh = SubResource("QuadMesh_mfpmh") - -[node name="Sprite3D" type="Sprite3D" parent="Graphics"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.01, 0) -pixel_size = 0.0313 -axis = 1 -alpha_cut = 2 -texture_filter = 0 -texture = ExtResource("3_yg6kd") - -[node name="PlayerDetector" type="Area3D" parent="."] -collision_layer = 0 -collision_mask = 16 -monitorable = false - -[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerDetector"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0) -shape = SubResource("CylinderShape3D_eshe3") - -[connection signal="body_entered" from="PlayerDetector" to="." method="_on_player_detector_body_entered"] diff --git a/objects/sand_pit.gd b/objects/sand_pit.gd deleted file mode 100644 index f1516d3..0000000 --- a/objects/sand_pit.gd +++ /dev/null @@ -1,30 +0,0 @@ -extends CSGPolygon3D - - -@export var friction: float - -@export_group("Node References") -@export var collision_polygon: CollisionPolygon3D - - -var _players: Array[Player] = [] - - -func _ready() -> void: - collision_polygon.polygon = polygon - collision_polygon.depth = depth - - -func _physics_process(delta: float) -> void: - for player in _players: - player.velocity = lerp(player.velocity, Vector3.ZERO, friction * delta) - - -func _on_body_entered(body: Node3D) -> void: - if body is Player: - _players.append(body) - - -func _on_body_exited(body: Node3D) -> void: - if body is Player: - _players.erase(body) diff --git a/objects/sand_pit.tscn b/objects/sand_pit.tscn deleted file mode 100644 index 4c00242..0000000 --- a/objects/sand_pit.tscn +++ /dev/null @@ -1,31 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://bfic5n608nc5j"] - -[ext_resource type="Texture2D" uid="uid://djx2x3jjn01w2" path="res://assets/textures/world/sand.png" id="1_yg8om"] -[ext_resource type="Script" path="res://objects/sand_pit.gd" id="2_vtyum"] - -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_r0cip"] -shading_mode = 2 -specular_mode = 2 -albedo_texture = ExtResource("1_yg8om") -metallic_specular = 0.0 -uv1_triplanar = true -uv1_world_triplanar = true -texture_filter = 0 - -[node name="SandPit" type="CSGPolygon3D" node_paths=PackedStringArray("collision_polygon")] -process_physics_priority = 100 -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) -depth = 0.03 -material = SubResource("StandardMaterial3D_r0cip") -script = ExtResource("2_vtyum") -friction = 9.0 -collision_polygon = NodePath("Area3D/CollisionPolygon3D") - -[node name="Area3D" type="Area3D" parent="."] -collision_layer = 0 -collision_mask = 16 - -[node name="CollisionPolygon3D" type="CollisionPolygon3D" parent="Area3D"] - -[connection signal="body_entered" from="Area3D" to="." method="_on_body_entered"] -[connection signal="body_exited" from="Area3D" to="." method="_on_body_exited"] diff --git a/project.godot b/project.godot index bef0700..d3010a1 100644 --- a/project.godot +++ b/project.godot @@ -19,7 +19,7 @@ config/icon="res://icon.svg" window/size/viewport_width=320 window/size/viewport_height=240 -window/stretch/mode="canvas_items" +window/stretch/mode="viewport" [editor_plugins] @@ -29,10 +29,6 @@ enabled=PackedStringArray("res://addons/godot_state_charts/plugin.cfg") import/blender/enabled=false -[global_group] - -friction_floor="" - [input] charge_shot={ diff --git a/test_scene.tscn b/test_scene.tscn index e12aff2..65954a8 100644 --- a/test_scene.tscn +++ b/test_scene.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=9 format=3 uid="uid://dllug6vijj18o"] +[gd_scene load_steps=8 format=3 uid="uid://dllug6vijj18o"] [ext_resource type="PackedScene" uid="uid://cybm74xwbsivx" path="res://objects/canny_cat.tscn" id="1_8qiqb"] [ext_resource type="MeshLibrary" uid="uid://cbs170roel08g" path="res://assets/mesh_libraries/w1/w1_floors.meshlib" id="2_ohutf"] [ext_resource type="MeshLibrary" uid="uid://bqxgr3arh0i7f" path="res://assets/mesh_libraries/w1/w1_walls.meshlib" id="3_k3r2h"] -[ext_resource type="PackedScene" uid="uid://cdpgby3r6xe4n" path="res://objects/goal_post.tscn" id="4_71ems"] -[ext_resource type="PackedScene" uid="uid://bfic5n608nc5j" path="res://objects/sand_pit.tscn" id="5_7n16u"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_81x51"] +albedo_color = Color(0.305715, 0.658195, 0.299865, 1) [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_akirf"] @@ -17,6 +18,12 @@ sky = SubResource("Sky_f657k") [node name="TestScene" type="Node3D"] +[node name="CSGBox3D" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.983766, -0.179455, 0, 0.179455, 0.983766, 0, -1.59434, 7.28085) +use_collision = true +size = Vector3(20, 0.5, 20) +material = SubResource("StandardMaterial3D_81x51") + [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(0.893065, 0.251134, -0.373318, 0, 0.82973, 0.558165, 0.449927, -0.498478, 0.741003, 0, 3.18312, 0) light_energy = 1.5 @@ -27,7 +34,7 @@ mesh_library = ExtResource("2_ohutf") cell_size = Vector3(1, 1, 1) cell_center_y = false data = { -"cells": PackedInt32Array(0, 65535, 0, 65535, 65535, 0, 65535, 0, 1441792, 65534, 0, 0, 65534, 65535, 0, 65534, 65534, 0, 65535, 65534, 0, 0, 65534, 0, 1, 65534, 0, 1, 65535, 0, 1, 0, 1441792, 65535, 1, 0, 65534, 1, 0, 1, 2, 0, 0, 2, 0, 65535, 2, 0, 65534, 2, 0, 65533, 2, 0, 65533, 1, 0, 65533, 0, 0, 65533, 65535, 0, 65533, 65534, 0, 65533, 65533, 0, 65534, 65533, 0, 0, 65533, 0, 65535, 65533, 0, 2, 1, 1441792, 3, 2, 0, 3, 1, 0, 0, 65532, 0, 65535, 65532, 0, 65534, 65532, 0, 65533, 65532, 0, 65532, 65532, 0, 65532, 65533, 0, 65532, 65534, 0, 65532, 65535, 0, 65532, 1, 0, 65532, 0, 0, 65532, 2, 0, 65532, 3, 0, 65533, 3, 0, 65534, 3, 0, 65535, 3, 0, 1, 3, 0, 2, 3, 0, 3, 3, 0, 0, 3, 0, 4, 3, 0, 4, 2, 0, 4, 1, 0, 2, 2, 0, 5, 4, 0, 4, 4, 0, 3, 4, 0, 2, 4, 0, 1, 4, 0, 0, 4, 0, 0, 5, 0, 65535, 5, 0, 65534, 5, 0, 65533, 5, 0, 65533, 4, 0, 65532, 4, 0, 65534, 4, 0, 65535, 4, 0, 3, 5, 0, 4, 5, 0, 5, 5, 0, 2, 5, 0, 1, 5, 0, 65532, 5, 0, 65531, 5, 0, 65531, 4, 0, 65531, 3, 0, 65531, 2, 0, 65531, 1, 0, 65530, 1, 0, 65530, 0, 0, 65530, 65535, 0, 65530, 65534, 0, 65530, 65533, 0, 65531, 65534, 0, 65531, 65535, 0, 65531, 0, 0, 65531, 65533, 0, 65531, 65532, 0, 65531, 65531, 0, 65532, 65531, 0, 65533, 65531, 0, 65534, 65531, 0, 65535, 65531, 0, 0, 65531, 0, 6, 65531, 0, 5, 1, 0, 5, 2, 0, 5, 3, 0, 6, 0, 0, 6, 65535, 0, 6, 65534, 0, 5, 0, 0, 7, 65535, 0, 7, 65534, 0, 8, 65533, 0, 8, 65534, 0, 7, 0, 0, 6, 1, 0, 6, 2, 0, 6, 4, 0, 6, 3, 0, 7, 2, 0, 7, 1, 0, 8, 1, 0, 8, 0, 0, 1, 1, 1441792, 0, 1, 1441792, 3, 0, 1441792, 4, 0, 1441792, 4, 65535, 1441792, 3, 65535, 1441792, 2, 65534, 1441792, 2, 65533, 1441792, 1, 65533, 1441792, 1, 65532, 1441792, 1, 65531, 1441792, 2, 65531, 1441792, 2, 65530, 1441792, 3, 65530, 1441792, 3, 65531, 1441792, 2, 65532, 1441792, 4, 65532, 1441792, 4, 65531, 1441792, 5, 65531, 1441792, 5, 65532, 1441792, 5, 65533, 1441792, 5, 65534, 1441792, 5, 65535, 1441792, 4, 65534, 1441792, 4, 65533, 1441792, 6, 65533, 1441792, 6, 65532, 1441792, 3, 65532, 1441792, 3, 65533, 1441792, 3, 65534, 1441792, 2, 65535, 1441792, 2, 0, 1441792, 0, 0, 1441792) +"cells": PackedInt32Array(0, 0, 0, 0, 65535, 0, 65535, 65535, 0, 65535, 0, 0, 65534, 0, 0, 65534, 65535, 0, 65534, 65534, 0, 65535, 65534, 0, 0, 65534, 0, 1, 65534, 0, 1, 65535, 0, 1, 0, 0, 0, 1, 0, 65535, 1, 0, 65534, 1, 0, 1, 1, 0, 1, 2, 0, 0, 2, 0, 65535, 2, 0, 65534, 2, 0, 65533, 2, 0, 65533, 1, 0, 65533, 0, 0, 65533, 65535, 0, 65533, 65534, 0, 65533, 65533, 0, 65534, 65533, 0, 1, 65533, 0, 2, 65533, 0, 0, 65533, 0, 65535, 65533, 0, 2, 65534, 0, 2, 65535, 0, 2, 0, 0, 2, 1, 0, 3, 2, 0, 3, 1, 0, 3, 0, 0, 3, 65535, 0, 4, 65535, 0, 4, 65534, 1, 3, 65532, 0, 3, 65534, 0, 2, 65532, 0, 1, 65532, 0, 0, 65532, 0, 65535, 65532, 0, 65534, 65532, 0, 65533, 65532, 0, 65532, 65532, 0, 65532, 65533, 0, 65532, 65534, 0, 65532, 65535, 0, 65532, 1, 0, 65532, 0, 0, 65532, 2, 0, 65532, 3, 0, 65533, 3, 0, 65534, 3, 0, 65535, 3, 0, 1, 3, 0, 2, 3, 0, 3, 3, 0, 0, 3, 0, 4, 3, 0, 4, 2, 0, 4, 1, 0, 4, 0, 0, 2, 2, 0, 5, 4, 0, 4, 4, 0, 3, 4, 0, 2, 4, 0, 1, 4, 0, 0, 4, 0, 0, 5, 0, 65535, 5, 0, 65534, 5, 0, 65533, 5, 0, 65533, 4, 0, 65532, 4, 0, 65534, 4, 0, 65535, 4, 0, 3, 5, 0, 4, 5, 0, 5, 5, 0, 2, 5, 0, 1, 5, 0, 65532, 5, 0, 65531, 5, 0, 65531, 4, 0, 65531, 3, 0, 65531, 2, 0, 65531, 1, 0, 65530, 1, 0, 65530, 0, 0, 65530, 65535, 0, 65530, 65534, 0, 65530, 65533, 0, 65531, 65534, 0, 65531, 65535, 0, 65531, 0, 0, 65531, 65533, 0, 65531, 65532, 0, 65531, 65531, 0, 65532, 65531, 0, 65533, 65531, 0, 65534, 65531, 0, 65535, 65531, 0, 0, 65531, 0, 1, 65531, 0, 2, 65531, 0, 2, 65530, 0, 3, 65530, 0, 3, 65531, 0, 6, 65531, 0, 5, 65532, 1, 5, 65533, 1, 5, 65534, 1, 5, 65535, 1, 5, 1, 0, 5, 2, 0, 5, 3, 0, 6, 0, 0, 6, 65535, 0, 6, 65534, 0, 6, 65533, 1, 6, 65532, 1, 5, 0, 0, 7, 65535, 0, 7, 65534, 0, 8, 65533, 0, 8, 65534, 0, 7, 0, 0, 6, 1, 0, 6, 2, 0, 6, 4, 0, 6, 3, 0, 7, 2, 0, 7, 1, 0, 8, 1, 0, 8, 0, 0, 5, 65531, 1, 4, 65531, 1, 4, 65532, 1, 4, 65533, 1, 3, 65533, 1) } metadata/_editor_floor_ = Vector3(0, 0, 0) @@ -36,7 +43,7 @@ mesh_library = ExtResource("3_k3r2h") cell_size = Vector3(1, 1, 1) cell_center_y = false data = { -"cells": PackedInt32Array(65531, 65530, 0, 65532, 65530, 0, 65533, 65530, 0, 65534, 65530, 0, 65535, 65530, 0, 0, 65530, 0, 1, 65530, 0, 65530, 65530, 0, 65530, 65531, 0, 65530, 65532, 0, 65529, 65531, 0, 65529, 65532, 0, 65529, 65533, 0, 65529, 65534, 0, 65529, 65535, 0, 65529, 0, 0, 65529, 1, 0, 65529, 2, 0, 65530, 2, 0, 2, 65529, 1441792, 3, 65529, 1441792, 4, 65529, 1441792, 4, 65530, 1441792, 5, 65530, 1441792, 6, 65530, 1441792, 7, 65530, 1441792, 7, 65532, 1441792, 7, 65533, 1441792, 8, 65532, 1441792, 9, 65532, 1441792, 9, 65533, 1441792, 9, 65534, 1441792, 9, 65535, 1441792, 9, 0, 1441792, 8, 65535, 1441792, 9, 1, 1441792, 9, 2, 1441792, 8, 2, 1441792, 8, 3, 1441792, 7, 3, 1441792, 7, 4, 1441792, 7, 5, 1441792, 6, 5, 1441792, 6, 6, 1441792, 5, 6, 1441792, 4, 6, 1441792, 3, 6, 1441792, 2, 6, 1441792, 1, 6, 1441792, 0, 6, 1441792, 65535, 6, 1441792, 65534, 6, 1441792, 65533, 6, 1441792, 65532, 6, 1441792, 65531, 6, 1441792, 65530, 6, 1441792, 65530, 5, 1441792, 65530, 4, 1441792, 65530, 3, 1441792, 1, 65529, 1441792, 6, 65534, 0, 5, 0, 0, 7, 65531, 1441792, 6, 65531, 1441792) +"cells": PackedInt32Array(65531, 65530, 0, 65532, 65530, 0, 65533, 65530, 0, 65534, 65530, 0, 65535, 65530, 0, 0, 65530, 0, 1, 65530, 0, 65530, 65530, 0, 65530, 65531, 0, 65530, 65532, 0, 65529, 65531, 0, 65529, 65532, 0, 65529, 65533, 0, 65529, 65534, 0, 65529, 65535, 0, 65529, 0, 0, 65529, 1, 0, 65529, 2, 0, 65530, 2, 0, 2, 65529, 1441792, 3, 65529, 1441792, 4, 65529, 1441792, 4, 65530, 1441792, 5, 65530, 1441792, 6, 65530, 1441792, 7, 65530, 1441792, 7, 65531, 1441792, 7, 65532, 1441792, 7, 65533, 1441792, 8, 65532, 1441792, 9, 65532, 1441792, 9, 65533, 1441792, 9, 65534, 1441792, 9, 65535, 1441792, 9, 0, 1441792, 8, 65535, 1441792, 9, 1, 1441792, 9, 2, 1441792, 8, 2, 1441792, 8, 3, 1441792, 7, 3, 1441792, 7, 4, 1441792, 7, 5, 1441792, 6, 5, 1441792, 6, 6, 1441792, 5, 6, 1441792, 4, 6, 1441792, 3, 6, 1441792, 2, 6, 1441792, 1, 6, 1441792, 0, 6, 1441792, 65535, 6, 1441792, 65534, 6, 1441792, 65533, 6, 1441792, 65532, 6, 1441792, 65531, 6, 1441792, 65530, 6, 1441792, 65530, 5, 1441792, 65530, 4, 1441792, 65530, 3, 1441792, 1, 65529, 1441792, 8, 65531, 0, 6, 65531, 0, 6, 65534, 0, 5, 0, 0) } metadata/_editor_floor_ = Vector3(0, 0, 0) @@ -44,11 +51,4 @@ metadata/_editor_floor_ = Vector3(0, 0, 0) environment = SubResource("Environment_0oogp") [node name="CannyCat" parent="." instance=ExtResource("1_8qiqb")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.926551, 3.63641) - -[node name="GoalPost" parent="." instance=ExtResource("4_71ems")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, -2.38419e-07, -4) - -[node name="CSGPolygon3D" parent="." instance=ExtResource("5_7n16u")] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 2, 0, -4) -polygon = PackedVector2Array(0, -1, 1, -1, 3, 0, 3, 2, 2, 3, -1, 2, -2, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.544784, 5.5043)