Bug fixes and tuning

This commit is contained in:
CloneTrooper1019 2020-07-05 19:04:20 -05:00
parent 540958f7f8
commit 7359b6efb7
10 changed files with 60 additions and 143 deletions

View File

@ -570,13 +570,6 @@ namespace RobloxFiles
public class BallSocketConstraint : Constraint
{
public bool LimitsEnabled = false;
public float MaxFrictionTorque
{
get { return MaxFrictionTorqueXml; }
set { MaxFrictionTorqueXml = value; }
}
public float MaxFrictionTorqueXml = 0;
public float Radius = 0.15f;
public float Restitution = 0;
@ -2180,6 +2173,7 @@ namespace RobloxFiles
public abstract class TriangleMeshPart : BasePart
{
public CollisionFidelity CollisionFidelity = CollisionFidelity.Default;
public Vector3 InitialSize = new Vector3(1, 1, 1);
public byte[] LODData = new byte[0];
public SharedString PhysicalConfigData = SharedString.FromBase64("1B2M2Y8AsgTpgAmY7PhCfg==");

Binary file not shown.

View File

@ -35,29 +35,10 @@ local GuiTextMixIn =
return
{
AnalyticsService =
{
Defaults = { ApiKey = "" }
};
BallSocketConstraint =
{
-- Why does this even exist?
Add =
{
MaxFrictionTorque = "float";
MaxFrictionTorqueXml = "float";
};
Defaults =
{
MaxFrictionTorqueXml = 0;
};
Redirect =
{
MaxFrictionTorque = "MaxFrictionTorqueXml";
}
Add = { MaxFrictionTorqueXml = "float" };
};
BasePart =
@ -81,12 +62,6 @@ return
Color3uint8 = Color3.fromRGB(163, 162, 165);
size = Vector3.new(4, 1.2, 2);
};
Remove =
{
"Orientation";
"Rotation";
}
};
BaseScript =
@ -101,27 +76,12 @@ return
Bevel = "float";
Bevel_Roundness = "float";
Bulge = "float";
};
Defaults =
{
Bevel = 0;
Bevel_Roundness = 0;
Bulge = 0;
}
};
BinaryStringValue =
{
Add =
{
Value = "BinaryString";
};
Defaults =
{
Value = "";
};
Add = { Value = "BinaryString" };
};
BodyColors =
@ -147,11 +107,6 @@ return
Redirect = { cframe = "CFrame" };
};
Bone =
{
Remove = {"Transform"}
};
Camera =
{
Redirect = { CoordinateFrame = "CFrame" }
@ -159,8 +114,7 @@ return
CustomEvent =
{
Add = { PersistedCurrentValue = "float"; };
Defaults = { PersistedCurrentValue = 0; };
Add = { PersistedCurrentValue = "float" };
};
DataModelMesh =
@ -187,15 +141,9 @@ return
}
};
DebuggerWatch =
{
Defaults = { Expression = "" };
};
DoubleConstrainedValue =
{
Add = { value = "double" };
Defaults = { value = 0.0 };
Add = { value = "double" };
Redirect =
{
@ -311,12 +259,6 @@ return
EmotesDataInternal = "string";
EquippedEmotesDataInternal = "string";
};
Defaults =
{
EmotesDataInternal = "";
EquippedEmotesDataInternal = "";
};
};
InsertService =
@ -328,7 +270,6 @@ return
IntConstrainedValue =
{
Add = { value = "int64" };
Defaults = { value = 0; };
Redirect =
{
@ -384,13 +325,6 @@ return
ScriptGuid = "string";
Source = "ProtectedString";
};
Defaults =
{
LinkedSource = "";
ScriptGuid = "";
Source = "";
};
};
ManualSurfaceJointInstance =
@ -415,8 +349,7 @@ return
Model =
{
Add = { ModelInPrimary = "CFrame" };
Defaults = { ModelInPrimary = CFrame.new() };
Add = { ModelInPrimary = "CFrame" };
};
ModuleScript =
@ -436,13 +369,7 @@ return
PackageIdSerialize = "Content";
};
Defaults =
{
AutoUpdate = false;
VersionIdSerialize = 0;
PackageIdSerialize = "";
};
Defaults = { AutoUpdate = false };
};
Part =
@ -473,13 +400,7 @@ return
FormFactor = "Enum:FormFactor";
};
Defaults =
{
AssetId = "";
ChildData = "";
MeshData = "";
FormFactor = Enum.FormFactor.Custom;
};
Defaults = { FormFactor = Enum.FormFactor.Custom };
};
PartOperationAsset =
@ -489,21 +410,11 @@ return
ChildData = "BinaryString";
MeshData = "BinaryString";
};
Defaults =
{
ChildData = "";
MeshData = "";
};
};
Players =
{
Defaults =
{
MaxPlayersInternal = 16;
PreferredPlayersInternal = 0;
}
Defaults = { MaxPlayersInternal = 16 }
};
SelectionBox =
@ -584,25 +495,30 @@ return
{
Redirect = { Color = "SparkleColor" };
};
StarterPlayer =
{
Defaults =
{
GameSettingsAvatar = Enum.GameAvatarType.R15;
GameSettingsR15Collision = Enum.R15CollisionType.OuterBox;
GameSettingsScaleRangeHead = NumberRange.new(0.95, 1.00);
GameSettingsScaleRangeWidth = NumberRange.new(0.70, 1.00);
GameSettingsScaleRangeHeight = NumberRange.new(0.90, 1.05);
GameSettingsScaleRangeBodyType = NumberRange.new(0.00, 1.00);
GameSettingsScaleRangeProportion = NumberRange.new(0.00, 1.00);
};
};
StudioData =
{
Add =
{
CommitInflightAuthorId = "int64";
CommitInflightGuid = "string";
CommitInflightAuthorId = "int64";
CommitInflightPlaceVersion = "int";
};
Defaults =
{
CommitInflightAuthorId = 0;
CommitInflightGuid = "";
CommitInflightPlaceVersion = 0;
SrcPlaceId = 0;
SrcUniverseId = 0;
};
};
SurfaceAppearance =
@ -628,10 +544,6 @@ return
Defaults =
{
ClusterGrid = "";
ClusterGridV2 = "";
ClusterGridV3 = "";
Decoration = false;
SmoothGrid = "AQU=";
@ -669,14 +581,14 @@ return
LODData = "BinaryString";
PhysicsData = "BinaryString";
PhysicalConfigData = "SharedString";
CollisionFidelity = "Enum:CollisionFidelity";
};
Defaults =
Defaults =
{
LODData = "";
PhysicsData = "";
InitialSize = Vector3.new(1, 1, 1);
PhysicalConfigData = "1B2M2Y8AsgTpgAmY7PhCfg==";
CollisionFidelity = Enum.CollisionFidelity.Default;
};
};
@ -703,7 +615,7 @@ return
WeldConstraint =
{
Add =
Add =
{
Part0Internal = "Class:BasePart";
Part1Internal = "Class:BasePart";

View File

@ -18,6 +18,7 @@ local numberTypes =
{
int = true;
long = true;
int64 = true;
float = true;
double = true;
}
@ -26,6 +27,7 @@ local stringTypes =
{
string = true;
Content = true;
BinaryString = true;
ProtectedString = true;
}
@ -406,11 +408,15 @@ local function generateClasses()
end
for propName, propType in pairs(classPatches.Add) do
if not propMap[propName] then
local prop = propMap[propName]
if prop then
local serial = prop.Serialization
serial.CanSave = true
serial.CanLoad = true
else
propMap[propName] = createProperty(propName, propType)
table.insert(propNames, propName)
else
propMap[propName].Serialization.CanLoad = true
end
end

View File

@ -6,11 +6,11 @@
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{CF50C0E2-23A7-4DC1-B4B2-E60CDE716253}</ProjectGuid>
<OutputType>Exe</OutputType>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RobloxFiles</RootNamespace>
<AssemblyName>RobloxFileFormat</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
@ -29,6 +29,7 @@
<BootstrapperEnabled>true</BootstrapperEnabled>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>

Binary file not shown.

View File

@ -42,7 +42,7 @@ namespace RobloxFiles.Utility
/// There are some name duplicates, but that's an issue on Roblox's end.
/// </summary>
public static IReadOnlyList<BrickColor> ColorMap = new List<BrickColor>()
public static readonly IReadOnlyList<BrickColor> ColorMap = new List<BrickColor>()
{
new BrickColor( 1, 0xF2F3F3, "White"),
new BrickColor( 2, 0xA1A5A2, "Grey"),

View File

@ -1,8 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RobloxFiles.Enums;
@ -10,7 +7,7 @@ namespace RobloxFiles.Utility
{
public static class FontUtility
{
public static IReadOnlyDictionary<int, FontSize> FontSizes = new Dictionary<int, FontSize>()
public static readonly IReadOnlyDictionary<int, FontSize> FontSizes = new Dictionary<int, FontSize>()
{
{ 8, FontSize.Size8 },
{ 9, FontSize.Size9 },
@ -29,8 +26,6 @@ namespace RobloxFiles.Utility
{ 96, FontSize.Size96 },
};
private static Dictionary<int, FontSize> IntToFontSize = new Dictionary<int, FontSize>();
public static FontSize GetFontSize(int fontSize)
{
if (fontSize > 60)

View File

@ -1,4 +1,5 @@
using System;
using System.Linq;
using System.Reflection;
namespace RobloxFiles.Utility
@ -14,12 +15,20 @@ namespace RobloxFiles.Utility
public static ImplicitMember Get(Type type, string name)
{
var field = type.GetField(name, flags);
var prop = type.GetProperty(name, flags);
var field = type
.GetFields(flags)
.Where(f => f.Name == name)
.FirstOrDefault();
if (field != null)
return new ImplicitMember(field);
else if (prop != null)
var prop = type
.GetProperties(flags)
.Where(p => p.Name == name)
.FirstOrDefault();
if (prop != null)
return new ImplicitMember(prop);
return null;

View File

@ -12,7 +12,7 @@ namespace RobloxFiles.Utility
/// <summary>
/// A dictionary mapping materials to their default Density.
/// </summary>
public static IReadOnlyDictionary<Material, float> DensityMap = new Dictionary<Material, float>()
public static readonly IReadOnlyDictionary<Material, float> DensityMap = new Dictionary<Material, float>()
{
{Material.Air, 0.01f},
{Material.Asphalt, 2.36f},
@ -56,7 +56,7 @@ namespace RobloxFiles.Utility
/// <summary>
/// A dictionary mapping materials to their default Elasticity.
/// </summary>
public static IReadOnlyDictionary<Material, float> ElasticityMap = new Dictionary<Material, float>()
public static readonly IReadOnlyDictionary<Material, float> ElasticityMap = new Dictionary<Material, float>()
{
{Material.Air, 0.01f},
{Material.Asphalt, 0.20f},
@ -100,7 +100,7 @@ namespace RobloxFiles.Utility
/// <summary>
/// A dictionary mapping materials to their default Friction.
/// </summary>
public static IReadOnlyDictionary<Material, float> FrictionMap = new Dictionary<Material, float>()
public static readonly IReadOnlyDictionary<Material, float> FrictionMap = new Dictionary<Material, float>()
{
{Material.Air, 0.01f},
{Material.Asphalt, 0.80f},
@ -146,7 +146,7 @@ namespace RobloxFiles.Utility
/// NOTE: This only maps materials that have different FrictionWeights.<para/>
/// If it isn't in here, assume their FrictionWeight is 1.
/// </summary>
public static IReadOnlyDictionary<Material, float> FrictionWeightMap = new Dictionary<Material, float>()
public static readonly IReadOnlyDictionary<Material, float> FrictionWeightMap = new Dictionary<Material, float>()
{
{Material.Asphalt, 0.30f},
{Material.Basalt, 0.30f},