Merge branch 'master' of https://git.sjkillen.ca/sjkillen/hurrmmm into sjkillen
This commit is contained in:
commit
13d6939103
Binary file not shown.
|
@ -0,0 +1,19 @@
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio 2012
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hurrmmm", "Hurrmmm.csproj", "{BD45A87E-5242-45B0-9A55-8B809F4BB443}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
ExportDebug|Any CPU = ExportDebug|Any CPU
|
||||||
|
ExportRelease|Any CPU = ExportRelease|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -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,28 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.6.33815.320
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hurrmmm", "Hurrmmm.csproj", "{BD45A87E-5242-45B0-9A55-8B809F4BB443}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
ExportDebug|Any CPU = ExportDebug|Any CPU
|
||||||
|
ExportRelease|Any CPU = ExportRelease|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
||||||
|
{BD45A87E-5242-45B0-9A55-8B809F4BB443}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {87544EC1-9C6D-4DF7-891E-89088A6D794E}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,129 @@
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public partial class TAS_System : Node
|
||||||
|
{
|
||||||
|
private double _frameLength = 0.1;
|
||||||
|
private bool _isIncrementingFrames = false;
|
||||||
|
private double _timeSinceLastFrame;
|
||||||
|
private int _currentFrame = 0;
|
||||||
|
private int _lastAdvancedFrame = 0;
|
||||||
|
|
||||||
|
public double FrameLength
|
||||||
|
{
|
||||||
|
get { return this._frameLength; }
|
||||||
|
set { this._frameLength = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsIncrementingFrames
|
||||||
|
{
|
||||||
|
get { return this._isIncrementingFrames; }
|
||||||
|
private set { this._isIncrementingFrames = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private double TimeSinceLastFrame
|
||||||
|
{
|
||||||
|
get { return this._timeSinceLastFrame; }
|
||||||
|
set { this._timeSinceLastFrame = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int CurrentFrame
|
||||||
|
{
|
||||||
|
get { return this._currentFrame; }
|
||||||
|
private set { this._currentFrame = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The last frame that can be advanced to. This will
|
||||||
|
/// only be greater than CurrentFrame after the player
|
||||||
|
/// regresses frames, and will be equal to CurrentFrame
|
||||||
|
/// when the player has just done an action.
|
||||||
|
/// </summary>
|
||||||
|
/// <value></value>
|
||||||
|
public int LastAdvancedFrame
|
||||||
|
{
|
||||||
|
get { return this._lastAdvancedFrame; }
|
||||||
|
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 FramesAdvancedEventHandler(int startFrame, int endFrame);
|
||||||
|
|
||||||
|
[Signal]
|
||||||
|
public delegate void FramesRegressedEventHandler(int startFrame, int endFrame);
|
||||||
|
|
||||||
|
|
||||||
|
public void StartIncrementingFrames()
|
||||||
|
{
|
||||||
|
this.IsIncrementingFrames = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void StopIncrementingFrames()
|
||||||
|
{
|
||||||
|
this.IsIncrementingFrames = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResetFrameCount()
|
||||||
|
{
|
||||||
|
this.CurrentFrame = 0;
|
||||||
|
this.LastAdvancedFrame = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns how many frames it could successfully advance
|
||||||
|
public int Advance(int numFrames)
|
||||||
|
{
|
||||||
|
int newFrame = Math.Min(this.CurrentFrame + numFrames, this.LastAdvancedFrame);
|
||||||
|
int framesAdvanced = newFrame - this.CurrentFrame;
|
||||||
|
EmitSignal(SignalName.FramesAdvanced, this.CurrentFrame, newFrame);
|
||||||
|
this.CurrentFrame = newFrame;
|
||||||
|
return framesAdvanced;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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, this.CurrentFrame, newFrame);
|
||||||
|
this.CurrentFrame = newFrame;
|
||||||
|
return framesRegressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets rid of advanced frames.
|
||||||
|
/// </summary>
|
||||||
|
public void DiscardAdvancedFrames()
|
||||||
|
{
|
||||||
|
this.LastAdvancedFrame = this.CurrentFrame;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _PhysicsProcess(double delta)
|
||||||
|
{
|
||||||
|
if (this.IsIncrementingFrames)
|
||||||
|
{
|
||||||
|
this.TimeSinceLastFrame += delta;
|
||||||
|
if (this.TimeSinceLastFrame >= this.FrameLength)
|
||||||
|
{
|
||||||
|
this.CurrentFrame++;
|
||||||
|
EmitSignal(SignalName.FrameIncremented, this.CurrentFrame);
|
||||||
|
this.TimeSinceLastFrame = 0 + (this.TimeSinceLastFrame - this.FrameLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GD.Print(CurrentFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
// public void Test()
|
||||||
|
// {
|
||||||
|
// GD.Print("test123");
|
||||||
|
|
||||||
|
// // EmitSignal(SignalName.TestSignal, "test456");
|
||||||
|
// }
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://x6yhkj1f7yg1"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://TAS_system/TAS_System.cs" id="1_4s6ry"]
|
||||||
|
|
||||||
|
[node name="TAS_System" type="Node"]
|
||||||
|
script = ExtResource("1_4s6ry")
|
|
@ -0,0 +1,33 @@
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
|
||||||
|
public partial class TASable : Node
|
||||||
|
{
|
||||||
|
Node3D _parent;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
this._parent = this.GetParent<Node3D>();
|
||||||
|
TAS_System TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||||
|
|
||||||
|
TAS.FrameIncremented += this.OnFrameIncremented;
|
||||||
|
TAS.FramesAdvanced += this.OnFramesAdvanced;
|
||||||
|
TAS.FramesRegressed += this.OnFramesRegressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnFrameIncremented(int newFrame)
|
||||||
|
{
|
||||||
|
GD.Print($"Frame advanced to {newFrame}, called from node {_parent.Name}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnFramesAdvanced(int startFrame, int endFrame)
|
||||||
|
{
|
||||||
|
GD.Print($"Frames advanced from {startFrame} to {endFrame}, called from node {_parent.Name}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnFramesRegressed(int startFrame, int endFrame)
|
||||||
|
{
|
||||||
|
GD.Print($"Frames regressed from {startFrame} to {endFrame}, called from node {_parent.Name}");
|
||||||
|
}
|
||||||
|
}
|
|
@ -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,275 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- saved from url=(0014)about:internet -->
|
||||||
|
<html xmlns:msxsl="urn:schemas-microsoft-com:xslt"><head><meta content="en-us" http-equiv="Content-Language" /><meta content="text/html; charset=utf-16" http-equiv="Content-Type" /><title _locID="ConversionReport0">
|
||||||
|
Migration Report
|
||||||
|
</title><style>
|
||||||
|
/* Body style, for the entire document */
|
||||||
|
body
|
||||||
|
{
|
||||||
|
background: #F3F3F4;
|
||||||
|
color: #1E1E1F;
|
||||||
|
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header1 style, used for the main title */
|
||||||
|
h1
|
||||||
|
{
|
||||||
|
padding: 10px 0px 10px 10px;
|
||||||
|
font-size: 21pt;
|
||||||
|
background-color: #E2E2E2;
|
||||||
|
border-bottom: 1px #C1C1C2 solid;
|
||||||
|
color: #201F20;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header2 style, used for "Overview" and other sections */
|
||||||
|
h2
|
||||||
|
{
|
||||||
|
font-size: 18pt;
|
||||||
|
font-weight: normal;
|
||||||
|
padding: 15px 0 5px 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header3 style, used for sub-sections, such as project name */
|
||||||
|
h3
|
||||||
|
{
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 15pt;
|
||||||
|
margin: 0;
|
||||||
|
padding: 15px 0 5px 0;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Color all hyperlinks one color */
|
||||||
|
a
|
||||||
|
{
|
||||||
|
color: #1382CE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Table styles */
|
||||||
|
table
|
||||||
|
{
|
||||||
|
border-spacing: 0 0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
font-size: 10pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th
|
||||||
|
{
|
||||||
|
background: #E7E7E8;
|
||||||
|
text-align: left;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: normal;
|
||||||
|
padding: 3px 6px 3px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td
|
||||||
|
{
|
||||||
|
vertical-align: top;
|
||||||
|
padding: 3px 6px 5px 5px;
|
||||||
|
margin: 0px;
|
||||||
|
border: 1px solid #E7E7E8;
|
||||||
|
background: #F7F7F8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Local link is a style for hyperlinks that link to file:/// content, there are lots so color them as 'normal' text until the user mouse overs */
|
||||||
|
.localLink
|
||||||
|
{
|
||||||
|
color: #1E1E1F;
|
||||||
|
background: #EEEEED;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.localLink:hover
|
||||||
|
{
|
||||||
|
color: #1382CE;
|
||||||
|
background: #FFFF99;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Center text, used in the over views cells that contain message level counts */
|
||||||
|
.textCentered
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The message cells in message tables should take up all avaliable space */
|
||||||
|
.messageCell
|
||||||
|
{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Padding around the content after the h1 */
|
||||||
|
#content
|
||||||
|
{
|
||||||
|
padding: 0px 12px 12px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The overview table expands to width, with a max width of 97% */
|
||||||
|
#overview table
|
||||||
|
{
|
||||||
|
width: auto;
|
||||||
|
max-width: 75%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The messages tables are always 97% width */
|
||||||
|
#messages table
|
||||||
|
{
|
||||||
|
width: 97%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* All Icons */
|
||||||
|
.IconSuccessEncoded, .IconInfoEncoded, .IconWarningEncoded, .IconErrorEncoded
|
||||||
|
{
|
||||||
|
min-width:18px;
|
||||||
|
min-height:18px;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-position:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Success icon encoded */
|
||||||
|
.IconSuccessEncoded
|
||||||
|
{
|
||||||
|
/* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */
|
||||||
|
/* [---XsltValidateInternal-Base64EncodedImage:IconSuccess#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */
|
||||||
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABcElEQVR4Xq2TsUsCURzHv15g8ZJcBWlyiYYgCIWcb9DFRRwMW5TA2c0/QEFwFkxxUQdxVlBwCYWOi6IhWgQhBLHJUCkhLr/BW8S7gvrAg+N+v8/v+x68Z8MGy+XSCyABQAXgBgHGALoASkIIDWSLeLBetdHryMjd5IxQPWT4rn1c/P7+xxp72Cs9m5SZ0Bq2vPnbPFafK2zDvmNHypdC0BPkLlQhxJsCAhQoZwdZU5mwxh720qGo8MzTxTTKZDPCx2HoVzp6lz0Q9tKhyx0kGs8Ny+TkWRKk8lCROwEduhyg9l/6lunOPSfmH3NUH6uQ0KHLAe7JYvJjevm+DAMGJHToKtigE+vwvIidxLamb8IBY9e+C5LiXREkfho3TSd06HJA13/oh6T51MTsfQbHrsMynQ5dDihFjiK8JJAU9AKIWTp76dCVN7HWHrajmUEGvyF9nkbAE6gLIS7kTUyuf2gscLoJrElZo/Mvj+nPz/kLTmfnEwP3tB0AAAAASUVORK5CYII=);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Information icon encoded */
|
||||||
|
.IconInfoEncoded
|
||||||
|
{
|
||||||
|
/* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */
|
||||||
|
/* [---XsltValidateInternal-Base64EncodedImage:IconInformation#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */
|
||||||
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHElEQVR4Xs2TsUoDQRRF7wwoziokjZUKadInhdhukR9YP8DMX1hYW+QvdsXa/QHBbcXC7W0CamWTQnclFutceIQJwwaWNLlwm5k5d94M76mmaeCrrmsLYOocY12FcxZFUeozCqKqqgYA8uevv1H6VuPxcwlfk5N92KHBxfFeCSAxxswlYAW/Xr989x/mv9gkhtyMDhcAxgzRsp7flj8B/HF1RsMXq+NZMkopaHe7lbKxQUEIGbKsYNoGn969060hZBkQex/W8oRQwsQaW2o3Ago2SVcJUzAgY3N0lTCZZm+zPS8HB51gMmS1DEYyOz9acKO1D8JWTlafKIMxdhvlfdyT94Vv5h7P8Ky7nQzACmhvKq3zk3PjW9asz9D/1oigecsioooAAAAASUVORK5CYII=);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Warning icon encoded */
|
||||||
|
.IconWarningEncoded
|
||||||
|
{
|
||||||
|
/* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */
|
||||||
|
/* [---XsltValidateInternal-Base64EncodedImage:IconWarning#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */
|
||||||
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAx0lEQVR4XpWSMQ7CMAxFf4xAyBMLCxMrO8dhaBcuwdCJS3RJBw7SA/QGTCxdWJgiQYWKXJWKIXHIlyw5lqr34tQgEOdcBsCOx5yZK3hCCKdYXneQkh4pEfqzLfu+wVDSyyzFoJjfz9NB+pAF+eizx2Vruts0k15mPgvS6GYvpVtQhB61IB/dk6AF6fS4Ben0uIX5odtFe8Q/eW1KvFeH4e8khT6+gm5B+t3juyDt7n0jpe+CANTd+oTUjN/U3yVaABnSUjFz/gFq44JaVSCXeQAAAABJRU5ErkJggg==);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Error icon encoded */
|
||||||
|
.IconErrorEncoded
|
||||||
|
{
|
||||||
|
/* Note: Do not delete the comment below. It is used to verify the correctness of the encoded image resource below before the product is released */
|
||||||
|
/* [---XsltValidateInternal-Base64EncodedImage:IconError#Begin#background-image: url(data:image/png;base64,#Separator#);#End#] */
|
||||||
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABQElEQVR4XqWTvUoEQRCE6wYPZUA80AfwAQz23uCMjA7MDRQEIzPBVEyNTQUFIw00vcQTTMzuAh/AxEQQT8HF/3G/oGGnEUGuoNnd6qoZuqltyKEsyzVJq5I6rnUp6SjGeGhESikzzlc1eL7opfuVbrqbU1Zw9NCgtQMaZpY0eNnaaL2fHusvTK5vKu7sjSS1Y4y3QUA6K3e3Mau5UFDyMP7tYF9o8cAHZv68vipoIJg971PZIZ5HiwdvYGGvFVFHmGmZ2MxwmQYPXubPl9Up0tfoMQGetXd6mRbvhBw+boZ6WF7Mbv1+GsHRk0fQmPAH1GfmZirbCfDJ61tw3Px8/8pZsPAG4jlVhcPgZ7adwNWBB68lkRQWFiTgFlbnLY3DGGM7izIJIyT/jjIvEJw6fdJTc6krDzh6aMwMP9bvDH4ADSsa9uSWVJkAAAAASUVORK5CYII=);
|
||||||
|
}
|
||||||
|
</style><script type="text/javascript" language="javascript">
|
||||||
|
|
||||||
|
// Startup
|
||||||
|
// Hook up the the loaded event for the document/window, to linkify the document content
|
||||||
|
var startupFunction = function() { linkifyElement("messages"); };
|
||||||
|
|
||||||
|
if(window.attachEvent)
|
||||||
|
{
|
||||||
|
window.attachEvent('onload', startupFunction);
|
||||||
|
}
|
||||||
|
else if (window.addEventListener)
|
||||||
|
{
|
||||||
|
window.addEventListener('load', startupFunction, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
document.addEventListener('load', startupFunction, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Toggles the visibility of table rows with the specified name
|
||||||
|
function toggleTableRowsByName(name)
|
||||||
|
{
|
||||||
|
var allRows = document.getElementsByTagName('tr');
|
||||||
|
for (i=0; i < allRows.length; i++)
|
||||||
|
{
|
||||||
|
var currentName = allRows[i].getAttribute('name');
|
||||||
|
if(!!currentName && currentName.indexOf(name) == 0)
|
||||||
|
{
|
||||||
|
var isVisible = allRows[i].style.display == '';
|
||||||
|
isVisible ? allRows[i].style.display = 'none' : allRows[i].style.display = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrollToFirstVisibleRow(name)
|
||||||
|
{
|
||||||
|
var allRows = document.getElementsByTagName('tr');
|
||||||
|
for (i=0; i < allRows.length; i++)
|
||||||
|
{
|
||||||
|
var currentName = allRows[i].getAttribute('name');
|
||||||
|
var isVisible = allRows[i].style.display == '';
|
||||||
|
if(!!currentName && currentName.indexOf(name) == 0 && isVisible)
|
||||||
|
{
|
||||||
|
allRows[i].scrollIntoView(true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Linkifies the specified text content, replaces candidate links with html links
|
||||||
|
function linkify(text)
|
||||||
|
{
|
||||||
|
if(!text || 0 === text.length)
|
||||||
|
{
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find http, https and ftp links and replace them with hyper links
|
||||||
|
var urlLink = /(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+(:[a-zA-Z0-9]*)?\/?([a-zA-Z0-9\-\._\?\,\/\\\+&%\$#\=~;\{\}])*/gi;
|
||||||
|
|
||||||
|
return text.replace(urlLink, '<a href="$&">$&</a>') ;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Linkifies the specified element by ID
|
||||||
|
function linkifyElement(id)
|
||||||
|
{
|
||||||
|
var element = document.getElementById(id);
|
||||||
|
if(!!element)
|
||||||
|
{
|
||||||
|
element.innerHTML = linkify(element.innerHTML);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ToggleMessageVisibility(projectName)
|
||||||
|
{
|
||||||
|
if(!projectName || 0 === projectName.length)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
toggleTableRowsByName("MessageRowClass" + projectName);
|
||||||
|
toggleTableRowsByName('MessageRowHeaderShow' + projectName);
|
||||||
|
toggleTableRowsByName('MessageRowHeaderHide' + projectName);
|
||||||
|
}
|
||||||
|
|
||||||
|
function ScrollToFirstVisibleMessage(projectName)
|
||||||
|
{
|
||||||
|
if(!projectName || 0 === projectName.length)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// First try the 'Show messages' row
|
||||||
|
if(!scrollToFirstVisibleRow('MessageRowHeaderShow' + projectName))
|
||||||
|
{
|
||||||
|
// Failed to find a visible row for 'Show messages', try an actual message row
|
||||||
|
scrollToFirstVisibleRow('MessageRowClass' + projectName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script></head><body><h1 _locID="ConversionReport">
|
||||||
|
Migration Report - Hurrmmm</h1><div id="content"><h2 _locID="OverviewTitle">Overview</h2><div id="overview"><table><tr><th></th><th _locID="ProjectTableHeader">Project</th><th _locID="PathTableHeader">Path</th><th _locID="ErrorsTableHeader">Errors</th><th _locID="WarningsTableHeader">Warnings</th><th _locID="MessagesTableHeader">Messages</th></tr><tr><td class="IconWarningEncoded" /><td><strong><a href="#Solution"><span _locID="OverviewSolutionSpan">Solution</span></a></strong></td><td>Hurrmmm.sln</td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#SolutionWarning">1</a></td><td class="textCentered"><a href="#" onclick="ScrollToFirstVisibleMessage('Solution'); return false;">2</a></td></tr><tr><td class="IconSuccessEncoded" /><td><strong><a href="#Hurrmmm">Hurrmmm</a></strong></td><td>Hurrmmm.csproj</td><td class="textCentered"><a>0</a></td><td class="textCentered"><a>0</a></td><td class="textCentered"><a href="#">0</a></td></tr></table></div><h2 _locID="SolutionAndProjectsTitle">Solution and projects</h2><div id="messages"><a name="Solution" /><h3 _locID="ProjectDisplayNameHeader">Solution</h3><table><tr id="SolutionHeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">Message</th></tr><tr name="WarningRowClassSolution"><td class="IconWarningEncoded"><a name="SolutionWarning" /></td><td class="messageCell"><strong>Hurrmmm.sln:
|
||||||
|
</strong><span>Visual Studio needs to make non-functional changes to this project in order to enable the project to open in released versions of Visual Studio newer than Visual Studio 2010 SP1 without impacting project behavior.</span></td></tr><tr name="MessageRowHeaderShowSolution"><td class="IconInfoEncoded" /><td class="messageCell"><a _locID="ShowAdditionalMessages" href="#" name="SolutionMessage" onclick="ToggleMessageVisibility('Solution'); return false;">
|
||||||
|
Show 2 additional messages
|
||||||
|
</a></td></tr><tr name="MessageRowClassSolution" style="display: none"><td class="IconInfoEncoded"><a name="SolutionMessage" /></td><td class="messageCell"><strong>Hurrmmm.sln:
|
||||||
|
</strong><span>File successfully backed up as C:\Repos\Hurrmmm\hurrmmm\godot\Backup\Hurrmmm.sln</span></td></tr><tr name="MessageRowClassSolution" style="display: none"><td class="IconInfoEncoded"><a name="SolutionMessage" /></td><td class="messageCell"><strong>Hurrmmm.sln:
|
||||||
|
</strong><span>Solution migrated successfully</span></td></tr><tr style="display: none" name="MessageRowHeaderHideSolution"><td class="IconInfoEncoded" /><td class="messageCell"><a _locID="HideAdditionalMessages" href="#" name="SolutionMessage" onclick="ToggleMessageVisibility('Solution'); return false;">
|
||||||
|
Hide 2 additional messages
|
||||||
|
</a></td></tr></table><a name="Hurrmmm" /><h3>Hurrmmm</h3><table><tr id="HurrmmmHeaderRow"><th></th><th class="messageCell" _locID="MessageTableHeader">Message</th></tr><tr><td class="IconInfoEncoded" /><td class="messageCell" _locID="NoMessagesRow">Hurrmmm logged no messages.
|
||||||
|
</td></tr></table></div></div></body></html>
|
|
@ -12,7 +12,7 @@ func make_target():
|
||||||
func unmake_target():
|
func unmake_target():
|
||||||
walk_meshes_post_order(self.get_parent(), unchange_all_materials)
|
walk_meshes_post_order(self.get_parent(), unchange_all_materials)
|
||||||
|
|
||||||
func walk_meshes_post_order(parent: Node3D, f: Callable):
|
func walk_meshes_post_order(parent: Node, f: Callable):
|
||||||
for child in parent.get_children():
|
for child in parent.get_children():
|
||||||
walk_meshes_post_order(child, f)
|
walk_meshes_post_order(child, f)
|
||||||
if parent is MeshInstance3D:
|
if parent is MeshInstance3D:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=2 format=3 uid="uid://w6cldokq87k0"]
|
[gd_scene load_steps=2 format=3 uid="uid://cbp8c4kpmr0hk"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://control_scheme/is_targetable.gd" id="1_108lw"]
|
[ext_resource type="Script" path="res://control_scheme/is_targetable.gd" id="1_108lw"]
|
||||||
|
|
||||||
|
|
|
@ -11,12 +11,14 @@ config_version=5
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="Hurrmmm"
|
config/name="Hurrmmm"
|
||||||
config/features=PackedStringArray("4.1", "Forward Plus")
|
run/main_scene="res://tests/TAS_system/TAS_test_001.tscn"
|
||||||
|
config/features=PackedStringArray("4.1", "C#", "Forward Plus")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
||||||
ControllerEventBus="*res://controller_event_bus.gd"
|
ControllerEventBus="*res://controller_event_bus.gd"
|
||||||
|
TAS_System="*res://TAS_system/TAS_System.tscn"
|
||||||
|
|
||||||
[dotnet]
|
[dotnet]
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
using Godot;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
public partial class TAS_test_001 : Node
|
||||||
|
{
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
// Called every time the node is added to the scene.
|
||||||
|
// Initialization here.
|
||||||
|
GD.Print("Hello from C# to Godot :)");
|
||||||
|
|
||||||
|
TAS_System TAS = GetNode<TAS_System>("/root/TAS_System");
|
||||||
|
|
||||||
|
TAS.FrameLength = 1.5;
|
||||||
|
|
||||||
|
TAS.StartIncrementingFrames();
|
||||||
|
|
||||||
|
// TAS.FrameIncremented += (x) => GD.Print(x);
|
||||||
|
|
||||||
|
// TAS.Test();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Test2(string testStr2)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://bbml0d2v4lf78"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://tests/TAS_system/TAS_test_001.cs" id="1_0ap5j"]
|
||||||
|
|
||||||
|
[node name="TAS_test_001" type="Node3D"]
|
||||||
|
script = ExtResource("1_0ap5j")
|
|
@ -0,0 +1,36 @@
|
||||||
|
[gd_scene load_steps=7 format=3 uid="uid://by3rnp88l4plx"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bua7f25rpewkp" path="res://small_room.glb" id="1_bo0jp"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cbp8c4kpmr0hk" path="res://control_scheme/is_targetable.tscn" id="2_d7v5s"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://drmb4sitb74fx" path="res://control_scheme/controller.tscn" id="3_0hshv"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bjhii55pagkb5" path="res://TAS_system/is_TASable.tscn" id="3_srlbt"]
|
||||||
|
[ext_resource type="Script" path="res://tests/TAS_system/TAS_test_001.cs" id="5_0ber1"]
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_f0m14"]
|
||||||
|
ambient_light_source = 2
|
||||||
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
|
ambient_light_energy = 0.5
|
||||||
|
|
||||||
|
[node name="small_room" instance=ExtResource("1_bo0jp")]
|
||||||
|
|
||||||
|
[node name="is_TASable" parent="table" index="0" instance=ExtResource("3_srlbt")]
|
||||||
|
|
||||||
|
[node name="is_targetable" parent="grape" index="0" node_paths=PackedStringArray("attached_to") instance=ExtResource("2_d7v5s")]
|
||||||
|
attached_to = NodePath("..")
|
||||||
|
|
||||||
|
[node name="is_TASable" parent="grape" index="1" instance=ExtResource("3_srlbt")]
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." index="3"]
|
||||||
|
environment = SubResource("Environment_f0m14")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="WorldEnvironment" index="0"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.933762, 0.357895, 0, -0.357895, 0.933762, 0, 1.43864, 1.81738)
|
||||||
|
|
||||||
|
[node name="controller" parent="." index="4" node_paths=PackedStringArray("camera", "initial_target") instance=ExtResource("3_0hshv")]
|
||||||
|
camera = NodePath("Camera3D")
|
||||||
|
initial_target = NodePath("../grape")
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="controller" index="1"]
|
||||||
|
|
||||||
|
[node name="TAS_test_001" type="Node" parent="." index="6"]
|
||||||
|
script = ExtResource("5_0ber1")
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bua7f25rpewkp" path="res://small_room.glb" id="1_2ticn"]
|
[ext_resource type="PackedScene" uid="uid://bua7f25rpewkp" path="res://small_room.glb" id="1_2ticn"]
|
||||||
[ext_resource type="PackedScene" uid="uid://drmb4sitb74fx" path="res://control_scheme/controller.tscn" id="2_dcvuq"]
|
[ext_resource type="PackedScene" uid="uid://drmb4sitb74fx" path="res://control_scheme/controller.tscn" id="2_dcvuq"]
|
||||||
[ext_resource type="PackedScene" uid="uid://w6cldokq87k0" path="res://control_scheme/is_targetable.tscn" id="2_y2131"]
|
[ext_resource type="PackedScene" uid="uid://cbp8c4kpmr0hk" path="res://control_scheme/is_targetable.tscn" id="2_y2131"]
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_f0m14"]
|
[sub_resource type="Environment" id="Environment_f0m14"]
|
||||||
ambient_light_source = 2
|
ambient_light_source = 2
|
||||||
|
|
Loading…
Reference in New Issue