Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# 0.4.0
- More nicely formatted output

# 0.3.0
- Support for files with non-alphanumeric characters
- Support for file starting with numeric characters
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,64 +5,75 @@ namespace AutSoft.UnityResourceGenerator.Sample
{
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable InconsistentNaming
// ReSharper disable IncorrectBlankLinesNearBraces
public static partial class ResourcePaths
{

public static partial class Scenes
{

public const string CreatePrefab = "AutSoft.UnityResourceGenerator.Sample/Scenes/CreatePrefab";
public static void LoadCreatePrefab(LoadSceneMode mode = LoadSceneMode.Single) => SceneManager.LoadScene(CreatePrefab, mode);
public static AsyncOperation LoadAsyncCreatePrefab(LoadSceneMode mode = LoadSceneMode.Single) => SceneManager.LoadSceneAsync(CreatePrefab, mode);

public const string LoadSceneInitial = "AutSoft.UnityResourceGenerator.Sample/Scenes/LoadSceneInitial";
public static void LoadLoadSceneInitial(LoadSceneMode mode = LoadSceneMode.Single) => SceneManager.LoadScene(LoadSceneInitial, mode);
public static AsyncOperation LoadAsyncLoadSceneInitial(LoadSceneMode mode = LoadSceneMode.Single) => SceneManager.LoadSceneAsync(LoadSceneInitial, mode);

public const string LoadSceneNext = "AutSoft.UnityResourceGenerator.Sample/Scenes/LoadSceneNext";
public static void LoadLoadSceneNext(LoadSceneMode mode = LoadSceneMode.Single) => SceneManager.LoadScene(LoadSceneNext, mode);
public static AsyncOperation LoadAsyncLoadSceneNext(LoadSceneMode mode = LoadSceneMode.Single) => SceneManager.LoadSceneAsync(LoadSceneNext, mode);
}

}

public static partial class Prefabs
{

public const string Cube = "Cube";
public static GameObject LoadCube() => Resources.Load<GameObject>(Cube);
}

}

public static partial class Materials
{

public const string Cube = "Cube";
public static Material LoadCube() => Resources.Load<Material>(Cube);

public const string CubeAlt = "CubeAlt";
public static Material LoadCubeAlt() => Resources.Load<Material>(CubeAlt);

public const string LiberationSansSDF_DropShadow = "Fonts & Materials/LiberationSans SDF - Drop Shadow";
public static Material LoadLiberationSansSDF_DropShadow() => Resources.Load<Material>(LiberationSansSDF_DropShadow);

public const string LiberationSansSDF_Outline = "Fonts & Materials/LiberationSans SDF - Outline";
public static Material LoadLiberationSansSDF_Outline() => Resources.Load<Material>(LiberationSansSDF_Outline);
}

}

public static partial class AudioClips
{

public const string CoinSpin = "Coin Spin";
public static AudioClip LoadCoinSpin() => Resources.Load<AudioClip>(CoinSpin);

public const string _1Coin1 = "1Coin 1";
public static AudioClip Load_1Coin1() => Resources.Load<AudioClip>(_1Coin1);

public const string Coin = "Coin";
public static AudioClip LoadCoin() => Resources.Load<AudioClip>(Coin);
}


}

public static partial class TextAssets
{

public const string LineBreakingFollowingCharacters = "LineBreaking Following Characters";
public static TextAsset LoadLineBreakingFollowingCharacters() => Resources.Load<TextAsset>(LineBreakingFollowingCharacters);

public const string LineBreakingLeadingCharacters = "LineBreaking Leading Characters";
public static TextAsset LoadLineBreakingLeadingCharacters() => Resources.Load<TextAsset>(LineBreakingLeadingCharacters);
}


}

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ private static string Generate(ResourceContext context, IResourceData data)

// ReSharper disable once MissingIndent
var classBegin =
$@"
public static partial class {data.ClassName}
$@" public static partial class {data.ClassName}
{{

";
// ReSharper disable once MissingIndent
const string classEnd = " }";
const string classEnd = @" }";

var values = data
.FileExtensions
Expand Down Expand Up @@ -99,6 +99,8 @@ public static partial class {data.ClassName}
sb.Append(" public static ").Append(data.DataType).Append(" Load").Append(s.name).Append("() => Resources.Load<").Append(data.DataType).Append(">(").Append(s.name).AppendLine(");");
}

sb.AppendLine();

return sb;
})
.AppendLine(classEnd)
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System;
using System.Text.RegularExpressions;

namespace AutSoft.UnityResourceGenerator.Editor.Generation.PostProcessors
{
public sealed class RemoveDuplicateNewLines : IResourcePostProcessor
{
private static readonly Regex MultipleNewLines = new Regex(@"(?:\r\n|\r(?!\n)|(?!<\r)\n){2,}", RegexOptions.Compiled, TimeSpan.FromSeconds(10));

public int PostProcessPriority { get; } = 0;

public string PostProcess(ResourceContext context, string resourceFileContent) => MultipleNewLines.Replace(resourceFileContent, Environment.NewLine + Environment.NewLine);
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ namespace {0}
{
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable InconsistentNaming
// ReSharper disable IncorrectBlankLinesNearBraces
public static partial class {1}
{";

Expand All @@ -29,36 +30,32 @@ public static partial class {1}
@"
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable InconsistentNaming
// ReSharper disable IncorrectBlankLinesNearBraces
public static partial class {1}
{";

const string fileEndNoNamespace = "}";

var builder = new StringBuilder();

var allConcreteTypes = AppDomain
.CurrentDomain
.GetAssemblies()
.SelectMany(a => a.GetTypes())
.Where(t => !t.IsAbstract && !t.IsGenericType && !t.IsInterface)
.ToArray();

builder.AppendMultipleLines(context.Usings.Select(u => $"using {u};"));

builder.AppendLine(
(string.IsNullOrWhiteSpace(context.BaseNamespace) ? fileBeginNoNamespace : fileBeginHasNamespace)
.Replace("{0}", context.BaseNamespace)
.Replace("{1}", context.ClassName));

allConcreteTypes
.Where(t => t.GetInterfaces().Any(i => typeof(IModuleGenerator).IsAssignableFrom(i)))
.Select(t => (IModuleGenerator)Activator.CreateInstance(t))
.Select(m => m.Generate(context))
.ForEach(m => builder.AppendLine(m));

builder.AppendLine(string.IsNullOrWhiteSpace(context.BaseNamespace) ? fileEndNoNamespace : fileEndHasNamespace);

var fileContent = builder.ToString();
var fileContent = new StringBuilder()
.AppendMultipleLines(context.Usings.Select(u => $"using {u};"))
.AppendLine(
(string.IsNullOrWhiteSpace(context.BaseNamespace) ? fileBeginNoNamespace : fileBeginHasNamespace)
.Replace("{0}", context.BaseNamespace)
.Replace("{1}", context.ClassName))
.AppendMultipleLines(
allConcreteTypes
.Where(t => t.GetInterfaces().Any(i => typeof(IModuleGenerator).IsAssignableFrom(i)))
.Select(t => (IModuleGenerator)Activator.CreateInstance(t))
.Select(m => m.Generate(context)))
.Append(string.IsNullOrWhiteSpace(context.BaseNamespace) ? fileEndNoNamespace : fileEndHasNamespace)
.ToString();

fileContent = allConcreteTypes
.Where(t => t.GetInterfaces().Any(i => typeof(IResourcePostProcessor).IsAssignableFrom(i)))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "com.autsoft.unityresourcegenerator",
"version": "0.3.0",
"version": "0.4.0",
"displayName": "Unity Resource Generator",
"description": "Generate path strings for Resources.Load",
"license": "MIT",
Expand Down