0.438.0.407270
This commit is contained in:
parent
f7e53785d1
commit
540958f7f8
1
.gitignore
vendored
1
.gitignore
vendored
@ -331,3 +331,4 @@ ASALocalRun/
|
||||
|
||||
# Library Test
|
||||
RobloxFileFormat.exe
|
||||
*.lock
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
10
Plugins/.vscode/tasks.json
vendored
10
Plugins/.vscode/tasks.json
vendored
@ -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",
|
||||
|
7
Plugins/DeployToStudio.ps1
Normal file
7
Plugins/DeployToStudio.ps1
Normal 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.
@ -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
7
Plugins/Null.rbxlx
Normal file
@ -0,0 +1,7 @@
|
||||
<roblox version="4">
|
||||
<Item class="Folder">
|
||||
<Properties>
|
||||
<string name="Name">DumpFolder</string>
|
||||
</Properties>
|
||||
</Item>
|
||||
</roblox>
|
@ -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.
Loading…
Reference in New Issue
Block a user