Merge branch 'master' of https://git.sjkillen.ca/sjkillen/hurrmmm into sjkillen
This commit is contained in:
		
						commit
						726de6e49b
					
				
					 6 changed files with 65 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -50,29 +50,31 @@ public partial class TASable : Node
 | 
			
		|||
    public virtual void OnFrameIncremented(int newFrame)
 | 
			
		||||
    {
 | 
			
		||||
        this.SaveState(newFrame);
 | 
			
		||||
        GD.Print($"Frame advanced to {newFrame}, called from node {this.AssignedRigidBody3D.Name}");
 | 
			
		||||
        // 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}");
 | 
			
		||||
        // 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}");
 | 
			
		||||
        // 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()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										52
									
								
								godot/Timescale_System/TimescaleSystem.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								godot/Timescale_System/TimescaleSystem.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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();
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								godot/Timescale_System/TimescaleSystem.tscn
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								godot/Timescale_System/TimescaleSystem.tscn
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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")
 | 
			
		||||
| 
						 | 
				
			
			@ -3,3 +3,4 @@
 | 
			
		|||
[ext_resource type="PackedScene" uid="uid://bsge8trc5uwb0" path="res://grape.glb" id="1_jlfas"]
 | 
			
		||||
 | 
			
		||||
[node name="grape" instance=ExtResource("1_jlfas")]
 | 
			
		||||
continuous_cd = true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,6 +20,7 @@ config/icon="res://icon.svg"
 | 
			
		|||
ControllerEventBus="*res://controller_event_bus.gd"
 | 
			
		||||
TAS_System="*res://TAS_system/TAS_System.tscn"
 | 
			
		||||
MouseControl="*res://mouse_control.gd"
 | 
			
		||||
TimescaleSystem="*res://Timescale_System/TimescaleSystem.tscn"
 | 
			
		||||
 | 
			
		||||
[dotnet]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,5 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.98064, 0.385236)
 | 
			
		|||
 | 
			
		||||
[node name="grape2" parent="." index="6" instance=ExtResource("3_kg8e8")]
 | 
			
		||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.94627, 0)
 | 
			
		||||
continuous_cd = true
 | 
			
		||||
 | 
			
		||||
[node name="TAS UI" parent="." index="7" instance=ExtResource("4_jskxr")]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue