Second commit
This commit is contained in:
commit
36840f3ad4
999 files changed
+61364
No files matched your search
@@ -0,0 +1,86 @@
|
||||
//
|
||||
// This file is part of the Tremble package by Tiny Goose.
|
||||
// Copyright (c) 2024-2026 TinyGoose Ltd., All Rights Reserved.
|
||||
//
|
||||
|
||||
using System.Globalization;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGoose.Tremble
|
||||
{
|
||||
public static class FgdFieldFactory
|
||||
{
|
||||
public static FgdFieldBase CreateField(string typename, string name, string description, string defaultValue)
|
||||
{
|
||||
switch (typename.ToLowerInvariant())
|
||||
{
|
||||
case "float":
|
||||
return new FgdFloatField
|
||||
{
|
||||
Name = name,
|
||||
Description = description,
|
||||
DefaultValue = defaultValue != null ? float.Parse(defaultValue, NumberStyles.Any, CultureInfo.InvariantCulture) : 0f
|
||||
};
|
||||
case "integer":
|
||||
return new FgdIntegerField
|
||||
{
|
||||
Name = name,
|
||||
Description = description,
|
||||
DefaultValue = defaultValue != null ? int.Parse(defaultValue, NumberStyles.Any, CultureInfo.InvariantCulture) : 0
|
||||
};
|
||||
case "vector":
|
||||
if (defaultValue == null || !defaultValue.TryParseQ3Vector(out Vector3 vector))
|
||||
{
|
||||
vector = Vector3.zero;
|
||||
}
|
||||
|
||||
return new FgdVectorField
|
||||
{
|
||||
Name = name,
|
||||
Description = description,
|
||||
DefaultValue = vector
|
||||
};
|
||||
case "color":
|
||||
if (!defaultValue.TryParseQ3Colour(out Color colour))
|
||||
{
|
||||
colour = Color.white;
|
||||
}
|
||||
|
||||
return new FgdColourField
|
||||
{
|
||||
Name = name,
|
||||
Description = description,
|
||||
DefaultColour = colour
|
||||
};
|
||||
case "string":
|
||||
return new FgdStringField
|
||||
{
|
||||
Name = name,
|
||||
Description = description,
|
||||
DefaultValue = defaultValue
|
||||
};
|
||||
case "target_source":
|
||||
return new FgdTargetSourceField
|
||||
{
|
||||
Name = name,
|
||||
Description = description,
|
||||
DefaultValue = defaultValue
|
||||
};
|
||||
case "target_destination":
|
||||
return new FgdTargetDestinationField
|
||||
{
|
||||
Name = name,
|
||||
Description = description,
|
||||
DefaultValue = defaultValue
|
||||
};
|
||||
}
|
||||
|
||||
return new FgdStringField
|
||||
{
|
||||
Name = name,
|
||||
Description = description,
|
||||
DefaultValue = defaultValue
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user