buttons
terrible
This commit is contained in:
parent
23d6a5b516
commit
d2e2276d43
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -14,3 +14,9 @@ export_credentials.cfg
|
|||
.mono/
|
||||
data_*/
|
||||
mono_crash.*.json
|
||||
*.import
|
||||
*.import
|
||||
models/guitar.glb.import
|
||||
models/horse.glb.import
|
||||
models/shark.glb.import
|
||||
icon.svg.import
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
extends Node
|
||||
|
||||
var player
|
||||
var selectedObject
|
||||
|
|
|
|||
13
Main.tscn
13
Main.tscn
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://bt5a8babn8gyn"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://bt5a8babn8gyn"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://du8lkrvnc16gl" path="res://objects/Rotatable.tscn" id="1_glv2v"]
|
||||
[ext_resource type="PackedScene" uid="uid://cbl4jcbilihv" path="res://objects/rotatableSphere.tscn" id="2_uu6xs"]
|
||||
|
|
@ -6,6 +6,8 @@
|
|||
[ext_resource type="PackedScene" uid="uid://coowoxprnd50y" path="res://objects/Guitar.tscn" id="4_cm0pq"]
|
||||
[ext_resource type="PackedScene" uid="uid://dxnty4qdey1la" path="res://objects/horse.tscn" id="5_fos0i"]
|
||||
[ext_resource type="PackedScene" uid="uid://bggp3whsy8eji" path="res://objects/shark.tscn" id="6_3dxm6"]
|
||||
[ext_resource type="PackedScene" uid="uid://bqyeo1mq0f35e" path="res://locations/stage.glb" 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)
|
||||
|
|
@ -21,7 +23,7 @@ radius = 200.0
|
|||
[node name="Main" type="Node3D"]
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(-0.000329031, -0.999888, -0.0149358, 0.0220218, -0.0149394, 0.999646, -0.999757, 1.8631e-09, 0.0220242, -0.213372, 22.4613, 0)
|
||||
transform = Transform3D(-0.000329031, -0.999888, -0.0149358, 0.0220218, -0.0149394, 0.999646, -0.999757, 1.63032e-09, 0.0220243, -0.213372, 102.096, 0)
|
||||
|
||||
[node name="RayCast3D" type="RayCast3D" parent="Camera3D"]
|
||||
|
||||
|
|
@ -68,4 +70,9 @@ physics_material_override = null
|
|||
transform = Transform3D(0.146601, 0, 0.989196, 0, 1, 0, -0.989196, 0, 0.146601, -0.288846, 0.43723, -4.17931)
|
||||
|
||||
[node name="Horse2" parent="." instance=ExtResource("6_3dxm6")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.81449, 3.35932, 6.69674)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.81449, -0.38006, 9.13093)
|
||||
|
||||
[node name="stage" parent="." instance=ExtResource("7_lgr22")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0488815, -0.757728, -1.82727)
|
||||
|
||||
[node name="MainUi" parent="." instance=ExtResource("8_trn2v")]
|
||||
|
|
|
|||
17
Player/Player.gd
Normal file
17
Player/Player.gd
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
extends Node3D
|
||||
|
||||
var playerObject
|
||||
|
||||
func _ready() -> void:
|
||||
GlobalVariables.player = self
|
||||
playerObject = $Horse
|
||||
|
||||
func change_object(object):
|
||||
var objectPosition = playerObject.position
|
||||
var objectRotation = playerObject.objectRotation
|
||||
remove_child(playerObject)
|
||||
|
||||
add_child(object)
|
||||
object.position = objectPosition
|
||||
object.rotation = objectRotation
|
||||
playerObject = object
|
||||
1
Player/Player.gd.uid
Normal file
1
Player/Player.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://cayn4psbfrpj1
|
||||
9
Player/Player.tscn
Normal file
9
Player/Player.tscn
Normal 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")]
|
||||
7
UI/MainUI.gd
Normal file
7
UI/MainUI.gd
Normal 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
1
UI/MainUI.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dhy3kcnievdpq
|
||||
33
UI/MainUI.tscn
Normal file
33
UI/MainUI.tscn
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
[gd_scene load_steps=3 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"]
|
||||
|
||||
[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
|
||||
|
||||
[connection signal="pressed" from="ShapeButton" to="." method="_on_shape_button_pressed"]
|
||||
29
UI/SelectableShape/2dViewObject.tscn
Normal file
29
UI/SelectableShape/2dViewObject.tscn
Normal 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"]
|
||||
12
UI/SelectableShape/2d_view_object.gd
Normal file
12
UI/SelectableShape/2d_view_object.gd
Normal 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
|
||||
1
UI/SelectableShape/2d_view_object.gd.uid
Normal file
1
UI/SelectableShape/2d_view_object.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ck5f4x6jx82bk
|
||||
28
UI/SelectableShape/ShapeButton.gd
Normal file
28
UI/SelectableShape/ShapeButton.gd
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
extends Button
|
||||
|
||||
var rotationAmount
|
||||
var rotationTimer = 0
|
||||
|
||||
func _ready() -> void:
|
||||
set_rotation_amount()
|
||||
|
||||
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))
|
||||
1
UI/SelectableShape/ShapeButton.gd.uid
Normal file
1
UI/SelectableShape/ShapeButton.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ctan4kigqf4m4
|
||||
26
UI/SelectableShape/ShapeButton.tscn
Normal file
26
UI/SelectableShape/ShapeButton.tscn
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
[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 = 200.0
|
||||
offset_bottom = 200.0
|
||||
expand_mode = 1
|
||||
|
||||
[editable path="SubViewport/ViewObject"]
|
||||
[editable path="SubViewport/ViewObject/horse"]
|
||||
22
UI/ShapeSelectUI.gd
Normal file
22
UI/ShapeSelectUI.gd
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
extends PanelContainer
|
||||
|
||||
var shapeButtonScene = preload("res://UI/SelectableShape/ShapeButton.tscn")
|
||||
|
||||
var initialShapes = [
|
||||
preload("res://models/horse.glb"),
|
||||
preload("res://models/shark.glb")
|
||||
]
|
||||
|
||||
var offset = Vector3(0, 10000, 10000)
|
||||
|
||||
func _ready() -> void:
|
||||
setup_buttons()
|
||||
|
||||
func setup_buttons():
|
||||
for shape in initialShapes:
|
||||
var newButton = shapeButtonScene.instantiate()
|
||||
var buttonObject = shape.instantiate()
|
||||
%ShapeButtons.add_child(newButton)
|
||||
newButton.set_location_offset(offset)
|
||||
offset += Vector3(0, 10000, 10000)
|
||||
newButton.change_object(buttonObject)
|
||||
1
UI/ShapeSelectUI.gd.uid
Normal file
1
UI/ShapeSelectUI.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://14odr4cov1sm
|
||||
BIN
locations/stage.glb
Normal file
BIN
locations/stage.glb
Normal file
Binary file not shown.
Loading…
Reference in a new issue