0.438.0.407270

This commit is contained in:
CloneTrooper1019 2020-06-29 19:06:14 -05:00
parent f7e53785d1
commit 540958f7f8
11 changed files with 182 additions and 27 deletions

1
.gitignore vendored
View File

@ -331,3 +331,4 @@ ASALocalRun/
# Library Test
RobloxFileFormat.exe
*.lock

View File

@ -1,5 +1,5 @@
// Auto-generated list of creatable Roblox classes.
// Updated as of 0.437.0.406875
// Updated as of 0.438.0.407270
using System;
@ -51,6 +51,7 @@ namespace RobloxFiles
IsService = true;
}
[Obsolete]
public string ApiKey = "";
}
@ -1139,6 +1140,7 @@ namespace RobloxFiles
}
public float LineHeight = 1;
public bool RichText = false;
public string Text = "Button";
[Obsolete]
@ -1208,6 +1210,7 @@ namespace RobloxFiles
}
public float LineHeight = 1;
public bool RichText = false;
public string Text = "Label";
[Obsolete]
@ -1282,6 +1285,7 @@ namespace RobloxFiles
public bool MultiLine = false;
public Color3 PlaceholderColor3 = Color3.FromRGB(178, 178, 178);
public string PlaceholderText = "";
public bool RichText = false;
public bool ShowNativeInput = true;
public string Text = "TextBox";
@ -1840,22 +1844,22 @@ namespace RobloxFiles
IsService = true;
}
public Color3 Ambient = new Color3();
public float Brightness = 2;
public Color3 Ambient = Color3.FromRGB(127, 127, 127);
public float Brightness = 1;
public Color3 ColorShift_Bottom = new Color3();
public Color3 ColorShift_Top = new Color3();
public float EnvironmentDiffuseScale = 0;
public float EnvironmentSpecularScale = 0;
public float ExposureCompensation = 0;
public Color3 FogColor = Color3.FromRGB(192, 192, 192);
public Color3 FogColor = Color3.FromRGB(191, 191, 191);
public float FogEnd = 100000;
public float FogStart = 0;
public float GeographicLatitude = 41.7333f;
public bool GlobalShadows = true;
public Color3 OutdoorAmbient = Color3.FromRGB(128, 128, 128);
public bool GlobalShadows = false;
public Color3 OutdoorAmbient = Color3.FromRGB(127, 127, 127);
[Obsolete]
public bool Outlines = false;
public bool Outlines = true;
[Obsolete]
public Color3 ShadowColor = Color3.FromRGB(178, 178, 183);
@ -2167,7 +2171,7 @@ namespace RobloxFiles
public byte[] MaterialColors = Convert.FromBase64String("AAAAAAAAan8/P39rf2Y/ilY+j35fi21PZmxvZbDqw8faiVpHOi4kHh4lZlw76JxKc3trhHtagcLgc4RKxr21zq2UlJSM");
public byte[] PhysicsGrid = Convert.FromBase64String("AgMAAAAAAAAAAAAAAAA=");
public byte[] SmoothGrid = Convert.FromBase64String("AQU=");
public Color3 WaterColor = Color3.FromRGB(12, 84, 92);
public Color3 WaterColor = Color3.FromRGB(12, 84, 91);
public float WaterReflectance = 1;
public float WaterTransparency = 0.3f;
public float WaterWaveSize = 0.15f;
@ -2264,7 +2268,7 @@ namespace RobloxFiles
public double DistributedGameTime = 0;
public bool ExplicitAutoJoints = true;
public float FallenPartsDestroyHeight = -500;
public bool FilteringEnabled = true;
public bool FilteringEnabled = false;
public float Gravity = 196.2f;
public bool StreamingEnabled = false;
public int StreamingMinRadius = 64;
@ -2833,7 +2837,7 @@ namespace RobloxFiles
public ReverbType AmbientReverb = ReverbType.NoReverb;
public float DistanceFactor = 3.33f;
public float DopplerScale = 1;
public bool RespectFilteringEnabled = true;
public bool RespectFilteringEnabled = false;
public float RolloffScale = 1;
}
@ -2849,6 +2853,14 @@ namespace RobloxFiles
public Color3 SparkleColor = Color3.FromRGB(144, 25, 255);
}
public class SpawnerService : Instance
{
public SpawnerService()
{
IsService = true;
}
}
public class StandalonePluginScripts : Instance
{
}
@ -2874,7 +2886,7 @@ namespace RobloxFiles
public bool AllowCustomAnimations = true;
public bool AutoJumpEnabled = true;
public float CameraMaxZoomDistance = 128;
public float CameraMaxZoomDistance = 400;
public float CameraMinZoomDistance = 0.5f;
public CameraMode CameraMode = CameraMode.Classic;
public float CharacterJumpHeight = 7.2f;

View File

@ -1,5 +1,5 @@
// Auto-generated list of Roblox enums.
// Updated as of 0.437.0.406875
// Updated as of 0.438.0.407270
namespace RobloxFiles.Enums
{
@ -1912,7 +1912,9 @@ namespace RobloxFiles.Enums
DialogButtonText,
DialogButtonBorder,
DialogMainButton,
DialogMainButtonText
DialogMainButtonText,
InfoBarWarningBackground,
InfoBarWarningText
}
public enum StudioStyleGuideModifier

View File

@ -1,18 +1,87 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;
using RobloxFiles.DataTypes;
namespace RobloxFiles
{
// If the solution is built as an exe, this class is
// used to drive some basic testing of the library.
internal static class Program
{
const string pattern = "\\d+$";
static void CountAssets(string path)
{
Console.WriteLine("Opening file...");
RobloxFile target = RobloxFile.Open(path);
var workspace = target.FindFirstChildOfClass<Workspace>();
var assets = new HashSet<string>();
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)
{
RobloxFile bin = RobloxFile.Open(@"LibTest\Binary.rbxl");
Debugger.Break();
if (args.Length > 0)
{
string path = args[0];
CountAssets(path);
}
else
{
RobloxFile bin = RobloxFile.Open(@"LibTest\Binary.rbxl");
RobloxFile xml = RobloxFile.Open(@"LibTest\Xml.rbxlx");
RobloxFile xml = RobloxFile.Open(@"LibTest\Xml.rbxlx");
Debugger.Break();
Console.WriteLine("Files opened! Pausing execution for debugger analysis...");
Debugger.Break();
using (FileStream binStream = File.OpenWrite(@"LibTest\Binary_SaveTest.rbxl"))
bin.Save(binStream);
using (FileStream xmlStream = File.OpenWrite(@"LibTest\Xml_SaveTest.rbxlx"))
xml.Save(xmlStream);
Console.WriteLine("Files saved! Pausing execution for debugger analysis...");
Debugger.Break();
}
}
}
}

View File

@ -8,6 +8,16 @@
"label": "Build Plugin",
"command": "rojo build --output GenerateApiDump.rbxm",
"group": "build"
},
{
"type": "shell",
"label": "Build and Test Plugin",
"command": "powershell -ExecutionPolicy ByPass -File DeployToStudio.ps1",
"dependsOn": ["Build Plugin"],
"group":
{
"kind": "build",

View File

@ -0,0 +1,7 @@
$pluginName = "GenerateApiDump.rbxm"
$studioKey = "HKCU:\Software\Roblox\RobloxStudio"
$contentDir = Get-ItemPropertyValue -Path $studioKey -Name "ContentFolder"
$destPath = $contentDir + "/../BuiltInPlugins/" + $pluginName
Copy-Item -Path $pluginName -Destination $destPath

Binary file not shown.

View File

@ -14,6 +14,21 @@ local singletons =
StarterCharacterScripts = StarterPlayer:WaitForChild("StarterCharacterScripts");
}
local numberTypes =
{
int = true;
long = true;
float = true;
double = true;
}
local stringTypes =
{
string = true;
Content = true;
ProtectedString = true;
}
local isCoreScript = pcall(function ()
local restricted = game:GetService("RobloxPluginGuiService")
return tostring(restricted)
@ -246,6 +261,9 @@ if plugin then
"Generates a C# dump of Roblox's Enum API.",
"rbxasset://textures/Icon_Stream_Off@2x.png"
)
classButton.ClickableWhenViewportHidden = true
enumButton.ClickableWhenViewportHidden = true
end
local function getAsync(url)
@ -266,6 +284,7 @@ local function getAsync(url)
end
local function generateClasses()
local env = getfenv()
local version = getAsync(baseUrl .. "version.txt")
local apiDump = getAsync(baseUrl .. "API-Dump.json")
@ -296,9 +315,9 @@ local function generateClasses()
pcall(function ()
class.Object = Instance.new(className)
if ServerStorage:FindFirstChild("DumpFolder") then
if game:FindFirstChild("DumpFolder") then
class.Object.Name = className
class.Object.Parent = ServerStorage.DumpFolder
class.Object.Parent = game.DumpFolder
end
end)
end
@ -510,11 +529,41 @@ local function generateClasses()
end)
end
local comment = " // Default missing!"
local category = prop.ValueType.Category
local typeData = prop.ValueType
local category = typeData.Category
if not gotValue and category ~= "Class" then
-- Fallback to implicit defaults
local typeName = typeData.Name
if numberTypes[typeName] then
value = 0
gotValue = true
elseif stringTypes[typeName] then
value = ""
gotValue = true
elseif category == "DataType" then
local DataType = env[typeName]
if DataType and typeof(DataType) == "table" and not rawget(env, typeName) then
pcall(function ()
value = DataType.new()
gotValue = true
end)
end
end
local id = string.format("%s.%s", className, propName)
local src = string.format("[%s]", script.Parent:GetFullName())
if gotValue then
warn(src, "Fell back to implicit value for property:", id)
else
warn(src, "!! Could not figure out default value for property:", id)
end
end
if gotValue then
local category = prop.ValueType.Category
local formatFunc = getFormatFunction(valueType)
if not formatFunc then
@ -535,7 +584,6 @@ local function generateClasses()
end
default = " = " .. result
comment = ""
end
if propTags.Deprecated then
@ -548,10 +596,9 @@ local function generateClasses()
if category == "Class" then
default = " = null"
comment = ""
end
writeLine("public %s %s%s;%s", valueType, name, default, comment)
writeLine("public %s %s%s;", valueType, name, default)
if propTags.Deprecated and i ~= #propNames then
writeLine()

7
Plugins/Null.rbxlx Normal file
View File

@ -0,0 +1,7 @@
<roblox version="4">
<Item class="Folder">
<Properties>
<string name="Name">DumpFolder</string>
</Properties>
</Item>
</roblox>

View File

@ -6,7 +6,7 @@
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{CF50C0E2-23A7-4DC1-B4B2-E60CDE716253}</ProjectGuid>
<OutputType>Library</OutputType>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>RobloxFiles</RootNamespace>
<AssemblyName>RobloxFileFormat</AssemblyName>

Binary file not shown.