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