diff --git a/Cogwheel/Assembly-CSharp.csproj b/Cogwheel/Assembly-CSharp.csproj
index d579197..33a7c7b 100644
--- a/Cogwheel/Assembly-CSharp.csproj
+++ b/Cogwheel/Assembly-CSharp.csproj
@@ -45,15 +45,17 @@
+
-
+
+
diff --git a/Cogwheel/Assets/Cogwheel/Prefabs.meta b/Cogwheel/Assets/Cogwheel/Prefabs.meta
new file mode 100644
index 0000000..0b68499
--- /dev/null
+++ b/Cogwheel/Assets/Cogwheel/Prefabs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 11fed44903539a70fbb65479ddb880f6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Cogwheel/Assets/Cogwheel/Prefabs/Cogwheel.prefab b/Cogwheel/Assets/Cogwheel/Prefabs/Cogwheel.prefab
new file mode 100644
index 0000000..ec2e8e8
--- /dev/null
+++ b/Cogwheel/Assets/Cogwheel/Prefabs/Cogwheel.prefab
@@ -0,0 +1,109 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6812011641737714985
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2139542304717927576}
+ - component: {fileID: 8772092795256083104}
+ m_Layer: 0
+ m_Name: Cogwheel
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2139542304717927576
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6812011641737714985}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 6.010771, y: 13.350267, z: 7.386556}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 3643545667400016780}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &8772092795256083104
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6812011641737714985}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0ee15c0b36cc41568cc5ab4e83331046, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1001 &6867388745892155766
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 2139542304717927576}
+ m_Modifications:
+ - target: {fileID: 1524229190056341568, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_Name
+ value: CogwheelConsole
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 6.010771
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 13.350267
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 7.386556
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+--- !u!4 &3643545667400016780 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 7916664963331027706, guid: 711d6fd55c44569cd91d159dcc393ac8, type: 3}
+ m_PrefabInstance: {fileID: 6867388745892155766}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Cogwheel/Assets/Cogwheel/Prefabs/Cogwheel.prefab.meta b/Cogwheel/Assets/Cogwheel/Prefabs/Cogwheel.prefab.meta
new file mode 100644
index 0000000..637704f
--- /dev/null
+++ b/Cogwheel/Assets/Cogwheel/Prefabs/Cogwheel.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: bfba73797df1fe94c91fd68237bdb897
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Cogwheel/Assets/Cogwheel/Scripts/COGWHEEL.cs b/Cogwheel/Assets/Cogwheel/Scripts/COGWHEEL.cs
index 1c6058f..296b4f2 100644
--- a/Cogwheel/Assets/Cogwheel/Scripts/COGWHEEL.cs
+++ b/Cogwheel/Assets/Cogwheel/Scripts/COGWHEEL.cs
@@ -1,28 +1,21 @@
using System.Collections.Generic;
using OpenCover.Framework.Model;
+using Unity.VisualScripting;
using UnityEngine;
namespace Cogwheel
{
public static class COGWHEEL
{
- public static ICommandsManager CommandsManager { get; }
- public static CogwheelSettings Settings { get; }
+ public static ICommandsManager CommandsManager { get; private set; }
+ public static CogwheelSettings Settings { get; private set; }
public static CogwheelConsole Console { get; private set; }
-
- static Color _color = Color.blue;
- static COGWHEEL()
+ public static void Start(CogwheelSettings settings, ICommandsManager commandsManager, CogwheelConsole console)
{
- Settings = Resources.Load("CogwheelSettings");
- if (Settings is null)
- {
- Debug.LogError("CogwheelSettings not found. Make sure you have a CogwheelSettings asset in a Resources folder.");
- return;
- }
- Console = GameObject.Instantiate(Settings.CogwheelConsolePrefab).GetComponent();
-
- CommandsManager = new CommandsManager(Console);
+ Settings = settings;
+ CommandsManager = commandsManager;
+ Console = console;
}
#region BUILT-IN COMMANDS
@@ -106,7 +99,5 @@ namespace Cogwheel
}
#endregion
-
-
}
}
\ No newline at end of file
diff --git a/Cogwheel/Assets/Cogwheel/Scripts/CogwheelInitializer.cs b/Cogwheel/Assets/Cogwheel/Scripts/CogwheelInitializer.cs
new file mode 100644
index 0000000..b7161da
--- /dev/null
+++ b/Cogwheel/Assets/Cogwheel/Scripts/CogwheelInitializer.cs
@@ -0,0 +1,36 @@
+using System;
+using Unity.VisualScripting;
+using UnityEngine;
+
+namespace Cogwheel
+{
+ public class CogwheelInitializer : MonoBehaviour
+ {
+
+ private ICommandsManager _commandsManager;
+ private CogwheelConsole _console;
+ private CogwheelSettings _settings;
+
+ private void Start()
+ {
+ DontDestroyOnLoad(this);
+ if (!LoadSettings()) return;
+ _console = GetComponentInChildren();
+ _commandsManager = new CommandsManager(_console);
+ COGWHEEL.Start(_settings, _commandsManager, _console);
+ }
+
+ private bool LoadSettings()
+ {
+ var settings = Resources.Load("CogwheelSettings");
+ if (settings is null)
+ {
+ Debug.LogError("CogwheelSettings not found. Make sure you have a CogwheelSettings asset in a Resources folder.");
+ return false;
+ }
+
+ _settings = settings;
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Cogwheel/Assets/Cogwheel/Scripts/CogwheelInitializer.cs.meta b/Cogwheel/Assets/Cogwheel/Scripts/CogwheelInitializer.cs.meta
new file mode 100644
index 0000000..2fe2c98
--- /dev/null
+++ b/Cogwheel/Assets/Cogwheel/Scripts/CogwheelInitializer.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 0ee15c0b36cc41568cc5ab4e83331046
+timeCreated: 1728005805
\ No newline at end of file
diff --git a/Cogwheel/Assets/Cogwheel/Scripts/CogwheelSettings.cs b/Cogwheel/Assets/Cogwheel/Scripts/CogwheelSettings.cs
index bc2bf96..4545698 100644
--- a/Cogwheel/Assets/Cogwheel/Scripts/CogwheelSettings.cs
+++ b/Cogwheel/Assets/Cogwheel/Scripts/CogwheelSettings.cs
@@ -5,6 +5,8 @@ namespace Cogwheel
[CreateAssetMenu(fileName = "CogwheelSettings", menuName = "Cogwheel/CogwheelSettings", order = 0)]
public class CogwheelSettings : ScriptableObject
{
- public CogwheelConsole CogwheelConsolePrefab;
+ [Header("Console Settings")]
+ public bool EnableConsole = true;
+ public KeyCode ConsoleToggleKey = KeyCode.Tilde;
}
}
\ No newline at end of file
diff --git a/Cogwheel/Assets/Cogwheel/Test.cs b/Cogwheel/Assets/Cogwheel/Test.cs
deleted file mode 100644
index 4a7b347..0000000
--- a/Cogwheel/Assets/Cogwheel/Test.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using Cogwheel;
-using UnityEngine;
-
-public class Test : MonoBehaviour
-{
- // Start is called before the first frame update
- void Start()
- {
- Debug.Log(COGWHEEL.Settings.CogwheelConsolePrefab.name);
- //COGWHEEL.CommandsManager.SceneContext = gameObject;
- }
-
- [Command(Description = "Test command.")]
- private void TestCommand()
- {
-
- }
-
-}
diff --git a/Cogwheel/Assets/Cogwheel/Test.cs.meta b/Cogwheel/Assets/Cogwheel/Test.cs.meta
deleted file mode 100644
index 7e53609..0000000
--- a/Cogwheel/Assets/Cogwheel/Test.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 4a61e49036c312c83a47481446b0c01a
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Cogwheel/Assets/Cogwheel/UI/CogwheelConsole.cs b/Cogwheel/Assets/Cogwheel/UI/CogwheelConsole.cs
index 00e8106..d776e08 100644
--- a/Cogwheel/Assets/Cogwheel/UI/CogwheelConsole.cs
+++ b/Cogwheel/Assets/Cogwheel/UI/CogwheelConsole.cs
@@ -12,27 +12,73 @@ public class CogwheelConsole : MonoBehaviour
private VisualElement _consoleRoot;
private TextField _inputField;
private Label _outputLabel;
+ private ScrollView _scrollView;
private void Start()
{
_consoleRoot = uiDocument.rootVisualElement;
_inputField = _consoleRoot.Q("InputTextField");
_outputLabel = _consoleRoot.Q