diff --git a/.gitignore b/.gitignore index 0d0321e..8e369ee 100644 --- a/.gitignore +++ b/.gitignore @@ -2,22 +2,23 @@ # # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore # -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Mm]emoryCaptures/ +/src/[Ll]ibrary/ +/src/[Tt]emp/ +/src/[Oo]bj/ +/src/[Bb]uild/ +/src/[Bb]uilds/ +/src/[Ll]ogs/ +/src/[Mm]emoryCaptures/ +/src/[Uu]ser[Ss]ettings/ # Asset meta data should only be ignored when the corresponding asset is also ignored -!/[Aa]ssets/**/*.meta +!/src/[Aa]ssets/**/*.meta # Uncomment this line if you wish to ignore the asset store tools plugin # /[Aa]ssets/AssetStoreTools* # Autogenerated Jetbrains Rider plugin -[Aa]ssets/Plugins/Editor/JetBrains* +/src/[Aa]ssets/Plugins/Editor/JetBrains* # Visual Studio cache directory .vs/ @@ -58,4 +59,3 @@ sysinfo.txt # Crashlytics generated file crashlytics-build.properties -/*.vsconfig diff --git a/Assets/Splatter/Scripts/Editor/AI.meta b/Assets/Splatter/Scripts/Editor/AI.meta deleted file mode 100644 index 368252b..0000000 --- a/Assets/Splatter/Scripts/Editor/AI.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: eef034546a3eab94487d5fc5e2f0299d -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree.meta b/Assets/Splatter/Scripts/Editor/AI/BehaviourTree.meta deleted file mode 100644 index a775d2b..0000000 --- a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 896b465a3c8e6da4d8009c192801a6c2 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeGraph.cs b/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeGraph.cs deleted file mode 100644 index c81c9ac..0000000 --- a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeGraph.cs +++ /dev/null @@ -1,136 +0,0 @@ -#if UNITY_EDITOR -using System.Collections.Generic; -using System.Linq; -using Splatter.AI.BehaviourTree; -using UnityEditor.Experimental.GraphView; -using UnityEngine; -using UnityEngine.UIElements; -using BTBehaviourTree = Splatter.AI.BehaviourTree.BehaviourTree; -using BTNode = Splatter.AI.BehaviourTree.Node; - -namespace SplatterEditor.AI.BehaviourTree { - public class BehaviourTreeGraph : GraphView { - private IList allNodes; - private IDictionary columnCount; - private float column; - - public BehaviourTreeGraph() { - allNodes = new List(); - columnCount = new Dictionary(); - - AddGridBackground(); - - this.AddManipulator(new ContentZoomer()); - this.AddManipulator(new ContentDragger()); - this.AddManipulator(new RectangleSelector()); - } - - private void AddGridBackground() { - GridBackground gridBackground = new GridBackground(); - gridBackground.StretchToParentSize(); - Insert(0, gridBackground); - } - - public void Draw(BTBehaviourTree tree) { - allNodes.Clear(); - columnCount.Clear(); - column = 0; - DeleteElements(graphElements.ToList()); - - CreateNodes(null, tree.GetRoot(), 0, false); - - ConnectNodes(); - DrawNodes(); - - FrameAll(); - } - - private void ConnectNodes() { - foreach (var node in allNodes) { - if (node.Parent == null) { - continue; - } - - var edge = new Edge { - output = node.Parent.OutputPort, - input = node.InputPort, - }; - - edge.AddToClassList("edge"); - AddElement(edge); - } - } - - private void CreateNodes(NodeView parentNode, BTNode node, int layer, bool incrementColumnCount) { - if (incrementColumnCount) { - column++; - } - - var nodeView = CreateNodeView(parentNode, node, layer, column); - - if (node is Composite composite) { - bool firstChild = true; - - foreach (var childNode in composite.Children) { - CreateNodes(nodeView, childNode, layer + 1, !firstChild); - firstChild = false; - } - - if (composite.Children.Count > 1) { - PushRight(nodeView, composite.Children.Count / 2); - } - } - - if (node is Decorator decorator) { - CreateNodes(nodeView, decorator.Child, layer + 1, false); - } - } - - private NodeView CreateNodeView(NodeView parent, BTNode node, int layer, float column) { - var nodeView = new NodeView(parent, node, layer, column); - parent?.ChildNodes.Add(nodeView); - - allNodes.Add(nodeView); - - return nodeView; - } - - private void DrawNodes() { - if (!allNodes.Any()) { - return; - } - - // Must match width value in ucc stylesheet - float width = 180; - float height = 70; - float spacer = 40; - - foreach (var node in allNodes) { - var rect = new Rect(CalculateXPosition(node, width, spacer), node.Layer * 100, width, height); - node.SetPosition(rect); - AddElement(node); - } - } - - private void PushRight(NodeView node, float offset) { - if (node == null) { - return; - } - - PushRight(node.Parent, offset / 2); - - node.Column += offset; - } - - private float CalculateXPosition(NodeView node, float width, float spacer) { - return (node.Column * (width + spacer)) - spacer - (width / 2); - } - - public void UpdateNodeStates() { - foreach (var node in allNodes) { - node.UpdateState(); - } - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeGraph.cs.meta b/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeGraph.cs.meta deleted file mode 100644 index 0a2f98d..0000000 --- a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeGraph.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f9b361b6bdd3b3345990f6b7e8450d38 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeWindow.cs b/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeWindow.cs deleted file mode 100644 index 060de72..0000000 --- a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeWindow.cs +++ /dev/null @@ -1,67 +0,0 @@ -#if UNITY_EDITOR -using UnityEditor; -using UnityEngine; -using UnityEngine.UIElements; -using BTBehaviourTree = Splatter.AI.BehaviourTree.BehaviourTree; - -namespace SplatterEditor.AI.BehaviourTree { - public partial class BehaviourTreeWindow : EditorWindow { - private BehaviourTreeGraph graph; - - [MenuItem("Window/Splatter/Behaviour Tree Viewer")] - public static void ShowEditor() { - var window = GetWindow(); - window.titleContent = new GUIContent("Behaviour Tree Viewer"); - window.minSize = new Vector2(800, 600); - } - - private void CreateGUI() { - AddGraph(); - AddStyles(); - - OnSelectionChange(); - } - - private void AddStyles() { - rootVisualElement.styleSheets.Add(AssetDatabase.LoadAssetAtPath("Assets/_Shadow/Styles/BehaviourTreeStyle.uss")); - } - - private void AddGraph() { - graph = new BehaviourTreeGraph(); - graph.StretchToParentSize(); - - rootVisualElement.Add(graph); - } - - private void OnSelectionChange() { - if (!Application.isPlaying) { - return; - } - - var tree = GetTree(); - - if (!tree) { - return; - } - - graph.Draw(tree); - } - - private BTBehaviourTree GetTree() { - if (Selection.activeGameObject && Selection.activeGameObject.TryGetComponent(out BTBehaviourTree treeComponent)) { - return treeComponent; - } - - return null; - } - - private void OnInspectorUpdate() { - if (!Application.isPlaying) { - return; - } - - graph?.UpdateNodeStates(); - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeWindow.cs.meta b/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeWindow.cs.meta deleted file mode 100644 index 0edd5ac..0000000 --- a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/BehaviourTreeWindow.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8d13c0dfade18ca488cc12af78a74371 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/NodeView.cs b/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/NodeView.cs deleted file mode 100644 index f1b6e52..0000000 --- a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/NodeView.cs +++ /dev/null @@ -1,100 +0,0 @@ -#if UNITY_EDITOR -using System.Collections.Generic; -using Splatter.AI.BehaviourTree; -using UnityEditor.Experimental.GraphView; -using UnityEngine; -using BTNode = Splatter.AI.BehaviourTree.Node; - -namespace SplatterEditor.AI.BehaviourTree { - public class NodeView : UnityEditor.Experimental.GraphView.Node { - public NodeView Parent { get; set; } - public IList ChildNodes { get; private set; } - public BTNode Node { get; set; } - public int Layer { get; set; } - public float Column { get; set; } - public Port InputPort { get; private set; } - public Port OutputPort { get; private set; } - - public NodeView(NodeView parent, BTNode node, int layer, float column) { - Parent = parent; - ChildNodes = new List(); - Node = node; - Layer = layer; - Column = column; - - title = Node.Name; - expanded = true; - - InputPort = CreateInputPort(); - OutputPort = CreateOutputPort(); - - AddToClassList("node"); - } - - private Port CreateOutputPort() { - var capacity = Port.Capacity.Single; - - if (Node is Composite) { - capacity = Port.Capacity.Multi; - } - - var port = InstantiatePort(Orientation.Vertical, Direction.Output, capacity, typeof(bool)); - port.portName = string.Empty; - - outputContainer.Add(port); - - return port; - } - - private Port CreateInputPort() { - if (Parent == null) { - return null; - } - - var port = InstantiatePort(Orientation.Vertical, Direction.Input, Port.Capacity.Single, typeof(bool)); - port.portName = string.Empty; - - inputContainer.Add(port); - - return port; - } - - public void UpdateState() { - RemoveFromClassList("running"); - RemoveFromClassList("failure"); - RemoveFromClassList("success"); - - SetPortColour(Color.white); - - if (!Node.ExecutedLastTick) { - return; - } - - switch (Node.LastResult) { - case NodeResult.Running: - AddToClassList("running"); - SetPortColour(Color.yellow); - break; - case NodeResult.Failure: - AddToClassList("failure"); - SetPortColour(Color.red); - break; - case NodeResult.Success: - AddToClassList("success"); - SetPortColour(Color.green); - break; - } - } - - private void SetPortColour(Color colour) { - if (InputPort != null) { - InputPort.portColor = colour; - } - - if (OutputPort != null) { - OutputPort.portColor = colour; - } - } - } -} -#endif \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/NodeView.cs.meta b/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/NodeView.cs.meta deleted file mode 100644 index 98cf199..0000000 --- a/Assets/Splatter/Scripts/Editor/AI/BehaviourTree/NodeView.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 523b6dfc6f006bb42aca4c8256e7b3cb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI.meta b/Assets/Splatter/Scripts/Runtime/AI.meta deleted file mode 100644 index 3d2cb76..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ab27948524e7dd24592cc75c7920c939 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree.meta deleted file mode 100644 index a8df52b..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 2d6db32f3f92a4d41b24bdcdc4116c21 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/AbortType.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/AbortType.cs deleted file mode 100644 index bcf17b6..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/AbortType.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Splatter.AI.BehaviourTree { - /// - /// Composite node abort types. - /// - public enum AbortType { - /// - /// Default abort type, does not abort the composite.. - /// - None, - /// - /// Abort if the condition returns false. - /// - Self, - /// - /// Abort lower nodes if the condition returns true. - /// - Lower, - /// - /// Abort if the condition returns false. - /// Abort lower nodes if the condition returns true. - /// - SelfAndLower, - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/AbortType.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/AbortType.cs.meta deleted file mode 100644 index 53b9948..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/AbortType.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8da28b96d5e7fb746a809bc6c370f30d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTree.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTree.cs deleted file mode 100644 index 4c7f46b..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTree.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace Splatter.AI.BehaviourTree { - /// - /// Base class for behaviour trees. - /// Override to initialise blackboard values. Override to create the tree root. - /// - public abstract class BehaviourTree : MonoBehaviour { - private Node root; - - /// - /// Dictionary for storing variables used in the behaviour tree. - /// - public IDictionary Blackboard { get; private set; } - - /// - /// Number of times the tree has been executed (every update) since start / reset. - /// - public int Ticks { get; private set; } - - protected virtual void Awake() { - Blackboard = new Dictionary(); - Ticks = 0; - } - - protected virtual void Start() { - root = CreateRoot(); - } - - /// - /// Creates the root of the behaviour tree. - /// - /// Behaviour tree root - protected abstract Node CreateRoot(); - - protected virtual void Update() { - root.Execute(); - - Ticks++; - } - - /// - /// Helper to get items from the blackboard, casted to the type passed in. - /// - /// Item type - /// Item key - /// Item - public T GetItem(string key) { - return (T)Blackboard[key]; - } - -#if UNITY_INCLUDE_TESTS - public void IncrementTick() { - Ticks++; - } -#endif - -#if UNITY_EDITOR - public Node GetRoot() { - return root; - } -#endif - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTree.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTree.cs.meta deleted file mode 100644 index e878216..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTree.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fa39e2ecc3e93c447a8ec5fc197396e9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTreeBuilder.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTreeBuilder.cs deleted file mode 100644 index a79c838..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTreeBuilder.cs +++ /dev/null @@ -1,221 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Splatter.AI.BehaviourTree { - /// - /// Helper for creating behaviour tree - /// - public class BehaviourTreeBuilder { - private Node currentNode; - private Stack stack; - - public BehaviourTree Tree { get; private set; } - - /// - /// Initializes a new instance of the class. - /// - public BehaviourTreeBuilder(BehaviourTree tree) { - this.Tree = tree; - stack = new Stack(); - } - - /// - /// Adds sequence to the behaviour tree. Add .End() to the end of the sequence. - /// - /// Node name - /// Reset behaviour tree if interrupted - /// Abort type - /// Condition to evaluate - public BehaviourTreeBuilder Sequence(string name, bool resetIfInterrupted = false, AbortType abortType = AbortType.None, Func condition = null) { - AddNode(new Sequencer(name, Tree, resetIfInterrupted, abortType, condition)); - - return this; - } - - /// - /// Adds selector to the behaviour tree. Add .End() to the end of the selector. - /// - /// Node name - /// Abort type - /// Condition to evaluate - public BehaviourTreeBuilder Selector(string name, AbortType abortType = AbortType.None, Func condition = null) { - AddNode(new Selector(name, Tree, abortType, condition)); - - return this; - } - - /// - /// Adds parallel composite to the behaviour tree. Add .End() to the end of the parallel. - /// - /// Node name - /// Parallel mode - public BehaviourTreeBuilder Parallel(string name, ParallelMode mode) { - AddNode(new Parallel(name, Tree, mode)); - - return this; - } - - /// - /// Repeat a single node forever. Only supprts one node. Add .End() to the end of the repeation. - /// - /// Node name - public BehaviourTreeBuilder RepeatForever(string name) { - AddNode(new Repeater(name, Tree)); - - return this; - } - - /// - /// Add node to the behaviour tree. - /// - /// Node to add - public BehaviourTreeBuilder Do(Node node) { - AddNode(node); - - return this; - } - - /// - /// Add condition to the behaviour tree. Returns if true, otherwise . - /// - /// Node name - /// Condition to evaluate - public BehaviourTreeBuilder Condition(string name, Func condition) { - Do(name, () => condition() ? NodeResult.Success : NodeResult.Failure); - - return this; - } - - /// - /// Add node to the behaviour tree. - /// - /// Node name - /// Function to evaluate - public BehaviourTreeBuilder Do(string name, Func leaf) { - AddNode(new Leaf(name, Tree, leaf)); - - return this; - } - - /// - /// Set blackboard value. - /// - /// Blackboard key - /// Value - public BehaviourTreeBuilder SetBlackboardValue(string key, object value) { - AddNode(new SetBlackboardValueNode(Tree, key, value)); - - return this; - } - - /// - /// Wait x seconds before continuing. - /// - /// Node name - /// Seconds to wait - public BehaviourTreeBuilder Wait(string name, float seconds) { - AddNode(new WaitNode(name, Tree, seconds)); - - return this; - } - - /// - /// Wait for a random period of time before continuing. - /// - /// Node name - /// Minimum number of seconds to wait - /// Maximum number of seconds to wait - public BehaviourTreeBuilder Wait(string name, float minSeconds, float maxSeconds) { - AddNode(new WaitNode(name, Tree, UnityEngine.Random.Range(minSeconds, maxSeconds))); - - return this; - } - - /// - /// Wait until the condition is true to continue - /// - /// Node name - /// Condition to be evaluated - public BehaviourTreeBuilder WaitUntil(string name, Func condition) { - AddNode(new WaitUntilNode(name, Tree, condition)); - - return this; - } - - /// - /// Wait forever. - /// - /// Node name - public BehaviourTreeBuilder WaitForever(string name) { - AddNode(new EmptyRepeater(name, Tree)); - - return this; - } - - private void AddNode(Composite node) { - AddNode((Node)node); - - stack.Push(node); - } - - private void AddNode(Decorator node) { - AddNode((Node)node); - - stack.Push(node); - } - - private void AddNode(Node node) { - if (stack.Any()) { - var currentNode = stack.Peek(); - - if (currentNode is Composite compositeNode) { - compositeNode.Children.Add(node); - } - - if (currentNode is Decorator decoratorNode) { - if (decoratorNode.Child != null) { - throw new InvalidOperationException("Cannot set a decorator nodes child multiple times."); - } - - decoratorNode.Child = node; - } - } - } - - /// - /// Add to the end of a composites and decorators. - /// - /// - public BehaviourTreeBuilder End() { - currentNode = stack.Pop(); - - if (currentNode is Composite compositeNode) { - if (!compositeNode.Children.Any()) { - throw new InvalidOperationException("Composite node does not have any children."); - } - } - - if (currentNode is Decorator decoratorNode) { - if (decoratorNode.Child == null) { - throw new InvalidOperationException("Decorator node does not have child set."); - } - } - - return this; - } - - /// - /// Builds node for behaviour tree. - /// - /// Built node - /// - public Node Build() { - if (currentNode == null) { - throw new InvalidOperationException("Can't create a behaviour tree with zero nodes"); - } - - return currentNode; - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTreeBuilder.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTreeBuilder.cs.meta deleted file mode 100644 index 3547178..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/BehaviourTreeBuilder.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5d5cd2276f3c1044fb491fadb6761a81 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Composite.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Composite.cs deleted file mode 100644 index 4bc9dc7..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Composite.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Splatter.AI.BehaviourTree { - /// - /// Node with multiple children. - /// - public abstract class Composite : Node { - /// - /// Condition used to evaluate if this composite should be aborted. - /// - protected Func Condition { get; private set; } - - /// - /// Abort type of this composite node. - /// - protected AbortType AbortType { get; private set; } - - /// - /// Can this composite node be aborted. - /// - protected bool CanAbortSelf => AbortType == AbortType.SelfAndLower || AbortType == AbortType.Self; - - /// - /// Can this composite abort lower priority nodes. - /// - protected bool CanAbortLower => AbortType == AbortType.SelfAndLower || AbortType == AbortType.Lower; - - /// - /// Children of the composite node. - /// - public IList Children { get; set; } - - /// - /// Index of the node to be executed. - /// - protected int CurrentNodeIdx = 0; - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - /// Abort type (optional) - /// Condition evaluated for aborting (optional) - public Composite(string name, BehaviourTree tree, AbortType abortType = AbortType.None, Func condition = null) : base(name, tree) { - Children = new List(); - AbortType = abortType; - Condition = condition; - - if (AbortType != AbortType.None && condition == null) { - throw new InvalidOperationException($"{nameof(Condition)} cannot be null if {nameof(AbortType)} is not set to none"); - } - } - - /// - /// Update index if a higher priority task has interrupted. - /// - protected void UpdateCurrentIdxIfInterrupted() { - for (int i = 0; i < CurrentNodeIdx; i++) { - if (CanInterrupt(Children[i] as Composite)) { - CurrentNodeIdx = i; - return; - } - } - } - - private bool CanInterrupt(Composite composite) { - if (composite == null) { - return false; - } - - if (!composite.CanAbortLower) { - return false; - } - - return composite.Condition(); - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Composite.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Composite.cs.meta deleted file mode 100644 index 54490fa..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Composite.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0157873d95fd0db4ab3423d74be16523 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Decorator.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Decorator.cs deleted file mode 100644 index 66ea88b..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Decorator.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace Splatter.AI.BehaviourTree { - /// - /// Node with single child. Usually used for modifying the output of the child's execution result. - /// - public abstract class Decorator : Node { - /// - /// Decorator child node - /// - public Node Child { get; set; } - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - public Decorator(string name, BehaviourTree tree) : base(name, tree) { - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Decorator.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Decorator.cs.meta deleted file mode 100644 index 8f42665..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Decorator.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8c51a10c59469004597d3c814086a2a1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/EmptyRepeater.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/EmptyRepeater.cs deleted file mode 100644 index 7e2ff48..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/EmptyRepeater.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace Splatter.AI.BehaviourTree { - /// - /// Node with no child. Always returns . - /// - public class EmptyRepeater : Node { - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - public EmptyRepeater(string name, BehaviourTree tree) : base(name, tree) { - } - - protected override NodeResult ExecuteNode() { - return NodeResult.Running; - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/EmptyRepeater.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/EmptyRepeater.cs.meta deleted file mode 100644 index 590106c..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/EmptyRepeater.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a93d7c0314c941c4ea0756ab7ebaa5d3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Leaf.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Leaf.cs deleted file mode 100644 index ebe6639..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Leaf.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; - -namespace Splatter.AI.BehaviourTree { - /// - /// Short hand class for passing in functionality instead of deriving from . - /// - public class Leaf : Node { - private readonly Func onExecute; - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - /// Function to run on execution - public Leaf(string name, BehaviourTree tree, Func onExecute) : base(name, tree) { - this.onExecute = onExecute; - } - - protected override NodeResult ExecuteNode() { - return onExecute(); - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Leaf.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Leaf.cs.meta deleted file mode 100644 index 7f759b0..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Leaf.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 76cf8eef36c650c4b9cd46c7e179c6ca -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Node.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Node.cs deleted file mode 100644 index de304cc..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Node.cs +++ /dev/null @@ -1,56 +0,0 @@ -namespace Splatter.AI.BehaviourTree { - /// - /// Base class for all nodes on a behaviour tree. - /// - public abstract class Node { -#if UNITY_EDITOR - private int lastExecutedTick; -#endif - - /// - /// Node name - /// - public string Name { get; private set; } - - /// - /// Behaviour tree this node is on. - /// - protected BehaviourTree Tree { get; private set; } - -#if UNITY_EDITOR - public bool ExecutedLastTick => Tree.Ticks == lastExecutedTick + 1; - public NodeResult LastResult { get; private set; } -#endif - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree this node is on. - public Node(string name, BehaviourTree tree) { - this.Name = name; - - Tree = tree; - } - - /// - /// Behaviour of the node. - /// - /// The result of the execution. - public NodeResult Execute() { - var result = ExecuteNode(); - -#if UNITY_EDITOR - lastExecutedTick = Tree.Ticks; - LastResult = result; -#endif - - return result; - } - - /// - /// Behaviour of the node. - /// - /// The result of the execution. - protected abstract NodeResult ExecuteNode(); - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Node.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Node.cs.meta deleted file mode 100644 index 819ae9e..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Node.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d736cf19205971242927ec3f390b642b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/NodeResult.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/NodeResult.cs deleted file mode 100644 index 4991704..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/NodeResult.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace Splatter.AI.BehaviourTree { - /// - /// Node return types of the execute function. - /// - public enum NodeResult { - /// - /// The node did not meet the criteria to carry on. - /// - Running, - /// - /// The node failed. - /// - Failure, - /// - /// The node succeeded. - /// - Success - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/NodeResult.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/NodeResult.cs.meta deleted file mode 100644 index d908ea7..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/NodeResult.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8341631e16ba6a04b91a47a544ca5feb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Parallel.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Parallel.cs deleted file mode 100644 index a1701a2..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Parallel.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System.Collections.Generic; -using System.Linq; - -namespace Splatter.AI.BehaviourTree { - /// - /// Executes all children in order each update, until the condition is met. - /// - public class Parallel : Composite { - private readonly ParallelMode mode; - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - /// Parallel mode - public Parallel(string name, BehaviourTree tree, ParallelMode mode) - : base(name, tree) { - - this.mode = mode; - } - - protected override NodeResult ExecuteNode() { - IList results = new List(); - - CurrentNodeIdx = 0; - - foreach (var child in Children) { - var result = child.Execute(); - results.Add(result); - - if (result == NodeResult.Running) { - continue; - } - - if (result == NodeResult.Success) { - if (mode == ParallelMode.ExitOnSuccess || mode == ParallelMode.ExitOnAnyCompletion) { - return NodeResult.Success; - } - } - - if (result == NodeResult.Failure) { - if (mode == ParallelMode.ExitOnFailure || mode == ParallelMode.ExitOnAnyCompletion) { - return NodeResult.Failure; - } - } - - CurrentNodeIdx++; - } - - // Wait for all children to complete - if (mode == ParallelMode.WaitForAll) { - return results.All(i => i != NodeResult.Running) ? NodeResult.Success : NodeResult.Running; - } - - if (mode == ParallelMode.WaitForAllSuccess) { - return results.All(i => i == NodeResult.Success) ? NodeResult.Success : NodeResult.Running; - } - - return NodeResult.Running; - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Parallel.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Parallel.cs.meta deleted file mode 100644 index 417d94e..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Parallel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 48ffb893b4c07704e829637e0e8ec333 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/ParallelMode.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/ParallelMode.cs deleted file mode 100644 index cdf84ce..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/ParallelMode.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace Splatter.AI.BehaviourTree { - /// - /// Modes for parallel nodes. - /// - public enum ParallelMode { - /// - /// Returns as soon as a child succeeds. - /// - ExitOnSuccess, - /// - /// Returns as soon as a child fails. - /// - ExitOnFailure, - /// - /// Returns a childs result if it is or . - /// - ExitOnAnyCompletion, - /// - /// Returns if all children have finished. - /// - WaitForAll, - /// - /// Returns if all children have succeeded. - /// - WaitForAllSuccess, - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/ParallelMode.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/ParallelMode.cs.meta deleted file mode 100644 index 00c6a3c..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/ParallelMode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: cffc1fd5cdb953944a1e675acc6df864 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Repeater.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Repeater.cs deleted file mode 100644 index 0b0b54a..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Repeater.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace Splatter.AI.BehaviourTree { - /// - /// Always returns after executing the child. - /// - public class Repeater : Decorator { - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - public Repeater(string name, BehaviourTree tree) : base(name, tree) { - } - - protected override NodeResult ExecuteNode() { - Child.Execute(); - - return NodeResult.Running; - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Repeater.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Repeater.cs.meta deleted file mode 100644 index b809505..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Repeater.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 39ef26f1a4b90b448b80b1155c19da36 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Selector.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Selector.cs deleted file mode 100644 index 09ae337..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Selector.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; - -namespace Splatter.AI.BehaviourTree { - /// - /// Returns until a child returns . - /// If no children succeed, is returned. - /// - public class Selector : Composite { - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - /// Abort type used for this compsite node - /// Condition used to evaluate when aborting - public Selector(string name, BehaviourTree tree, AbortType abortType = AbortType.None, Func condition = null) - : base(name, tree, abortType, condition) { - } - - protected override NodeResult ExecuteNode() { - if (CanAbortSelf && !Condition()) { - return NodeResult.Failure; - } - - UpdateCurrentIdxIfInterrupted(); - - if (CurrentNodeIdx < Children.Count) { - var result = Children[CurrentNodeIdx].Execute(); - - if (result == NodeResult.Running) { - return NodeResult.Running; - } else if (result == NodeResult.Success) { - CurrentNodeIdx = 0; - return NodeResult.Success; - } else { - CurrentNodeIdx++; - - if (CurrentNodeIdx < Children.Count) { - return NodeResult.Running; - } else { - CurrentNodeIdx = 0; - return NodeResult.Failure; - } - } - } - - return NodeResult.Failure; - } - -#if UNITY_INCLUDE_TESTS - // Useful for debugging tests - public int CurrentIndex => CurrentNodeIdx; -#endif - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Selector.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Selector.cs.meta deleted file mode 100644 index 14c514a..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Selector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0896d96f99391f746bd1de610009acdc -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Sequencer.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Sequencer.cs deleted file mode 100644 index 80aeb95..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Sequencer.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; - -namespace Splatter.AI.BehaviourTree { - /// - /// Always returns until all children succeed. - /// If a child fails, is returned. - /// - public class Sequencer : Composite { - private readonly bool resetIfInterrupted; - private int lastRanOnTick = 0; - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - /// Abort type - /// Condition to evaluate when aborting - public Sequencer(string name, BehaviourTree tree, bool resetIfInterrupted, AbortType abortType = AbortType.None, Func condition = null) - : base(name, tree, abortType, condition) { - - this.resetIfInterrupted = resetIfInterrupted; - } - - protected override NodeResult ExecuteNode() { - if (CanAbortSelf && !Condition()) { - return NodeResult.Failure; - } - - UpdateCurrentIdxIfInterrupted(); - - if (resetIfInterrupted && lastRanOnTick != Tree.Ticks - 1) { - CurrentNodeIdx = 0; - } - - lastRanOnTick = Tree.Ticks; - - if (CurrentNodeIdx < Children.Count) { - var result = Children[CurrentNodeIdx].Execute(); - - if (result == NodeResult.Running) { - return NodeResult.Running; - } else if (result == NodeResult.Failure) { - CurrentNodeIdx = 0; - return NodeResult.Failure; - } else { - CurrentNodeIdx++; - - if (CurrentNodeIdx < Children.Count) { - return NodeResult.Running; - } else { - CurrentNodeIdx = 0; - return NodeResult.Success; - } - } - } - - return NodeResult.Success; - } - -#if UNITY_INCLUDE_TESTS - // Useful for debugging tests - public int CurrentIndex => CurrentNodeIdx; -#endif - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Sequencer.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Sequencer.cs.meta deleted file mode 100644 index 344f3b4..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/Sequencer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c6655a39c6c57fc43890f593ee4bff73 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/SetBlackboardValueNode.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/SetBlackboardValueNode.cs deleted file mode 100644 index 6593d20..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/SetBlackboardValueNode.cs +++ /dev/null @@ -1,27 +0,0 @@ -namespace Splatter.AI.BehaviourTree { - /// - /// Short hand class for setting a blackboard value - /// - public class SetBlackboardValueNode : Node { - private readonly string key; - private readonly object value; - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - /// Blackboard key - /// Value - public SetBlackboardValueNode(BehaviourTree tree, string key, object value) : base($"Setting blackboard {key} to {value}", tree) { - this.key = key; - this.value = value; - } - - protected override NodeResult ExecuteNode() { - Tree.Blackboard[key] = value; - - return NodeResult.Success; - } - } - -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/SetBlackboardValueNode.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/SetBlackboardValueNode.cs.meta deleted file mode 100644 index f9681f6..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/SetBlackboardValueNode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 04619eed6889d594d8cc13a3ba963b7f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitNode.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitNode.cs deleted file mode 100644 index a4b739a..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitNode.cs +++ /dev/null @@ -1,34 +0,0 @@ -using UnityEngine; - -namespace Splatter.AI.BehaviourTree { - /// - /// Wait for x number of seconds before returning . - /// - public class WaitNode : Node { - private readonly float? waitTime; - private float? existTime; - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - /// Seconds to wait - public WaitNode(string name, BehaviourTree tree, float waitTime) : base(name, tree) { - this.waitTime = waitTime; - } - - protected override NodeResult ExecuteNode() { - if (existTime == null) { - existTime = Time.time + waitTime; - } - - if (Time.time >= existTime) { - existTime = null; - - return NodeResult.Success; - } - - return NodeResult.Running; - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitNode.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitNode.cs.meta deleted file mode 100644 index 65bd06a..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitNode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1cfe039de68142845891090a821b922e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitUntilNode.cs b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitUntilNode.cs deleted file mode 100644 index 97ee9f5..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitUntilNode.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; - -namespace Splatter.AI.BehaviourTree { - /// - /// Returns until the condition is true. - /// - public class WaitUntilNode : Node { - private readonly Func condition; - - /// - /// Initializes a new instance of the class. - /// - /// Behaviour tree - /// Condition to evaluate - public WaitUntilNode(string name, BehaviourTree tree, Func condition) : base(name, tree) { - this.condition = condition; - } - - protected override NodeResult ExecuteNode() { - return condition() ? NodeResult.Success : NodeResult.Running; - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitUntilNode.cs.meta b/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitUntilNode.cs.meta deleted file mode 100644 index 28cd058..0000000 --- a/Assets/Splatter/Scripts/Runtime/AI/BehaviourTree/WaitUntilNode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 35ca8c4c4bb6ca74bb9105ec185523cd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/Utility.meta b/Assets/Splatter/Scripts/Runtime/Utility.meta deleted file mode 100644 index fcbefe6..0000000 --- a/Assets/Splatter/Scripts/Runtime/Utility.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 08246edd45dcda94783fdb99c3cad34b -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/Utility/ObjectPool.cs b/Assets/Splatter/Scripts/Runtime/Utility/ObjectPool.cs deleted file mode 100644 index 69414a6..0000000 --- a/Assets/Splatter/Scripts/Runtime/Utility/ObjectPool.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -namespace Splatter.Utility { - public class ObjectPool : Singleton { - private List pooledObjects; - [SerializeField] private GameObject objectToPool; - [SerializeField] private int initialNumberToPool; - - protected override void AwakeSingleton() { - pooledObjects = new List(); - - if (!objectToPool) { - throw new InvalidOperationException("Select object to pool"); - } - } - - private void Start() { - for (int i = 0; i < initialNumberToPool; i++) { - CreateItem(); - } - } - - public GameObject GetObject(Vector3 position, Quaternion rotation, bool activateImmediately = true) { - var item = GetOrCreateItem(); - - item.transform.position = position; - item.transform.rotation = rotation; - item.SetActive(activateImmediately); - - return item; - } - - private GameObject GetOrCreateItem() { - var item = pooledObjects.FirstOrDefault(i => !i.activeInHierarchy); - - return item ?? CreateItem(); - } - - private GameObject CreateItem() { - var item = Instantiate(objectToPool); - item.SetActive(false); - pooledObjects.Add(item); - - return item; - } - } -} diff --git a/Assets/Splatter/Scripts/Runtime/Utility/ObjectPool.cs.meta b/Assets/Splatter/Scripts/Runtime/Utility/ObjectPool.cs.meta deleted file mode 100644 index 1b3d3bf..0000000 --- a/Assets/Splatter/Scripts/Runtime/Utility/ObjectPool.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 34bacb46ff4bd4541981083187dae429 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Runtime/Utility/Singleton.cs b/Assets/Splatter/Scripts/Runtime/Utility/Singleton.cs deleted file mode 100644 index 4d13b55..0000000 --- a/Assets/Splatter/Scripts/Runtime/Utility/Singleton.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using UnityEngine; - -namespace Splatter.Utility { - public class Singleton : MonoBehaviour where T : Singleton { - private static T instance; - [SerializeField] private bool dontDestroyOnLoad; - - public static T Instance => instance; - public static bool IsInitialised => instance != null; - - private void Awake() { - if (IsInitialised) { - throw new InvalidOperationException("Trying to initialise another instance of a singleton"); - } - - instance = this as T; - - if (dontDestroyOnLoad) { - DontDestroyOnLoad(gameObject); - } - - AwakeSingleton(); - } - - /// - /// Override this to initialise values when the singleton is created - /// - protected virtual void AwakeSingleton() { } - - protected virtual void OnDestroy() { - if (instance == this) { - instance = null; - } - } - } - -} diff --git a/Assets/Splatter/Scripts/Runtime/Utility/Singleton.cs.meta b/Assets/Splatter/Scripts/Runtime/Utility/Singleton.cs.meta deleted file mode 100644 index c6376f1..0000000 --- a/Assets/Splatter/Scripts/Runtime/Utility/Singleton.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6ccad62b421ffc047b0aa06eeecccf29 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI.meta b/Assets/Splatter/Scripts/Tests/AI.meta deleted file mode 100644 index da6ff9c..0000000 --- a/Assets/Splatter/Scripts/Tests/AI.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 37c4185f19cfcdc42a49ee78aef93a32 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/BehaviourTreeResultTests.cs b/Assets/Splatter/Scripts/Tests/AI/BehaviourTreeResultTests.cs deleted file mode 100644 index 5615eb3..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/BehaviourTreeResultTests.cs +++ /dev/null @@ -1,21 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class BehaviourTreeResultTests : TestBase { - [Test] - public void BehaviourTree_SuccessNode() { - Assert.AreEqual(NodeResult.Success, CreateSuccessNode().Execute()); - } - - [Test] - public void BehaviourTree_FailureNode() { - Assert.AreEqual(NodeResult.Failure, CreateFailureNode().Execute()); - } - - [Test] - public void BehaviourTree_RunningNode() { - Assert.AreEqual(NodeResult.Running, CreateRunningNode().Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/BehaviourTreeResultTests.cs.meta b/Assets/Splatter/Scripts/Tests/AI/BehaviourTreeResultTests.cs.meta deleted file mode 100644 index a6c4ba9..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/BehaviourTreeResultTests.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 04d0f4271a332b64b908e846f79077d6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/LeafTests.cs b/Assets/Splatter/Scripts/Tests/AI/LeafTests.cs deleted file mode 100644 index 257a1c1..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/LeafTests.cs +++ /dev/null @@ -1,17 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class LeafTests : TestBase { - [Test] - public void Leaf_Success() { - Leaf runningLeaf = new Leaf("Leaf", Tree, () => NodeResult.Running); - Leaf successLeaf = new Leaf("Leaf", Tree, () => NodeResult.Success); - Leaf failureLeaf = new Leaf("Leaf", Tree, () => NodeResult.Failure); - - Assert.AreEqual(NodeResult.Running, runningLeaf.Execute()); - Assert.AreEqual(NodeResult.Success, successLeaf.Execute()); - Assert.AreEqual(NodeResult.Failure, failureLeaf.Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/LeafTests.cs.meta b/Assets/Splatter/Scripts/Tests/AI/LeafTests.cs.meta deleted file mode 100644 index b96d4d4..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/LeafTests.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1f8d221a0fccec44ca3c146f3caeb398 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelAnyComplitionTests.cs b/Assets/Splatter/Scripts/Tests/AI/ParallelAnyComplitionTests.cs deleted file mode 100644 index 37115dd..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelAnyComplitionTests.cs +++ /dev/null @@ -1,42 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class ParallelAnyComplitionTests : TestBase { - [Test] - public void Parallel_Success() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnAnyCompletion); - parallel.Children = new[]{ - CreateRunningNode(), - CreateSuccessNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Success, parallel.Execute()); - } - - [Test] - public void Parallel_Failure() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnAnyCompletion); - parallel.Children = new[]{ - CreateRunningNode(), - CreateRunningNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Failure, parallel.Execute()); - } - - [Test] - public void Parallel_Running() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnAnyCompletion); - parallel.Children = new[]{ - CreateRunningNode(), - CreateRunningNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, parallel.Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelAnyComplitionTests.cs.meta b/Assets/Splatter/Scripts/Tests/AI/ParallelAnyComplitionTests.cs.meta deleted file mode 100644 index 538b9e7..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelAnyComplitionTests.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c1b5fed559e5c7a4aa811841f9f208df -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelAnyFailureTests.cs b/Assets/Splatter/Scripts/Tests/AI/ParallelAnyFailureTests.cs deleted file mode 100644 index 7ac36bc..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelAnyFailureTests.cs +++ /dev/null @@ -1,42 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class ParallelAnyFailureTests : TestBase { - [Test] - public void Parallel_Success() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnFailure); - parallel.Children = new[] { - CreateRunningNode(), - CreateSuccessNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, parallel.Execute()); - } - - [Test] - public void Parallel_Failure() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnFailure); - parallel.Children = new[] { - CreateRunningNode(), - CreateRunningNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Failure, parallel.Execute()); - } - - [Test] - public void Parallel_Running() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnFailure); - parallel.Children = new[] { - CreateRunningNode(), - CreateRunningNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, parallel.Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelAnyFailureTests.cs.meta b/Assets/Splatter/Scripts/Tests/AI/ParallelAnyFailureTests.cs.meta deleted file mode 100644 index 14d68a4..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelAnyFailureTests.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9a3dbcb991d674d4fbb626f731706ab9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelAnySuccessTests.cs b/Assets/Splatter/Scripts/Tests/AI/ParallelAnySuccessTests.cs deleted file mode 100644 index 5c1d2be..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelAnySuccessTests.cs +++ /dev/null @@ -1,42 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class ParallelAnySuccessTests : TestBase { - [Test] - public void Parallel_Success() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnSuccess); - parallel.Children = new[]{ - CreateFailureNode(), - CreateSuccessNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Success, parallel.Execute()); - } - - [Test] - public void Parallel_Failure() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnSuccess); - parallel.Children = new[]{ - CreateRunningNode(), - CreateRunningNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Running, parallel.Execute()); - } - - [Test] - public void Parallel_Running() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.ExitOnSuccess); - parallel.Children = new[]{ - CreateRunningNode(), - CreateRunningNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, parallel.Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelAnySuccessTests.cs.meta b/Assets/Splatter/Scripts/Tests/AI/ParallelAnySuccessTests.cs.meta deleted file mode 100644 index 107533b..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelAnySuccessTests.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 59a874d3dafddc744968f5070ffe4bad -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToComplete .cs b/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToComplete .cs deleted file mode 100644 index 4bf2855..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToComplete .cs +++ /dev/null @@ -1,42 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class ParallelWaitForAllToComplete : TestBase { - [Test] - public void Parallel_Success() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.WaitForAll); - parallel.Children = new[]{ - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Success, parallel.Execute()); - } - - [Test] - public void Parallel_Failure() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.WaitForAll); - parallel.Children = new[]{ - CreateFailureNode(), - CreateFailureNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Success, parallel.Execute()); - } - - [Test] - public void Parallel_Running() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.WaitForAll); - parallel.Children = new[]{ - CreateSuccessNode(), - CreateRunningNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Running, parallel.Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToComplete .cs.meta b/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToComplete .cs.meta deleted file mode 100644 index 8a840f5..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToComplete .cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 97ff8a85dcedc7d4c870256c612ea5bb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToSucceed.cs b/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToSucceed.cs deleted file mode 100644 index bda4ecf..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToSucceed.cs +++ /dev/null @@ -1,42 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class ParallelWaitForAllToSucceed : TestBase { - [Test] - public void Parallel_Success() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.WaitForAllSuccess); - parallel.Children = new[]{ - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Success, parallel.Execute()); - } - - [Test] - public void Parallel_Failure() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.WaitForAllSuccess); - parallel.Children = new[]{ - CreateSuccessNode(), - CreateSuccessNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Running, parallel.Execute()); - } - - [Test] - public void Parallel_Running() { - Parallel parallel = new Parallel("Parallel", Tree, ParallelMode.WaitForAllSuccess); - parallel.Children = new[]{ - CreateSuccessNode(), - CreateRunningNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, parallel.Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToSucceed.cs.meta b/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToSucceed.cs.meta deleted file mode 100644 index bbc071b..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/ParallelWaitForAllToSucceed.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 969221b84c4d2b241957280c79aec0b7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/SelectorTests.cs b/Assets/Splatter/Scripts/Tests/AI/SelectorTests.cs deleted file mode 100644 index 500ca67..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/SelectorTests.cs +++ /dev/null @@ -1,159 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class SelectorTests : TestBase { - [Test] - public void Selector_Success() { - Selector selector = new Selector("Selector", Tree); - selector.Children = new[] { - CreateSuccessNode(), - CreateRunningNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Success, selector.Execute()); - - selector.Children = new[] { - CreateFailureNode(), - CreateSuccessNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Success, selector.Execute()); - - selector.Children = new[] { - CreateFailureNode(), - CreateFailureNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Success, selector.Execute()); - } - - [Test] - public void Selector_Failed() { - Selector selector = new Selector("Selector", Tree); - selector.Children = new[] { - CreateFailureNode(), - CreateFailureNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Failure, selector.Execute()); - } - - [Test] - public void Selector_Running() { - Selector selector = new Selector("Selector", Tree); - selector.Children = new[] { - CreateRunningNode(), - CreateRunningNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - } - - [Test] - public void Selector_Abort_Self() { - bool condition = true; - - Selector selector = new Selector("Selector", Tree, AbortType.Self, () => condition); - selector.Children = new[] { - CreateFailureNode(), - CreateFailureNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - condition = false; - Assert.AreEqual(NodeResult.Failure, selector.Execute()); - } - - [Test] - public void Selector_Abort_Lower() { - bool condition = false; - - Selector selector = new Selector("Selector", Tree); - Selector childSelector = new Selector("Selector", Tree, AbortType.Lower, () => condition); - - childSelector.Children = new[] { - CreateFailureNode(), - CreateFailureNode(), - CreateFailureNode(), - }; - - selector.Children = new[] { - CreateFailureNode(), - childSelector, - CreateFailureNode(), - CreateFailureNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Success, selector.Execute()); - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - - condition = true; - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - } - - [Test] - public void Selector_Abort_SelfAndLower() { - bool condition = false; - - Selector selector = new Selector("Selector", Tree); - Selector childSelector = new Selector("Selector", Tree, AbortType.SelfAndLower, () => condition); - - childSelector.Children = new[] { - CreateSuccessNode(), - CreateFailureNode(), - CreateFailureNode(), - }; - - selector.Children = new[] { - CreateFailureNode(), - CreateFailureNode(), - childSelector, - CreateFailureNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Success, selector.Execute()); - - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - Assert.AreEqual(NodeResult.Running, selector.Execute()); - - condition = true; - - Assert.AreEqual(NodeResult.Success, selector.Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/SelectorTests.cs.meta b/Assets/Splatter/Scripts/Tests/AI/SelectorTests.cs.meta deleted file mode 100644 index cb44dd6..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/SelectorTests.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0de4e1cf08abdc64bb4e1d0014add9e7 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/SequencerTests.cs b/Assets/Splatter/Scripts/Tests/AI/SequencerTests.cs deleted file mode 100644 index 906579a..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/SequencerTests.cs +++ /dev/null @@ -1,203 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests { - public class SequencerTests : TestBase { - [Test] - public void Sequencer_Success() { - Sequencer sequencer = new Sequencer("Sequencer", Tree, false); - sequencer.Children = new[] { - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Success, sequencer.Execute()); - } - - [Test] - public void Sequencer_Failure() { - Sequencer sequencer = new Sequencer("Sequencer", Tree, false); - sequencer.Children = new[] { - CreateSuccessNode(), - CreateSuccessNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Failure, sequencer.Execute()); - - sequencer.Children = new[] { - CreateSuccessNode(), - CreateFailureNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Failure, sequencer.Execute()); - - sequencer.Children = new[] { - CreateFailureNode(), - CreateRunningNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Failure, sequencer.Execute()); - } - - [Test] - public void Sequencer_Running() { - Sequencer sequencer = new Sequencer("Sequencer", Tree, false); - sequencer.Children = new[] { - CreateRunningNode(), - CreateRunningNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - - sequencer.Children = new[] { - CreateSuccessNode(), - CreateRunningNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - - sequencer.Children = new[] { - CreateSuccessNode(), - CreateSuccessNode(), - CreateRunningNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - } - - [Test] - public void Sequencer_Reset() { - Sequencer sequencer = new Sequencer("Sequencer", Tree, true); - sequencer.Children = new[] { - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Tree.IncrementTick(); - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Tree.IncrementTick(); - Tree.IncrementTick(); - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Tree.IncrementTick(); - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Tree.IncrementTick(); - - Assert.AreEqual(NodeResult.Success, sequencer.Execute()); - Tree.IncrementTick(); - } - - [Test] - public void Sequencer_Abort_Self() { - bool condition = true; - - Sequencer sequencer = new Sequencer("Sequencer", Tree, false, AbortType.Self, () => condition); - sequencer.Children = new[] { - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - condition = false; - Assert.AreEqual(NodeResult.Failure, sequencer.Execute()); - } - - [Test] - public void Sequencer_Abort_Lower() { - bool condition = false; - - Sequencer sequencer = new Sequencer("Sequencer", Tree, false); - Sequencer childSequencer = new Sequencer("Sequencer", Tree, false, AbortType.Lower, () => condition); - - childSequencer.Children = new[] { - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - }; - - sequencer.Children = new[] { - CreateSuccessNode(), - childSequencer, - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - - condition = true; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - } - - [Test] - public void Sequencer_Abort_SelfAndLower() { - bool condition = false; - - Sequencer sequencer = new Sequencer("Sequencer", Tree, false); - Sequencer childSequencer = new Sequencer("Sequencer", Tree, false, AbortType.SelfAndLower, () => condition); - - childSequencer.Children = new[] { - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - CreateSuccessNode(), - }; - - sequencer.Children = new[] { - CreateSuccessNode(), - childSequencer, - CreateSuccessNode(), - CreateSuccessNode(), - CreateFailureNode(), - }; - - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Failure, sequencer.Execute()); - - condition = true; - - // Will always be running as nothing will get executed past the child sequencer - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - Assert.AreEqual(NodeResult.Running, sequencer.Execute()); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/SequencerTests.cs.meta b/Assets/Splatter/Scripts/Tests/AI/SequencerTests.cs.meta deleted file mode 100644 index 8669095..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/SequencerTests.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c2ffe7d9c419a49478d94809e223d518 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs.meta b/Assets/Splatter/Scripts/Tests/AI/Stubs.meta deleted file mode 100644 index 7b7692f..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: e6554d3b5acaeec4882f8aca81c82cf4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs/BehaviourTreeStub.cs b/Assets/Splatter/Scripts/Tests/AI/Stubs/BehaviourTreeStub.cs deleted file mode 100644 index 54e005e..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs/BehaviourTreeStub.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests.Stubs { - public class BehaviourTreeStub : BehaviourTree { - protected override Node CreateRoot() { - return new Leaf("Leaf", this, () => NodeResult.Failure); - } - } -} diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs/BehaviourTreeStub.cs.meta b/Assets/Splatter/Scripts/Tests/AI/Stubs/BehaviourTreeStub.cs.meta deleted file mode 100644 index 0a3b9f6..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs/BehaviourTreeStub.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 530c45789fd7cc742911d616202a042b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs/FailureNode.cs b/Assets/Splatter/Scripts/Tests/AI/Stubs/FailureNode.cs deleted file mode 100644 index f6dfd7f..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs/FailureNode.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests.Stubs { - public class FailureNode : Node { - public FailureNode(BehaviourTree tree) : base("Failure", tree) { - } - - protected override NodeResult ExecuteNode() { - return NodeResult.Failure; - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs/FailureNode.cs.meta b/Assets/Splatter/Scripts/Tests/AI/Stubs/FailureNode.cs.meta deleted file mode 100644 index 96212bd..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs/FailureNode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7b8bcf802c9ce744a85d726edfee2e62 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs/RunningNode.cs b/Assets/Splatter/Scripts/Tests/AI/Stubs/RunningNode.cs deleted file mode 100644 index e796dab..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs/RunningNode.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests.Stubs { - public class RunningNode : Node { - public RunningNode(BehaviourTree tree) : base("Running", tree) { - } - - protected override NodeResult ExecuteNode() { - return NodeResult.Running; - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs/RunningNode.cs.meta b/Assets/Splatter/Scripts/Tests/AI/Stubs/RunningNode.cs.meta deleted file mode 100644 index 7e37ccd..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs/RunningNode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 96fc3bb46c0192f4cbff022163cdeb29 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs/SuccessNode.cs b/Assets/Splatter/Scripts/Tests/AI/Stubs/SuccessNode.cs deleted file mode 100644 index 7e84b78..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs/SuccessNode.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Splatter.AI.BehaviourTree; - -namespace Splatter.Tests.Stubs { - public class SuccessNode : Node { - public SuccessNode(BehaviourTree tree) : base("Success", tree) { - } - - protected override NodeResult ExecuteNode() { - return NodeResult.Success; - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/Stubs/SuccessNode.cs.meta b/Assets/Splatter/Scripts/Tests/AI/Stubs/SuccessNode.cs.meta deleted file mode 100644 index c016e85..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/Stubs/SuccessNode.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b1e34ca78ea65f44481bfcbd29b27a65 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Splatter/Scripts/Tests/AI/TestBase.cs b/Assets/Splatter/Scripts/Tests/AI/TestBase.cs deleted file mode 100644 index c101a67..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/TestBase.cs +++ /dev/null @@ -1,27 +0,0 @@ -using NUnit.Framework; -using Splatter.AI.BehaviourTree; -using Splatter.Tests.Stubs; - -namespace Splatter.Tests { - public class TestBase { - protected BehaviourTree Tree; - - [SetUp] - public void Init() { - // Runs before each test - Tree = new BehaviourTreeStub(); - } - - protected Node CreateSuccessNode() { - return new SuccessNode(Tree); - } - - protected Node CreateFailureNode() { - return new FailureNode(Tree); - } - - protected Node CreateRunningNode() { - return new RunningNode(Tree); - } - } -} \ No newline at end of file diff --git a/Assets/Splatter/Scripts/Tests/AI/TestBase.cs.meta b/Assets/Splatter/Scripts/Tests/AI/TestBase.cs.meta deleted file mode 100644 index 18b2990..0000000 --- a/Assets/Splatter/Scripts/Tests/AI/TestBase.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4e8cfe6cbedb85044a98a32ace37067c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/BehaviourTree.md b/BehaviourTree.md deleted file mode 100644 index cd8dd77..0000000 --- a/BehaviourTree.md +++ /dev/null @@ -1,35 +0,0 @@ -## Behaviour Tree - -### To Use - -1. Create new class deriving from BehaviourTree -2. Override `Start` method (optional) and initiate blackboard values, make sure to call `base.Start();` at the start of the method -3. Override `SetRoot` method, here you can build up your behaviour tree using the `BehaviourTreeBuilder` class as shown below -4. Attach the script to the GameObject -5. The tree will be executed every frame - -### Example - -```c# -using Splatter.AI.BehaviourTree; - -public class ZombieBehaviourTree : BehaviourTree { - public override void Start() { - base.Start(); - - Blackboard[ZombieKey] = GetComponent(); - } - - public override Node SetRoot() { - return new BehaviourTreeBuilder(this) - .Sequence(resetIfInterrupted: false) - .Do(() => { - // Custom action - return NodeResult.Success; - }) - .End() - .Build(); - } -} -``` - diff --git a/README.md b/README.md index 8940be3..29eccc2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,8 @@ -# Splatter -Splatter is a toolkit for Unity projects big and small, abstracting away commonly written code, patterns and extensions to make your life easier and allow you to concentrate on project specific code. **Currently a WIP**. +# Splatter.Terrain +Splatter.Terrain is a toolkit for modifying and texturing terrains in Unity. ## Installation -To add to your Unity project go to the Package Manager, click the plus in the top left of the window. Select git URL and enter: `https://github.com/ormesam/splatter.git?path=/Assets/Splatter` +To add to your Unity project go to the Package Manager, click the plus in the top left of the window. Select git URL and enter: `https://github.com/ormesam/splatter.terrain.git?path=/src/Assets/Splatter` ## Features -- [**Terrain Painter**](TerrainPainter.md) - A simple height based texturing tool for terrain. Add your textures, set the height and angle limits, and SPLAT! -- [**Behaviour Tree**](BehaviourTree.md) - A behaviour tree and code builder to simplify writing AI - +- [**Terrain Painter**](TerrainPainter.md) - A simple height based texturing tool for terrain. Add your textures, set the height and angle limits, and SPLAT! \ No newline at end of file diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset deleted file mode 100644 index 63d148b..0000000 --- a/UserSettings/EditorUserSettings.asset +++ /dev/null @@ -1,36 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!162 &1 -EditorUserSettings: - m_ObjectHideFlags: 0 - serializedVersion: 4 - m_ConfigSettings: - RecentlyUsedScenePath-0: - value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d - flags: 0 - RecentlyUsedScenePath-1: - value: 22424703114646681d020d3604264d5f25141d24293b69142824127df7ee3d2cfb - flags: 0 - RecentlyUsedScenePath-2: - value: 22424703114646681d020d3604264d5f25141d24293b691f2f231830f6d03b37eec333e4e8742a323016f6 - flags: 0 - RecentlyUsedScenePath-3: - value: 22424703114646681d020d3604264d5f25141d24293b6904283b0f32ebee103defe878fce9332b25 - flags: 0 - RecentlyUsedScenePath-4: - value: 22424703114646681d020d3604264d5f2516153a202d357f1e2a183de7f37b0ce7f524e8ee341b39340da1290a371526 - flags: 0 - vcSharedLogLevel: - value: 0d5e400f0650 - flags: 0 - m_VCAutomaticAdd: 1 - m_VCDebugCom: 0 - m_VCDebugCmd: 0 - m_VCDebugOut: 0 - m_SemanticMergeMode: 2 - m_VCShowFailedCheckout: 1 - m_VCOverwriteFailedCheckoutAssets: 1 - m_VCProjectOverlayIcons: 1 - m_VCHierarchyOverlayIcons: 1 - m_VCOtherOverlayIcons: 1 - m_VCAllowAsyncUpdate: 1 diff --git a/UserSettings/Search.index b/UserSettings/Search.index deleted file mode 100644 index 299c246..0000000 --- a/UserSettings/Search.index +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "Assets", - "roots": ["Assets"], - "includes": [], - "excludes": ["Temp/", "External/"], - "options": { - "types": true, - "properties": false, - "extended": false, - "dependencies": false - }, - "baseScore": 999 -} \ No newline at end of file diff --git a/UserSettings/Search.settings b/UserSettings/Search.settings deleted file mode 100644 index 5e7b2aa..0000000 --- a/UserSettings/Search.settings +++ /dev/null @@ -1,76 +0,0 @@ -trackSelection = true -fetchPreview = true -wantsMore = false -keepOpen = false -itemIconSize = 1 -queryFolder = "Assets" -onBoardingDoNotAskAgain = true -showPackageIndexes = false -showStatusBar = false -scopes = { -} -providers = { - asset = { - active = true - priority = 25 - defaultAction = null - } - store = { - active = true - priority = 100 - defaultAction = null - } - find = { - active = true - priority = 25 - defaultAction = null - } - log = { - active = false - priority = 210 - defaultAction = null - } - packages = { - active = true - priority = 90 - defaultAction = null - } - scene = { - active = true - priority = 50 - defaultAction = null - } - query = { - active = true - priority = 100 - defaultAction = null - } - menu = { - active = true - priority = 80 - defaultAction = null - } - settings = { - active = true - priority = 100 - defaultAction = null - } - help = { - active = true - priority = -1 - defaultAction = null - } - calculator = { - active = true - priority = 10 - defaultAction = null - } - static_methods = { - active = true - priority = 85 - defaultAction = null - } -} -recentSearches = [ -] -savedSearchesSortOrder = 0 \ No newline at end of file diff --git a/src/.vsconfig b/src/.vsconfig new file mode 100644 index 0000000..aade28f --- /dev/null +++ b/src/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/Assets/Splatter.meta b/src/Assets/Splatter.meta similarity index 100% rename from Assets/Splatter.meta rename to src/Assets/Splatter.meta diff --git a/Assets/Splatter/Samples.meta b/src/Assets/Splatter/Samples.meta similarity index 100% rename from Assets/Splatter/Samples.meta rename to src/Assets/Splatter/Samples.meta diff --git a/Assets/Splatter/Samples/Materials.meta b/src/Assets/Splatter/Samples/Materials.meta similarity index 100% rename from Assets/Splatter/Samples/Materials.meta rename to src/Assets/Splatter/Samples/Materials.meta diff --git a/Assets/Splatter/Samples/Materials/Water.mat b/src/Assets/Splatter/Samples/Materials/Water.mat similarity index 100% rename from Assets/Splatter/Samples/Materials/Water.mat rename to src/Assets/Splatter/Samples/Materials/Water.mat diff --git a/Assets/Splatter/Samples/Materials/Water.mat.meta b/src/Assets/Splatter/Samples/Materials/Water.mat.meta similarity index 100% rename from Assets/Splatter/Samples/Materials/Water.mat.meta rename to src/Assets/Splatter/Samples/Materials/Water.mat.meta diff --git a/Assets/Splatter/Samples/Scenes.meta b/src/Assets/Splatter/Samples/Scenes.meta similarity index 100% rename from Assets/Splatter/Samples/Scenes.meta rename to src/Assets/Splatter/Samples/Scenes.meta diff --git a/Assets/Splatter/Samples/Scenes/Terrain.meta b/src/Assets/Splatter/Samples/Scenes/Terrain.meta similarity index 100% rename from Assets/Splatter/Samples/Scenes/Terrain.meta rename to src/Assets/Splatter/Samples/Scenes/Terrain.meta diff --git a/Assets/Splatter/Samples/Scenes/Terrain/DesertTerrain.asset b/src/Assets/Splatter/Samples/Scenes/Terrain/DesertTerrain.asset similarity index 100% rename from Assets/Splatter/Samples/Scenes/Terrain/DesertTerrain.asset rename to src/Assets/Splatter/Samples/Scenes/Terrain/DesertTerrain.asset diff --git a/Assets/Splatter/Samples/Scenes/Terrain/DesertTerrain.asset.meta b/src/Assets/Splatter/Samples/Scenes/Terrain/DesertTerrain.asset.meta similarity index 100% rename from Assets/Splatter/Samples/Scenes/Terrain/DesertTerrain.asset.meta rename to src/Assets/Splatter/Samples/Scenes/Terrain/DesertTerrain.asset.meta diff --git a/Assets/Splatter/Samples/Scenes/Terrain/GrassLevel.asset b/src/Assets/Splatter/Samples/Scenes/Terrain/GrassLevel.asset similarity index 100% rename from Assets/Splatter/Samples/Scenes/Terrain/GrassLevel.asset rename to src/Assets/Splatter/Samples/Scenes/Terrain/GrassLevel.asset diff --git a/Assets/Splatter/Samples/Scenes/Terrain/GrassLevel.asset.meta b/src/Assets/Splatter/Samples/Scenes/Terrain/GrassLevel.asset.meta similarity index 100% rename from Assets/Splatter/Samples/Scenes/Terrain/GrassLevel.asset.meta rename to src/Assets/Splatter/Samples/Scenes/Terrain/GrassLevel.asset.meta diff --git a/Assets/Splatter/Samples/Scenes/Terrain/SnowTerrain.asset b/src/Assets/Splatter/Samples/Scenes/Terrain/SnowTerrain.asset similarity index 100% rename from Assets/Splatter/Samples/Scenes/Terrain/SnowTerrain.asset rename to src/Assets/Splatter/Samples/Scenes/Terrain/SnowTerrain.asset diff --git a/Assets/Splatter/Samples/Scenes/Terrain/SnowTerrain.asset.meta b/src/Assets/Splatter/Samples/Scenes/Terrain/SnowTerrain.asset.meta similarity index 100% rename from Assets/Splatter/Samples/Scenes/Terrain/SnowTerrain.asset.meta rename to src/Assets/Splatter/Samples/Scenes/Terrain/SnowTerrain.asset.meta diff --git a/Assets/Splatter/Samples/Scenes/TerrainDemo.unity b/src/Assets/Splatter/Samples/Scenes/TerrainDemo.unity similarity index 99% rename from Assets/Splatter/Samples/Scenes/TerrainDemo.unity rename to src/Assets/Splatter/Samples/Scenes/TerrainDemo.unity index 9f0c9de..820ab4d 100644 --- a/Assets/Splatter/Samples/Scenes/TerrainDemo.unity +++ b/src/Assets/Splatter/Samples/Scenes/TerrainDemo.unity @@ -168,7 +168,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: UI: - TabIdx: 3 + TabIdx: 0 AssetPath: Assets/Splatter/Samples/Terrains/Layers/Snow BaseLayer: Texture: {fileID: 2800000, guid: e6648b45bd1676d48a680b41fe7241ca, type: 3} diff --git a/Assets/Splatter/Samples/Scenes/TerrainDemo.unity.meta b/src/Assets/Splatter/Samples/Scenes/TerrainDemo.unity.meta similarity index 100% rename from Assets/Splatter/Samples/Scenes/TerrainDemo.unity.meta rename to src/Assets/Splatter/Samples/Scenes/TerrainDemo.unity.meta diff --git a/Assets/Splatter/Samples/Terrains.meta b/src/Assets/Splatter/Samples/Terrains.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains.meta rename to src/Assets/Splatter/Samples/Terrains.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers.meta b/src/Assets/Splatter/Samples/Terrains/Layers.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers.meta rename to src/Assets/Splatter/Samples/Terrains/Layers.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Desert.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/Demo.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Base Layer.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Base Layer.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Base Layer.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Base Layer.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Base Layer.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Base Layer.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Base Layer.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Base Layer.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Mountain.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Mountain.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Mountain.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Mountain.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Mountain.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Mountain.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Mountain.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/Demo/Mountain.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Base Layer.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Base Layer.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Base Layer.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Base Layer.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Base Layer.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Base Layer.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Base Layer.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Base Layer.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Mountain.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Mountain.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Mountain.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Mountain.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Mountain.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Mountain.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Mountain.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Desert/TerrainDemo/Mountain.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Base Layer.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Base Layer.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Base Layer.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Base Layer.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Base Layer.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Base Layer.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Base Layer.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Base Layer.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Mountain.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Mountain.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Mountain.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Mountain.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Mountain.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Mountain.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Mountain.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Mountain.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Riverbed.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Riverbed.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Riverbed.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Riverbed.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Riverbed.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Riverbed.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Riverbed.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Riverbed.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Snow.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Snow.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Snow.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Snow.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Snow.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Snow.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Snow.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/Demo/Snow.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Base Layer.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Base Layer.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Base Layer.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Base Layer.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Base Layer.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Base Layer.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Base Layer.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Base Layer.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Mountain.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Mountain.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Mountain.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Mountain.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Mountain.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Mountain.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Mountain.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Mountain.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Riverbed.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Riverbed.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Riverbed.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Riverbed.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Riverbed.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Riverbed.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Riverbed.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Riverbed.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Snow.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Snow.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Snow.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Snow.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Snow.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Snow.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Snow.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Grassland/TerrainDemo/Snow.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/Demo.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Base Layer.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Base Layer.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Base Layer.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Base Layer.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Base Layer.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Base Layer.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Base Layer.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Base Layer.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Mountain.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Mountain.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Mountain.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Mountain.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Mountain.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Mountain.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Mountain.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Mountain.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Riverbed.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Riverbed.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Riverbed.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Riverbed.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Riverbed.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Riverbed.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Riverbed.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/Demo/Riverbed.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Base Layer.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Base Layer.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Base Layer.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Base Layer.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Base Layer.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Base Layer.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Base Layer.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Base Layer.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Mountain.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Mountain.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Mountain.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Mountain.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Mountain.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Mountain.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Mountain.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Mountain.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Riverbed.terrainLayer b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Riverbed.terrainLayer similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Riverbed.terrainLayer rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Riverbed.terrainLayer diff --git a/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Riverbed.terrainLayer.meta b/src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Riverbed.terrainLayer.meta similarity index 100% rename from Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Riverbed.terrainLayer.meta rename to src/Assets/Splatter/Samples/Terrains/Layers/Snow/TerrainDemo/Riverbed.terrainLayer.meta diff --git a/Assets/Splatter/Samples/Textures.meta b/src/Assets/Splatter/Samples/Textures.meta similarity index 100% rename from Assets/Splatter/Samples/Textures.meta rename to src/Assets/Splatter/Samples/Textures.meta diff --git a/Assets/Splatter/Samples/Textures/Darksand.png b/src/Assets/Splatter/Samples/Textures/Darksand.png similarity index 100% rename from Assets/Splatter/Samples/Textures/Darksand.png rename to src/Assets/Splatter/Samples/Textures/Darksand.png diff --git a/Assets/Splatter/Samples/Textures/Darksand.png.meta b/src/Assets/Splatter/Samples/Textures/Darksand.png.meta similarity index 100% rename from Assets/Splatter/Samples/Textures/Darksand.png.meta rename to src/Assets/Splatter/Samples/Textures/Darksand.png.meta diff --git a/Assets/Splatter/Samples/Textures/DesertSand.png b/src/Assets/Splatter/Samples/Textures/DesertSand.png similarity index 100% rename from Assets/Splatter/Samples/Textures/DesertSand.png rename to src/Assets/Splatter/Samples/Textures/DesertSand.png diff --git a/Assets/Splatter/Samples/Textures/DesertSand.png.meta b/src/Assets/Splatter/Samples/Textures/DesertSand.png.meta similarity index 100% rename from Assets/Splatter/Samples/Textures/DesertSand.png.meta rename to src/Assets/Splatter/Samples/Textures/DesertSand.png.meta diff --git a/Assets/Splatter/Samples/Textures/Grass.png b/src/Assets/Splatter/Samples/Textures/Grass.png similarity index 100% rename from Assets/Splatter/Samples/Textures/Grass.png rename to src/Assets/Splatter/Samples/Textures/Grass.png diff --git a/Assets/Splatter/Samples/Textures/Grass.png.meta b/src/Assets/Splatter/Samples/Textures/Grass.png.meta similarity index 100% rename from Assets/Splatter/Samples/Textures/Grass.png.meta rename to src/Assets/Splatter/Samples/Textures/Grass.png.meta diff --git a/Assets/Splatter/Samples/Textures/Ice.png b/src/Assets/Splatter/Samples/Textures/Ice.png similarity index 100% rename from Assets/Splatter/Samples/Textures/Ice.png rename to src/Assets/Splatter/Samples/Textures/Ice.png diff --git a/Assets/Splatter/Samples/Textures/Ice.png.meta b/src/Assets/Splatter/Samples/Textures/Ice.png.meta similarity index 100% rename from Assets/Splatter/Samples/Textures/Ice.png.meta rename to src/Assets/Splatter/Samples/Textures/Ice.png.meta diff --git a/Assets/Splatter/Samples/Textures/Riverbed.png b/src/Assets/Splatter/Samples/Textures/Riverbed.png similarity index 100% rename from Assets/Splatter/Samples/Textures/Riverbed.png rename to src/Assets/Splatter/Samples/Textures/Riverbed.png diff --git a/Assets/Splatter/Samples/Textures/Riverbed.png.meta b/src/Assets/Splatter/Samples/Textures/Riverbed.png.meta similarity index 100% rename from Assets/Splatter/Samples/Textures/Riverbed.png.meta rename to src/Assets/Splatter/Samples/Textures/Riverbed.png.meta diff --git a/Assets/Splatter/Samples/Textures/Rock.png b/src/Assets/Splatter/Samples/Textures/Rock.png similarity index 100% rename from Assets/Splatter/Samples/Textures/Rock.png rename to src/Assets/Splatter/Samples/Textures/Rock.png diff --git a/Assets/Splatter/Samples/Textures/Rock.png.meta b/src/Assets/Splatter/Samples/Textures/Rock.png.meta similarity index 100% rename from Assets/Splatter/Samples/Textures/Rock.png.meta rename to src/Assets/Splatter/Samples/Textures/Rock.png.meta diff --git a/Assets/Splatter/Samples/Textures/Snow.png b/src/Assets/Splatter/Samples/Textures/Snow.png similarity index 100% rename from Assets/Splatter/Samples/Textures/Snow.png rename to src/Assets/Splatter/Samples/Textures/Snow.png diff --git a/Assets/Splatter/Samples/Textures/Snow.png.meta b/src/Assets/Splatter/Samples/Textures/Snow.png.meta similarity index 100% rename from Assets/Splatter/Samples/Textures/Snow.png.meta rename to src/Assets/Splatter/Samples/Textures/Snow.png.meta diff --git a/Assets/Splatter/Scripts.meta b/src/Assets/Splatter/Scripts.meta similarity index 100% rename from Assets/Splatter/Scripts.meta rename to src/Assets/Splatter/Scripts.meta diff --git a/Assets/Splatter/Scripts/Editor.meta b/src/Assets/Splatter/Scripts/Editor.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor.meta rename to src/Assets/Splatter/Scripts/Editor.meta diff --git a/Assets/Splatter/Scripts/Editor/HeightMapper.meta b/src/Assets/Splatter/Scripts/Editor/HeightMapper.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/HeightMapper.meta rename to src/Assets/Splatter/Scripts/Editor/HeightMapper.meta diff --git a/Assets/Splatter/Scripts/Editor/HeightMapper/HeightMapperGui.cs b/src/Assets/Splatter/Scripts/Editor/HeightMapper/HeightMapperGui.cs similarity index 100% rename from Assets/Splatter/Scripts/Editor/HeightMapper/HeightMapperGui.cs rename to src/Assets/Splatter/Scripts/Editor/HeightMapper/HeightMapperGui.cs diff --git a/Assets/Splatter/Scripts/Editor/HeightMapper/HeightMapperGui.cs.meta b/src/Assets/Splatter/Scripts/Editor/HeightMapper/HeightMapperGui.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/HeightMapper/HeightMapperGui.cs.meta rename to src/Assets/Splatter/Scripts/Editor/HeightMapper/HeightMapperGui.cs.meta diff --git a/Assets/Splatter/Scripts/Editor/Splat.meta b/src/Assets/Splatter/Scripts/Editor/Splat.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat.meta rename to src/Assets/Splatter/Scripts/Editor/Splat.meta diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images.meta b/src/Assets/Splatter/Scripts/Editor/Splat/Images.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images.meta rename to src/Assets/Splatter/Scripts/Editor/Splat/Images.meta diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Grass.png b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Grass.png similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Grass.png rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Grass.png diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Grass.png.meta b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Grass.png.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Grass.png.meta rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Grass.png.meta diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Mountain.png b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Mountain.png similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Mountain.png rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Mountain.png diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Mountain.png.meta b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Mountain.png.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Mountain.png.meta rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Mountain.png.meta diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Settings.png b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Settings.png similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Settings.png rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Settings.png diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Settings.png.meta b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Settings.png.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Settings.png.meta rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Settings.png.meta diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Snow.png b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Snow.png similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Snow.png rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Snow.png diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Snow.png.meta b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Snow.png.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Snow.png.meta rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Snow.png.meta diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Water.png b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Water.png similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Water.png rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Water.png diff --git a/Assets/Splatter/Scripts/Editor/Splat/Images/Water.png.meta b/src/Assets/Splatter/Scripts/Editor/Splat/Images/Water.png.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/Images/Water.png.meta rename to src/Assets/Splatter/Scripts/Editor/Splat/Images/Water.png.meta diff --git a/Assets/Splatter/Scripts/Editor/Splat/SplatterGui.cs b/src/Assets/Splatter/Scripts/Editor/Splat/SplatterGui.cs similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/SplatterGui.cs rename to src/Assets/Splatter/Scripts/Editor/Splat/SplatterGui.cs diff --git a/Assets/Splatter/Scripts/Editor/Splat/SplatterGui.cs.meta b/src/Assets/Splatter/Scripts/Editor/Splat/SplatterGui.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splat/SplatterGui.cs.meta rename to src/Assets/Splatter/Scripts/Editor/Splat/SplatterGui.cs.meta diff --git a/Assets/Splatter/Scripts/Editor/Splatter.Editor.asmdef b/src/Assets/Splatter/Scripts/Editor/Splatter.Editor.asmdef similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splatter.Editor.asmdef rename to src/Assets/Splatter/Scripts/Editor/Splatter.Editor.asmdef diff --git a/Assets/Splatter/Scripts/Editor/Splatter.Editor.asmdef.meta b/src/Assets/Splatter/Scripts/Editor/Splatter.Editor.asmdef.meta similarity index 100% rename from Assets/Splatter/Scripts/Editor/Splatter.Editor.asmdef.meta rename to src/Assets/Splatter/Scripts/Editor/Splatter.Editor.asmdef.meta diff --git a/Assets/Splatter/Scripts/Runtime.meta b/src/Assets/Splatter/Scripts/Runtime.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime.meta rename to src/Assets/Splatter/Scripts/Runtime.meta diff --git a/Assets/Splatter/Scripts/Runtime/Splatter.asmdef b/src/Assets/Splatter/Scripts/Runtime/Splatter.asmdef similarity index 100% rename from Assets/Splatter/Scripts/Runtime/Splatter.asmdef rename to src/Assets/Splatter/Scripts/Runtime/Splatter.asmdef diff --git a/Assets/Splatter/Scripts/Runtime/Splatter.asmdef.meta b/src/Assets/Splatter/Scripts/Runtime/Splatter.asmdef.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/Splatter.asmdef.meta rename to src/Assets/Splatter/Scripts/Runtime/Splatter.asmdef.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper/HeightMapper.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper/HeightMapper.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper/HeightMapper.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper/HeightMapper.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper/HeightMapper.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper/HeightMapper.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper/HeightMapper.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/HeightMapper/HeightMapper.cs.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/BaseLayer.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/BaseLayer.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/BaseLayer.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/BaseLayer.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/BaseLayer.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/BaseLayer.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/BaseLayer.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/BaseLayer.cs.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/LayerBase.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/LayerBase.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/LayerBase.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/LayerBase.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/LayerBase.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/LayerBase.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/LayerBase.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/LayerBase.cs.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/MountainLayer.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/MountainLayer.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/MountainLayer.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/MountainLayer.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/MountainLayer.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/MountainLayer.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/MountainLayer.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/MountainLayer.cs.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/Painter.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/Painter.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/Painter.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/Painter.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/Painter.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/Painter.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/Painter.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/Painter.cs.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SnowLayer.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SnowLayer.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SnowLayer.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SnowLayer.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SnowLayer.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SnowLayer.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SnowLayer.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SnowLayer.cs.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SplatUI.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SplatUI.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SplatUI.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SplatUI.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SplatUI.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SplatUI.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SplatUI.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/SplatUI.cs.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/WaterLayer.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/WaterLayer.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/WaterLayer.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/WaterLayer.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/WaterLayer.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/WaterLayer.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/WaterLayer.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Splat/WaterLayer.cs.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp.meta diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp/SplatStampTool.cs b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp/SplatStampTool.cs similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp/SplatStampTool.cs rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp/SplatStampTool.cs diff --git a/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp/SplatStampTool.cs.meta b/src/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp/SplatStampTool.cs.meta similarity index 100% rename from Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp/SplatStampTool.cs.meta rename to src/Assets/Splatter/Scripts/Runtime/TerrainTools/Stamp/SplatStampTool.cs.meta diff --git a/Assets/Splatter/Scripts/Tests.meta b/src/Assets/Splatter/Scripts/Tests.meta similarity index 100% rename from Assets/Splatter/Scripts/Tests.meta rename to src/Assets/Splatter/Scripts/Tests.meta diff --git a/Assets/Splatter/Scripts/Tests/Tests.asmdef b/src/Assets/Splatter/Scripts/Tests/Tests.asmdef similarity index 100% rename from Assets/Splatter/Scripts/Tests/Tests.asmdef rename to src/Assets/Splatter/Scripts/Tests/Tests.asmdef diff --git a/Assets/Splatter/Scripts/Tests/Tests.asmdef.meta b/src/Assets/Splatter/Scripts/Tests/Tests.asmdef.meta similarity index 100% rename from Assets/Splatter/Scripts/Tests/Tests.asmdef.meta rename to src/Assets/Splatter/Scripts/Tests/Tests.asmdef.meta diff --git a/Assets/Splatter/TerrainStamps.meta b/src/Assets/Splatter/TerrainStamps.meta similarity index 100% rename from Assets/Splatter/TerrainStamps.meta rename to src/Assets/Splatter/TerrainStamps.meta diff --git a/Assets/Splatter/TerrainStamps/Desert.meta b/src/Assets/Splatter/TerrainStamps/Desert.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Desert.meta rename to src/Assets/Splatter/TerrainStamps/Desert.meta diff --git a/Assets/Splatter/TerrainStamps/Desert/Desert01.brush b/src/Assets/Splatter/TerrainStamps/Desert/Desert01.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Desert/Desert01.brush rename to src/Assets/Splatter/TerrainStamps/Desert/Desert01.brush diff --git a/Assets/Splatter/TerrainStamps/Desert/Desert01.brush.meta b/src/Assets/Splatter/TerrainStamps/Desert/Desert01.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Desert/Desert01.brush.meta rename to src/Assets/Splatter/TerrainStamps/Desert/Desert01.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Desert/Desert01.jpg b/src/Assets/Splatter/TerrainStamps/Desert/Desert01.jpg similarity index 100% rename from Assets/Splatter/TerrainStamps/Desert/Desert01.jpg rename to src/Assets/Splatter/TerrainStamps/Desert/Desert01.jpg diff --git a/Assets/Splatter/TerrainStamps/Desert/Desert01.jpg.meta b/src/Assets/Splatter/TerrainStamps/Desert/Desert01.jpg.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Desert/Desert01.jpg.meta rename to src/Assets/Splatter/TerrainStamps/Desert/Desert01.jpg.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.brush b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.brush rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.brush diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.brush.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.brush.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.brush.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.png b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.png similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.png rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.png diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.png.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.png.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain01.png.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.brush b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.brush rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.brush diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.brush.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.brush.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.brush.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.png b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.png similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.png rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.png diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.png.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.png.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain02.png.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.brush b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.brush rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.brush diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.brush.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.brush.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.brush.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.png b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.png similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.png rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.png diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.png.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.png.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain03.png.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.brush b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.brush rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.brush diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.brush.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.brush.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.brush.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.png b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.png similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.png rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.png diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.png.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.png.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain04.png.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.brush b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.brush rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.brush diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.brush.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.brush.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.brush.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.png b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.png similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.png rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.png diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.png.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.png.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain05.png.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.brush b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.brush rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.brush diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.brush.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.brush.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.brush.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.png b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.png similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.png rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.png diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.png.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.png.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain06.png.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.brush b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.brush rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.brush diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.brush.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.brush.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.brush.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.png b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.png similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.png rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.png diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.png.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.png.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain07.png.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.brush b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.brush rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.brush diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.brush.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.brush.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.brush.meta diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.png b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.png similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.png rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.png diff --git a/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.png.meta b/src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.png.meta rename to src/Assets/Splatter/TerrainStamps/FlatMountains/FlatMountain08.png.meta diff --git a/Assets/Splatter/TerrainStamps/Hills.meta b/src/Assets/Splatter/TerrainStamps/Hills.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills.meta rename to src/Assets/Splatter/TerrainStamps/Hills.meta diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill01.brush b/src/Assets/Splatter/TerrainStamps/Hills/Hill01.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill01.brush rename to src/Assets/Splatter/TerrainStamps/Hills/Hill01.brush diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill01.brush.meta b/src/Assets/Splatter/TerrainStamps/Hills/Hill01.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill01.brush.meta rename to src/Assets/Splatter/TerrainStamps/Hills/Hill01.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill01.png b/src/Assets/Splatter/TerrainStamps/Hills/Hill01.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill01.png rename to src/Assets/Splatter/TerrainStamps/Hills/Hill01.png diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill01.png.meta b/src/Assets/Splatter/TerrainStamps/Hills/Hill01.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill01.png.meta rename to src/Assets/Splatter/TerrainStamps/Hills/Hill01.png.meta diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill02.brush b/src/Assets/Splatter/TerrainStamps/Hills/Hill02.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill02.brush rename to src/Assets/Splatter/TerrainStamps/Hills/Hill02.brush diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill02.brush.meta b/src/Assets/Splatter/TerrainStamps/Hills/Hill02.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill02.brush.meta rename to src/Assets/Splatter/TerrainStamps/Hills/Hill02.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill02.png b/src/Assets/Splatter/TerrainStamps/Hills/Hill02.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill02.png rename to src/Assets/Splatter/TerrainStamps/Hills/Hill02.png diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill02.png.meta b/src/Assets/Splatter/TerrainStamps/Hills/Hill02.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill02.png.meta rename to src/Assets/Splatter/TerrainStamps/Hills/Hill02.png.meta diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill03.brush b/src/Assets/Splatter/TerrainStamps/Hills/Hill03.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill03.brush rename to src/Assets/Splatter/TerrainStamps/Hills/Hill03.brush diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill03.brush.meta b/src/Assets/Splatter/TerrainStamps/Hills/Hill03.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill03.brush.meta rename to src/Assets/Splatter/TerrainStamps/Hills/Hill03.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill03.png b/src/Assets/Splatter/TerrainStamps/Hills/Hill03.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill03.png rename to src/Assets/Splatter/TerrainStamps/Hills/Hill03.png diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill03.png.meta b/src/Assets/Splatter/TerrainStamps/Hills/Hill03.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill03.png.meta rename to src/Assets/Splatter/TerrainStamps/Hills/Hill03.png.meta diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill04.brush b/src/Assets/Splatter/TerrainStamps/Hills/Hill04.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill04.brush rename to src/Assets/Splatter/TerrainStamps/Hills/Hill04.brush diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill04.brush.meta b/src/Assets/Splatter/TerrainStamps/Hills/Hill04.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill04.brush.meta rename to src/Assets/Splatter/TerrainStamps/Hills/Hill04.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill04.png b/src/Assets/Splatter/TerrainStamps/Hills/Hill04.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill04.png rename to src/Assets/Splatter/TerrainStamps/Hills/Hill04.png diff --git a/Assets/Splatter/TerrainStamps/Hills/Hill04.png.meta b/src/Assets/Splatter/TerrainStamps/Hills/Hill04.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Hills/Hill04.png.meta rename to src/Assets/Splatter/TerrainStamps/Hills/Hill04.png.meta diff --git a/Assets/Splatter/TerrainStamps/Lakes.meta b/src/Assets/Splatter/TerrainStamps/Lakes.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes.meta rename to src/Assets/Splatter/TerrainStamps/Lakes.meta diff --git a/Assets/Splatter/TerrainStamps/Lakes/Lake01.brush b/src/Assets/Splatter/TerrainStamps/Lakes/Lake01.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes/Lake01.brush rename to src/Assets/Splatter/TerrainStamps/Lakes/Lake01.brush diff --git a/Assets/Splatter/TerrainStamps/Lakes/Lake01.brush.meta b/src/Assets/Splatter/TerrainStamps/Lakes/Lake01.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes/Lake01.brush.meta rename to src/Assets/Splatter/TerrainStamps/Lakes/Lake01.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Lakes/Lake01.png b/src/Assets/Splatter/TerrainStamps/Lakes/Lake01.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes/Lake01.png rename to src/Assets/Splatter/TerrainStamps/Lakes/Lake01.png diff --git a/Assets/Splatter/TerrainStamps/Lakes/Lake01.png.meta b/src/Assets/Splatter/TerrainStamps/Lakes/Lake01.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes/Lake01.png.meta rename to src/Assets/Splatter/TerrainStamps/Lakes/Lake01.png.meta diff --git a/Assets/Splatter/TerrainStamps/Lakes/Lake02.brush b/src/Assets/Splatter/TerrainStamps/Lakes/Lake02.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes/Lake02.brush rename to src/Assets/Splatter/TerrainStamps/Lakes/Lake02.brush diff --git a/Assets/Splatter/TerrainStamps/Lakes/Lake02.brush.meta b/src/Assets/Splatter/TerrainStamps/Lakes/Lake02.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes/Lake02.brush.meta rename to src/Assets/Splatter/TerrainStamps/Lakes/Lake02.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Lakes/Lake02.png b/src/Assets/Splatter/TerrainStamps/Lakes/Lake02.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes/Lake02.png rename to src/Assets/Splatter/TerrainStamps/Lakes/Lake02.png diff --git a/Assets/Splatter/TerrainStamps/Lakes/Lake02.png.meta b/src/Assets/Splatter/TerrainStamps/Lakes/Lake02.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Lakes/Lake02.png.meta rename to src/Assets/Splatter/TerrainStamps/Lakes/Lake02.png.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains.meta b/src/Assets/Splatter/TerrainStamps/Mountains.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains.meta rename to src/Assets/Splatter/TerrainStamps/Mountains.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain01.brush b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain01.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain01.brush rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain01.brush diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain01.brush.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain01.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain01.brush.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain01.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain01.png b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain01.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain01.png rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain01.png diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain01.png.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain01.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain01.png.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain01.png.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain02.brush b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain02.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain02.brush rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain02.brush diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain02.brush.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain02.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain02.brush.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain02.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain02.png b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain02.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain02.png rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain02.png diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain02.png.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain02.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain02.png.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain02.png.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain03.brush b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain03.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain03.brush rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain03.brush diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain03.brush.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain03.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain03.brush.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain03.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain03.png b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain03.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain03.png rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain03.png diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain03.png.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain03.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain03.png.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain03.png.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain04.brush b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain04.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain04.brush rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain04.brush diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain04.brush.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain04.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain04.brush.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain04.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain04.png b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain04.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain04.png rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain04.png diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain04.png.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain04.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain04.png.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain04.png.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain05.brush b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain05.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain05.brush rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain05.brush diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain05.brush.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain05.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain05.brush.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain05.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain05.png b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain05.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain05.png rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain05.png diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain05.png.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain05.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain05.png.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain05.png.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain06.brush b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain06.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain06.brush rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain06.brush diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain06.brush.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain06.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain06.brush.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain06.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain06.png b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain06.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain06.png rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain06.png diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain06.png.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain06.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain06.png.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain06.png.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain07.brush b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain07.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain07.brush rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain07.brush diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain07.brush.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain07.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain07.brush.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain07.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain07.png b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain07.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain07.png rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain07.png diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain07.png.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain07.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain07.png.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain07.png.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain08.brush b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain08.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain08.brush rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain08.brush diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain08.brush.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain08.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain08.brush.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain08.brush.meta diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain08.png b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain08.png similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain08.png rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain08.png diff --git a/Assets/Splatter/TerrainStamps/Mountains/Mountain08.png.meta b/src/Assets/Splatter/TerrainStamps/Mountains/Mountain08.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/Mountains/Mountain08.png.meta rename to src/Assets/Splatter/TerrainStamps/Mountains/Mountain08.png.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld.meta b/src/Assets/Splatter/TerrainStamps/RealWorld.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld/Grampian.brush b/src/Assets/Splatter/TerrainStamps/RealWorld/Grampian.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/Grampian.brush rename to src/Assets/Splatter/TerrainStamps/RealWorld/Grampian.brush diff --git a/Assets/Splatter/TerrainStamps/RealWorld/Grampian.brush.meta b/src/Assets/Splatter/TerrainStamps/RealWorld/Grampian.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/Grampian.brush.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld/Grampian.brush.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld/Grampian.png b/src/Assets/Splatter/TerrainStamps/RealWorld/Grampian.png similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/Grampian.png rename to src/Assets/Splatter/TerrainStamps/RealWorld/Grampian.png diff --git a/Assets/Splatter/TerrainStamps/RealWorld/Grampian.png.meta b/src/Assets/Splatter/TerrainStamps/RealWorld/Grampian.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/Grampian.png.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld/Grampian.png.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld/Huntly.brush b/src/Assets/Splatter/TerrainStamps/RealWorld/Huntly.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/Huntly.brush rename to src/Assets/Splatter/TerrainStamps/RealWorld/Huntly.brush diff --git a/Assets/Splatter/TerrainStamps/RealWorld/Huntly.brush.meta b/src/Assets/Splatter/TerrainStamps/RealWorld/Huntly.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/Huntly.brush.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld/Huntly.brush.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld/Huntly.png b/src/Assets/Splatter/TerrainStamps/RealWorld/Huntly.png similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/Huntly.png rename to src/Assets/Splatter/TerrainStamps/RealWorld/Huntly.png diff --git a/Assets/Splatter/TerrainStamps/RealWorld/Huntly.png.meta b/src/Assets/Splatter/TerrainStamps/RealWorld/Huntly.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/Huntly.png.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld/Huntly.png.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.brush b/src/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.brush rename to src/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.brush diff --git a/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.brush.meta b/src/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.brush.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.brush.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.png b/src/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.png similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.png rename to src/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.png diff --git a/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.png.meta b/src/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.png.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld/SkyeNorthEast.png.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.brush b/src/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.brush similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.brush rename to src/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.brush diff --git a/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.brush.meta b/src/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.brush.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.brush.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.brush.meta diff --git a/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.png b/src/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.png similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.png rename to src/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.png diff --git a/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.png.meta b/src/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.png.meta similarity index 100% rename from Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.png.meta rename to src/Assets/Splatter/TerrainStamps/RealWorld/SkyeSouth.png.meta diff --git a/Assets/Splatter/package.json b/src/Assets/Splatter/package.json similarity index 100% rename from Assets/Splatter/package.json rename to src/Assets/Splatter/package.json diff --git a/Assets/Splatter/package.json.meta b/src/Assets/Splatter/package.json.meta similarity index 100% rename from Assets/Splatter/package.json.meta rename to src/Assets/Splatter/package.json.meta diff --git a/LICENSE b/src/LICENSE similarity index 100% rename from LICENSE rename to src/LICENSE diff --git a/Packages/manifest.json b/src/Packages/manifest.json similarity index 100% rename from Packages/manifest.json rename to src/Packages/manifest.json diff --git a/Packages/packages-lock.json b/src/Packages/packages-lock.json similarity index 100% rename from Packages/packages-lock.json rename to src/Packages/packages-lock.json diff --git a/ProjectSettings/AudioManager.asset b/src/ProjectSettings/AudioManager.asset similarity index 100% rename from ProjectSettings/AudioManager.asset rename to src/ProjectSettings/AudioManager.asset diff --git a/ProjectSettings/ClusterInputManager.asset b/src/ProjectSettings/ClusterInputManager.asset similarity index 100% rename from ProjectSettings/ClusterInputManager.asset rename to src/ProjectSettings/ClusterInputManager.asset diff --git a/ProjectSettings/DynamicsManager.asset b/src/ProjectSettings/DynamicsManager.asset similarity index 100% rename from ProjectSettings/DynamicsManager.asset rename to src/ProjectSettings/DynamicsManager.asset diff --git a/ProjectSettings/EditorBuildSettings.asset b/src/ProjectSettings/EditorBuildSettings.asset similarity index 100% rename from ProjectSettings/EditorBuildSettings.asset rename to src/ProjectSettings/EditorBuildSettings.asset diff --git a/ProjectSettings/EditorSettings.asset b/src/ProjectSettings/EditorSettings.asset similarity index 100% rename from ProjectSettings/EditorSettings.asset rename to src/ProjectSettings/EditorSettings.asset diff --git a/ProjectSettings/GraphicsSettings.asset b/src/ProjectSettings/GraphicsSettings.asset similarity index 100% rename from ProjectSettings/GraphicsSettings.asset rename to src/ProjectSettings/GraphicsSettings.asset diff --git a/ProjectSettings/InputManager.asset b/src/ProjectSettings/InputManager.asset similarity index 100% rename from ProjectSettings/InputManager.asset rename to src/ProjectSettings/InputManager.asset diff --git a/ProjectSettings/NavMeshAreas.asset b/src/ProjectSettings/NavMeshAreas.asset similarity index 100% rename from ProjectSettings/NavMeshAreas.asset rename to src/ProjectSettings/NavMeshAreas.asset diff --git a/ProjectSettings/PackageManagerSettings.asset b/src/ProjectSettings/PackageManagerSettings.asset similarity index 100% rename from ProjectSettings/PackageManagerSettings.asset rename to src/ProjectSettings/PackageManagerSettings.asset diff --git a/ProjectSettings/Physics2DSettings.asset b/src/ProjectSettings/Physics2DSettings.asset similarity index 100% rename from ProjectSettings/Physics2DSettings.asset rename to src/ProjectSettings/Physics2DSettings.asset diff --git a/ProjectSettings/PresetManager.asset b/src/ProjectSettings/PresetManager.asset similarity index 100% rename from ProjectSettings/PresetManager.asset rename to src/ProjectSettings/PresetManager.asset diff --git a/ProjectSettings/ProjectSettings.asset b/src/ProjectSettings/ProjectSettings.asset similarity index 100% rename from ProjectSettings/ProjectSettings.asset rename to src/ProjectSettings/ProjectSettings.asset diff --git a/ProjectSettings/ProjectVersion.txt b/src/ProjectSettings/ProjectVersion.txt similarity index 100% rename from ProjectSettings/ProjectVersion.txt rename to src/ProjectSettings/ProjectVersion.txt diff --git a/ProjectSettings/QualitySettings.asset b/src/ProjectSettings/QualitySettings.asset similarity index 100% rename from ProjectSettings/QualitySettings.asset rename to src/ProjectSettings/QualitySettings.asset diff --git a/ProjectSettings/SceneTemplateSettings.json b/src/ProjectSettings/SceneTemplateSettings.json similarity index 100% rename from ProjectSettings/SceneTemplateSettings.json rename to src/ProjectSettings/SceneTemplateSettings.json diff --git a/ProjectSettings/TagManager.asset b/src/ProjectSettings/TagManager.asset similarity index 100% rename from ProjectSettings/TagManager.asset rename to src/ProjectSettings/TagManager.asset diff --git a/ProjectSettings/TimeManager.asset b/src/ProjectSettings/TimeManager.asset similarity index 100% rename from ProjectSettings/TimeManager.asset rename to src/ProjectSettings/TimeManager.asset diff --git a/ProjectSettings/TimelineSettings.asset b/src/ProjectSettings/TimelineSettings.asset similarity index 100% rename from ProjectSettings/TimelineSettings.asset rename to src/ProjectSettings/TimelineSettings.asset diff --git a/ProjectSettings/UnityConnectSettings.asset b/src/ProjectSettings/UnityConnectSettings.asset similarity index 100% rename from ProjectSettings/UnityConnectSettings.asset rename to src/ProjectSettings/UnityConnectSettings.asset diff --git a/ProjectSettings/VFXManager.asset b/src/ProjectSettings/VFXManager.asset similarity index 100% rename from ProjectSettings/VFXManager.asset rename to src/ProjectSettings/VFXManager.asset diff --git a/ProjectSettings/VersionControlSettings.asset b/src/ProjectSettings/VersionControlSettings.asset similarity index 100% rename from ProjectSettings/VersionControlSettings.asset rename to src/ProjectSettings/VersionControlSettings.asset diff --git a/ProjectSettings/XRSettings.asset b/src/ProjectSettings/XRSettings.asset similarity index 100% rename from ProjectSettings/XRSettings.asset rename to src/ProjectSettings/XRSettings.asset