mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-06 16:00:08 +01:00
Convert demos to Godot 4 using regular expressions in a script
This commit is contained in:
@@ -2,8 +2,8 @@ extends Control
|
||||
|
||||
const TEST_ITEM_SKU = "my_in_app_purchase_sku"
|
||||
|
||||
onready var alert_dialog = $AlertDialog
|
||||
onready var label = $Label
|
||||
@onready var alert_dialog = $AlertDialog
|
||||
@onready var label = $Label
|
||||
|
||||
var payment = null
|
||||
var test_item_purchase_token = null
|
||||
@@ -14,29 +14,29 @@ func _ready():
|
||||
|
||||
payment = Engine.get_singleton("GodotGooglePlayBilling")
|
||||
# No params.
|
||||
payment.connect("connected", self, "_on_connected")
|
||||
payment.connect(&"connected", self._on_connected)
|
||||
# No params.
|
||||
payment.connect("disconnected", self, "_on_disconnected")
|
||||
payment.connect(&"disconnected", self._on_disconnected)
|
||||
# Response ID (int), Debug message (string).
|
||||
payment.connect("connect_error", self, "_on_connect_error")
|
||||
payment.connect(&"connect_error", self._on_connect_error)
|
||||
# Purchases (Dictionary[]).
|
||||
payment.connect("purchases_updated", self, "_on_purchases_updated")
|
||||
payment.connect(&"purchases_updated", self._on_purchases_updated)
|
||||
# Response ID (int), Debug message (string).
|
||||
payment.connect("purchase_error", self, "_on_purchase_error")
|
||||
payment.connect(&"purchase_error", self._on_purchase_error)
|
||||
# SKUs (Dictionary[]).
|
||||
payment.connect("sku_details_query_completed", self, "_on_sku_details_query_completed")
|
||||
payment.connect(&"sku_details_query_completed", self._on_sku_details_query_completed)
|
||||
# Response ID (int), Debug message (string), Queried SKUs (string[]).
|
||||
payment.connect("sku_details_query_error", self, "_on_sku_details_query_error")
|
||||
payment.connect(&"sku_details_query_error", self._on_sku_details_query_error)
|
||||
# Purchase token (string).
|
||||
payment.connect("purchase_acknowledged", self, "_on_purchase_acknowledged")
|
||||
payment.connect(&"purchase_acknowledged", self._on_purchase_acknowledged)
|
||||
# Response ID (int), Debug message (string), Purchase token (string).
|
||||
payment.connect("purchase_acknowledgement_error", self, "_on_purchase_acknowledgement_error")
|
||||
payment.connect(&"purchase_acknowledgement_error", self._on_purchase_acknowledgement_error)
|
||||
# Purchase token (string).
|
||||
payment.connect("purchase_consumed", self, "_on_purchase_consumed")
|
||||
payment.connect(&"purchase_consumed", self._on_purchase_consumed)
|
||||
# Response ID (int), Debug message (string), Purchase token (string).
|
||||
payment.connect("purchase_consumption_error", self, "_on_purchase_consumption_error")
|
||||
payment.connect(&"purchase_consumption_error", self._on_purchase_consumption_error)
|
||||
# Purchases (Dictionary[])
|
||||
payment.connect("query_purchases_response", self, "_on_query_purchases_response")
|
||||
payment.connect(&"query_purchases_response", self._on_query_purchases_response)
|
||||
payment.startConnection()
|
||||
else:
|
||||
show_alert("Android IAP support is not enabled. Make sure you have enabled 'Custom Build' and installed and enabled the GodotGooglePlayBilling plugin in your Android export settings! This application will not work.")
|
||||
@@ -68,11 +68,11 @@ func _on_query_purchases_response(query_result):
|
||||
|
||||
func _on_sku_details_query_completed(sku_details):
|
||||
for available_sku in sku_details:
|
||||
show_alert(to_json(available_sku))
|
||||
show_alert(JSON.new().stringify(available_sku))
|
||||
|
||||
|
||||
func _on_purchases_updated(purchases):
|
||||
print("Purchases updated: %s" % to_json(purchases))
|
||||
print("Purchases updated: %s" % JSON.new().stringify(purchases))
|
||||
|
||||
# See _on_connected
|
||||
for purchase in purchases:
|
||||
@@ -110,7 +110,7 @@ func _on_sku_details_query_error(code, message):
|
||||
|
||||
func _on_disconnected():
|
||||
show_alert("GodotGooglePlayBilling disconnected. Will try to reconnect in 10s...")
|
||||
yield(get_tree().create_timer(10), "timeout")
|
||||
await get_tree().create_timer(10).timeout
|
||||
payment.startConnection()
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -512.711
|
||||
margin_top = -300.0
|
||||
margin_right = 511.289
|
||||
margin_bottom = 300.0
|
||||
offset_left = -512.711
|
||||
offset_top = -300.0
|
||||
offset_right = 511.289
|
||||
offset_bottom = 300.0
|
||||
size_flags_horizontal = 2
|
||||
size_flags_vertical = 2
|
||||
script = ExtResource( 1 )
|
||||
@@ -23,22 +23,22 @@ anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = 64.0
|
||||
margin_top = 64.0
|
||||
margin_right = -64.0
|
||||
margin_bottom = -64.0
|
||||
offset_left = 64.0
|
||||
offset_top = 64.0
|
||||
offset_right = -64.0
|
||||
offset_bottom = -64.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
rect_min_size = Vector2( 400, 0 )
|
||||
rect_min_size = Vector2(400, 0)
|
||||
size_flags_vertical = 4
|
||||
popup_exclusive = true
|
||||
dialog_autowrap = true
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
margin_left = 300.0
|
||||
margin_top = 40.0
|
||||
margin_right = 996.0
|
||||
margin_bottom = 156.0
|
||||
offset_left = 300.0
|
||||
offset_top = 40.0
|
||||
offset_right = 996.0
|
||||
offset_bottom = 156.0
|
||||
size_flags_horizontal = 2
|
||||
size_flags_vertical = 0
|
||||
text = "To test in-app purchase on android device,
|
||||
@@ -50,30 +50,30 @@ text = "To test in-app purchase on android device,
|
||||
4. Changes you make in the Play Console may take some time before taking effect"
|
||||
|
||||
[node name="QuerySkuDetailsButton" type="Button" parent="."]
|
||||
margin_left = 40.5697
|
||||
margin_top = 39.9347
|
||||
margin_right = 221.57
|
||||
margin_bottom = 91.9347
|
||||
offset_left = 40.5697
|
||||
offset_top = 39.9347
|
||||
offset_right = 221.57
|
||||
offset_bottom = 91.9347
|
||||
text = "Query SKU details"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="PurchaseButton" type="Button" parent="."]
|
||||
margin_left = 40.5697
|
||||
margin_top = 101.203
|
||||
margin_right = 221.57
|
||||
margin_bottom = 153.203
|
||||
offset_left = 40.5697
|
||||
offset_top = 101.203
|
||||
offset_right = 221.57
|
||||
offset_bottom = 153.203
|
||||
text = "Purchase"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
|
||||
[node name="ConsumeButton" type="Button" parent="."]
|
||||
margin_left = 40.5697
|
||||
margin_top = 162.142
|
||||
margin_right = 221.57
|
||||
margin_bottom = 214.142
|
||||
offset_left = 40.5697
|
||||
offset_top = 162.142
|
||||
offset_right = 221.57
|
||||
offset_bottom = 214.142
|
||||
text = "Consume"
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
|
||||
@@ -33,7 +33,7 @@ window/stretch/aspect="expand"
|
||||
|
||||
[gdnative]
|
||||
|
||||
singletons=[ ]
|
||||
singletons=[]
|
||||
|
||||
[rendering]
|
||||
|
||||
|
||||
@@ -2,26 +2,26 @@
|
||||
|
||||
[ext_resource path="res://default_env.tres" type="Environment" id=1]
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=1]
|
||||
[sub_resource type="StandardMaterial3D" id=1]
|
||||
params_diffuse_mode = 1
|
||||
albedo_color = Color( 0.149414, 0.796875, 0.569252, 1 )
|
||||
albedo_color = Color(0.149414, 0.796875, 0.569252, 1)
|
||||
roughness = 0.0
|
||||
|
||||
[sub_resource type="CubeMesh" id=2]
|
||||
[sub_resource type="BoxMesh" id=2]
|
||||
|
||||
[node name="Spatial" type="Spatial"]
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||
transform = Transform( 0.707107, 0, -0.707107, -0.353553, 0.866025, -0.353553, 0.612372, 0.5, 0.612372, 0, 0, 0 )
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.707107, 0, -0.707107, -0.353553, 0.866025, -0.353553, 0.612372, 0.5, 0.612372, 0, 0, 0)
|
||||
material_override = SubResource( 1 )
|
||||
mesh = SubResource( 2 )
|
||||
material/0 = null
|
||||
surface_material_override/0 = null
|
||||
|
||||
[node name="DirectionalLight" type="DirectionalLight" parent="."]
|
||||
transform = Transform( 0.926535, 0.11439, -0.358396, 0.199614, 0.658013, 0.726067, 0.318884, -0.744267, 0.586839, 0, 0, 0 )
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(0.926535, 0.11439, -0.358396, 0.199614, 0.658013, 0.726067, 0.318884, -0.744267, 0.586839, 0, 0, 0)
|
||||
|
||||
[node name="Camera" type="Camera" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5 )
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 5)
|
||||
fov = 60.0
|
||||
near = 0.1
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
extends Control
|
||||
|
||||
export(NodePath) var target
|
||||
export var min_scale = 0.1
|
||||
export var max_scale = 3.0
|
||||
export var one_finger_rot_x = true
|
||||
export var one_finger_rot_y = true
|
||||
export var two_fingers_rot_z = true
|
||||
export var two_fingers_zoom = true
|
||||
@export var target: NodePath
|
||||
@export var min_scale = 0.1
|
||||
@export var max_scale = 3.0
|
||||
@export var one_finger_rot_x = true
|
||||
@export var one_finger_rot_y = true
|
||||
@export var two_fingers_rot_z = true
|
||||
@export var two_fingers_zoom = true
|
||||
|
||||
var base_state
|
||||
var curr_state
|
||||
|
||||
@@ -13,25 +13,25 @@ __meta__ = {
|
||||
}
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 298.0
|
||||
offset_right = 1024.0
|
||||
offset_bottom = 298.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="ViewportContainer" type="ViewportContainer" parent="HBoxContainer"]
|
||||
margin_right = 510.0
|
||||
margin_bottom = 298.0
|
||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="HBoxContainer"]
|
||||
offset_right = 510.0
|
||||
offset_bottom = 298.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
stretch = true
|
||||
script = ExtResource( 1 )
|
||||
target = NodePath("Viewport/Spatial/MeshInstance")
|
||||
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
||||
one_finger_rot_y = false
|
||||
two_fingers_rot_z = false
|
||||
two_fingers_zoom = false
|
||||
|
||||
[node name="Viewport" type="Viewport" parent="HBoxContainer/ViewportContainer"]
|
||||
size = Vector2( 510, 298 )
|
||||
[node name="SubViewport" type="SubViewport" parent="HBoxContainer/SubViewportContainer"]
|
||||
size = Vector2(510, 298)
|
||||
own_world = true
|
||||
transparent_bg = true
|
||||
handle_input_locally = false
|
||||
@@ -40,32 +40,32 @@ hdr = false
|
||||
usage = 3
|
||||
render_target_update_mode = 3
|
||||
|
||||
[node name="Spatial" parent="HBoxContainer/ViewportContainer/Viewport" instance=ExtResource( 2 )]
|
||||
[node name="Node3D" parent="HBoxContainer/SubViewportContainer/SubViewport" instance=ExtResource( 2 )]
|
||||
|
||||
[node name="Camera" parent="HBoxContainer/ViewportContainer/Viewport/Spatial" index="2"]
|
||||
[node name="Camera3D" parent="HBoxContainer/SubViewportContainer/SubViewport/Node3D" index="2"]
|
||||
current = true
|
||||
|
||||
[node name="Label" type="Label" parent="HBoxContainer/ViewportContainer"]
|
||||
margin_left = 7.0
|
||||
margin_top = 11.0
|
||||
margin_right = 157.0
|
||||
margin_bottom = 25.0
|
||||
[node name="Label" type="Label" parent="HBoxContainer/SubViewportContainer"]
|
||||
offset_left = 7.0
|
||||
offset_top = 11.0
|
||||
offset_right = 157.0
|
||||
offset_bottom = 25.0
|
||||
text = "One-finger rot around X"
|
||||
|
||||
[node name="ViewportContainer2" type="ViewportContainer" parent="HBoxContainer"]
|
||||
margin_left = 514.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 298.0
|
||||
[node name="ViewportContainer2" type="SubViewportContainer" parent="HBoxContainer"]
|
||||
offset_left = 514.0
|
||||
offset_right = 1024.0
|
||||
offset_bottom = 298.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
stretch = true
|
||||
script = ExtResource( 1 )
|
||||
target = NodePath("Viewport/Spatial/MeshInstance")
|
||||
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
||||
two_fingers_rot_z = false
|
||||
two_fingers_zoom = false
|
||||
|
||||
[node name="Viewport" type="Viewport" parent="HBoxContainer/ViewportContainer2"]
|
||||
size = Vector2( 510, 298 )
|
||||
[node name="SubViewport" type="SubViewport" parent="HBoxContainer/ViewportContainer2"]
|
||||
size = Vector2(510, 298)
|
||||
own_world = true
|
||||
transparent_bg = true
|
||||
handle_input_locally = false
|
||||
@@ -74,37 +74,37 @@ hdr = false
|
||||
usage = 3
|
||||
render_target_update_mode = 3
|
||||
|
||||
[node name="Spatial" parent="HBoxContainer/ViewportContainer2/Viewport" instance=ExtResource( 2 )]
|
||||
[node name="Node3D" parent="HBoxContainer/ViewportContainer2/SubViewport" instance=ExtResource( 2 )]
|
||||
|
||||
[node name="Camera" parent="HBoxContainer/ViewportContainer2/Viewport/Spatial" index="2"]
|
||||
[node name="Camera3D" parent="HBoxContainer/ViewportContainer2/SubViewport/Node3D" index="2"]
|
||||
current = true
|
||||
|
||||
[node name="Label2" type="Label" parent="HBoxContainer/ViewportContainer2"]
|
||||
margin_left = 8.0
|
||||
margin_top = 11.0
|
||||
margin_right = 196.0
|
||||
margin_bottom = 25.0
|
||||
offset_left = 8.0
|
||||
offset_top = 11.0
|
||||
offset_right = 196.0
|
||||
offset_bottom = 25.0
|
||||
text = "One-finger rot around X and Y"
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="."]
|
||||
margin_top = 302.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 600.0
|
||||
offset_top = 302.0
|
||||
offset_right = 1024.0
|
||||
offset_bottom = 600.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="ViewportContainer" type="ViewportContainer" parent="HBoxContainer2"]
|
||||
margin_right = 510.0
|
||||
margin_bottom = 298.0
|
||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="HBoxContainer2"]
|
||||
offset_right = 510.0
|
||||
offset_bottom = 298.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
stretch = true
|
||||
script = ExtResource( 1 )
|
||||
target = NodePath("Viewport/Spatial/MeshInstance")
|
||||
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
||||
two_fingers_zoom = false
|
||||
|
||||
[node name="Viewport" type="Viewport" parent="HBoxContainer2/ViewportContainer"]
|
||||
size = Vector2( 510, 298 )
|
||||
[node name="SubViewport" type="SubViewport" parent="HBoxContainer2/SubViewportContainer"]
|
||||
size = Vector2(510, 298)
|
||||
own_world = true
|
||||
transparent_bg = true
|
||||
handle_input_locally = false
|
||||
@@ -113,30 +113,30 @@ hdr = false
|
||||
usage = 3
|
||||
render_target_update_mode = 3
|
||||
|
||||
[node name="Spatial" parent="HBoxContainer2/ViewportContainer/Viewport" instance=ExtResource( 2 )]
|
||||
[node name="Node3D" parent="HBoxContainer2/SubViewportContainer/SubViewport" instance=ExtResource( 2 )]
|
||||
|
||||
[node name="Camera" parent="HBoxContainer2/ViewportContainer/Viewport/Spatial" index="2"]
|
||||
[node name="Camera3D" parent="HBoxContainer2/SubViewportContainer/SubViewport/Node3D" index="2"]
|
||||
current = true
|
||||
|
||||
[node name="Label3" type="Label" parent="HBoxContainer2/ViewportContainer"]
|
||||
margin_left = 8.0
|
||||
margin_top = 9.0
|
||||
margin_right = 236.0
|
||||
margin_bottom = 23.0
|
||||
[node name="Label3" type="Label" parent="HBoxContainer2/SubViewportContainer"]
|
||||
offset_left = 8.0
|
||||
offset_top = 9.0
|
||||
offset_right = 236.0
|
||||
offset_bottom = 23.0
|
||||
text = "One-finger X/Y rot + two-finger Z rot"
|
||||
|
||||
[node name="ViewportContainer2" type="ViewportContainer" parent="HBoxContainer2"]
|
||||
margin_left = 514.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 298.0
|
||||
[node name="ViewportContainer2" type="SubViewportContainer" parent="HBoxContainer2"]
|
||||
offset_left = 514.0
|
||||
offset_right = 1024.0
|
||||
offset_bottom = 298.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
stretch = true
|
||||
script = ExtResource( 1 )
|
||||
target = NodePath("Viewport/Spatial/MeshInstance")
|
||||
target = NodePath("SubViewport/Node3D/MeshInstance3D")
|
||||
|
||||
[node name="Viewport" type="Viewport" parent="HBoxContainer2/ViewportContainer2"]
|
||||
size = Vector2( 510, 298 )
|
||||
[node name="SubViewport" type="SubViewport" parent="HBoxContainer2/ViewportContainer2"]
|
||||
size = Vector2(510, 298)
|
||||
own_world = true
|
||||
transparent_bg = true
|
||||
handle_input_locally = false
|
||||
@@ -145,19 +145,19 @@ hdr = false
|
||||
usage = 3
|
||||
render_target_update_mode = 3
|
||||
|
||||
[node name="Spatial" parent="HBoxContainer2/ViewportContainer2/Viewport" instance=ExtResource( 2 )]
|
||||
[node name="Node3D" parent="HBoxContainer2/ViewportContainer2/SubViewport" instance=ExtResource( 2 )]
|
||||
|
||||
[node name="Camera" parent="HBoxContainer2/ViewportContainer2/Viewport/Spatial" index="2"]
|
||||
[node name="Camera3D" parent="HBoxContainer2/ViewportContainer2/SubViewport/Node3D" index="2"]
|
||||
current = true
|
||||
|
||||
[node name="Label2" type="Label" parent="HBoxContainer2/ViewportContainer2"]
|
||||
margin_left = 12.0
|
||||
margin_top = 9.0
|
||||
margin_right = 279.0
|
||||
margin_bottom = 23.0
|
||||
offset_left = 12.0
|
||||
offset_top = 9.0
|
||||
offset_right = 279.0
|
||||
offset_bottom = 23.0
|
||||
text = "One-finger X/Y, two-finger Z + pinch"
|
||||
|
||||
[editable path="HBoxContainer/ViewportContainer/Viewport/Spatial"]
|
||||
[editable path="HBoxContainer/ViewportContainer2/Viewport/Spatial"]
|
||||
[editable path="HBoxContainer2/ViewportContainer/Viewport/Spatial"]
|
||||
[editable path="HBoxContainer2/ViewportContainer2/Viewport/Spatial"]
|
||||
[editable path="HBoxContainer/SubViewportContainer/SubViewport/Node3D"]
|
||||
[editable path="HBoxContainer/ViewportContainer2/SubViewport/Node3D"]
|
||||
[editable path="HBoxContainer2/SubViewportContainer/SubViewport/Node3D"]
|
||||
[editable path="HBoxContainer2/ViewportContainer2/SubViewport/Node3D"]
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ config/icon="res://icon.png"
|
||||
|
||||
[gdnative]
|
||||
|
||||
singletons=[ ]
|
||||
singletons=[]
|
||||
|
||||
[input_devices]
|
||||
|
||||
@@ -30,5 +30,5 @@ quality/intended_usage/framebuffer_allocation=0
|
||||
quality/intended_usage/framebuffer_allocation.mobile=0
|
||||
vram_compression/import_etc=true
|
||||
vram_compression/import_etc2=false
|
||||
environment/default_clear_color=Color( 0.113725, 0.133333, 0.196078, 1 )
|
||||
environment/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1)
|
||||
environment/default_environment="res://default_env.tres"
|
||||
|
||||
@@ -7,7 +7,7 @@ func _process(_delta):
|
||||
|
||||
func _draw():
|
||||
# Get the touch helper singleton.
|
||||
var touch_helper = get_node("/root/TouchHelper")
|
||||
var touch_helper = get_node(^"/root/TouchHelper")
|
||||
# Draw every pointer as a circle.
|
||||
for ptr_index in touch_helper.state.keys():
|
||||
var pos = touch_helper.state[ptr_index]
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ TouchHelper="*res://TouchHelper.gd"
|
||||
|
||||
[gdnative]
|
||||
|
||||
singletons=[ ]
|
||||
singletons=[]
|
||||
|
||||
[input_devices]
|
||||
|
||||
@@ -32,4 +32,4 @@ pointing/emulate_touch_from_mouse=true
|
||||
quality/driver/driver_name="GLES2"
|
||||
vram_compression/import_etc=true
|
||||
vram_compression/import_etc2=false
|
||||
environment/default_clear_color=Color( 0.113725, 0.133333, 0.196078, 1 )
|
||||
environment/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1)
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path.s3tc="res://.import/cube_6.png-0b954e2c88c21596044fe6448711988e.s3tc.stex"
|
||||
path.etc="res://.import/cube_6.png-0b954e2c88c21596044fe6448711988e.etc.stex"
|
||||
type="StreamTexture2D"
|
||||
path.s3tc="res://.godot/imported/cube_6.png-0b954e2c88c21596044fe6448711988e.s3tc.stex"
|
||||
path.etc="res://.godot/imported/cube_6.png-0b954e2c88c21596044fe6448711988e.etc.stex"
|
||||
metadata={
|
||||
"imported_formats": [ "s3tc", "etc" ],
|
||||
"imported_formats": ["s3tc", "etc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://cube_6.png"
|
||||
dest_files=[ "res://.import/cube_6.png-0b954e2c88c21596044fe6448711988e.s3tc.stex", "res://.import/cube_6.png-0b954e2c88c21596044fe6448711988e.etc.stex" ]
|
||||
dest_files=["res://.godot/imported/cube_6.png-0b954e2c88c21596044fe6448711988e.s3tc.stex", "res://.godot/imported/cube_6.png-0b954e2c88c21596044fe6448711988e.etc.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_resource type="Environment" load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="ProceduralSky" id=1]
|
||||
[sub_resource type="Sky" id=1]
|
||||
|
||||
[resource]
|
||||
background_mode = 2
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
type="StreamTexture2D"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,7 +10,7 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
||||
@@ -98,9 +98,9 @@ func _process(delta):
|
||||
var gyro = Input.get_gyroscope()
|
||||
|
||||
# Show our base values
|
||||
get_node("Control/Accelerometer").text = "Accelerometer: " + str(acc) + ", gravity: " + str(grav)
|
||||
get_node("Control/Magnetometer").text = "Magnetometer: " + str(mag)
|
||||
get_node("Control/Gyroscope").text = "Gyroscope: " + str(gyro)
|
||||
get_node(^"Control/Accelerometer").text = "Accelerometer: " + str(acc) + ", gravity: " + str(grav)
|
||||
get_node(^"Control/Magnetometer").text = "Magnetometer: " + str(mag)
|
||||
get_node(^"Control/Gyroscope").text = "Gyroscope: " + str(gyro)
|
||||
|
||||
# Check if we have all needed data
|
||||
if grav.length() < 0.1:
|
||||
@@ -116,23 +116,23 @@ func _process(delta):
|
||||
mag = Vector3(1.0, 0.0, 0.0)
|
||||
|
||||
# Update our arrow showing gravity
|
||||
get_node("Arrows/AccelerometerArrow").transform.basis = get_basis_for_arrow(grav)
|
||||
get_node(^"Arrows/AccelerometerArrow").transform.basis = get_basis_for_arrow(grav)
|
||||
|
||||
# Update our arrow showing our magnetometer
|
||||
# Note that in absense of other strong magnetic forces this will point to magnetic north, which is not horizontal thanks to the earth being, uhm, round
|
||||
get_node("Arrows/MagnetoArrow").transform.basis = get_basis_for_arrow(mag)
|
||||
get_node(^"Arrows/MagnetoArrow").transform.basis = get_basis_for_arrow(mag)
|
||||
|
||||
# Calculate our north vector and show that
|
||||
var north = calc_north(grav,mag)
|
||||
get_node("Arrows/NorthArrow").transform.basis = get_basis_for_arrow(north)
|
||||
get_node(^"Arrows/NorthArrow").transform.basis = get_basis_for_arrow(north)
|
||||
|
||||
# Combine our magnetometer and gravity vector to position our box. This will be fairly accurate
|
||||
# but our magnetometer can be easily influenced by magnets. Cheaper phones often don't have gyros
|
||||
# so it is a good backup.
|
||||
var mag_and_grav = get_node("Boxes/MagAndGrav")
|
||||
var mag_and_grav = get_node(^"Boxes/MagAndGrav")
|
||||
mag_and_grav.transform.basis = orientate_by_mag_and_grav(mag, grav).orthonormalized()
|
||||
|
||||
# Using our gyro and do a drift correction using our gravity vector gives the best result
|
||||
var gyro_and_grav = get_node("Boxes/GyroAndGrav")
|
||||
var gyro_and_grav = get_node(^"Boxes/GyroAndGrav")
|
||||
var new_basis = rotate_by_gyro(gyro, gyro_and_grav.transform.basis, delta).orthonormalized()
|
||||
gyro_and_grav.transform.basis = drift_correction(new_basis, grav)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
[gd_scene load_steps=11 format=2]
|
||||
|
||||
[ext_resource path="res://main.gd" type="Script" id=1]
|
||||
[ext_resource path="res://cube_6.png" type="Texture" id=2]
|
||||
[ext_resource path="res://cube_6.png" type="Texture2D" id=2]
|
||||
|
||||
[sub_resource type="Environment" id=1]
|
||||
background_mode = 1
|
||||
ambient_light_color = Color( 0.648438, 0.64578, 0.64578, 1 )
|
||||
ambient_light_color = Color(0.648438, 0.64578, 0.64578, 1)
|
||||
|
||||
[sub_resource type="CylinderMesh" id=2]
|
||||
top_radius = 0.2
|
||||
@@ -13,29 +13,29 @@ bottom_radius = 0.1
|
||||
height = 4.0
|
||||
radial_segments = 16
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=3]
|
||||
[sub_resource type="StandardMaterial3D" id=3]
|
||||
params_diffuse_mode = 1
|
||||
albedo_color = Color( 0.356557, 1, 0.366611, 1 )
|
||||
albedo_color = Color(0.356557, 1, 0.366611, 1)
|
||||
roughness = 0.0
|
||||
|
||||
[sub_resource type="CylinderMesh" id=4]
|
||||
top_radius = 0.1
|
||||
radial_segments = 16
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=5]
|
||||
[sub_resource type="StandardMaterial3D" id=5]
|
||||
params_diffuse_mode = 1
|
||||
albedo_color = Color( 0.0266393, 0.292793, 1, 1 )
|
||||
albedo_color = Color(0.0266393, 0.292793, 1, 1)
|
||||
roughness = 0.0
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=6]
|
||||
[sub_resource type="StandardMaterial3D" id=6]
|
||||
params_diffuse_mode = 1
|
||||
albedo_color = Color( 0.957031, 0.801627, 0.0921731, 1 )
|
||||
albedo_color = Color(0.957031, 0.801627, 0.0921731, 1)
|
||||
roughness = 0.0
|
||||
|
||||
[sub_resource type="CubeMesh" id=7]
|
||||
size = Vector3( 4, 4, 4 )
|
||||
[sub_resource type="BoxMesh" id=7]
|
||||
size = Vector3(4, 4, 4)
|
||||
|
||||
[sub_resource type="SpatialMaterial" id=8]
|
||||
[sub_resource type="StandardMaterial3D" id=8]
|
||||
params_diffuse_mode = 1
|
||||
albedo_texture = ExtResource( 2 )
|
||||
roughness = 0.0
|
||||
@@ -44,89 +44,89 @@ roughness = 0.0
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
margin_right = 1025.0
|
||||
margin_bottom = 602.0
|
||||
offset_right = 1025.0
|
||||
offset_bottom = 602.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Accelerometer" type="Label" parent="Control"]
|
||||
margin_right = 340.0
|
||||
margin_bottom = 14.0
|
||||
rect_scale = Vector2( 2, 2 )
|
||||
offset_right = 340.0
|
||||
offset_bottom = 14.0
|
||||
rect_scale = Vector2(2, 2)
|
||||
text = "Accelerometer"
|
||||
|
||||
[node name="Magnetometer" type="Label" parent="Control"]
|
||||
margin_top = 30.0
|
||||
margin_right = 340.0
|
||||
margin_bottom = 44.0
|
||||
rect_scale = Vector2( 2, 2 )
|
||||
offset_top = 30.0
|
||||
offset_right = 340.0
|
||||
offset_bottom = 44.0
|
||||
rect_scale = Vector2(2, 2)
|
||||
text = "Magnetometer"
|
||||
|
||||
[node name="Gyroscope" type="Label" parent="Control"]
|
||||
margin_top = 60.0
|
||||
margin_right = 340.0
|
||||
margin_bottom = 74.0
|
||||
rect_scale = Vector2( 2, 2 )
|
||||
offset_top = 60.0
|
||||
offset_right = 340.0
|
||||
offset_bottom = 74.0
|
||||
rect_scale = Vector2(2, 2)
|
||||
text = "Gyroscope"
|
||||
|
||||
[node name="Camera" type="Camera" parent="."]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.285209, 0, 11.9833 )
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.285209, 0, 11.9833)
|
||||
environment = SubResource( 1 )
|
||||
fov = 74.0
|
||||
near = 0.1
|
||||
|
||||
[node name="Arrows" type="Spatial" parent="."]
|
||||
[node name="Arrows" type="Node3D" parent="."]
|
||||
|
||||
[node name="AccelerometerArrow" type="Spatial" parent="Arrows"]
|
||||
transform = Transform( 1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0 )
|
||||
[node name="AccelerometerArrow" type="Node3D" parent="Arrows"]
|
||||
transform = Transform3D(1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0)
|
||||
|
||||
[node name="Bottom" type="MeshInstance" parent="Arrows/AccelerometerArrow"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 )
|
||||
[node name="Bottom" type="MeshInstance3D" parent="Arrows/AccelerometerArrow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
|
||||
mesh = SubResource( 2 )
|
||||
material/0 = SubResource( 3 )
|
||||
surface_material_override/0 = SubResource( 3 )
|
||||
|
||||
[node name="Top" type="MeshInstance" parent="Arrows/AccelerometerArrow"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0 )
|
||||
[node name="Top" type="MeshInstance3D" parent="Arrows/AccelerometerArrow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
|
||||
mesh = SubResource( 4 )
|
||||
material/0 = SubResource( 3 )
|
||||
surface_material_override/0 = SubResource( 3 )
|
||||
|
||||
[node name="MagnetoArrow" type="Spatial" parent="Arrows"]
|
||||
transform = Transform( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0 )
|
||||
[node name="MagnetoArrow" type="Node3D" parent="Arrows"]
|
||||
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
||||
|
||||
[node name="Bottom" type="MeshInstance" parent="Arrows/MagnetoArrow"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 )
|
||||
[node name="Bottom" type="MeshInstance3D" parent="Arrows/MagnetoArrow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
|
||||
mesh = SubResource( 2 )
|
||||
material/0 = SubResource( 5 )
|
||||
surface_material_override/0 = SubResource( 5 )
|
||||
|
||||
[node name="Top" type="MeshInstance" parent="Arrows/MagnetoArrow"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0 )
|
||||
[node name="Top" type="MeshInstance3D" parent="Arrows/MagnetoArrow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
|
||||
mesh = SubResource( 4 )
|
||||
material/0 = SubResource( 5 )
|
||||
surface_material_override/0 = SubResource( 5 )
|
||||
|
||||
[node name="NorthArrow" type="Spatial" parent="Arrows"]
|
||||
transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 )
|
||||
[node name="NorthArrow" type="Node3D" parent="Arrows"]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
|
||||
|
||||
[node name="Bottom" type="MeshInstance" parent="Arrows/NorthArrow"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 )
|
||||
[node name="Bottom" type="MeshInstance3D" parent="Arrows/NorthArrow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
|
||||
mesh = SubResource( 2 )
|
||||
material/0 = SubResource( 6 )
|
||||
surface_material_override/0 = SubResource( 6 )
|
||||
|
||||
[node name="Top" type="MeshInstance" parent="Arrows/NorthArrow"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0 )
|
||||
[node name="Top" type="MeshInstance3D" parent="Arrows/NorthArrow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0)
|
||||
mesh = SubResource( 4 )
|
||||
material/0 = SubResource( 6 )
|
||||
surface_material_override/0 = SubResource( 6 )
|
||||
|
||||
[node name="Boxes" type="Spatial" parent="."]
|
||||
[node name="Boxes" type="Node3D" parent="."]
|
||||
|
||||
[node name="MagAndGrav" type="MeshInstance" parent="Boxes"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7, -4, 0 )
|
||||
[node name="MagAndGrav" type="MeshInstance3D" parent="Boxes"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, -4, 0)
|
||||
mesh = SubResource( 7 )
|
||||
material/0 = SubResource( 8 )
|
||||
surface_material_override/0 = SubResource( 8 )
|
||||
|
||||
[node name="GyroAndGrav" type="MeshInstance" parent="Boxes"]
|
||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7, -4, 0 )
|
||||
[node name="GyroAndGrav" type="MeshInstance3D" parent="Boxes"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, -4, 0)
|
||||
mesh = SubResource( 7 )
|
||||
material/0 = SubResource( 8 )
|
||||
surface_material_override/0 = SubResource( 8 )
|
||||
|
||||
[node name="DirectionalLight" type="DirectionalLight" parent="."]
|
||||
transform = Transform( 0.884838, -0.329433, 0.329449, 0, 0.707124, 0.707089, -0.4659, -0.625659, 0.62569, 0, 4.69444, 0 )
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(0.884838, -0.329433, 0.329449, 0, 0.707124, 0.707089, -0.4659, -0.625659, 0.62569, 0, 4.69444, 0)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
config_version=4
|
||||
|
||||
_global_script_classes=[ ]
|
||||
_global_script_classes=[]
|
||||
_global_script_class_icons={
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ config/icon="res://icon.png"
|
||||
|
||||
[gdnative]
|
||||
|
||||
singletons=[ ]
|
||||
singletons=[]
|
||||
|
||||
[rendering]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user