Compare commits

..

No commits in common. "main" and "Shark" have entirely different histories.
main ... Shark

58 changed files with 842 additions and 5 deletions

4
.editorconfig Normal file
View file

@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

11
.gitignore vendored
View file

@ -1,11 +1,11 @@
# ---> Godot
# Godot 4+ specific ignores
.godot/
.nomedia
# Godot-specific ignores
.import/
export.cfg
export_presets.cfg
export_credentials.cfg
# Imported translations (automatically generated from CSV files)
*.translation
@ -14,4 +14,9 @@ export_presets.cfg
.mono/
data_*/
mono_crash.*.json
*.import
*.import
models/guitar.glb.import
models/horse.glb.import
models/shark.glb.import
icon.svg.import

5
GlobalVariables.gd Normal file
View file

@ -0,0 +1,5 @@
extends Node
var money:int
var player:Player
var selectedObject

1
GlobalVariables.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://d1mciek5v8ur4

79
Main.tscn Normal file
View file

@ -0,0 +1,79 @@
[gd_scene load_steps=11 format=3 uid="uid://bt5a8babn8gyn"]
[ext_resource type="PackedScene" uid="uid://bubyfj3d0t4wr" path="res://Player/Player.tscn" id="1_03owx"]
[ext_resource type="Script" uid="uid://caucan7ubuwya" path="res://MainCamera.gd" id="2_wkp8b"]
[ext_resource type="PackedScene" uid="uid://tv34yqlttubv" path="res://objects/rotatableLarge.tscn" id="5_fos0i"]
[ext_resource type="PackedScene" uid="uid://deqhu8psa7fyn" path="res://locations/HauntedMansion.tscn" id="6_3dxm6"]
[ext_resource type="PackedScene" uid="uid://g5m48diqvglc" path="res://Surfaces/Floor.tscn" id="6_lgr22"]
[ext_resource type="PackedScene" uid="uid://ch6blfiqhtt67" path="res://objects/Animals/raccoon.tscn" id="7_lgr22"]
[ext_resource type="PackedScene" uid="uid://c2qnrd7mneksy" path="res://UI/MainUI.tscn" id="8_trn2v"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_glv2v"]
albedo_color = Color(0.356863, 1, 1, 1)
[sub_resource type="PlaneMesh" id="PlaneMesh_uu6xs"]
material = SubResource("StandardMaterial3D_glv2v")
size = Vector2(30, 30)
[sub_resource type="CylinderShape3D" id="CylinderShape3D_glv2v"]
height = 1.0
radius = 200.0
[node name="Main" type="Node3D"]
[node name="Player" parent="." instance=ExtResource("1_03owx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42.1941, -0.933056, -2.90973)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(-4.37114e-08, -0.972775, 0.231748, 0, 0.231748, 0.972776, -1, 4.25214e-08, -1.013e-08, -0.213372, 102.096, 0)
script = ExtResource("2_wkp8b")
[node name="RayCast3D" type="RayCast3D" parent="Camera3D"]
[node name="StaticBody3D" type="StaticBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -167.225, 0)
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"]
mesh = SubResource("PlaneMesh_uu6xs")
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.494415, 0)
shape = SubResource("CylinderShape3D_glv2v")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.177645, -0.645417, 0.742886, -0.293885, 0.685651, 0.665968, -0.939188, -0.336629, -0.067876, 15.6558, 10.5503, -0.157694)
[node name="MainUi" parent="." instance=ExtResource("8_trn2v")]
[node name="Rotatable" parent="." instance=ExtResource("5_fos0i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.534588, 0.00558501, -0.902103)
[node name="Rotatable2" parent="." instance=ExtResource("5_fos0i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -48.2561, 0.00558501, 41.8306)
[node name="Rotatable3" parent="." instance=ExtResource("5_fos0i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -48.2561, 0.00558501, -48.0989)
[node name="Rotatable10" parent="." instance=ExtResource("5_fos0i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.4848, 0.00558501, -0.586246)
[node name="Rotatable8" parent="." instance=ExtResource("5_fos0i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 44.3335, 0.00558501, 43.1111)
[node name="Rotatable9" parent="." instance=ExtResource("5_fos0i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 44.3335, 0.00558501, -46.7001)
[node name="Rotatable11" parent="." instance=ExtResource("5_fos0i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.69489, 0.00558501, -46.7001)
[node name="Rotatable12" parent="." instance=ExtResource("5_fos0i")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.0831, 0.00558501, 47.6165)
[node name="HauntedMansion" parent="." instance=ExtResource("6_3dxm6")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -149.584, -0.689379, -1.69503)
[node name="Floor" parent="." instance=ExtResource("6_lgr22")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0488815, -0.757728, -1.82727)
[node name="Raccoon" parent="." instance=ExtResource("7_lgr22")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -55.0482, 0.242264, 11.5166)

12
MainCamera.gd Normal file
View file

@ -0,0 +1,12 @@
extends Camera3D
var offset = Vector3 (5, 25, 0)
func _process(delta: float) -> void:
if Input.is_action_pressed("Zoom"):
offset = Vector3 (5, 50, 0)
elif Input.is_action_pressed("ZoomIn"):
offset = Vector3 (2, 8, 0)
else:
offset = Vector3 (5, 25, 0)
global_position = GlobalVariables.player.get_object_position() + offset

1
MainCamera.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://caucan7ubuwya

37
Player/Player.gd Normal file
View file

@ -0,0 +1,37 @@
extends Node3D
class_name Player
var playerObject
var monies = 0
func _ready() -> void:
GlobalVariables.player = self
playerObject = $Horse
func _process(delta: float) -> void:
if playerObject.global_position.y <= -100:
playerObject.global_position = Vector3(0, 5, 0)
var rotationDif = playerObject.angular_velocity
monies += (rotationDif.length() * delta)/6.2
if monies >= 1:
monies -= 1
GlobalVariables.money += 1
func get_object_position():
return playerObject.global_position
func change_object(object):
var objectPosition = playerObject.position
var objectRotation = playerObject.rotation
var objectVelocity = playerObject.linear_velocity
remove_child(playerObject)
add_child(object)
object.position = objectPosition + Vector3(0, 2, 0)
object.rotation = objectRotation
object.linear_velocity = objectVelocity
playerObject = object

1
Player/Player.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://cayn4psbfrpj1

9
Player/Player.tscn Normal file
View file

@ -0,0 +1,9 @@
[gd_scene load_steps=3 format=3 uid="uid://bubyfj3d0t4wr"]
[ext_resource type="Script" uid="uid://cayn4psbfrpj1" path="res://Player/Player.gd" id="1_q3lat"]
[ext_resource type="PackedScene" uid="uid://dxnty4qdey1la" path="res://objects/horse.tscn" id="2_tok1r"]
[node name="Player" type="Node3D"]
script = ExtResource("1_q3lat")
[node name="Horse" parent="." instance=ExtResource("2_tok1r")]

View file

@ -1,2 +0,0 @@
# ShapeEscape

18
Surfaces/Floor.tscn Normal file
View file

@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://g5m48diqvglc"]
[ext_resource type="PackedScene" uid="uid://bqyeo1mq0f35e" path="res://locations/stage.glb" id="1_y6dek"]
[sub_resource type="BoxShape3D" id="BoxShape3D_jm8jd"]
size = Vector3(152.307, 2, 151.213)
[node name="Floor" type="Node3D"]
[node name="StaticBody3D" type="StaticBody3D" parent="."]
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.265808, 0, 0.487366)
shape = SubResource("BoxShape3D_jm8jd")
[node name="stage" parent="." instance=ExtResource("1_y6dek")]
[editable path="stage"]

4
UI/MOney.gd Normal file
View file

@ -0,0 +1,4 @@
extends Label
func _process(delta: float) -> void:
text = "Money: " + str(GlobalVariables.money)

1
UI/MOney.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://ckv3v1nabgbb3

7
UI/MainUI.gd Normal file
View file

@ -0,0 +1,7 @@
extends CanvasLayer
func _ready() -> void:
$ShapeSelect.visible = false
func _on_shape_button_pressed() -> void:
$ShapeSelect.visible = true

1
UI/MainUI.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://dhy3kcnievdpq

48
UI/MainUI.tscn Normal file
View file

@ -0,0 +1,48 @@
[gd_scene load_steps=4 format=3 uid="uid://c2qnrd7mneksy"]
[ext_resource type="Script" uid="uid://dhy3kcnievdpq" path="res://UI/MainUI.gd" id="1_xv1u1"]
[ext_resource type="Script" uid="uid://14odr4cov1sm" path="res://UI/ShapeSelectUI.gd" id="2_wwh41"]
[ext_resource type="Script" uid="uid://ckv3v1nabgbb3" path="res://UI/MOney.gd" id="3_wa2eh"]
[node name="MainUi" type="CanvasLayer"]
script = ExtResource("1_xv1u1")
[node name="ShapeButton" type="Button" parent="."]
offset_left = 869.0
offset_top = 533.0
offset_right = 1101.0
offset_bottom = 616.0
text = "Shape"
[node name="ShapeSelect" type="PanelContainer" parent="."]
offset_left = 169.0
offset_top = 52.0
offset_right = 896.0
offset_bottom = 516.0
script = ExtResource("2_wwh41")
[node name="ScrollContainer" type="ScrollContainer" parent="ShapeSelect"]
layout_mode = 2
[node name="ShapeButtons" type="HFlowContainer" parent="ShapeSelect/ScrollContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_constants/h_separation = 100
[node name="Label" type="Label" parent="."]
offset_left = 8.0
offset_top = 6.0
offset_right = 228.0
offset_bottom = 77.0
theme_override_colors/font_color = Color(0.778638, 0.426824, 0.518148, 1)
theme_override_colors/font_shadow_color = Color(0.611765, 0.788235, 0, 1)
theme_override_colors/font_outline_color = Color(1, 0.705882, 0, 1)
theme_override_constants/outline_size = 8
theme_override_constants/shadow_outline_size = 13
theme_override_font_sizes/font_size = 50
text = "Money: 0"
script = ExtResource("3_wa2eh")
[connection signal="pressed" from="ShapeButton" to="." method="_on_shape_button_pressed"]

View file

@ -0,0 +1,29 @@
[gd_scene load_steps=3 format=3 uid="uid://b3brrwp5525q2"]
[ext_resource type="PackedScene" uid="uid://djppmw257tqac" path="res://models/horse.glb" id="1_ercyr"]
[ext_resource type="Script" uid="uid://ck5f4x6jx82bk" path="res://UI/SelectableShape/2d_view_object.gd" id="1_t7wwi"]
[node name="2dViewObject" type="Node3D"]
script = ExtResource("1_t7wwi")
[node name="horse" parent="." instance=ExtResource("1_ercyr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.1146, 0)
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
[node name="MeshInstance3D" type="MeshInstance3D" parent="CharacterBody3D"]
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.0143, 0)
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.7226, -1.49836)
[node name="OmniLight3D3" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.39693, 1.80697)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(-0.99875, -0.0266758, 0.0422761, -0.0149347, 0.966319, 0.256915, -0.0477056, 0.255962, -0.965509, 0.0691954, 3.33261, -8.46037)
fov = 43.6717
[editable path="horse"]

View file

@ -0,0 +1,12 @@
extends Node3D
var object
func _ready() -> void:
object = $horse
func change_object(newObject):
remove_child(object)
object.queue_free()
add_child(newObject)
object = newObject

View file

@ -0,0 +1 @@
uid://ck5f4x6jx82bk

View file

@ -0,0 +1,31 @@
extends Button
var rotationAmount
var rotationTimer = 0
func _ready() -> void:
set_rotation_amount()
func set_info(info:String):
$Info.text = info
func set_location_offset(offset):
%ViewObject.global_position = offset
func change_object(object):
%ViewObject.change_object(object)
func _process(delta):
var texture = $SubViewport.get_texture()
$TextureRect.texture = texture
rotationTimer -= delta
if rotationTimer <= 0:
if randi_range(0, 1) == 0:
set_rotation_amount()
rotationTimer = randf_range(0, 6)
%ViewObject.object.rotation += rotationAmount * delta
func set_rotation_amount():
rotationAmount = Vector3(randf_range(0, 3), randf_range(0, 3), randf_range(0, 3))

View file

@ -0,0 +1 @@
uid://ctan4kigqf4m4

View file

@ -0,0 +1,42 @@
[gd_scene load_steps=3 format=3 uid="uid://bx2ydrg7xfp3f"]
[ext_resource type="Script" uid="uid://ctan4kigqf4m4" path="res://UI/SelectableShape/ShapeButton.gd" id="1_itppa"]
[ext_resource type="PackedScene" uid="uid://b3brrwp5525q2" path="res://UI/SelectableShape/2dViewObject.tscn" id="1_tvnn6"]
[node name="ShapeButton" type="Button"]
custom_minimum_size = Vector2(200, 200)
offset_left = 395.0
offset_top = 205.0
offset_right = 642.0
offset_bottom = 405.0
script = ExtResource("1_itppa")
[node name="SubViewport" type="SubViewport" parent="."]
[node name="ViewObject" parent="SubViewport" instance=ExtResource("1_tvnn6")]
unique_name_in_owner = true
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 246.0
offset_bottom = 200.0
expand_mode = 1
[node name="Info" type="Label" parent="."]
layout_mode = 0
offset_left = 2.0
offset_top = 201.0
offset_right = 248.0
offset_bottom = 240.0
theme_override_colors/font_color = Color(1, 0, 0, 1)
theme_override_colors/font_shadow_color = Color(0, 0.882353, 0, 1)
theme_override_colors/font_outline_color = Color(0, 0, 1, 1)
theme_override_constants/outline_size = 8
theme_override_constants/shadow_outline_size = 14
theme_override_font_sizes/font_size = 28
text = "Horse - 5 dollars"
horizontal_alignment = 1
vertical_alignment = 1
[editable path="SubViewport/ViewObject"]
[editable path="SubViewport/ViewObject/horse"]

46
UI/ShapeSelectUI.gd Normal file
View file

@ -0,0 +1,46 @@
extends PanelContainer
var shapeButtonScene = preload("res://UI/SelectableShape/ShapeButton.tscn")
var shapes = [
{
"object": preload("res://models/horse.glb"),
"name": "horse",
"cost": 0,
"scene": preload("res://objects/horse.tscn")
},
{
"object": preload("res://models/shark.glb"),
"name": "shark",
"cost": 5,
"scene": preload("res://objects/shark.tscn")
},
]
var offset = Vector3(0, 10000, 10000)
func _ready() -> void:
setup_buttons()
func close():
visible = false
func button_clicked(index):
if GlobalVariables.money >= shapes[index].cost:
GlobalVariables.money -= shapes[index].cost
GlobalVariables.player.change_object(shapes[index].scene.instantiate())
close()
func setup_buttons():
var index = 0
for shape in shapes:
var newButton = shapeButtonScene.instantiate()
var buttonObject = shape.object.instantiate()
%ShapeButtons.add_child(newButton)
newButton.set_location_offset(offset)
offset += Vector3(0, 10000, 10000)
newButton.change_object(buttonObject)
newButton.set_info(shape.name + " - " + str(shape.cost) + " dollars")
newButton.pressed.connect(button_clicked.bind(index))
index += 1

1
UI/ShapeSelectUI.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://14odr4cov1sm

1
icon.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>

After

Width:  |  Height:  |  Size: 994 B

37
icon.svg.import Normal file
View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b4232ihw25waq"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
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=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,3 @@
[gd_scene format=3 uid="uid://6chikm1ta85o"]
[node name="SpinnerWorld" type="Node3D"]

BIN
locations/hauntedhouse.glb Normal file

Binary file not shown.

BIN
locations/stage.glb Normal file

Binary file not shown.

BIN
models/bear.glb Normal file

Binary file not shown.

BIN
models/catglb.glb Normal file

Binary file not shown.

BIN
models/dog.glb Normal file

Binary file not shown.

BIN
models/elephant.glb Normal file

Binary file not shown.

BIN
models/giraffe.glb Normal file

Binary file not shown.

BIN
models/guitar.glb Normal file

Binary file not shown.

37
models/guitar.glb.import Normal file
View file

@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://y30drmuq4l0n"
path="res://.godot/imported/guitar.glb-7d0a07b79e823975fa7fa24a23636f96.scn"
[deps]
source_file="res://models/guitar.glb"
dest_files=["res://.godot/imported/guitar.glb-7d0a07b79e823975fa7fa24a23636f96.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

BIN
models/horse.glb Normal file

Binary file not shown.

37
models/horse.glb.import Normal file
View file

@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://djppmw257tqac"
path="res://.godot/imported/horse.glb-43692f818ba2a3d8b061139c4d8cf5c8.scn"
[deps]
source_file="res://models/horse.glb"
dest_files=["res://.godot/imported/horse.glb-43692f818ba2a3d8b061139c4d8cf5c8.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

BIN
models/pig.glb Normal file

Binary file not shown.

BIN
models/platypus.glb Normal file

Binary file not shown.

BIN
models/raccoon.glb Normal file

Binary file not shown.

BIN
models/shark.glb Normal file

Binary file not shown.

37
models/shark.glb.import Normal file
View file

@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://4xn3j7i2njxp"
path="res://.godot/imported/shark.glb-4087c768ca5ed9bea0a7dbe21c534941.scn"
[deps]
source_file="res://models/shark.glb"
dest_files=["res://.godot/imported/shark.glb-4087c768ca5ed9bea0a7dbe21c534941.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

BIN
models/turtle.glb Normal file

Binary file not shown.

View file

@ -0,0 +1,25 @@
[gd_scene load_steps=4 format=3 uid="uid://ch6blfiqhtt67"]
[ext_resource type="PackedScene" uid="uid://du8lkrvnc16gl" path="res://objects/Rotatable.tscn" id="1_gc7wg"]
[ext_resource type="PackedScene" uid="uid://dxuanctss76sr" path="res://models/raccoon.glb" id="2_8psji"]
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ko0kv"]
points = PackedVector3Array(-0.459304, 1.89517, 0.993917, 0.0405142, 1.88634, 0.993917, 0.0387483, 1.78145, -1.06475, -0.46107, 1.78973, -1.06475, -1.17459, 0.910333, -1.06475, -1.17459, 0.910333, 0.993917, -2.30787, -3.44803, 1.42434, 0.523849, 0.881627, 0.993917, 3.6929, -2.21753, 0.249951, 3.6929, -2.21753, -0.250211, -1.7845, -3.32051, 1.3811, 0.523849, 0.881627, -1.06475, -2.20661, -3.44361, -1.42544, -2.25547, -1.5468, -1.02542, -1.73387, -0.106526, -0.500153, -1.73387, -0.106526, 0.499892, -2.05354, -1.44522, 0.952911, -2.22427, -1.76154, 0.685117, -2.23546, -1.88796, 0.685117, -2.29492, -1.90452, -0.671151, -2.32141, -3.73399, 1.42434, -1.79333, -3.7257, 1.3811, 0.489115, -1.17031, 0.999775, 2.22464, -3.22832, 0.249951, 0.480873, -1.67046, 0.999775, 0.4638, -2.6702, 0.999775, 0.454969, -3.1698, 0.999775, 0.201822, -3.69866, 0.999775, 0.497945, -0.657463, -1.06475, 2.22464, -3.22832, -0.250211, 0.201822, -3.69866, -1.00004, 0.454969, -3.1698, -1.00004, -1.78509, -3.25095, -1.3836, -1.79274, -3.70086, -1.3836, -2.21426, -3.69755, -1.42544, -2.25547, -1.5468, -0.883154, -2.32141, -3.73399, 1.0737, -0.810178, -3.74447, 0.499892, 0.457324, -3.70307, 0.796976, 0.457324, -3.70307, -0.797237, -0.810178, -3.74447, -0.500153)
[node name="Raccoon" instance=ExtResource("1_gc7wg")]
yTorqueMult = 800.0
zTorqueMult = 800.0
[node name="CollisionShape3D" parent="." index="0"]
disabled = true
[node name="MeshInstance3D" parent="." index="1"]
visible = false
[node name="CollisionShape3D2" type="CollisionShape3D" parent="." index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.80874, 0)
shape = SubResource("ConvexPolygonShape3D_ko0kv")
[node name="raccoon" parent="." index="3" instance=ExtResource("2_8psji")]
[editable path="raccoon"]

27
objects/Guitar.tscn Normal file

File diff suppressed because one or more lines are too long

26
objects/Rotatable.gd Normal file
View file

@ -0,0 +1,26 @@
extends RigidBody3D
@export var initialMass:float = 5
@export var yTorqueMult:float = 200
@export var zTorqueMult:float = 200
var prev_mouse_position
var next_mouse_position
func _ready() -> void:
mass = initialMass
func _process(delta):
if GlobalVariables.selectedObject == self:
next_mouse_position = get_viewport().get_mouse_position()
var torque = Vector3()
torque.y = (next_mouse_position.x - prev_mouse_position.x) * yTorqueMult * delta
torque.z = (next_mouse_position.y - prev_mouse_position.y) * zTorqueMult * delta
prev_mouse_position = next_mouse_position
apply_torque(torque)
func _on_input_event(camera: Node, event: InputEvent, event_position: Vector3, normal: Vector3, shape_idx: int) -> void:
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
prev_mouse_position = get_viewport().get_mouse_position()
GlobalVariables.selectedObject = self

1
objects/Rotatable.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://cvqlceaui3krb

25
objects/Rotatable.tscn Normal file
View file

@ -0,0 +1,25 @@
[gd_scene load_steps=5 format=3 uid="uid://du8lkrvnc16gl"]
[ext_resource type="Script" uid="uid://cvqlceaui3krb" path="res://objects/Rotatable.gd" id="1_vn420"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_vn420"]
friction = 0.26
[sub_resource type="BoxShape3D" id="BoxShape3D_vn420"]
size = Vector3(1, 1.22449, 1.01085)
[sub_resource type="BoxMesh" id="BoxMesh_gxu5i"]
[node name="Rotatable" type="RigidBody3D"]
physics_material_override = SubResource("PhysicsMaterial_vn420")
script = ExtResource("1_vn420")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.66452, 0.0126419)
shape = SubResource("BoxShape3D_vn420")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.676347, 0)
mesh = SubResource("BoxMesh_gxu5i")
[connection signal="input_event" from="." to="." method="_on_input_event"]

24
objects/horse.tscn Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://tv34yqlttubv"]
[ext_resource type="PackedScene" uid="uid://du8lkrvnc16gl" path="res://objects/Rotatable.tscn" id="1_21koh"]
[sub_resource type="BoxShape3D" id="BoxShape3D_6b465"]
size = Vector3(1.59271, 1, 41.5552)
[node name="Rotatable" instance=ExtResource("1_21koh")]
initialMass = 50.0
yTorqueMult = 30000.0
[node name="CollisionShape3D" parent="." index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0103455, 0.66452, 0.0677242)
shape = SubResource("BoxShape3D_6b465")
[node name="MeshInstance3D" parent="." index="1"]
transform = Transform3D(1.65606, 0, 0, 0, 1.1989, 0, 0, 0, 41.5417, 0, 0.676347, 0)

View file

@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://dqu5h8wloab26"]
[ext_resource type="PackedScene" uid="uid://du8lkrvnc16gl" path="res://objects/Rotatable.tscn" id="1_6b465"]
[sub_resource type="BoxShape3D" id="BoxShape3D_6b465"]
size = Vector3(1, 1, 5.99051)
[node name="Rotatable" instance=ExtResource("1_6b465")]
initialMass = 6.0
yTorqueMult = 200.0
zTorqueMult = 80.0
[node name="CollisionShape3D" parent="." index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.66452, -0.00264168)
shape = SubResource("BoxShape3D_6b465")
[node name="MeshInstance3D" parent="." index="1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 5.96618, 0, 0.676347, 0)

View file

@ -0,0 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://cbl4jcbilihv"]
[ext_resource type="PackedScene" uid="uid://du8lkrvnc16gl" path="res://objects/Rotatable.tscn" id="1_w404d"]
[sub_resource type="SphereShape3D" id="SphereShape3D_5yy8w"]
[sub_resource type="SphereMesh" id="SphereMesh_rq261"]
[node name="Rotatable" instance=ExtResource("1_w404d")]
yTorqueMult = 20.0
zTorqueMult = 20.0
[node name="CollisionShape3D" parent="." index="0"]
shape = SubResource("SphereShape3D_5yy8w")
[node name="MeshInstance3D" parent="." index="1"]
mesh = SubResource("SphereMesh_rq261")

24
objects/shark.tscn Normal file
View file

@ -0,0 +1,24 @@
[gd_scene load_steps=4 format=3 uid="uid://bggp3whsy8eji"]
[ext_resource type="PackedScene" uid="uid://du8lkrvnc16gl" path="res://objects/Rotatable.tscn" id="1_d5pdq"]
[ext_resource type="PackedScene" uid="uid://4xn3j7i2njxp" path="res://models/shark.glb" id="2_d5pdq"]
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_nq7gm"]
points = PackedVector3Array(-0.133125, -1.72987, 0.749627, 0.132929, -1.72987, 0.749627, -1, -1.00017, 2.81724, -1, -1.17326, 0.749627, -1, -1.00017, -1.00042, -0.696554, -0.364853, -4.35659, 1, -1.17326, 0.749627, 1, -1.00017, 2.81724, 0.696359, -0.364853, -4.35659, 1, -1.00017, -1.00042, -0.686766, -0.563619, 3.42268, -1, 0.999828, 2.81724, -1, 0.999828, -1.00042, -0.696554, 0.364511, -4.35659, 1, 0.999828, 2.81724, 0.68657, -0.563619, 3.42268, 0.696359, 0.364511, -4.35659, 1, 0.999828, -1.00042, -0.686766, 0.563277, 3.42268, -0.5, 1.67717, 0.900414, -0.5, 1.67717, 0.598839, 0.5, 1.67717, 0.900414, 0.68657, 0.563277, 3.42268, 0.5, 1.67717, 0.598839)
[node name="Horse" instance=ExtResource("1_d5pdq")]
[node name="CollisionShape3D" parent="." index="0"]
disabled = true
[node name="MeshInstance3D" parent="." index="1"]
visible = false
[node name="CollisionShape3D3" type="CollisionShape3D" parent="." index="2"]
transform = Transform3D(0.946571, 0, -0.322497, 0, 1, 0, 0.322497, 0, 0.946571, -0.709573, 1.54197, -2.37729)
shape = SubResource("ConvexPolygonShape3D_nq7gm")
[node name="shark" parent="." index="3" instance=ExtResource("2_d5pdq")]
transform = Transform3D(0.946571, 0, -0.322497, 0, 1, 0, 0.322497, 0, 0.946571, -0.709573, 1.54197, -2.37729)
[editable path="shark"]

43
project.godot Normal file
View file

@ -0,0 +1,43 @@
; 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=5
[application]
config/name="ShapeEscape"
run/main_scene="uid://bt5a8babn8gyn"
config/features=PackedStringArray("4.4", "GL Compatibility")
config/icon="res://icon.svg"
[autoload]
GlobalVariables="*res://GlobalVariables.gd"
[input]
LMB={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
Zoom={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
]
}
ZoomIn={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
[rendering]
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"