0.470.0.419147

This commit is contained in:
Max 2021-03-19 21:38:13 -05:00
parent 535ffa905c
commit 336792dc83
5 changed files with 32 additions and 78 deletions

View File

@ -1,5 +1,5 @@
// Auto-generated list of creatable Roblox classes.
// Updated as of 0.469.0.418830
// Updated as of 0.470.0.419147
using System;
@ -648,6 +648,7 @@ namespace RobloxFiles
public class HingeConstraint : Constraint
{
public ActuatorType ActuatorType = ActuatorType.None;
public float AngularResponsiveness = 45;
public float AngularSpeed;
public float AngularVelocity;
public bool LimitsEnabled;
@ -690,6 +691,7 @@ namespace RobloxFiles
{
public ActuatorType ActuatorType = ActuatorType.None;
public bool LimitsEnabled;
public float LinearResponsiveness = 45;
public float LowerLimit;
public float MotorMaxAcceleration = float.MaxValue;
public float MotorMaxForce;
@ -706,6 +708,7 @@ namespace RobloxFiles
{
public ActuatorType AngularActuatorType = ActuatorType.None;
public bool AngularLimitsEnabled;
public float AngularResponsiveness = 45;
public float AngularRestitution;
public float AngularSpeed;
public float AngularVelocity;
@ -743,6 +746,18 @@ namespace RobloxFiles
public Vector3 Torque_ = new Vector3();
}
public class TorsionSpringConstraint : Constraint
{
public float Coils = 8;
public float Damping = 0.01f;
public bool LimitEnabled;
public float MaxAngle = 45;
public float MaxTorque = float.MaxValue;
public float Radius = 0.4f;
public float Restitution;
public float Stiffness = 100;
}
public class UniversalConstraint : Constraint
{
public bool LimitsEnabled;
@ -2191,6 +2206,7 @@ namespace RobloxFiles
public bool Locked;
public bool Massless;
public Material Material = Material.Plastic;
public CFrame PivotOffset = new CFrame();
public Vector3 Position
{
@ -2392,6 +2408,7 @@ namespace RobloxFiles
public SharedString ModelMeshData = SharedString.FromBase64("yuZpQdnvvUBOTYh1jqZ2cA==");
public Vector3 ModelMeshSize = new Vector3();
public BasePart PrimaryPart;
public CFrame WorldPivot = new CFrame();
}
public class Actor : Model

View File

@ -1,5 +1,5 @@
// Auto-generated list of Roblox enums.
// Updated as of 0.469.0.418830
// Updated as of 0.470.0.419147
namespace RobloxFiles.Enums
{

Binary file not shown.

View File

@ -137,11 +137,9 @@ namespace RobloxFiles
{
if (AttributesImpl.TryGetValue(key, out Attribute attr))
{
object result = attr.Value;
if (result is T)
if (attr.Value is T result)
{
value = (T)result;
value = result;
return true;
}
}
@ -193,8 +191,7 @@ namespace RobloxFiles
/// <param name="ancestor">The instance whose ancestry will be tested against this Instance.</param>
public bool IsDescendantOf(Instance ancestor)
{
Contract.Requires(ancestor != null);
return ancestor.IsAncestorOf(this);
return ancestor?.IsAncestorOf(this) ?? false;
}
/// <summary>
@ -203,9 +200,7 @@ namespace RobloxFiles
[Obsolete("Use the `is` operator instead.")]
public bool IsA<T>() where T : Instance
{
Type myType = GetType();
Type classType = typeof(T);
return classType.IsAssignableFrom(myType);
return this is T;
}
/// <summary>
@ -214,14 +209,10 @@ namespace RobloxFiles
/// </summary>
/// <typeparam name="T">The type of Instance to cast to.</typeparam>
/// <returns>The instance as the type '<typeparamref name="T"/>' if it can be converted, or null.</returns>
[Obsolete("Use the `as` operator instead.")]
public T Cast<T>() where T : Instance
{
T result = null;
if (this is T)
result = this as T;
return result;
return this as T;
}
/// <summary>

View File

@ -1,18 +1,11 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using RobloxFiles.DataTypes;
namespace RobloxFiles.UnitTest
{
static class Program
{
const string pattern = "\\d+$";
static void PrintTreeImpl(Instance inst, int stack = 0)
{
string padding = "";
@ -24,15 +17,20 @@ namespace RobloxFiles.UnitTest
switch (inst.ClassName)
{
case "Script":
{
extension = ".server.lua";
break;
}
case "LocalScript":
{
extension = ".client.lua";
break;
}
case "ModuleScript":
{
extension = ".lua";
break;
default: break;
}
}
Console.WriteLine($"{padding}{inst.Name}{extension}");
@ -54,57 +52,7 @@ namespace RobloxFiles.UnitTest
Debugger.Break();
}
static void CountAssets(string path)
{
Console.WriteLine("Opening file...");
RobloxFile target = RobloxFile.Open(path);
var workspace = target.FindFirstChildOfClass<Workspace>();
var assets = new HashSet<string>();
if (workspace == null)
{
Console.WriteLine("No workspace found!");
Debugger.Break();
return;
}
foreach (Instance inst in workspace.GetDescendants())
{
var instPath = inst.GetFullName();
var props = inst.Properties;
foreach (var prop in props)
{
var propName = prop.Key;
var content = prop.Value.CastValue<Content>();
if (content != null)
{
string url = content.Url.Trim();
var id = Regex
.Match(url, pattern)?
.Value;
if (id != null && id.Length > 5)
url = "rbxassetid://" + id;
if (url.Length > 0 && !assets.Contains(url))
{
Console.WriteLine($"[{url}] at {instPath}.{propName}");
assets.Add(url);
}
}
}
}
Console.WriteLine("Done! Press any key to continue...");
Console.Read();
}
[STAThread]
static void Main(string[] args)
{
@ -120,8 +68,6 @@ namespace RobloxFiles.UnitTest
RobloxFile bin = RobloxFile.Open(@"Files\Binary.rbxl");
RobloxFile xml = RobloxFile.Open(@"Files\Xml.rbxlx");
Folder attributes = bin.FindFirstChild<Folder>("Attributes", true);
Console.WriteLine("Files opened! Pausing execution for debugger analysis...");
Debugger.Break();