Are you sure you want to report the post shown below? This will send an email to the ATVO administrators. Please include a short reason for reporting.
Users reporting for no reason may be locked out.
using System;
using ATVO.ThemesSDK;
using ATVO.ThemesSDK.Data.Entity;
using ATVO.ThemeEditor.ThemeModels;
using ATVO.ThemeEditor.Controls;
using ATVO.ThemeEditor.Scripting.DotNET;
using ATVO.ThemesSDK.Data.Enums;
using ATVO.ThemesSDK.Data.Results;
namespace Scripts
{
public class status : IScript
{
public object Execute(ThemeContentItem item, object value, string parameter, ISimulation sim)
{
// Bind to "entitysessionresult_obj" to get the IEntitySessionResult as the value
// Cast to IEntitySessionResult type
IEntitySessionResult result = (IEntitySessionResult) value;
// We need the following information to determine whether to show gap or laps
var pos = result.LivePosition;
var gap = result.LiveGap;
var laps = result.LiveGapLaps;
var type = result.Session.Type;
// Check the session type is RACE
if (type == SessionType.Race)
{
// Check DNS, Out, Pits, etc
if (result == null)
return "";
if (result.Finished)
return "FINISHED";
if (result.DidNotStart)
return "OUT";
if (result.Out)
return "OUT";
if (result.Entity?.Car?.Movement?.IsInPits == true)
return "in Pit";
// If none of these are true, then show the gap
// Optional: there is no gap for P1 so show nothing
if (pos == 1)
return "LAP " + result.CurrentLap.Number;
// If car is lapped AND this is a race session,
// then show nr of gap laps instead of gap time
if (laps > 0 && type == SessionType.Race)
{
if (laps == 1)
return "+" + "1 Lap"; // to avoid incorrect "1 Laps"
else
return laps + "+" + " Laps";
}
// If the car is in the same lap just return the time
return "+" + gap.ToString("0.000");
}
// If the session type not RACE return LEADER for P1 and time for the rest
if (result == null)
return "no time";
if (pos == 1)
return "LEADER";
else
return "+" + gap.ToString("0.000");
}
}
}