chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
using System.Globalization;
|
||||
|
||||
namespace Lib.@string.datetime;
|
||||
|
||||
[Guid("e4a38f3c-bd4c-406a-9979-bb683d79b39b")]
|
||||
internal sealed class CountDown : Instance<CountDown>
|
||||
{
|
||||
[Output(Guid = "511af1e0-9ada-46a2-8c14-0e18db506f95", DirtyFlagTrigger = DirtyFlagTrigger.Animated)]
|
||||
public readonly Slot<string> Output = new();
|
||||
|
||||
public CountDown()
|
||||
{
|
||||
Output.UpdateAction += Update;
|
||||
}
|
||||
|
||||
private void Update(EvaluationContext context)
|
||||
{
|
||||
var now = DateTime.Now;
|
||||
|
||||
try
|
||||
{
|
||||
var targetTime = DateTime.Today;
|
||||
var launchTime = LaunchTime.GetValue(context);
|
||||
if(DateTime.TryParse(launchTime, out var d))
|
||||
{
|
||||
targetTime = d;
|
||||
//Log.Debug("date:" + d);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Warning($"invalid format for lauchTime '{launchTime}'", this);
|
||||
}
|
||||
//var v = Duration.GetValue(context);
|
||||
var duration = DateTime.Now - targetTime;
|
||||
|
||||
|
||||
var format = Format.GetValue(context);
|
||||
var outString = duration.ToString(format, CultureInfo.InvariantCulture);
|
||||
Output.Value = outString;
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
//Log.Warning("Failed to format CountDown time: " + e.Message, this);
|
||||
Output.Value = "Invalid Format";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
[Input(Guid = "61E5281B-B772-4BBD-B52F-E6B6310D259A")]
|
||||
public readonly InputSlot<string> LaunchTime = new();
|
||||
|
||||
[Input(Guid = "d404e744-fa84-4bc8-8aa3-e6e972d9a5a7")]
|
||||
public readonly InputSlot<string> Format = new();
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "e4a38f3c-bd4c-406a-9979-bb683d79b39b"/*CountDown*/,
|
||||
"Inputs": [
|
||||
{
|
||||
"Id": "61e5281b-b772-4bbd-b52f-e6b6310d259a"/*LaunchTime*/,
|
||||
"DefaultValue": "2021-04-17 17:00"
|
||||
},
|
||||
{
|
||||
"Id": "d404e744-fa84-4bc8-8aa3-e6e972d9a5a7"/*Format*/,
|
||||
"DefaultValue": "hh\\:mm\\:ss\\:ff"
|
||||
}
|
||||
],
|
||||
"Children": [],
|
||||
"Connections": []
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "e4a38f3c-bd4c-406a-9979-bb683d79b39b"/*CountDown*/,
|
||||
"Description": "Prints a formatted string counting down a duration or time to/since a fixed date.",
|
||||
"SymbolTags": "192",
|
||||
"InputUis": [
|
||||
{
|
||||
"InputId": "61e5281b-b772-4bbd-b52f-e6b6310d259a"/*LaunchTime*/,
|
||||
"Position": {
|
||||
"X": -200.0,
|
||||
"Y": 0.0
|
||||
},
|
||||
"Usage": "Default"
|
||||
},
|
||||
{
|
||||
"InputId": "d404e744-fa84-4bc8-8aa3-e6e972d9a5a7"/*Format*/,
|
||||
"Position": {
|
||||
"X": 0.0,
|
||||
"Y": 0.0
|
||||
},
|
||||
"Usage": "Default"
|
||||
}
|
||||
],
|
||||
"SymbolChildUis": [],
|
||||
"OutputUis": [
|
||||
{
|
||||
"OutputId": "511af1e0-9ada-46a2-8c14-0e18db506f95"/*Output*/,
|
||||
"Position": {
|
||||
"X": 0.0,
|
||||
"Y": 0.0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
using T3.Core.Utils;
|
||||
|
||||
namespace Lib.@string.datetime;
|
||||
|
||||
[Guid("10acf0aa-2cb3-446b-b837-b6abe24d44da")]
|
||||
internal sealed class DateTimeToFloat : Instance<DateTimeToFloat>
|
||||
{
|
||||
[Output(Guid = "E07DC943-B32B-4037-9E84-0E50B4B67D05")]
|
||||
public readonly Slot<float> Output = new ();
|
||||
|
||||
public DateTimeToFloat()
|
||||
{
|
||||
Output.UpdateAction += Update;
|
||||
}
|
||||
|
||||
private void Update(EvaluationContext context)
|
||||
{
|
||||
var dateTime = Value.GetValue(context);
|
||||
var offset = HourOffset.GetValue(context);
|
||||
|
||||
var offsetSpan = new TimeSpan(0, (int)offset, (int)(offset*60 % 60), (int)(offset*60*60 % 60));
|
||||
dateTime -= offsetSpan;
|
||||
var value = OutputMapping.GetEnumValue<Modes>(context) switch
|
||||
{
|
||||
Modes.TimeOfDay_Hours => (float)(dateTime.TimeOfDay.TotalMilliseconds / (double)(60 * 60 * 1000)),
|
||||
Modes.TimeOfDay_Normalized => (float)(dateTime.TimeOfDay.TotalMilliseconds / (double)(24 * 60 * 60 * 1000)),
|
||||
Modes.DayOfTheYear => dateTime.DayOfYear,
|
||||
Modes.DayOfTheMonths => dateTime.Day,
|
||||
_ => 0f
|
||||
};
|
||||
|
||||
Output.Value = value;
|
||||
}
|
||||
|
||||
[Input(Guid = "7b432357-225c-499e-9109-61168b4be4a7")]
|
||||
public readonly InputSlot<DateTime> Value = new();
|
||||
|
||||
[Input(Guid = "5D9065A3-A124-4261-B5A9-25D969E30F73", MappedType = typeof(Modes))]
|
||||
public readonly InputSlot<int> OutputMapping = new();
|
||||
|
||||
[Input(Guid = "EC1A2E0C-4C65-45E8-BFAC-FAE10CF3A717")]
|
||||
public readonly InputSlot<float> HourOffset = new();
|
||||
|
||||
private enum Modes
|
||||
{
|
||||
TimeOfDay_Hours,
|
||||
TimeOfDay_Normalized,
|
||||
DayOfTheYear,
|
||||
DayOfTheMonths,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "10acf0aa-2cb3-446b-b837-b6abe24d44da"/*DateTimeToFloat*/,
|
||||
"Inputs": [
|
||||
{
|
||||
"Id": "5d9065a3-a124-4261-b5a9-25d969e30f73"/*OutputMapping*/,
|
||||
"DefaultValue": 0
|
||||
},
|
||||
{
|
||||
"Id": "7b432357-225c-499e-9109-61168b4be4a7"/*Value*/,
|
||||
"DefaultValue": null
|
||||
},
|
||||
{
|
||||
"Id": "ec1a2e0c-4c65-45e8-bfac-fae10cf3a717"/*HourOffset*/,
|
||||
"DefaultValue": 0.0
|
||||
}
|
||||
],
|
||||
"Children": [],
|
||||
"Connections": []
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "10acf0aa-2cb3-446b-b837-b6abe24d44da"/*DateTimeToFloat*/,
|
||||
"Description": "Converts a DateTime into different float values like normalized time of day (between 0 ... 1), day of the year, etc.",
|
||||
"SymbolTags": "8",
|
||||
"InputUis": [
|
||||
{
|
||||
"InputId": "5d9065a3-a124-4261-b5a9-25d969e30f73"/*OutputMapping*/,
|
||||
"Position": {
|
||||
"X": -200.0,
|
||||
"Y": 45.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"InputId": "7b432357-225c-499e-9109-61168b4be4a7"/*Value*/,
|
||||
"Relevancy": "Required",
|
||||
"Position": {
|
||||
"X": -200.0,
|
||||
"Y": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"InputId": "ec1a2e0c-4c65-45e8-bfac-fae10cf3a717"/*HourOffset*/,
|
||||
"Position": {
|
||||
"X": -200.0,
|
||||
"Y": 90.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"SymbolChildUis": [],
|
||||
"OutputUis": [
|
||||
{
|
||||
"OutputId": "e07dc943-b32b-4037-9e84-0e50b4b67d05"/*Output*/,
|
||||
"Position": {
|
||||
"X": 0.0,
|
||||
"Y": 100.0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
using System.Globalization;
|
||||
|
||||
namespace Lib.@string.datetime;
|
||||
|
||||
[Guid("c1c3725a-0745-4ce1-874b-839810c2124c")]
|
||||
internal sealed class DateTimeToString : Instance<DateTimeToString>
|
||||
{
|
||||
[Output(Guid = "75ad6b31-2460-47fb-aa75-019e50e0fd44")]
|
||||
public readonly Slot<string> Output = new();
|
||||
|
||||
public DateTimeToString()
|
||||
{
|
||||
Output.UpdateAction += Update;
|
||||
}
|
||||
|
||||
private void Update(EvaluationContext context)
|
||||
{
|
||||
var v = Value.GetValue(context);
|
||||
var format = Format.GetValue(context);
|
||||
try
|
||||
{
|
||||
Output.Value = string.IsNullOrEmpty(format)
|
||||
? v.ToString(CultureInfo.InvariantCulture)
|
||||
: v.ToString(format, CultureInfo.InvariantCulture);
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
Output.Value = "Invalid Format";
|
||||
}
|
||||
}
|
||||
|
||||
[Input(Guid = "C420E846-8BA2-4BE4-AD43-9F4380DA0851")]
|
||||
public readonly InputSlot<DateTime> Value = new();
|
||||
|
||||
[Input(Guid = "5af4a05f-72dc-4c0d-a728-309bf3a1b1b9")]
|
||||
public readonly InputSlot<string> Format = new();
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "c1c3725a-0745-4ce1-874b-839810c2124c"/*DateTimeToString*/,
|
||||
"Inputs": [
|
||||
{
|
||||
"Id": "5af4a05f-72dc-4c0d-a728-309bf3a1b1b9"/*Format*/,
|
||||
"DefaultValue": "dddd MMMM dd, yyyy"
|
||||
},
|
||||
{
|
||||
"Id": "c420e846-8ba2-4be4-ad43-9f4380da0851"/*Value*/,
|
||||
"DefaultValue": null
|
||||
}
|
||||
],
|
||||
"Children": [],
|
||||
"Connections": []
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "c1c3725a-0745-4ce1-874b-839810c2124c"/*DateTimeToString*/,
|
||||
"Description": "Uses [NowAsDateTime] output to convert it into a string",
|
||||
"SymbolTags": "8",
|
||||
"InputUis": [
|
||||
{
|
||||
"InputId": "5af4a05f-72dc-4c0d-a728-309bf3a1b1b9"/*Format*/,
|
||||
"Position": {
|
||||
"X": -133.22765,
|
||||
"Y": 40.552734
|
||||
},
|
||||
"Usage": "Default"
|
||||
},
|
||||
{
|
||||
"InputId": "c420e846-8ba2-4be4-ad43-9f4380da0851"/*Value*/,
|
||||
"Relevancy": "Required",
|
||||
"Position": {
|
||||
"X": -182.1091,
|
||||
"Y": -14.074188
|
||||
},
|
||||
"Description": "Input for a 'DateTime' parameter\n\nFor example by [NowAsDateTime] operator"
|
||||
}
|
||||
],
|
||||
"SymbolChildUis": [],
|
||||
"OutputUis": [
|
||||
{
|
||||
"OutputId": "75ad6b31-2460-47fb-aa75-019e50e0fd44"/*Output*/,
|
||||
"Position": {
|
||||
"X": 0.0,
|
||||
"Y": 0.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"Links": [
|
||||
{
|
||||
"Id": "bb0ffba9-a635-495a-baa7-86fffb62fad2",
|
||||
"Title": "Custom date and time format strings",
|
||||
"Description": "Describe how to use the Format field",
|
||||
"LinkUrl": "https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#date-and-time-separator-specifiers",
|
||||
"LinkType": "Reference"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
namespace Lib.@string.datetime;
|
||||
|
||||
[Guid("bd8d684c-96ae-4864-84fd-ca87f98ce1a4")]
|
||||
internal sealed class NowAsDateTime : Instance<NowAsDateTime>
|
||||
{
|
||||
[Output(Guid = "99f94d1c-7d79-497d-9d42-dff8b749e493")]
|
||||
public readonly Slot<DateTime> Output = new();
|
||||
|
||||
|
||||
public NowAsDateTime()
|
||||
{
|
||||
Output.UpdateAction += Update;
|
||||
}
|
||||
|
||||
private void Update(EvaluationContext context)
|
||||
{
|
||||
Output.Value = DateTime.Now;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "bd8d684c-96ae-4864-84fd-ca87f98ce1a4"/*NowAsDateTime*/,
|
||||
"Inputs": [],
|
||||
"Children": [],
|
||||
"Connections": []
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "bd8d684c-96ae-4864-84fd-ca87f98ce1a4"/*NowAsDateTime*/,
|
||||
"Description": "Returns the current system time.",
|
||||
"SymbolTags": "8",
|
||||
"InputUis": [],
|
||||
"SymbolChildUis": [],
|
||||
"OutputUis": [
|
||||
{
|
||||
"OutputId": "99f94d1c-7d79-497d-9d42-dff8b749e493"/*Output*/,
|
||||
"Position": {
|
||||
"X": 0.0,
|
||||
"Y": 100.0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
namespace Lib.@string.datetime;
|
||||
|
||||
[Guid("a78a07f8-cf75-4a72-8952-b9ba40d6983f")]
|
||||
internal sealed class StringToDateTime : Instance<StringToDateTime>, IStatusProvider
|
||||
{
|
||||
[Output(Guid = "8D2981DD-AC26-4CC0-8646-DEFB7196085C")]
|
||||
public readonly Slot<DateTime> Output = new();
|
||||
|
||||
|
||||
public StringToDateTime()
|
||||
{
|
||||
Output.UpdateAction += Update;
|
||||
}
|
||||
|
||||
private void Update(EvaluationContext context)
|
||||
{
|
||||
var dateString = DateString.GetValue(context);
|
||||
if (DateTime.TryParse(dateString, out var dateTime))
|
||||
{
|
||||
Output.Value = dateTime;
|
||||
_lastStatusError = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
_lastStatusError = $"Failed to parse {dateString} into DateTime";
|
||||
}
|
||||
}
|
||||
|
||||
private string _lastStatusError;
|
||||
|
||||
// [Input(Guid = "d4f58293-ac29-4dee-8a66-a56724bf7006")]
|
||||
// public readonly InputSlot<DateTime> Value = new InputSlot<DateTime>();
|
||||
|
||||
[Input(Guid = "5F92445D-9234-420E-919D-21CDB6FB587D")]
|
||||
public readonly InputSlot<string> DateString = new();
|
||||
|
||||
// [Input(Guid = "62d27f4c-ce64-497b-bca6-5a36bfd4232c")]
|
||||
// public readonly InputSlot<string> Format = new InputSlot<string>();
|
||||
|
||||
public IStatusProvider.StatusLevel GetStatusLevel()
|
||||
{
|
||||
return string.IsNullOrEmpty(_lastStatusError) ? IStatusProvider.StatusLevel.Success : IStatusProvider.StatusLevel.Warning;
|
||||
}
|
||||
|
||||
public string GetStatusMessage()
|
||||
{
|
||||
return _lastStatusError;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "a78a07f8-cf75-4a72-8952-b9ba40d6983f"/*StringToDateTime*/,
|
||||
"Inputs": [
|
||||
{
|
||||
"Id": "5f92445d-9234-420e-919d-21cdb6fb587d"/*DateString*/,
|
||||
"DefaultValue": ""
|
||||
}
|
||||
],
|
||||
"Children": [],
|
||||
"Connections": []
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "a78a07f8-cf75-4a72-8952-b9ba40d6983f"/*StringToDateTime*/,
|
||||
"Description": "Tries to parse the incoming string as a DateTime.",
|
||||
"SymbolTags": "8",
|
||||
"InputUis": [
|
||||
{
|
||||
"InputId": "5f92445d-9234-420e-919d-21cdb6fb587d"/*DateString*/,
|
||||
"Position": {
|
||||
"X": -200.0,
|
||||
"Y": 45.0
|
||||
},
|
||||
"Usage": "Default"
|
||||
}
|
||||
],
|
||||
"SymbolChildUis": [],
|
||||
"OutputUis": [
|
||||
{
|
||||
"OutputId": "8d2981dd-ac26-4cc0-8646-defb7196085c"/*Output*/,
|
||||
"Position": {
|
||||
"X": 0.0,
|
||||
"Y": 100.0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace Lib.@string.datetime;
|
||||
|
||||
[Guid("075612b1-8760-4858-ad6b-6c85a7716794")]
|
||||
internal sealed class TimeToString : Instance<TimeToString>
|
||||
{
|
||||
[Output(Guid = "d45912c1-1c26-4a80-bfff-57de6ae6ccdf")]
|
||||
public readonly Slot<string> Result = new();
|
||||
|
||||
[Input(Guid = "ecc27b89-e89a-4c01-93ad-b4750d09f2f7")]
|
||||
public readonly InputSlot<float> Input = new();
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,242 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "075612b1-8760-4858-ad6b-6c85a7716794"/*TimeToString*/,
|
||||
"Inputs": [
|
||||
{
|
||||
"Id": "ecc27b89-e89a-4c01-93ad-b4750d09f2f7"/*Input*/,
|
||||
"DefaultValue": 0.0
|
||||
}
|
||||
],
|
||||
"Children": [
|
||||
{
|
||||
"Id": "11e62dfd-c9de-4714-9115-5fcdbf720331"/*Multiply*/,
|
||||
"SymbolId": "17b60044-9125-4961-8a79-ca94697b3726",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "5ae4bb07-4214-4ec3-a499-24d9f6d404a5"/*B*/,
|
||||
"Type": "System.Single",
|
||||
"Value": 100.0
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "1d04262b-da7f-49de-a0a3-7de7589d20af"/*Floor*/,
|
||||
"SymbolId": "55b13dee-89f8-404f-b2fe-43d5e8c54536",
|
||||
"InputValues": [],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "1e1ae105-ea95-4b2c-9e7d-32fd934fab38"/*Modulo*/,
|
||||
"SymbolId": "5202d3f6-c970-4006-933d-3c60d6c202dc",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "62a8185f-32c0-41d2-b8be-d8c1d7178c00"/*ModuloValue*/,
|
||||
"Type": "System.Single",
|
||||
"Value": 60.0
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "387f494b-68de-40a3-9da4-9b4bed7caf91"/*Floor*/,
|
||||
"SymbolId": "55b13dee-89f8-404f-b2fe-43d5e8c54536",
|
||||
"InputValues": [],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "4693a9d2-485e-4e3b-9f07-496181b4281f"/*Div*/,
|
||||
"SymbolId": "15fb88b2-81a1-43b8-97ba-41221293bb07",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "a79a2f16-7a4e-464d-8af4-3e3029ae853e"/*B*/,
|
||||
"Type": "System.Single",
|
||||
"Value": 60.0
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "58230175-3f7a-4b01-b1b6-27193dc5a0e2"/*FloatToString*/,
|
||||
"SymbolId": "39c96cfd-dedf-4f76-a471-d1c26c9ba9fa",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "b2b32c44-62d8-4acb-a9a7-4856ec7a33bb"/*Format*/,
|
||||
"Type": "System.String",
|
||||
"Value": "{0:00}"
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "706dc843-9a95-4cf7-bb9a-ac1a8c1d4ce2"/*String*/,
|
||||
"SymbolId": "5880cbc3-a541-4484-a06a-0e6f77cdbe8e",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "ceeae47b-d792-471d-a825-49e22749b7b9"/*InputString*/,
|
||||
"Type": "System.String",
|
||||
"Value": "Partial Preview v03 / 2021-03-30 "
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "98c950e9-b0c4-4cee-be31-b9cd1ee60eed"/*FloatToString*/,
|
||||
"SymbolId": "39c96cfd-dedf-4f76-a471-d1c26c9ba9fa",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "b2b32c44-62d8-4acb-a9a7-4856ec7a33bb"/*Format*/,
|
||||
"Type": "System.String",
|
||||
"Value": "{0:00}"
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "ac87ddda-5e7f-4d85-a22a-3af5e274c154"/*Floor*/,
|
||||
"SymbolId": "55b13dee-89f8-404f-b2fe-43d5e8c54536",
|
||||
"InputValues": [],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "cdf0eb8d-e5e0-4a5c-8efa-63f1942fa4d9"/*CombineStrings*/,
|
||||
"SymbolId": "48ab9824-76ca-4238-800f-9cf95311e6c0",
|
||||
"InputValues": [],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "e5168e43-3129-4c1d-81c6-33ef4d80ea71"/*FloatToString*/,
|
||||
"SymbolId": "39c96cfd-dedf-4f76-a471-d1c26c9ba9fa",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "b2b32c44-62d8-4acb-a9a7-4856ec7a33bb"/*Format*/,
|
||||
"Type": "System.String",
|
||||
"Value": "{0:00}"
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "e96babee-8ef9-411c-81f9-fdf3015b9289"/*_Time_old*/,
|
||||
"SymbolId": "9cb4d49e-135b-400b-a035-2b02c5ea6a72",
|
||||
"InputValues": [],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "f7f79af2-50d8-4bbc-bb8f-0d08fec71b29"/*Modulo*/,
|
||||
"SymbolId": "5202d3f6-c970-4006-933d-3c60d6c202dc",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "62a8185f-32c0-41d2-b8be-d8c1d7178c00"/*ModuloValue*/,
|
||||
"Type": "System.Single",
|
||||
"Value": 100.0
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
},
|
||||
{
|
||||
"Id": "febcd3dc-8adf-430b-a94e-eba1c010e1a8"/*CombineStrings*/,
|
||||
"SymbolId": "48ab9824-76ca-4238-800f-9cf95311e6c0",
|
||||
"InputValues": [
|
||||
{
|
||||
"Id": "c832ba89-f4ae-4c47-b62b-52da52a09556"/*Separator*/,
|
||||
"Type": "System.String",
|
||||
"Value": ":"
|
||||
}
|
||||
],
|
||||
"Outputs": []
|
||||
}
|
||||
],
|
||||
"Connections": [
|
||||
{
|
||||
"SourceParentOrChildId": "cdf0eb8d-e5e0-4a5c-8efa-63f1942fa4d9",
|
||||
"SourceSlotId": "e47bf25e-351a-44e6-84c6-ad3abc93531a",
|
||||
"TargetParentOrChildId": "00000000-0000-0000-0000-000000000000",
|
||||
"TargetSlotId": "d45912c1-1c26-4a80-bfff-57de6ae6ccdf"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "00000000-0000-0000-0000-000000000000",
|
||||
"SourceSlotId": "ecc27b89-e89a-4c01-93ad-b4750d09f2f7",
|
||||
"TargetParentOrChildId": "11e62dfd-c9de-4714-9115-5fcdbf720331",
|
||||
"TargetSlotId": "372288fa-3794-47ba-9f91-59240513217a"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "4693a9d2-485e-4e3b-9f07-496181b4281f",
|
||||
"SourceSlotId": "866642e7-17dd-4375-9d5e-2e3747a554c2",
|
||||
"TargetParentOrChildId": "1d04262b-da7f-49de-a0a3-7de7589d20af",
|
||||
"TargetSlotId": "550289db-89cb-465c-a9d8-a16dbf23cc45"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "00000000-0000-0000-0000-000000000000",
|
||||
"SourceSlotId": "ecc27b89-e89a-4c01-93ad-b4750d09f2f7",
|
||||
"TargetParentOrChildId": "1e1ae105-ea95-4b2c-9e7d-32fd934fab38",
|
||||
"TargetSlotId": "8a401e5d-295d-4403-a3af-1d6b91ce3dba"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "1e1ae105-ea95-4b2c-9e7d-32fd934fab38",
|
||||
"SourceSlotId": "4e4ebbcf-6b12-4ce7-9bec-78cd9049e239",
|
||||
"TargetParentOrChildId": "387f494b-68de-40a3-9da4-9b4bed7caf91",
|
||||
"TargetSlotId": "550289db-89cb-465c-a9d8-a16dbf23cc45"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "00000000-0000-0000-0000-000000000000",
|
||||
"SourceSlotId": "ecc27b89-e89a-4c01-93ad-b4750d09f2f7",
|
||||
"TargetParentOrChildId": "4693a9d2-485e-4e3b-9f07-496181b4281f",
|
||||
"TargetSlotId": "70460191-7573-400f-ba88-11878ecc917c"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "ac87ddda-5e7f-4d85-a22a-3af5e274c154",
|
||||
"SourceSlotId": "5c54174b-c9e6-41de-b796-84ef4271dd20",
|
||||
"TargetParentOrChildId": "58230175-3f7a-4b01-b1b6-27193dc5a0e2",
|
||||
"TargetSlotId": "f36e4078-2608-4308-ab5f-077c05b1181a"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "387f494b-68de-40a3-9da4-9b4bed7caf91",
|
||||
"SourceSlotId": "5c54174b-c9e6-41de-b796-84ef4271dd20",
|
||||
"TargetParentOrChildId": "98c950e9-b0c4-4cee-be31-b9cd1ee60eed",
|
||||
"TargetSlotId": "f36e4078-2608-4308-ab5f-077c05b1181a"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "f7f79af2-50d8-4bbc-bb8f-0d08fec71b29",
|
||||
"SourceSlotId": "4e4ebbcf-6b12-4ce7-9bec-78cd9049e239",
|
||||
"TargetParentOrChildId": "ac87ddda-5e7f-4d85-a22a-3af5e274c154",
|
||||
"TargetSlotId": "550289db-89cb-465c-a9d8-a16dbf23cc45"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "febcd3dc-8adf-430b-a94e-eba1c010e1a8",
|
||||
"SourceSlotId": "e47bf25e-351a-44e6-84c6-ad3abc93531a",
|
||||
"TargetParentOrChildId": "cdf0eb8d-e5e0-4a5c-8efa-63f1942fa4d9",
|
||||
"TargetSlotId": "b5e72715-9339-484f-b197-5a28cd823798"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "1d04262b-da7f-49de-a0a3-7de7589d20af",
|
||||
"SourceSlotId": "5c54174b-c9e6-41de-b796-84ef4271dd20",
|
||||
"TargetParentOrChildId": "e5168e43-3129-4c1d-81c6-33ef4d80ea71",
|
||||
"TargetSlotId": "f36e4078-2608-4308-ab5f-077c05b1181a"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "11e62dfd-c9de-4714-9115-5fcdbf720331",
|
||||
"SourceSlotId": "e011dd8c-1b9c-458f-8960-e6c38e83ca74",
|
||||
"TargetParentOrChildId": "f7f79af2-50d8-4bbc-bb8f-0d08fec71b29",
|
||||
"TargetSlotId": "8a401e5d-295d-4403-a3af-1d6b91ce3dba"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "e5168e43-3129-4c1d-81c6-33ef4d80ea71",
|
||||
"SourceSlotId": "c63a1977-a594-490d-b5fb-de4d40bad016",
|
||||
"TargetParentOrChildId": "febcd3dc-8adf-430b-a94e-eba1c010e1a8",
|
||||
"TargetSlotId": "b5e72715-9339-484f-b197-5a28cd823798"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "98c950e9-b0c4-4cee-be31-b9cd1ee60eed",
|
||||
"SourceSlotId": "c63a1977-a594-490d-b5fb-de4d40bad016",
|
||||
"TargetParentOrChildId": "febcd3dc-8adf-430b-a94e-eba1c010e1a8",
|
||||
"TargetSlotId": "b5e72715-9339-484f-b197-5a28cd823798"
|
||||
},
|
||||
{
|
||||
"SourceParentOrChildId": "58230175-3f7a-4b01-b1b6-27193dc5a0e2",
|
||||
"SourceSlotId": "c63a1977-a594-490d-b5fb-de4d40bad016",
|
||||
"TargetParentOrChildId": "febcd3dc-8adf-430b-a94e-eba1c010e1a8",
|
||||
"TargetSlotId": "b5e72715-9339-484f-b197-5a28cd823798"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"FormatVersion": 3,
|
||||
"Id": "075612b1-8760-4858-ad6b-6c85a7716794"/*TimeToString*/,
|
||||
"Description": "Converts [Time] float output and similar to a string",
|
||||
"SymbolTags": "8",
|
||||
"InputUis": [
|
||||
{
|
||||
"InputId": "ecc27b89-e89a-4c01-93ad-b4750d09f2f7"/*Input*/,
|
||||
"Position": {
|
||||
"X": -200.0,
|
||||
"Y": 0.0
|
||||
},
|
||||
"Description": "Input for [Time] operator"
|
||||
}
|
||||
],
|
||||
"SymbolChildUis": [
|
||||
{
|
||||
"ChildId": "11e62dfd-c9de-4714-9115-5fcdbf720331"/*Multiply*/,
|
||||
"Position": {
|
||||
"X": 19.560425,
|
||||
"Y": 195.0003
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "1d04262b-da7f-49de-a0a3-7de7589d20af"/*Floor*/,
|
||||
"Position": {
|
||||
"X": 319.56042,
|
||||
"Y": 43.000122
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "1e1ae105-ea95-4b2c-9e7d-32fd934fab38"/*Modulo*/,
|
||||
"Position": {
|
||||
"X": 169.56042,
|
||||
"Y": 119.000305
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "387f494b-68de-40a3-9da4-9b4bed7caf91"/*Floor*/,
|
||||
"Position": {
|
||||
"X": 319.56042,
|
||||
"Y": 119.000305
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "4693a9d2-485e-4e3b-9f07-496181b4281f"/*Div*/,
|
||||
"Position": {
|
||||
"X": 169.56042,
|
||||
"Y": 43.000122
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "58230175-3f7a-4b01-b1b6-27193dc5a0e2"/*FloatToString*/,
|
||||
"Position": {
|
||||
"X": 469.56042,
|
||||
"Y": 195.0003
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "706dc843-9a95-4cf7-bb9a-ac1a8c1d4ce2"/*String*/,
|
||||
"Position": {
|
||||
"X": 458.7432,
|
||||
"Y": -97.51553
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "98c950e9-b0c4-4cee-be31-b9cd1ee60eed"/*FloatToString*/,
|
||||
"Position": {
|
||||
"X": 469.56042,
|
||||
"Y": 119.000305
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "ac87ddda-5e7f-4d85-a22a-3af5e274c154"/*Floor*/,
|
||||
"Position": {
|
||||
"X": 319.56042,
|
||||
"Y": 195.0003
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "cdf0eb8d-e5e0-4a5c-8efa-63f1942fa4d9"/*CombineStrings*/,
|
||||
"Position": {
|
||||
"X": 769.5604,
|
||||
"Y": 0.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "e5168e43-3129-4c1d-81c6-33ef4d80ea71"/*FloatToString*/,
|
||||
"Position": {
|
||||
"X": 469.56042,
|
||||
"Y": 43.000122
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "e96babee-8ef9-411c-81f9-fdf3015b9289"/*_Time_old*/,
|
||||
"Position": {
|
||||
"X": -101.543846,
|
||||
"Y": 92.77409
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "f7f79af2-50d8-4bbc-bb8f-0d08fec71b29"/*Modulo*/,
|
||||
"Position": {
|
||||
"X": 169.56042,
|
||||
"Y": 195.0003
|
||||
}
|
||||
},
|
||||
{
|
||||
"ChildId": "febcd3dc-8adf-430b-a94e-eba1c010e1a8"/*CombineStrings*/,
|
||||
"Position": {
|
||||
"X": 619.5604,
|
||||
"Y": 0.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"OutputUis": [
|
||||
{
|
||||
"OutputId": "d45912c1-1c26-4a80-bfff-57de6ae6ccdf"/*Result*/,
|
||||
"Position": {
|
||||
"X": 1069.5604,
|
||||
"Y": 97.50015
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user