Compare commits
85 Commits
TAS_system
...
master
Author | SHA1 | Date |
---|---|---|
Spencer Killen | f1c66dcb92 | |
alex-kumpula | fb7054c66f | |
Spencer Killen | 8e7b3882db | |
Spencer Killen | 095801439d | |
Spencer Killen | 0ef8c353c2 | |
alex-kumpula | adfdc67544 | |
alex-kumpula | 63f3bdec03 | |
alex-kumpula | ee33ad74b1 | |
Spencer Killen | 5689b713ca | |
Spencer Killen | 44f0abbedf | |
alex-kumpula | dfed18b62c | |
Spencer Killen | d7655bb1e5 | |
Spencer Killen | 892a3609b6 | |
Spencer Killen | 3978e1160c | |
alex-kumpula | e47157b3a0 | |
Spencer Killen | e811a84538 | |
Spencer Killen | e2c9d9cd1a | |
alex-kumpula | e7e85088e2 | |
alex-kumpula | db83354c6a | |
Spencer Killen | 13e856791b | |
Spencer Killen | da70c0ebb4 | |
alex-kumpula | 473858c5eb | |
Spencer Killen | 8490650ffe | |
alex-kumpula | 0856765e9c | |
Spencer Killen | 0c1439c4f3 | |
Spencer Killen | 03ec6a2651 | |
Spencer Killen | cb2e0b6c5e | |
alex-kumpula | 4e2465aeff | |
alex-kumpula | b2ad226825 | |
Spencer Killen | 6f18e82a5d | |
alex-kumpula | 04def51693 | |
Spencer Killen | 412b2f4e51 | |
Spencer Killen | 6d491f60c7 | |
Spencer Killen | 3fbdf2ded0 | |
alex-kumpula | 5e81e61e64 | |
alex-kumpula | 51f67fafab | |
alex-kumpula | 6693fed2bf | |
Spencer Killen | 5e213f3dba | |
Spencer Killen | b4d6b40cb0 | |
Spencer Killen | cbf47648a4 | |
Spencer Killen | e827cbad8f | |
Spencer Killen | 1bd93c1161 | |
alex-kumpula | d9002b2171 | |
Spencer Killen | 978703caa3 | |
alex-kumpula | dfb805e218 | |
alex-kumpula | 67a6dc7ff4 | |
Spencer Killen | 7ffaa30f6d | |
Spencer Killen | c7c3cd4d97 | |
Spencer Killen | a65dc1276b | |
alex-kumpula | 5862623196 | |
Spencer Killen | 6693cd26b4 | |
Spencer Killen | ff8c3ef752 | |
Spencer Killen | a7c1092f50 | |
alex-kumpula | 5438bc9ffd | |
Spencer Killen | cf12a96a75 | |
Spencer Killen | d221962270 | |
Spencer Killen | 972c374f4e | |
alex-kumpula | 33333714e2 | |
alex-kumpula | eb668bfd63 | |
Spencer Killen | 8906d69760 | |
Spencer Killen | 05cd717984 | |
Spencer Killen | 3fa504f25a | |
alex-kumpula | 86b29ec476 | |
Spencer Killen | 726de6e49b | |
Spencer Killen | 36a1cdc806 | |
alex-kumpula | 35f9476c3d | |
Spencer Killen | 015660c7bd | |
Spencer Killen | dc2c3d94b7 | |
alex-kumpula | d3324ad81f | |
Spencer Killen | 0bac49d257 | |
alex-kumpula | 7417ff9a11 | |
alex-kumpula | 9fb9b92aec | |
Spencer Killen | 8c1b431f84 | |
Spencer Killen | 3d4c75ddab | |
alex-kumpula | 5f6e7a3e8e | |
alex-kumpula | b3259e9585 | |
Spencer Killen | db7474043b | |
alex-kumpula | 84aa101636 | |
alex-kumpula | 27a98286ef | |
alex-kumpula | a7f5ea6fd5 | |
Spencer Killen | 13d6939103 | |
Spencer Killen | 8891190a31 | |
alex-kumpula | 1ce9c11a02 | |
alex-kumpula | 9f7780f176 | |
Spencer Killen | 1744e6a727 |
|
@ -6,3 +6,13 @@ Shaders:
|
|||
Watercolor: https://c-chen99.github.io/watercolorShader/final.html
|
||||
CMKY: https://www.shadertoy.com/view/MltBW4
|
||||
Fresnel: https://godotshaders.com/snippet/fresnel/
|
||||
|
||||
Code:
|
||||
occlussion shader: https://www.reddit.com/r/godot/comments/rww6e9/comment/hrfa51g/?utm_source=share&utm_medium=web2x&context=3
|
||||
|
||||
|
||||
Sound:
|
||||
billiard-clack: https://freesound.org/people/Za-Games/sounds/539854/
|
||||
|
||||
|
||||
https://freesound.org/people/original_sound/sounds/372197/
|
|
@ -0,0 +1,6 @@
|
|||
*.blend1
|
||||
*.blend2
|
||||
*.blend3
|
||||
*.blend4
|
||||
*.blend5
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -23,8 +23,8 @@ def export(path: str):
|
|||
use_selection=True,
|
||||
export_colors=False,
|
||||
export_apply=True,
|
||||
export_animation_mode="NLA_TRACKS",
|
||||
export_anim_slide_to_zero=True,
|
||||
#export_animation_mode="NLA_TRACKS",
|
||||
#export_anim_slide_to_zero=True,
|
||||
)
|
||||
|
||||
try:
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
blends/small_room.blend (Stored with Git LFS)
BIN
blends/small_room.blend (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,8 @@
|
|||
extends Button
|
||||
|
||||
func _on_pressed():
|
||||
get_tree().change_scene_to_file("res://main.tscn")
|
||||
|
||||
func _input(event):
|
||||
if event.is_action("charge"):
|
||||
_on_pressed()
|
|
@ -0,0 +1,30 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class CollisionSound : AudioStreamPlayer
|
||||
{
|
||||
Node controller;
|
||||
bool firstPlayed = false;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
controller = GetNode<Node>("/root/ControllerEventBus");
|
||||
|
||||
Callable callable = new Callable(this, MethodName.OnControllerContact);
|
||||
|
||||
controller.Connect("new_target", callable);
|
||||
|
||||
this.OnControllerContact(this);
|
||||
}
|
||||
|
||||
|
||||
public void OnControllerContact(Node node)
|
||||
{
|
||||
|
||||
if (firstPlayed) this.Play();
|
||||
firstPlayed = true;
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,41 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dmttoc025f26x"
|
||||
path="res://.godot/imported/Domino.glb-425929d56fd611b3f418978da5619fbf.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Domino.glb"
|
||||
dest_files=["res://.godot/imported/Domino.glb-425929d56fd611b3f418978da5619fbf.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type="Node3D"
|
||||
nodes/root_name="Scene Root"
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path="res://physics/import_billiard.gd"
|
||||
_subresources={
|
||||
"nodes": {
|
||||
"PATH:Domino2": {
|
||||
"generate/physics": true,
|
||||
"physics/body_type": 1,
|
||||
"physics/shape_type": 3,
|
||||
"primitive/size": Vector3(0.01, 0.01, 0.01)
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/embedded_image_handling=1
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ds1wgysoytgp3"
|
||||
path.s3tc="res://.godot/imported/Domino_Domino_Colour.png-07a86699fb9aab3fc9c77e79728398fd.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Domino_Domino_Colour.png"
|
||||
dest_files=["res://.godot/imported/Domino_Domino_Colour.png-07a86699fb9aab3fc9c77e79728398fd.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
|
|
@ -0,0 +1,6 @@
|
|||
<Project Sdk="Godot.NET.Sdk/4.1.3">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,6 @@
|
|||
<Project Sdk="Godot.NET.Sdk/4.1.1">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||
</PropertyGroup>
|
||||
</Project>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,25 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://db3h7pscfif84"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dl005e2rvn86b" path="res://balloon.glb" id="1_sa42c"]
|
||||
|
||||
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_wfeli"]
|
||||
friction = 0.0
|
||||
bounce = 12.8
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_pjfh4"]
|
||||
radius = 0.258256
|
||||
|
||||
[node name="balloon" instance=ExtResource("1_sa42c")]
|
||||
mass = 0.1
|
||||
physics_material_override = SubResource("PhysicsMaterial_wfeli")
|
||||
gravity_scale = 0.0
|
||||
|
||||
[node name="Balloon_String" parent="." index="2"]
|
||||
transform = Transform3D(-0.002, 0, -1.74846e-10, 0, 0.286, 0, 1.74846e-10, 0, -0.002, 0, -0.378486, 0)
|
||||
|
||||
[node name="Balloon" parent="." index="3"]
|
||||
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
|
||||
|
||||
[node name="CollisionShape3D" parent="." index="4"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.239173, 0)
|
||||
shape = SubResource("SphereShape3D_pjfh4")
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://bnn6mfpgaqxvb"]
|
||||
|
||||
[ext_resource type="Shader" path="res://Objects/balloon/balloon_shader.gdshader" id="1_i5nh0"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_i5nh0")
|
|
@ -0,0 +1,8 @@
|
|||
[gd_resource type="StandardMaterial3D" format=3 uid="uid://cqhehgwersrkl"]
|
||||
|
||||
[resource]
|
||||
albedo_color = Color(1, 0, 0, 1)
|
||||
metallic = 0.26
|
||||
roughness = 0.0
|
||||
clearcoat_enabled = true
|
||||
clearcoat_roughness = 0.83
|
|
@ -0,0 +1,9 @@
|
|||
shader_type spatial;
|
||||
render_mode specular_schlick_ggx;
|
||||
|
||||
void fragment() {
|
||||
ALBEDO = vec3(255.0, 0.0, 0.0);
|
||||
METALLIC = 0.9;
|
||||
ROUGHNESS = 0.2;
|
||||
ALPHA = 0.98;
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
[gd_resource type="StandardMaterial3D" format=3 uid="uid://3r1biqr3c4l7"]
|
||||
|
||||
[resource]
|
||||
resource_name = "string"
|
||||
cull_mode = 2
|
||||
vertex_color_use_as_albedo = true
|
||||
albedo_color = Color(0.906332, 0.906332, 0.906332, 1)
|
||||
roughness = 0.5
|
|
@ -0,0 +1,8 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://dkoiku0t4b0o7"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://4imncqpi4gw5" path="res://string.glb" id="1_otewq"]
|
||||
|
||||
[node name="string" instance=ExtResource("1_otewq")]
|
||||
|
||||
[node name="Balloon_String" parent="." index="0"]
|
||||
transform = Transform3D(-0.00735031, 1.59288e-05, -5.56369e-06, 1.21871e-07, 1, -6.21002e-06, 5.56359e-06, -0.000844878, -0.00735031, 0, -1.5621, 0)
|
|
@ -0,0 +1,19 @@
|
|||
extends Node3D
|
||||
|
||||
var delta := 1.0 / float(Engine.physics_ticks_per_second)
|
||||
|
||||
func _ready():
|
||||
Engine.get_physics_frames()
|
||||
TAS_System.FrameIncremented.connect(frame_inc)
|
||||
TAS_System.FramesAdvanced.connect(frames_change)
|
||||
TAS_System.FramesRegressed.connect(frames_change)
|
||||
|
||||
func frame_inc(frame: int):
|
||||
%AnimationTree.advance(delta)
|
||||
|
||||
func frames_change(start: int, end: int):
|
||||
%AnimationTree.advance((end - start)*delta)
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
|
@ -0,0 +1,57 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://cfpiau12q3fut"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c2kmady6gqslx" path="res://child.glb" id="1_rqu88"]
|
||||
[ext_resource type="Script" path="res://animation_tree.gd" id="2_tcc3g"]
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_uc42e"]
|
||||
animation = &"JumpingJacksNLA"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ijpln"]
|
||||
animation = &"JumpingJacksNLA"
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_57k3o"]
|
||||
switch_mode = 2
|
||||
advance_mode = 2
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_3idly"]
|
||||
switch_mode = 2
|
||||
advance_mode = 2
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_h2mkw"]
|
||||
switch_mode = 2
|
||||
advance_mode = 2
|
||||
|
||||
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_u0o4a"]
|
||||
states/JumpingJacksNLA/node = SubResource("AnimationNodeAnimation_ijpln")
|
||||
states/JumpingJacksNLA/position = Vector2(559, 54)
|
||||
"states/JumpingJacksNLA 2/node" = SubResource("AnimationNodeAnimation_uc42e")
|
||||
"states/JumpingJacksNLA 2/position" = Vector2(633, 131)
|
||||
transitions = ["JumpingJacksNLA", "JumpingJacksNLA 2", SubResource("AnimationNodeStateMachineTransition_57k3o"), "JumpingJacksNLA 2", "JumpingJacksNLA", SubResource("AnimationNodeStateMachineTransition_3idly"), "Start", "JumpingJacksNLA", SubResource("AnimationNodeStateMachineTransition_h2mkw")]
|
||||
|
||||
[node name="child" instance=ExtResource("1_rqu88")]
|
||||
|
||||
[node name="Skeleton3D" parent="Armature" index="0"]
|
||||
bones/0/position = Vector3(0, 2.32035, 0)
|
||||
bones/3/rotation = Quaternion(0.0514876, -5.4438e-17, -2.71031e-16, 0.998674)
|
||||
bones/5/rotation = Quaternion(0.0965706, 0.063607, -0.119505, 0.986077)
|
||||
bones/6/rotation = Quaternion(0.0206859, -0.0873376, 0.0694537, 0.993539)
|
||||
bones/7/rotation = Quaternion(0.00777981, 0.0423361, -0.0822345, 0.995683)
|
||||
bones/9/rotation = Quaternion(0.0965705, -0.063607, 0.119505, 0.986077)
|
||||
bones/10/rotation = Quaternion(0.0206859, 0.0873376, -0.0694538, 0.993539)
|
||||
bones/11/rotation = Quaternion(0.00777978, -0.0423361, 0.0822345, 0.995683)
|
||||
bones/12/rotation = Quaternion(0.626251, 0.334163, 0.616519, -0.340661)
|
||||
bones/13/rotation = Quaternion(-0.27126, -0.0288476, 0.0393126, 0.96127)
|
||||
bones/14/rotation = Quaternion(-0.0251956, -0.00324478, 0.00115795, 0.999677)
|
||||
bones/15/rotation = Quaternion(0.0339653, 0.0223564, -0.693306, 0.719495)
|
||||
bones/16/rotation = Quaternion(0.626251, -0.334163, -0.616519, -0.340661)
|
||||
bones/17/rotation = Quaternion(-0.27126, 0.0288476, -0.0393126, 0.96127)
|
||||
bones/18/rotation = Quaternion(-0.0251956, 0.00324479, -0.00115795, 0.999677)
|
||||
bones/19/rotation = Quaternion(0.0339653, -0.0223564, 0.693306, 0.719495)
|
||||
|
||||
[node name="AnimationTree" type="AnimationTree" parent="." index="2"]
|
||||
unique_name_in_owner = true
|
||||
tree_root = SubResource("AnimationNodeStateMachine_u0o4a")
|
||||
anim_player = NodePath("../AnimationPlayer")
|
||||
active = true
|
||||
process_callback = 2
|
||||
script = ExtResource("2_tcc3g")
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://75axeu8xnj41"
|
||||
path.bptc="res://.godot/imported/child_Child_Colour.png-c4c784e55c596fd0d230ba7bb48dd996.bptc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/child/child_Child_Colour.png"
|
||||
dest_files=["res://.godot/imported/child_Child_Colour.png-c4c784e55c596fd0d230ba7bb48dd996.bptc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=true
|
||||
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
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b5s7geaamdsd1"
|
||||
path.bptc="res://.godot/imported/child_Child_Normal.png-e0c80530ce3d1ba886433b18216a7e2c.bptc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/child/child_Child_Normal.png"
|
||||
dest_files=["res://.godot/imported/child_Child_Normal.png-e0c80530ce3d1ba886433b18216a7e2c.bptc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://child_Child_Normal.png"
|
||||
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
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bvkvdhygvvxae"
|
||||
path.s3tc="res://.godot/imported/Domino_Domino_Colour.png-067d515b08069aa1e54b6d66cb76bf8b.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/domino/Domino_Domino_Colour.png"
|
||||
dest_files=["res://.godot/imported/Domino_Domino_Colour.png-067d515b08069aa1e54b6d66cb76bf8b.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
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,16 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://b7qky0n2ea40e"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dmttoc025f26x" path="res://Domino.glb" id="1_n2u88"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ndu5u"]
|
||||
size = Vector3(0.153, 0.279, 0.066)
|
||||
|
||||
[node name="Domino" instance=ExtResource("1_n2u88")]
|
||||
mass = 20.0
|
||||
|
||||
[node name="Domino2" parent="." index="2"]
|
||||
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0)
|
||||
|
||||
[node name="CollisionShape3D" parent="." index="3"]
|
||||
transform = Transform3D(0.999984, 0, 0, 0, 0.999984, 0, 0, 0, 0.999984, 0, 0, 0)
|
||||
shape = SubResource("BoxShape3D_ndu5u")
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cbqufebenynym"
|
||||
path.bptc="res://.godot/imported/igloo_Igloo_Colour.png-3593c486967c2287e44aad91030db888.bptc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/igloo/igloo_Igloo_Colour.png"
|
||||
dest_files=["res://.godot/imported/igloo_Igloo_Colour.png-3593c486967c2287e44aad91030db888.bptc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=true
|
||||
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
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://7w2x04tm1opn"
|
||||
path.bptc="res://.godot/imported/igloo_Igloo_Normal.png-ca22887363a6b45a9fd447d212cdb2df.bptc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Objects/igloo/igloo_Igloo_Normal.png"
|
||||
dest_files=["res://.godot/imported/igloo_Igloo_Normal.png-ca22887363a6b45a9fd447d212cdb2df.bptc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://igloo_Igloo_Normal.png"
|
||||
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
|
|
@ -0,0 +1,15 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://y0mo5gxmd08q"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://b7kpas3rxox0u" path="res://present.glb" id="1_420vr"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_v5kqf"]
|
||||
size = Vector3(2.18126, 1.97943, 2.07727)
|
||||
|
||||
[node name="present" instance=ExtResource("1_420vr")]
|
||||
|
||||
[node name="Present" parent="." index="2"]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0)
|
||||
|
||||
[node name="CollisionShape3D" parent="." index="3"]
|
||||
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0)
|
||||
shape = SubResource("BoxShape3D_v5kqf")
|
|
@ -4,27 +4,36 @@ using System;
|
|||
public partial class TAS_System : Node
|
||||
{
|
||||
private double _frameLength = 0.1;
|
||||
private bool _isCountingFrames = false;
|
||||
private Timer _frameTimer;
|
||||
private bool _isIncrementingFrames = false;
|
||||
private double _timeSinceLastFrame;
|
||||
private int _currentFrame = 0;
|
||||
private int _lastAdvancedFrame = 0;
|
||||
[Export]
|
||||
public double min_speed = 1.0;
|
||||
[Export]
|
||||
public double max_speed = 10.0;
|
||||
// Number of ms passed while speeding up
|
||||
[Export]
|
||||
public double speed = 0.0;
|
||||
[Export]
|
||||
public double exp_speed_base = 1.05;
|
||||
|
||||
public double FrameLength
|
||||
{
|
||||
get { return this._frameLength; }
|
||||
private set { this._frameLength = value; }
|
||||
set { this._frameLength = value; }
|
||||
}
|
||||
|
||||
public bool IsCountingFrames
|
||||
public bool IsIncrementingFrames
|
||||
{
|
||||
get { return this._isCountingFrames; }
|
||||
private set { this._isCountingFrames = value; }
|
||||
get { return this._isIncrementingFrames; }
|
||||
private set { this._isIncrementingFrames = value; }
|
||||
}
|
||||
|
||||
private Timer FrameTimer
|
||||
private double TimeSinceLastFrame
|
||||
{
|
||||
get { return this._frameTimer; }
|
||||
set { this._frameTimer = value; }
|
||||
get { return this._timeSinceLastFrame; }
|
||||
set { this._timeSinceLastFrame = value; }
|
||||
}
|
||||
|
||||
public int CurrentFrame
|
||||
|
@ -33,6 +42,11 @@ public partial class TAS_System : Node
|
|||
private set { this._currentFrame = value; }
|
||||
}
|
||||
|
||||
public int AdvancedFramesRemaining
|
||||
{
|
||||
get { return this.LastAdvancedFrame - this.CurrentFrame; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The last frame that can be advanced to. This will
|
||||
/// only be greater than CurrentFrame after the player
|
||||
|
@ -46,31 +60,55 @@ public partial class TAS_System : Node
|
|||
private set { this._lastAdvancedFrame = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Signal is emitted whenever the current frame is incremented.
|
||||
/// </summary>
|
||||
/// <param name="newFrame"></param>
|
||||
[Signal]
|
||||
public delegate void FrameIncrementedEventHandler(int newFrame);
|
||||
|
||||
[Signal]
|
||||
public delegate void FrameAdvancedEventHandler(int currentFrame);
|
||||
public delegate void FramesAdvancedEventHandler(int startFrame, int endFrame);
|
||||
|
||||
[Signal]
|
||||
public delegate void FramesAdvancedEventHandler(int numFrames);
|
||||
public delegate void FramesRegressedEventHandler(int startFrame, int endFrame);
|
||||
|
||||
[Signal]
|
||||
public delegate void FramesRegressedEventHandler(int numFrames);
|
||||
public delegate void StartedIncrementingEventHandler();
|
||||
|
||||
[Signal]
|
||||
public delegate void StoppedIncrementingEventHandler();
|
||||
|
||||
[Signal]
|
||||
public delegate void FramesResetEventHandler();
|
||||
|
||||
[Signal]
|
||||
public delegate void SpeedChangeEventHandler(float speed);
|
||||
|
||||
|
||||
public void StartCountingFrames()
|
||||
{
|
||||
|
||||
public void StartIncrementingFrames()
|
||||
{
|
||||
if (this.IsIncrementingFrames == false)
|
||||
{
|
||||
this.IsIncrementingFrames = true;
|
||||
EmitSignal(SignalName.StartedIncrementing);
|
||||
}
|
||||
}
|
||||
|
||||
public void StopCountingFrames()
|
||||
public void StopIncrementingFrames()
|
||||
{
|
||||
|
||||
if (this.IsIncrementingFrames == true)
|
||||
{
|
||||
this.IsIncrementingFrames = false;
|
||||
EmitSignal(SignalName.StoppedIncrementing);
|
||||
}
|
||||
}
|
||||
|
||||
public void ResetFrameCount()
|
||||
{
|
||||
this.CurrentFrame = 0;
|
||||
this.LastAdvancedFrame = 0;
|
||||
EmitSignal(SignalName.FramesReset);
|
||||
}
|
||||
|
||||
// Returns how many frames it could successfully advance
|
||||
|
@ -78,16 +116,37 @@ public partial class TAS_System : Node
|
|||
{
|
||||
int newFrame = Math.Min(this.CurrentFrame + numFrames, this.LastAdvancedFrame);
|
||||
int framesAdvanced = newFrame - this.CurrentFrame;
|
||||
EmitSignal(SignalName.FramesAdvanced, framesAdvanced);
|
||||
EmitSignal(SignalName.FramesAdvanced, this.CurrentFrame, newFrame);
|
||||
this.CurrentFrame = newFrame;
|
||||
return framesAdvanced;
|
||||
}
|
||||
|
||||
public int AdvanceWithSpeedup(double time_delta) {
|
||||
speed += time_delta;
|
||||
speed = Math.Clamp(speed, min_speed, max_speed);
|
||||
EmitSignal(SignalName.SpeedChange, speed);
|
||||
return Advance((int)Math.Pow(exp_speed_base, speed));
|
||||
}
|
||||
|
||||
public int RegressWithSpeedup(double time_delta) {
|
||||
speed += time_delta;
|
||||
speed = Math.Clamp(speed, min_speed, max_speed);
|
||||
EmitSignal(SignalName.SpeedChange, speed);
|
||||
return Regress((int)Math.Pow(exp_speed_base, speed));
|
||||
}
|
||||
|
||||
public void ResetSpeedup() {
|
||||
speed = 0.0;
|
||||
EmitSignal(SignalName.SpeedChange, speed);
|
||||
}
|
||||
|
||||
// Returns how many frames it could successfully regress
|
||||
public int Regress(int numFrames)
|
||||
{
|
||||
int newFrame = Math.Max(this.CurrentFrame - numFrames, 0);
|
||||
int framesRegressed = newFrame - this.CurrentFrame;
|
||||
EmitSignal(SignalName.FramesRegressed, framesRegressed);
|
||||
EmitSignal(SignalName.FramesRegressed, this.CurrentFrame, newFrame);
|
||||
this.CurrentFrame = newFrame;
|
||||
return framesRegressed;
|
||||
}
|
||||
|
||||
|
@ -99,12 +158,28 @@ public partial class TAS_System : Node
|
|||
this.LastAdvancedFrame = this.CurrentFrame;
|
||||
}
|
||||
|
||||
public override void _PhysicsProcess(double delta)
|
||||
{
|
||||
if (this.IsIncrementingFrames)
|
||||
{
|
||||
this.TimeSinceLastFrame += delta;
|
||||
if (this.TimeSinceLastFrame >= this.FrameLength)
|
||||
{
|
||||
this.CurrentFrame++;
|
||||
this.LastAdvancedFrame = this.CurrentFrame;
|
||||
EmitSignal(SignalName.FrameIncremented, this.CurrentFrame);
|
||||
this.TimeSinceLastFrame = 0 + (this.TimeSinceLastFrame - this.FrameLength);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// public void Test()
|
||||
// {
|
||||
// GD.Print("test123");
|
||||
|
||||
// // EmitSignal(SignalName.TestSignal, "test456");
|
||||
// }
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
this.FrameLength = 1/60;
|
||||
this.StartIncrementingFrames();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
|
||||
[ext_resource type="Script" path="res://TAS_system/TAS_System.cs" id="1_4s6ry"]
|
||||
|
||||
[node name="System" type="Node"]
|
||||
[node name="TAS_System" type="Node"]
|
||||
script = ExtResource("1_4s6ry")
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
using Godot;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Threading;
|
||||
|
||||
public partial class TASable : Node
|
||||
{
|
||||
[Export] RigidBody3D _assignedRigidBody3D;
|
||||
|
||||
public RigidBody3D AssignedRigidBody3D
|
||||
{
|
||||
get { return this._assignedRigidBody3D; }
|
||||
}
|
||||
|
||||
// Frame data
|
||||
public Dictionary<int, Vector3> framePositions = new Dictionary<int, Vector3>();
|
||||
public Dictionary<int, Vector3> frameRotations = new Dictionary<int, Vector3>();
|
||||
public Dictionary<int, Vector3> frameLinearVelocities = new Dictionary<int, Vector3>();
|
||||
public Dictionary<int, Vector3> frameAngularVelocities = new Dictionary<int, Vector3>();
|
||||
|
||||
|
||||
public virtual void SaveState(int frame)
|
||||
{
|
||||
this.framePositions[frame] = this.AssignedRigidBody3D.Position;
|
||||
this.frameRotations[frame] = this.AssignedRigidBody3D.Rotation;
|
||||
this.frameLinearVelocities[frame] = this.AssignedRigidBody3D.LinearVelocity;
|
||||
this.frameAngularVelocities[frame] = this.AssignedRigidBody3D.AngularVelocity;
|
||||
}
|
||||
|
||||
public virtual void LoadState(int frame)
|
||||
{
|
||||
this.AssignedRigidBody3D.Position = this.framePositions[frame];
|
||||
this.AssignedRigidBody3D.Rotation = this.frameRotations[frame];
|
||||
this.AssignedRigidBody3D.LinearVelocity = this.frameLinearVelocities[frame];
|
||||
this.AssignedRigidBody3D.AngularVelocity = this.frameAngularVelocities[frame];
|
||||
}
|
||||
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
if (this._assignedRigidBody3D is null)
|
||||
{
|
||||
this._assignedRigidBody3D = this.GetParent<RigidBody3D>();
|
||||
}
|
||||
|
||||
TAS_System TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||
|
||||
TAS.FrameIncremented += this.OnFrameIncremented;
|
||||
TAS.FramesAdvanced += this.OnFramesAdvanced;
|
||||
TAS.FramesRegressed += this.OnFramesRegressed;
|
||||
TAS.StartedIncrementing += this.OnStartedIncrementing;
|
||||
TAS.StoppedIncrementing += this.OnStoppedIncrementing;
|
||||
TAS.FramesReset += this.OnFramesReset;
|
||||
|
||||
this.SaveState(0);
|
||||
}
|
||||
|
||||
public virtual void OnFrameIncremented(int newFrame)
|
||||
{
|
||||
this.SaveState(newFrame);
|
||||
// GD.Print($"Frame advanced to {newFrame}, called from node {this.AssignedRigidBody3D.Name}");
|
||||
}
|
||||
|
||||
public virtual void OnFramesAdvanced(int startFrame, int endFrame)
|
||||
{
|
||||
this.LoadState(endFrame);
|
||||
// GD.Print($"Frames advanced from {startFrame} to {endFrame}, called from node {this.AssignedRigidBody3D.Name}");
|
||||
}
|
||||
|
||||
public virtual void OnFramesRegressed(int startFrame, int endFrame)
|
||||
{
|
||||
this.LoadState(endFrame);
|
||||
// GD.Print($"Frames regressed from {startFrame} to {endFrame}, called from node {this.AssignedRigidBody3D.Name}");
|
||||
}
|
||||
|
||||
public virtual void OnStartedIncrementing()
|
||||
{
|
||||
this.AssignedRigidBody3D.Freeze = false;
|
||||
this.AssignedRigidBody3D.LockRotation = false;
|
||||
}
|
||||
|
||||
public virtual void OnStoppedIncrementing()
|
||||
{
|
||||
this.AssignedRigidBody3D.Freeze = true;
|
||||
this.AssignedRigidBody3D.LockRotation = true;
|
||||
}
|
||||
|
||||
public virtual void OnFramesReset()
|
||||
{
|
||||
this.SaveState(0);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bjhii55pagkb5"]
|
||||
|
||||
[ext_resource type="Script" path="res://TAS_system/TASable.cs" id="1_uqel0"]
|
||||
|
||||
[node name="is_TASable" type="Node"]
|
||||
script = ExtResource("1_uqel0")
|
|
@ -0,0 +1,52 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class TimescaleSystem : Node
|
||||
{
|
||||
[Export] public double SlowLength = 1.0;
|
||||
[Export] public double SlowMagnitude = 0.2;
|
||||
|
||||
Node controller;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
controller = GetNode<Node>("/root/ControllerEventBus");
|
||||
|
||||
Callable callable = new Callable(this, MethodName.OnControllerContact);
|
||||
|
||||
controller.Connect("new_target", callable);
|
||||
|
||||
this.OnControllerContact(this);
|
||||
}
|
||||
|
||||
|
||||
public void OnControllerContact(Node node)
|
||||
{
|
||||
GD.Print("toUCHED!");
|
||||
|
||||
Engine.TimeScale = this.SlowMagnitude;
|
||||
|
||||
Timer timer = new Timer();
|
||||
timer.Name = "SlowTimer";
|
||||
|
||||
this.AddChild(timer);
|
||||
|
||||
timer.WaitTime = this.SlowLength * this.SlowMagnitude;
|
||||
timer.OneShot = true;
|
||||
|
||||
timer.Timeout += () => {
|
||||
GD.Print("TimE!");
|
||||
Engine.TimeScale = 1.0;
|
||||
timer.QueueFree();
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
timer.Start();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bs3yqnctxfwaa"]
|
||||
|
||||
[ext_resource type="Script" path="res://Timescale_System/TimescaleSystem.cs" id="1_6tt5j"]
|
||||
|
||||
[node name="TimescaleSystem" type="Node"]
|
||||
script = ExtResource("1_6tt5j")
|
|
@ -0,0 +1,48 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class AdvanceButton : Button
|
||||
{
|
||||
TAS_System TAS;
|
||||
bool isButtonPressed = false;
|
||||
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||
|
||||
AudioStreamPlayer buttonSound = this.GetNode<AudioStreamPlayer>("../../ButtonSound");
|
||||
|
||||
bool playSound = true;
|
||||
|
||||
this.Pressed += () => {
|
||||
TAS.Advance(1);
|
||||
if (playSound) buttonSound.Play();
|
||||
playSound = false;
|
||||
};
|
||||
|
||||
this.ButtonDown += () => { this.isButtonPressed = true; };
|
||||
this.ButtonUp += () => { this.isButtonPressed = false; TAS.ResetSpeedup(); playSound = true; };
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (TAS.AdvancedFramesRemaining == 0)
|
||||
{
|
||||
this.Disabled = true;
|
||||
TAS.ResetSpeedup();
|
||||
this.isButtonPressed = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Disabled = false;
|
||||
|
||||
if (this.isButtonPressed)
|
||||
{
|
||||
TAS.AdvanceWithSpeedup(delta);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class CurrentFrameLabel : Label
|
||||
{
|
||||
TAS_System TAS;
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||
// TAS.FrameIncremented += OnFrameIncremented;
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
this.Text = $"Current frame: {TAS.CurrentFrame}";
|
||||
}
|
||||
|
||||
public virtual void OnFrameIncremented(int newFrame)
|
||||
{
|
||||
this.Text = $"Current frame: {newFrame}";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
extends Label
|
||||
|
||||
func _process(delta):
|
||||
text = "Speed: " + str(TAS_System.speed)
|
|
@ -0,0 +1,51 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class RegressButton : Button
|
||||
{
|
||||
TAS_System TAS;
|
||||
bool isButtonPressed = false;
|
||||
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||
AudioStreamPlayer buttonSound = this.GetNode<AudioStreamPlayer>("../../ButtonSound");
|
||||
|
||||
bool playSound = true;
|
||||
|
||||
this.Pressed += () => {
|
||||
TAS.Regress(1);
|
||||
if (playSound) buttonSound.Play();
|
||||
playSound = false;
|
||||
};
|
||||
|
||||
this.ButtonDown += () => { this.isButtonPressed = true; TAS.StopIncrementingFrames(); };
|
||||
this.ButtonUp += () => { this.isButtonPressed = false; TAS.ResetSpeedup(); playSound = true; };
|
||||
}
|
||||
|
||||
public virtual void OnFrameIncremented(int newFrame)
|
||||
{
|
||||
this.Text = $"Current frame: {newFrame}";
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (TAS.CurrentFrame == 0)
|
||||
{
|
||||
this.Disabled = true;
|
||||
TAS.ResetSpeedup();
|
||||
this.isButtonPressed = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Disabled = false;
|
||||
|
||||
if (this.isButtonPressed)
|
||||
{
|
||||
TAS.RegressWithSpeedup(delta);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class ResetFramesButton : Button
|
||||
{
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
TAS_System TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||
this.Pressed += () => { TAS.ResetFrameCount(); };
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class StartIncrementButton : Button
|
||||
{
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
TAS_System TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||
this.Pressed += () => { TAS.StartIncrementingFrames(); };
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class StopIncrementButton : Button
|
||||
{
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
TAS_System TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||
this.Pressed += () => { TAS.StopIncrementingFrames(); };
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
extends Control
|
||||
|
||||
|
||||
func _input(event):
|
||||
var f: Callable
|
||||
if event.is_pressed():
|
||||
f = press
|
||||
else:
|
||||
f = release
|
||||
if event.is_action("regress"):
|
||||
f.call($FrameButtons/RegressButton)
|
||||
elif event.is_action("advance"):
|
||||
f.call($FrameButtons/AdvanceButton)
|
||||
elif event.is_action("increment"):
|
||||
if TAS_System.IsIncrementingFrames:
|
||||
f.call($TASButtons/StopIncrementButton)
|
||||
else:
|
||||
f.call($TASButtons/StartIncrementButton)
|
||||
|
||||
|
||||
func press(btn: Button):
|
||||
btn.button_pressed = true
|
||||
btn.pressed.emit()
|
||||
btn.button_down.emit()
|
||||
|
||||
func release(btn: Button):
|
||||
btn.button_pressed = false
|
||||
btn.button_up.emit()
|
|
@ -0,0 +1,146 @@
|
|||
[gd_scene load_steps=11 format=3 uid="uid://b1uf31ed6h0ir"]
|
||||
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/CurrentFrameLabel.cs" id="1_27u4w"]
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/TAS UI.gd" id="1_ytl0x"]
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/RegressButton.cs" id="2_fhmsa"]
|
||||
[ext_resource type="AudioStream" uid="uid://cio6yfcnyf2lx" path="res://audio/note.wav" id="2_nsxig"]
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/Label2.gd" id="2_otida"]
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/AdvanceButton.cs" id="3_0ti6q"]
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/UIAudioPlayer.cs" id="3_251uv"]
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/StopIncrementButton.cs" id="4_4gd4c"]
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/StartIncrementButton.cs" id="5_5af83"]
|
||||
[ext_resource type="Script" path="res://UI/TAS UI/ResetFramesButton.cs" id="6_nwwkv"]
|
||||
|
||||
[node name="TAS UI" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
script = ExtResource("1_ytl0x")
|
||||
|
||||
[node name="ButtonSound" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("2_nsxig")
|
||||
script = ExtResource("3_251uv")
|
||||
|
||||
[node name="DEBUG" type="Control" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Label" type="Label" parent="DEBUG"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -26.0
|
||||
offset_right = 199.0
|
||||
grow_vertical = 0
|
||||
text = "Current Frame: 0"
|
||||
script = ExtResource("1_27u4w")
|
||||
|
||||
[node name="Label2" type="Label" parent="DEBUG"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 2.0
|
||||
offset_top = -55.0
|
||||
offset_right = 201.0
|
||||
offset_bottom = -29.0
|
||||
grow_vertical = 0
|
||||
text = "Current Frame: 0"
|
||||
script = ExtResource("2_otida")
|
||||
|
||||
[node name="FrameButtons" type="Control" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -131.5
|
||||
offset_top = -52.0
|
||||
offset_right = 131.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="RegressButton" type="Button" parent="FrameButtons"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
grow_vertical = 2
|
||||
focus_mode = 0
|
||||
text = "Regress"
|
||||
script = ExtResource("2_fhmsa")
|
||||
|
||||
[node name="AdvanceButton" type="Button" parent="FrameButtons"]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
anchor_left = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_vertical = 2
|
||||
focus_mode = 0
|
||||
disabled = true
|
||||
text = "Advance"
|
||||
script = ExtResource("3_0ti6q")
|
||||
|
||||
[node name="TASButtons" type="Control" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -205.0
|
||||
offset_top = -103.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="StopIncrementButton" type="Button" parent="TASButtons"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 10
|
||||
anchor_right = 1.0
|
||||
offset_bottom = 31.0
|
||||
grow_horizontal = 2
|
||||
focus_mode = 0
|
||||
text = "Stop Increment"
|
||||
script = ExtResource("4_4gd4c")
|
||||
|
||||
[node name="StartIncrementButton" type="Button" parent="TASButtons"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 14
|
||||
anchor_top = 0.5
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.5
|
||||
offset_top = -15.5
|
||||
offset_bottom = 15.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_mode = 0
|
||||
text = "Start Increment"
|
||||
script = ExtResource("5_5af83")
|
||||
|
||||
[node name="ResetFramesButton" type="Button" parent="TASButtons"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 12
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -31.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
focus_mode = 0
|
||||
text = "Reset Frames"
|
||||
script = ExtResource("6_nwwkv")
|
|
@ -0,0 +1,15 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class UIAudioPlayer : AudioStreamPlayer
|
||||
{
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
extends AnimationTree
|
||||
|
||||
var delta := 1.0 / float(Engine.physics_ticks_per_second)
|
||||
|
||||
func _ready():
|
||||
TAS_System.FrameIncremented.connect(frame_inc)
|
||||
TAS_System.FramesAdvanced.connect(frames_change)
|
||||
TAS_System.FramesRegressed.connect(frames_change)
|
||||
|
||||
func frame_inc(_frame: int):
|
||||
advance(delta)
|
||||
|
||||
func frames_change(start: int, end: int):
|
||||
advance((end - start)*delta)
|
Binary file not shown.
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://b88pn0htpxvo3"
|
||||
path="res://.godot/imported/TricksterGhost.mp3-9e9257851e7178f1dea40efb12b41b62.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/TricksterGhost.mp3"
|
||||
dest_files=["res://.godot/imported/TricksterGhost.mp3-9e9257851e7178f1dea40efb12b41b62.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
Binary file not shown.
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://dw06bektw4j8m"
|
||||
path="res://.godot/imported/TricksterGhostNew.mp3-04c37f493148cbf09dc4a34a27263367.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/TricksterGhostNew.mp3"
|
||||
dest_files=["res://.godot/imported/TricksterGhostNew.mp3-04c37f493148cbf09dc4a34a27263367.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=true
|
||||
loop_offset=0.0
|
||||
bpm=0.0
|
||||
beat_count=0
|
||||
bar_beats=4
|
Binary file not shown.
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://c5v6c6x05lqg3"
|
||||
path="res://.godot/imported/billiard-clack.wav-3f99ec74be11d1cb465d3dc06a94b10f.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/billiard-clack.wav"
|
||||
dest_files=["res://.godot/imported/billiard-clack.wav-3f99ec74be11d1cb465d3dc06a94b10f.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://ckhf7ksthi053"
|
||||
path="res://.godot/imported/charge.wav-9ea0e7ab134da578b6f69151780ec24f.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/charge.wav"
|
||||
dest_files=["res://.godot/imported/charge.wav-9ea0e7ab134da578b6f69151780ec24f.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://bg07vavc0duo5"
|
||||
path="res://.godot/imported/error.mp3-e904d198a343e1da5de4876587f3ccef.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/error.mp3"
|
||||
dest_files=["res://.godot/imported/error.mp3-e904d198a343e1da5de4876587f3ccef.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
Binary file not shown.
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://d2ncd2qoklbbe"
|
||||
path="res://.godot/imported/impact.wav-606f8b40b78eec03bfd2693747f9e1cb.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/impact.wav"
|
||||
dest_files=["res://.godot/imported/impact.wav-606f8b40b78eec03bfd2693747f9e1cb.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cio6yfcnyf2lx"
|
||||
path="res://.godot/imported/note.wav-f74766d8f2fafbaa9729bf4b58d8f300.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://audio/note.wav"
|
||||
dest_files=["res://.godot/imported/note.wav-f74766d8f2fafbaa9729bf4b58d8f300.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
Binary file not shown.
|
@ -0,0 +1,50 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dl005e2rvn86b"
|
||||
path="res://.godot/imported/balloon.glb-1dbd4246a6d2ad23da187ebfe5c7e652.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://balloon.glb"
|
||||
dest_files=["res://.godot/imported/balloon.glb-1dbd4246a6d2ad23da187ebfe5c7e652.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type="Node3D"
|
||||
nodes/root_name="Scene Root"
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path="res://physics/import_billiard.gd"
|
||||
_subresources={
|
||||
"materials": {
|
||||
"balloon": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Objects/balloon/balloon_material_standard.tres"
|
||||
},
|
||||
"string": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://Objects/balloon/string.tres"
|
||||
}
|
||||
},
|
||||
"nodes": {
|
||||
"PATH:Balloon": {
|
||||
"generate/physics": true,
|
||||
"physics/body_type": 1,
|
||||
"physics/shape_type": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/embedded_image_handling=1
|
Binary file not shown.
|
@ -0,0 +1,53 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://djj412h1ien4o"
|
||||
path="res://.godot/imported/cake.glb-e60e073e8642f273d1a78ec90c85894b.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://cake.glb"
|
||||
dest_files=["res://.godot/imported/cake.glb-e60e073e8642f273d1a78ec90c85894b.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type="Node3D"
|
||||
nodes/root_name="Scene Root"
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
import_script/path="res://physics/import_billiard.gd"
|
||||
_subresources={
|
||||
"materials": {
|
||||
"cake": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://cake.tres"
|
||||
},
|
||||
"candles": {
|
||||
"use_external/enabled": true,
|
||||
"use_external/path": "res://candles.tres"
|
||||
}
|
||||
},
|
||||
"nodes": {
|
||||
"PATH:cake2": {
|
||||
"generate/physics": true,
|
||||
"physics/body_type": 1,
|
||||
"physics/shape_type": 5,
|
||||
"primitive/height": 0.244,
|
||||
"primitive/position": Vector3(0, 0.042, 0),
|
||||
"primitive/radius": 0.219
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/embedded_image_handling=1
|
|
@ -0,0 +1,12 @@
|
|||
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://b8htfw5f1a4wf"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://dhyh1g25bmhtf" path="res://cake_cake_albedo.png" id="1_jefwg"]
|
||||
[ext_resource type="Texture2D" uid="uid://cer3pk0fspi1c" path="res://cake_cake_normals.png" id="2_55xkl"]
|
||||
|
||||
[resource]
|
||||
resource_name = "cake"
|
||||
vertex_color_use_as_albedo = true
|
||||
albedo_texture = ExtResource("1_jefwg")
|
||||
roughness = 0.5
|
||||
normal_enabled = true
|
||||
normal_texture = ExtResource("2_55xkl")
|
|
@ -0,0 +1,8 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://cx4ohbn84hmc3"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://djj412h1ien4o" path="res://cake.glb" id="1_q3mni"]
|
||||
|
||||
[node name="cake" instance=ExtResource("1_q3mni")]
|
||||
|
||||
[node name="CollisionShape3D" parent="." index="4"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0367587, 0)
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dhyh1g25bmhtf"
|
||||
path.bptc="res://.godot/imported/cake_cake_albedo.png-8e7e933b04d67a69b2a262d9cdfe2bb0.bptc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://cake_cake_albedo.png"
|
||||
dest_files=["res://.godot/imported/cake_cake_albedo.png-8e7e933b04d67a69b2a262d9cdfe2bb0.bptc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=true
|
||||
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
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cer3pk0fspi1c"
|
||||
path.bptc="res://.godot/imported/cake_cake_normals.png-85023f0c4cf5997d4101eb078e7a1400.bptc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
generator_parameters={}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://cake_cake_normals.png"
|
||||
dest_files=["res://.godot/imported/cake_cake_normals.png-85023f0c4cf5997d4101eb078e7a1400.bptc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=true
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://cake_cake_normals.png"
|
||||
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
|
|
@ -0,0 +1,8 @@
|
|||
[gd_resource type="StandardMaterial3D" format=3 uid="uid://li4gdaji6poj"]
|
||||
|
||||
[resource]
|
||||
resource_name = "candles"
|
||||
cull_mode = 2
|
||||
vertex_color_use_as_albedo = true
|
||||
albedo_color = Color(0.453326, 0, 0.0696221, 1)
|
||||
roughness = 0.5
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ykvmuu6gxuom"
|
||||
path.s3tc="res://.godot/imported/child_Child_Colour.png-f361e4e6aa172920dd7d8097cc2e5595.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://child_Child_Colour.png"
|
||||
dest_files=["res://.godot/imported/child_Child_Colour.png-f361e4e6aa172920dd7d8097cc2e5595.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
|
Binary file not shown.
|
@ -0,0 +1,35 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cgwi7p5178xwg"
|
||||
path.s3tc="res://.godot/imported/child_Child_Normal.png-2c56fd0195c1c8de3aa3abb3c7b11f2f.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://child_Child_Normal.png"
|
||||
dest_files=["res://.godot/imported/child_Child_Normal.png-2c56fd0195c1c8de3aa3abb3c7b11f2f.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=1
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=1
|
||||
roughness/src_normal="res://child_Child_Normal.png"
|
||||
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
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue