Bug fixes and tuning
This commit is contained in:
parent
540958f7f8
commit
7359b6efb7
@ -570,13 +570,6 @@ namespace RobloxFiles
|
|||||||
public class BallSocketConstraint : Constraint
|
public class BallSocketConstraint : Constraint
|
||||||
{
|
{
|
||||||
public bool LimitsEnabled = false;
|
public bool LimitsEnabled = false;
|
||||||
|
|
||||||
public float MaxFrictionTorque
|
|
||||||
{
|
|
||||||
get { return MaxFrictionTorqueXml; }
|
|
||||||
set { MaxFrictionTorqueXml = value; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public float MaxFrictionTorqueXml = 0;
|
public float MaxFrictionTorqueXml = 0;
|
||||||
public float Radius = 0.15f;
|
public float Radius = 0.15f;
|
||||||
public float Restitution = 0;
|
public float Restitution = 0;
|
||||||
@ -2180,6 +2173,7 @@ namespace RobloxFiles
|
|||||||
|
|
||||||
public abstract class TriangleMeshPart : BasePart
|
public abstract class TriangleMeshPart : BasePart
|
||||||
{
|
{
|
||||||
|
public CollisionFidelity CollisionFidelity = CollisionFidelity.Default;
|
||||||
public Vector3 InitialSize = new Vector3(1, 1, 1);
|
public Vector3 InitialSize = new Vector3(1, 1, 1);
|
||||||
public byte[] LODData = new byte[0];
|
public byte[] LODData = new byte[0];
|
||||||
public SharedString PhysicalConfigData = SharedString.FromBase64("1B2M2Y8AsgTpgAmY7PhCfg==");
|
public SharedString PhysicalConfigData = SharedString.FromBase64("1B2M2Y8AsgTpgAmY7PhCfg==");
|
||||||
|
Binary file not shown.
@ -35,29 +35,10 @@ local GuiTextMixIn =
|
|||||||
|
|
||||||
return
|
return
|
||||||
{
|
{
|
||||||
AnalyticsService =
|
|
||||||
{
|
|
||||||
Defaults = { ApiKey = "" }
|
|
||||||
};
|
|
||||||
|
|
||||||
BallSocketConstraint =
|
BallSocketConstraint =
|
||||||
{
|
{
|
||||||
-- Why does this even exist?
|
-- Why does this even exist?
|
||||||
Add =
|
Add = { MaxFrictionTorqueXml = "float" };
|
||||||
{
|
|
||||||
MaxFrictionTorque = "float";
|
|
||||||
MaxFrictionTorqueXml = "float";
|
|
||||||
};
|
|
||||||
|
|
||||||
Defaults =
|
|
||||||
{
|
|
||||||
MaxFrictionTorqueXml = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
Redirect =
|
|
||||||
{
|
|
||||||
MaxFrictionTorque = "MaxFrictionTorqueXml";
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
BasePart =
|
BasePart =
|
||||||
@ -81,12 +62,6 @@ return
|
|||||||
Color3uint8 = Color3.fromRGB(163, 162, 165);
|
Color3uint8 = Color3.fromRGB(163, 162, 165);
|
||||||
size = Vector3.new(4, 1.2, 2);
|
size = Vector3.new(4, 1.2, 2);
|
||||||
};
|
};
|
||||||
|
|
||||||
Remove =
|
|
||||||
{
|
|
||||||
"Orientation";
|
|
||||||
"Rotation";
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
BaseScript =
|
BaseScript =
|
||||||
@ -101,27 +76,12 @@ return
|
|||||||
Bevel = "float";
|
Bevel = "float";
|
||||||
Bevel_Roundness = "float";
|
Bevel_Roundness = "float";
|
||||||
Bulge = "float";
|
Bulge = "float";
|
||||||
};
|
|
||||||
|
|
||||||
Defaults =
|
|
||||||
{
|
|
||||||
Bevel = 0;
|
|
||||||
Bevel_Roundness = 0;
|
|
||||||
Bulge = 0;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
BinaryStringValue =
|
BinaryStringValue =
|
||||||
{
|
{
|
||||||
Add =
|
Add = { Value = "BinaryString" };
|
||||||
{
|
|
||||||
Value = "BinaryString";
|
|
||||||
};
|
|
||||||
|
|
||||||
Defaults =
|
|
||||||
{
|
|
||||||
Value = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
BodyColors =
|
BodyColors =
|
||||||
@ -147,11 +107,6 @@ return
|
|||||||
Redirect = { cframe = "CFrame" };
|
Redirect = { cframe = "CFrame" };
|
||||||
};
|
};
|
||||||
|
|
||||||
Bone =
|
|
||||||
{
|
|
||||||
Remove = {"Transform"}
|
|
||||||
};
|
|
||||||
|
|
||||||
Camera =
|
Camera =
|
||||||
{
|
{
|
||||||
Redirect = { CoordinateFrame = "CFrame" }
|
Redirect = { CoordinateFrame = "CFrame" }
|
||||||
@ -159,8 +114,7 @@ return
|
|||||||
|
|
||||||
CustomEvent =
|
CustomEvent =
|
||||||
{
|
{
|
||||||
Add = { PersistedCurrentValue = "float"; };
|
Add = { PersistedCurrentValue = "float" };
|
||||||
Defaults = { PersistedCurrentValue = 0; };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
DataModelMesh =
|
DataModelMesh =
|
||||||
@ -187,15 +141,9 @@ return
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
DebuggerWatch =
|
|
||||||
{
|
|
||||||
Defaults = { Expression = "" };
|
|
||||||
};
|
|
||||||
|
|
||||||
DoubleConstrainedValue =
|
DoubleConstrainedValue =
|
||||||
{
|
{
|
||||||
Add = { value = "double" };
|
Add = { value = "double" };
|
||||||
Defaults = { value = 0.0 };
|
|
||||||
|
|
||||||
Redirect =
|
Redirect =
|
||||||
{
|
{
|
||||||
@ -311,12 +259,6 @@ return
|
|||||||
EmotesDataInternal = "string";
|
EmotesDataInternal = "string";
|
||||||
EquippedEmotesDataInternal = "string";
|
EquippedEmotesDataInternal = "string";
|
||||||
};
|
};
|
||||||
|
|
||||||
Defaults =
|
|
||||||
{
|
|
||||||
EmotesDataInternal = "";
|
|
||||||
EquippedEmotesDataInternal = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
InsertService =
|
InsertService =
|
||||||
@ -328,7 +270,6 @@ return
|
|||||||
IntConstrainedValue =
|
IntConstrainedValue =
|
||||||
{
|
{
|
||||||
Add = { value = "int64" };
|
Add = { value = "int64" };
|
||||||
Defaults = { value = 0; };
|
|
||||||
|
|
||||||
Redirect =
|
Redirect =
|
||||||
{
|
{
|
||||||
@ -384,13 +325,6 @@ return
|
|||||||
ScriptGuid = "string";
|
ScriptGuid = "string";
|
||||||
Source = "ProtectedString";
|
Source = "ProtectedString";
|
||||||
};
|
};
|
||||||
|
|
||||||
Defaults =
|
|
||||||
{
|
|
||||||
LinkedSource = "";
|
|
||||||
ScriptGuid = "";
|
|
||||||
Source = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ManualSurfaceJointInstance =
|
ManualSurfaceJointInstance =
|
||||||
@ -415,8 +349,7 @@ return
|
|||||||
|
|
||||||
Model =
|
Model =
|
||||||
{
|
{
|
||||||
Add = { ModelInPrimary = "CFrame" };
|
Add = { ModelInPrimary = "CFrame" };
|
||||||
Defaults = { ModelInPrimary = CFrame.new() };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ModuleScript =
|
ModuleScript =
|
||||||
@ -436,13 +369,7 @@ return
|
|||||||
PackageIdSerialize = "Content";
|
PackageIdSerialize = "Content";
|
||||||
};
|
};
|
||||||
|
|
||||||
Defaults =
|
Defaults = { AutoUpdate = false };
|
||||||
{
|
|
||||||
AutoUpdate = false;
|
|
||||||
|
|
||||||
VersionIdSerialize = 0;
|
|
||||||
PackageIdSerialize = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Part =
|
Part =
|
||||||
@ -473,13 +400,7 @@ return
|
|||||||
FormFactor = "Enum:FormFactor";
|
FormFactor = "Enum:FormFactor";
|
||||||
};
|
};
|
||||||
|
|
||||||
Defaults =
|
Defaults = { FormFactor = Enum.FormFactor.Custom };
|
||||||
{
|
|
||||||
AssetId = "";
|
|
||||||
ChildData = "";
|
|
||||||
MeshData = "";
|
|
||||||
FormFactor = Enum.FormFactor.Custom;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
PartOperationAsset =
|
PartOperationAsset =
|
||||||
@ -489,21 +410,11 @@ return
|
|||||||
ChildData = "BinaryString";
|
ChildData = "BinaryString";
|
||||||
MeshData = "BinaryString";
|
MeshData = "BinaryString";
|
||||||
};
|
};
|
||||||
|
|
||||||
Defaults =
|
|
||||||
{
|
|
||||||
ChildData = "";
|
|
||||||
MeshData = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Players =
|
Players =
|
||||||
{
|
{
|
||||||
Defaults =
|
Defaults = { MaxPlayersInternal = 16 }
|
||||||
{
|
|
||||||
MaxPlayersInternal = 16;
|
|
||||||
PreferredPlayersInternal = 0;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
SelectionBox =
|
SelectionBox =
|
||||||
@ -584,25 +495,30 @@ return
|
|||||||
{
|
{
|
||||||
Redirect = { Color = "SparkleColor" };
|
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 =
|
StudioData =
|
||||||
{
|
{
|
||||||
Add =
|
Add =
|
||||||
{
|
{
|
||||||
CommitInflightAuthorId = "int64";
|
|
||||||
CommitInflightGuid = "string";
|
CommitInflightGuid = "string";
|
||||||
|
CommitInflightAuthorId = "int64";
|
||||||
CommitInflightPlaceVersion = "int";
|
CommitInflightPlaceVersion = "int";
|
||||||
};
|
};
|
||||||
|
|
||||||
Defaults =
|
|
||||||
{
|
|
||||||
CommitInflightAuthorId = 0;
|
|
||||||
CommitInflightGuid = "";
|
|
||||||
CommitInflightPlaceVersion = 0;
|
|
||||||
|
|
||||||
SrcPlaceId = 0;
|
|
||||||
SrcUniverseId = 0;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
SurfaceAppearance =
|
SurfaceAppearance =
|
||||||
@ -628,10 +544,6 @@ return
|
|||||||
|
|
||||||
Defaults =
|
Defaults =
|
||||||
{
|
{
|
||||||
ClusterGrid = "";
|
|
||||||
ClusterGridV2 = "";
|
|
||||||
ClusterGridV3 = "";
|
|
||||||
|
|
||||||
Decoration = false;
|
Decoration = false;
|
||||||
|
|
||||||
SmoothGrid = "AQU=";
|
SmoothGrid = "AQU=";
|
||||||
@ -669,14 +581,14 @@ return
|
|||||||
LODData = "BinaryString";
|
LODData = "BinaryString";
|
||||||
PhysicsData = "BinaryString";
|
PhysicsData = "BinaryString";
|
||||||
PhysicalConfigData = "SharedString";
|
PhysicalConfigData = "SharedString";
|
||||||
|
CollisionFidelity = "Enum:CollisionFidelity";
|
||||||
};
|
};
|
||||||
|
|
||||||
Defaults =
|
Defaults =
|
||||||
{
|
{
|
||||||
LODData = "";
|
|
||||||
PhysicsData = "";
|
|
||||||
InitialSize = Vector3.new(1, 1, 1);
|
InitialSize = Vector3.new(1, 1, 1);
|
||||||
PhysicalConfigData = "1B2M2Y8AsgTpgAmY7PhCfg==";
|
PhysicalConfigData = "1B2M2Y8AsgTpgAmY7PhCfg==";
|
||||||
|
CollisionFidelity = Enum.CollisionFidelity.Default;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -703,7 +615,7 @@ return
|
|||||||
|
|
||||||
WeldConstraint =
|
WeldConstraint =
|
||||||
{
|
{
|
||||||
Add =
|
Add =
|
||||||
{
|
{
|
||||||
Part0Internal = "Class:BasePart";
|
Part0Internal = "Class:BasePart";
|
||||||
Part1Internal = "Class:BasePart";
|
Part1Internal = "Class:BasePart";
|
||||||
|
@ -18,6 +18,7 @@ local numberTypes =
|
|||||||
{
|
{
|
||||||
int = true;
|
int = true;
|
||||||
long = true;
|
long = true;
|
||||||
|
int64 = true;
|
||||||
float = true;
|
float = true;
|
||||||
double = true;
|
double = true;
|
||||||
}
|
}
|
||||||
@ -26,6 +27,7 @@ local stringTypes =
|
|||||||
{
|
{
|
||||||
string = true;
|
string = true;
|
||||||
Content = true;
|
Content = true;
|
||||||
|
BinaryString = true;
|
||||||
ProtectedString = true;
|
ProtectedString = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -406,11 +408,15 @@ local function generateClasses()
|
|||||||
end
|
end
|
||||||
|
|
||||||
for propName, propType in pairs(classPatches.Add) do
|
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)
|
propMap[propName] = createProperty(propName, propType)
|
||||||
table.insert(propNames, propName)
|
table.insert(propNames, propName)
|
||||||
else
|
|
||||||
propMap[propName].Serialization.CanLoad = true
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
<ProjectGuid>{CF50C0E2-23A7-4DC1-B4B2-E60CDE716253}</ProjectGuid>
|
<ProjectGuid>{CF50C0E2-23A7-4DC1-B4B2-E60CDE716253}</ProjectGuid>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>RobloxFiles</RootNamespace>
|
<RootNamespace>RobloxFiles</RootNamespace>
|
||||||
<AssemblyName>RobloxFileFormat</AssemblyName>
|
<AssemblyName>RobloxFileFormat</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
<PublishUrl>publish\</PublishUrl>
|
<PublishUrl>publish\</PublishUrl>
|
||||||
<Install>true</Install>
|
<Install>true</Install>
|
||||||
@ -29,6 +29,7 @@
|
|||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
<NuGetPackageImportStamp>
|
<NuGetPackageImportStamp>
|
||||||
</NuGetPackageImportStamp>
|
</NuGetPackageImportStamp>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
Binary file not shown.
@ -42,7 +42,7 @@ namespace RobloxFiles.Utility
|
|||||||
/// There are some name duplicates, but that's an issue on Roblox's end.
|
/// There are some name duplicates, but that's an issue on Roblox's end.
|
||||||
/// </summary>
|
/// </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( 1, 0xF2F3F3, "White"),
|
||||||
new BrickColor( 2, 0xA1A5A2, "Grey"),
|
new BrickColor( 2, 0xA1A5A2, "Grey"),
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using RobloxFiles.Enums;
|
using RobloxFiles.Enums;
|
||||||
|
|
||||||
@ -10,7 +7,7 @@ namespace RobloxFiles.Utility
|
|||||||
{
|
{
|
||||||
public static class FontUtility
|
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 },
|
{ 8, FontSize.Size8 },
|
||||||
{ 9, FontSize.Size9 },
|
{ 9, FontSize.Size9 },
|
||||||
@ -29,8 +26,6 @@ namespace RobloxFiles.Utility
|
|||||||
{ 96, FontSize.Size96 },
|
{ 96, FontSize.Size96 },
|
||||||
};
|
};
|
||||||
|
|
||||||
private static Dictionary<int, FontSize> IntToFontSize = new Dictionary<int, FontSize>();
|
|
||||||
|
|
||||||
public static FontSize GetFontSize(int fontSize)
|
public static FontSize GetFontSize(int fontSize)
|
||||||
{
|
{
|
||||||
if (fontSize > 60)
|
if (fontSize > 60)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
namespace RobloxFiles.Utility
|
namespace RobloxFiles.Utility
|
||||||
@ -14,12 +15,20 @@ namespace RobloxFiles.Utility
|
|||||||
|
|
||||||
public static ImplicitMember Get(Type type, string name)
|
public static ImplicitMember Get(Type type, string name)
|
||||||
{
|
{
|
||||||
var field = type.GetField(name, flags);
|
var field = type
|
||||||
var prop = type.GetProperty(name, flags);
|
.GetFields(flags)
|
||||||
|
.Where(f => f.Name == name)
|
||||||
|
.FirstOrDefault();
|
||||||
|
|
||||||
if (field != null)
|
if (field != null)
|
||||||
return new ImplicitMember(field);
|
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 new ImplicitMember(prop);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -12,7 +12,7 @@ namespace RobloxFiles.Utility
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A dictionary mapping materials to their default Density.
|
/// A dictionary mapping materials to their default Density.
|
||||||
/// </summary>
|
/// </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.Air, 0.01f},
|
||||||
{Material.Asphalt, 2.36f},
|
{Material.Asphalt, 2.36f},
|
||||||
@ -56,7 +56,7 @@ namespace RobloxFiles.Utility
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A dictionary mapping materials to their default Elasticity.
|
/// A dictionary mapping materials to their default Elasticity.
|
||||||
/// </summary>
|
/// </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.Air, 0.01f},
|
||||||
{Material.Asphalt, 0.20f},
|
{Material.Asphalt, 0.20f},
|
||||||
@ -100,7 +100,7 @@ namespace RobloxFiles.Utility
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// A dictionary mapping materials to their default Friction.
|
/// A dictionary mapping materials to their default Friction.
|
||||||
/// </summary>
|
/// </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.Air, 0.01f},
|
||||||
{Material.Asphalt, 0.80f},
|
{Material.Asphalt, 0.80f},
|
||||||
@ -146,7 +146,7 @@ namespace RobloxFiles.Utility
|
|||||||
/// NOTE: This only maps materials that have different FrictionWeights.<para/>
|
/// NOTE: This only maps materials that have different FrictionWeights.<para/>
|
||||||
/// If it isn't in here, assume their FrictionWeight is 1.
|
/// If it isn't in here, assume their FrictionWeight is 1.
|
||||||
/// </summary>
|
/// </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.Asphalt, 0.30f},
|
||||||
{Material.Basalt, 0.30f},
|
{Material.Basalt, 0.30f},
|
||||||
|
Loading…
Reference in New Issue
Block a user