This commit is contained in:
Nim XD
2024-08-27 21:01:33 +05:30
parent 99eaf514fd
commit 121a1b7c73
31803 changed files with 623461 additions and 623399 deletions

View File

@@ -1,36 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Assets.HeroEditor4D.Common.Scripts.Collections
{
/// <summary>
/// Global object that automatically grabs all required images.
/// </summary>
[CreateAssetMenu(fileName = "FirearmCollection", menuName = "HeroEditor4D/FirearmCollection")]
public class FirearmCollection : ScriptableObject
{
public string Id;
public List<FirearmParams> FirearmParams;
public static Dictionary<string, FirearmCollection> Instances = new Dictionary<string, FirearmCollection>();
public void OnEnable()
{
if (!Instances.ContainsKey(Id))
{
Instances.Add(Id, this);
}
}
}
[Serializable]
public class FirearmParams
{
public string Name;
public ParticleSystem FireMuzzlePrefab;
public AudioClip ShotSound;
public AudioClip ReloadSound;
}
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Assets.HeroEditor4D.Common.Scripts.Collections
{
/// <summary>
/// Global object that automatically grabs all required images.
/// </summary>
[CreateAssetMenu(fileName = "FirearmCollection", menuName = "HeroEditor4D/FirearmCollection")]
public class FirearmCollection : ScriptableObject
{
public string Id;
public List<FirearmParams> FirearmParams;
public static Dictionary<string, FirearmCollection> Instances = new Dictionary<string, FirearmCollection>();
public void OnEnable()
{
if (!Instances.ContainsKey(Id))
{
Instances.Add(Id, this);
}
}
}
[Serializable]
public class FirearmParams
{
public string Name;
public ParticleSystem FireMuzzlePrefab;
public AudioClip ShotSound;
public AudioClip ReloadSound;
}
}

View File

@@ -1,11 +1,11 @@
fileFormatVersion: 2
guid: 3202ed5772e26f4418e66b1d9df3a2d4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 3202ed5772e26f4418e66b1d9df3a2d4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,74 +1,74 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Assets.HeroEditor4D.Common.Scripts.Data;
using UnityEditor;
using UnityEngine;
namespace Assets.HeroEditor4D.Common.Scripts.Collections
{
/// <summary>
/// Global object that automatically grabs all required images.
/// </summary>
[CreateAssetMenu(fileName = "IconCollection", menuName = "HeroEditor4D/IconCollection")]
public class IconCollection : ScriptableObject
{
public string Id;
public List<UnityEngine.Object> IconFolders;
public List<ItemIcon> Icons;
public Sprite GetIcon(string id)
{
var icon = id == null ? null : Icons.SingleOrDefault(i => i.Id == id);
if (icon == null && id != null) Debug.LogWarning("Icon not found: " + id);
return icon?.Sprite;
}
#if UNITY_EDITOR
public void Refresh()
{
Icons.Clear();
foreach (var folder in IconFolders)
{
if (folder == null) continue;
var root = AssetDatabase.GetAssetPath(folder);
var files = Directory.GetFiles(root, "*.png", SearchOption.AllDirectories).ToList();
foreach (var path in files.Select(i => i.Replace("\\", "/")))
{
var match = Regex.Match(path, @"Assets\/HeroEditor4D\/(?<Edition>\w+)\/(.+?\/)*Icons\/\w+\/(?<Type>\w+)\/(?<Collection>.+?)\/(.+\/)*(?<Name>.+?)\.png");
if (!match.Success) throw new Exception($"Incorrect path: {path}");
var sprite = AssetDatabase.LoadAssetAtPath<Sprite>(path);
var edition = match.Groups["Edition"].Value;
var collection = match.Groups["Collection"].Value;
var type = match.Groups["Type"].Value;
var iconName = match.Groups["Name"].Value;
var icon = new ItemIcon(edition, collection, type, iconName, path, sprite);
if (Icons.Any(i => i.Path == icon.Path))
{
Debug.LogErrorFormat($"Duplicated icon: {icon.Path}");
}
else
{
Icons.Add(icon);
}
}
}
Icons = Icons.OrderBy(i => i.Name).ToList();
EditorUtility.SetDirty(this);
}
#endif
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Assets.HeroEditor4D.Common.Scripts.Data;
using UnityEditor;
using UnityEngine;
namespace Assets.HeroEditor4D.Common.Scripts.Collections
{
/// <summary>
/// Global object that automatically grabs all required images.
/// </summary>
[CreateAssetMenu(fileName = "IconCollection", menuName = "HeroEditor4D/IconCollection")]
public class IconCollection : ScriptableObject
{
public string Id;
public List<UnityEngine.Object> IconFolders;
public List<ItemIcon> Icons;
public Sprite GetIcon(string id)
{
var icon = id == null ? null : Icons.SingleOrDefault(i => i.Id == id);
if (icon == null && id != null) Debug.LogWarning("Icon not found: " + id);
return icon?.Sprite;
}
#if UNITY_EDITOR
public void Refresh()
{
Icons.Clear();
foreach (var folder in IconFolders)
{
if (folder == null) continue;
var root = AssetDatabase.GetAssetPath(folder);
var files = Directory.GetFiles(root, "*.png", SearchOption.AllDirectories).ToList();
foreach (var path in files.Select(i => i.Replace("\\", "/")))
{
var match = Regex.Match(path, @"Assets\/HeroEditor4D\/(?<Edition>\w+)\/(.+?\/)*Icons\/\w+\/(?<Type>\w+)\/(?<Collection>.+?)\/(.+\/)*(?<Name>.+?)\.png");
if (!match.Success) throw new Exception($"Incorrect path: {path}");
var sprite = AssetDatabase.LoadAssetAtPath<Sprite>(path);
var edition = match.Groups["Edition"].Value;
var collection = match.Groups["Collection"].Value;
var type = match.Groups["Type"].Value;
var iconName = match.Groups["Name"].Value;
var icon = new ItemIcon(edition, collection, type, iconName, path, sprite);
if (Icons.Any(i => i.Path == icon.Path))
{
Debug.LogErrorFormat($"Duplicated icon: {icon.Path}");
}
else
{
Icons.Add(icon);
}
}
}
Icons = Icons.OrderBy(i => i.Name).ToList();
EditorUtility.SetDirty(this);
}
#endif
}
}

View File

@@ -1,12 +1,12 @@
fileFormatVersion: 2
guid: 650133c44dc1224489eed33fcd27316e
timeCreated: 1508495273
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 650133c44dc1224489eed33fcd27316e
timeCreated: 1508495273
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,61 +1,61 @@
using System.Collections.Generic;
using System.Linq;
using Assets.HeroEditor4D.Common.Scripts.Data;
using UnityEngine;
namespace Assets.HeroEditor4D.Common.Scripts.Collections
{
/// <summary>
/// Collects sprites from specified path.
/// </summary>
[CreateAssetMenu(fileName = "SpriteCollection", menuName = "HeroEditor4D/SpriteCollection")]
public class SpriteCollection : ScriptableObject
{
public string Id;
[Header("Where to find sprites?")]
public List<Object> SpriteFolders;
public List<string> CollectionFilter;
public List<string> CollectionFilterIgnore;
[Header("Body Parts")]
public List<ItemSprite> Body;
public List<ItemSprite> Ears;
public List<ItemSprite> Hair;
public List<ItemSprite> Beard;
public List<ItemSprite> Eyebrows;
public List<ItemSprite> Eyes;
public List<ItemSprite> Mouth;
[Header("Equipment")]
public List<ItemSprite> Armor;
public List<ItemSprite> Cape;
public List<ItemSprite> Backpack;
public List<ItemSprite> MeleeWeapon1H;
public List<ItemSprite> MeleeWeapon2H;
public List<ItemSprite> Bow;
public List<ItemSprite> Crossbow;
public List<ItemSprite> Firearm1H;
public List<ItemSprite> Firearm2H;
public List<ItemSprite> Shield;
public List<ItemSprite> Throwable;
public List<ItemSprite> Supplies;
[Header("Accessories")]
public List<ItemSprite> Makeup;
public List<ItemSprite> Mask;
public List<ItemSprite> Earrings;
[Header("Service")]
public bool IncludePsd;
public bool DebugLogging;
public List<ItemSprite> GetAllSprites()
{
return Body.Union(Ears).Union(Hair).Union(Beard).Union(Eyebrows).Union(Eyes).Union(Mouth)
.Union(Armor).Union(Cape).Union(Backpack).Union(MeleeWeapon1H).Union(MeleeWeapon2H)
.Union(Bow).Union(Crossbow).Union(Firearm1H).Union(Firearm2H).Union(Shield).Union(Throwable).Union(Supplies)
.Union(Makeup).Union(Mask).Union(Earrings).ToList();
}
}
using System.Collections.Generic;
using System.Linq;
using Assets.HeroEditor4D.Common.Scripts.Data;
using UnityEngine;
namespace Assets.HeroEditor4D.Common.Scripts.Collections
{
/// <summary>
/// Collects sprites from specified path.
/// </summary>
[CreateAssetMenu(fileName = "SpriteCollection", menuName = "HeroEditor4D/SpriteCollection")]
public class SpriteCollection : ScriptableObject
{
public string Id;
[Header("Where to find sprites?")]
public List<Object> SpriteFolders;
public List<string> CollectionFilter;
public List<string> CollectionFilterIgnore;
[Header("Body Parts")]
public List<ItemSprite> Body;
public List<ItemSprite> Ears;
public List<ItemSprite> Hair;
public List<ItemSprite> Beard;
public List<ItemSprite> Eyebrows;
public List<ItemSprite> Eyes;
public List<ItemSprite> Mouth;
[Header("Equipment")]
public List<ItemSprite> Armor;
public List<ItemSprite> Cape;
public List<ItemSprite> Backpack;
public List<ItemSprite> MeleeWeapon1H;
public List<ItemSprite> MeleeWeapon2H;
public List<ItemSprite> Bow;
public List<ItemSprite> Crossbow;
public List<ItemSprite> Firearm1H;
public List<ItemSprite> Firearm2H;
public List<ItemSprite> Shield;
public List<ItemSprite> Throwable;
public List<ItemSprite> Supplies;
[Header("Accessories")]
public List<ItemSprite> Makeup;
public List<ItemSprite> Mask;
public List<ItemSprite> Earrings;
[Header("Service")]
public bool IncludePsd;
public bool DebugLogging;
public List<ItemSprite> GetAllSprites()
{
return Body.Union(Ears).Union(Hair).Union(Beard).Union(Eyebrows).Union(Eyes).Union(Mouth)
.Union(Armor).Union(Cape).Union(Backpack).Union(MeleeWeapon1H).Union(MeleeWeapon2H)
.Union(Bow).Union(Crossbow).Union(Firearm1H).Union(Firearm2H).Union(Shield).Union(Throwable).Union(Supplies)
.Union(Makeup).Union(Mask).Union(Earrings).ToList();
}
}
}

View File

@@ -1,11 +1,11 @@
fileFormatVersion: 2
guid: 73a7a8e7b56513e488c69503e063a6d4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 73a7a8e7b56513e488c69503e063a6d4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: