From ad6946e76f3d516c9caeca5ac25be96b0205c3e0 Mon Sep 17 00:00:00 2001 From: WeylonSantana Date: Tue, 26 Nov 2024 16:39:41 -0300 Subject: [PATCH] started client fragmentation --- .../.gitignore | 0 .../Core/Audio.cs | 0 .../Core/Bootstrapper.cs | 0 .../Core/ClientCommandLineOptions.cs | 0 .../Core/ClientContext.cs | 0 .../Core/Controls/ControlEnum.cs | 0 .../Core/Controls/ControlMap.cs | 0 .../Core/Controls/ControlValue.cs | 0 .../Core/Controls/Controls.cs | 0 .../Core/Fade.cs | 0 .../Core/Graphics.cs | 0 .../Core/IClientContext.cs | 0 .../Core/IPlatformRunner.cs | 0 .../Core/Input.cs | 0 .../Core/Main.cs | 0 .../Core/Sounds/MapSound.cs | 0 .../Core/Sounds/Sound.cs | 0 .../Entities/Animation.cs | 0 .../Entities/ChatBubble.cs | 0 .../Entities/Critter.cs | 0 .../Entities/Dash.cs | 0 .../Entities/Entity.cs | 2 +- .../Entities/Events/Dialog.cs | 0 .../Entities/Events/Event.cs | 0 .../Entities/FriendInstance.cs | 0 .../Entities/HotbarInstance.cs | 0 .../Entities/PartyMember.cs | 0 .../Entities/Player.cs | 2 +- .../Entities/Projectiles/Projectile.cs | 0 .../Entities/Projectiles/ProjectileSpawns.cs | 0 .../Entities/Resource.cs | 0 .../Entities/Status.cs | 0 .../General/Globals.cs | 0 .../General/Time.cs | 0 Intersect.Client.Core/GlobalSuppressions.cs | 21 ++ .../Icon.bmp | Bin .../Interface/Debugging/DebugWindow.cs | 2 +- .../Interface/Game/Admin/AdminWindow.cs | 2 +- .../Interface/Game/Admin/BanMuteBox.cs | 2 +- .../Interface/Game/AnnouncementWindow.cs | 0 .../Interface/Game/Bag/BagItem.cs | 0 .../Interface/Game/Bag/BagWindow.cs | 2 +- .../Interface/Game/Bank/BankItem.cs | 2 +- .../Interface/Game/Bank/BankWindow.cs | 2 +- .../Game/Character/CharacterWindow.cs | 2 +- .../Interface/Game/Character/EquipmentItem.cs | 0 .../Interface/Game/Chat/Chatbox.cs | 2 +- .../Interface/Game/Chat/ChatboxMsg.cs | 0 .../Interface/Game/Crafting/CraftingWindow.cs | 2 +- .../Interface/Game/Crafting/RecipeItem.cs | 0 .../Components/ComponentBase.cs | 0 .../Components/DescriptionComponent.cs | 0 .../Components/DividerComponent.cs | 0 .../Components/HeaderComponent.cs | 0 .../Components/RowContainerComponent.cs | 0 .../DescriptionWindowBase.cs | 0 .../ItemDescriptionWindow.cs | 2 +- .../SpellDescriptionWindow.cs | 2 +- .../Interface/Game/Draggable.cs | 0 .../Interface/Game/EntityPanel/EntityBox.cs | 2 +- .../Game/EntityPanel/PlayerStatusWindow.cs | 0 .../Interface/Game/EntityPanel/SpellStatus.cs | 0 .../Interface/Game/EscapeMenu.cs | 2 +- .../Interface/Game/EventWindow.cs | 2 +- .../Interface/Game/Friends/FriendsRow.cs | 2 +- .../Interface/Game/Friends/FriendsWindow.cs | 2 +- .../Interface/Game/GameInterface.cs | 0 .../Interface/Game/GuildWindow.cs | 2 +- .../Interface/Game/Hotbar/HotBar.cs | 0 .../Interface/Game/Hotbar/HotbarItem.cs | 2 +- .../Interface/Game/Inventory/InventoryItem.cs | 2 +- .../Game/Inventory/InventoryWindow.cs | 2 +- .../Interface/Game/MapItem/MapItemIcon.cs | 0 .../Interface/Game/MapItem/MapItemWindow.cs | 2 +- .../Interface/Game/Menu.cs | 2 +- .../Interface/Game/PartyWindow.cs | 2 +- .../Interface/Game/PictureWindow.cs | 0 .../Interface/Game/QuestOfferWindow.cs | 2 +- .../Interface/Game/QuestsWindow.cs | 2 +- .../Interface/Game/Shop/ShopItem.cs | 2 +- .../Interface/Game/Shop/ShopWindow.cs | 2 +- .../Interface/Game/Spells/SpellItem.cs | 0 .../Interface/Game/Spells/SpellsWindow.cs | 2 +- .../Interface/Game/Trades/TradeItem.cs | 0 .../Interface/Game/Trades/TradeSegment.cs | 2 +- .../Interface/Game/Trades/TradingWindow.cs | 2 +- .../Interface/Game/Typewriting/Typewriter.cs | 0 .../Interface/Interface.cs | 0 .../Interface/Menu/CreateCharacterWindow.cs | 2 +- .../Interface/Menu/CreditsParser.cs | 0 .../Interface/Menu/CreditsWindow.cs | 2 +- .../Interface/Menu/ForgotPasswordWindow.cs | 2 +- .../Interface/Menu/IMainMenuWindow.cs | 0 .../Interface/Menu/LoginWindow.cs | 2 +- .../Interface/Menu/MainMenu.cs | 0 .../Interface/Menu/MainMenuWindow.Designer.cs | 0 .../Interface/Menu/MainMenuWindow.cs | 2 +- .../Interface/Menu/MenuGuiBase.cs | 2 +- .../Interface/Menu/RegistrationWindow.cs | 2 +- .../Interface/Menu/ResetPasswordWindow.cs | 2 +- .../Interface/Menu/SelectCharacterWindow.cs | 2 +- .../Interface/MutableInterface.cs | 0 .../Interface/Shared/ErrorWindow.cs | 2 +- .../Interface/Shared/InputBox.cs | 2 +- .../Interface/Shared/SettingsWindow.cs | 2 +- .../Interface/Window.cs | 0 .../Intersect.Client.Core.csproj | 113 +++++++ .../Items/Item.cs | 0 .../Items/MapItemInstance.cs | 0 .../LICENSE.md | 0 .../Localization/Strings.cs | 2 +- .../Maps/ActionMessage.cs | 0 .../Maps/MapAnimation.cs | 0 .../Maps/MapGrid.cs | 0 .../Maps/MapInstance.cs | 6 +- .../Maps/WeatherParticle.cs | 0 .../MonoGame/Audio/MonoAudioInstance.cs | 0 .../MonoGame/Audio/MonoMusicInstance.cs | 0 .../MonoGame/Audio/MonoMusicSource.cs | 2 +- .../MonoGame/Audio/MonoSoundInstance.cs | 0 .../MonoGame/Audio/MonoSoundSource.cs | 2 +- .../MonoGame/Database/MonoDatabase.cs | 0 .../File Management/MonoContentManager.cs | 2 +- .../MonoGame/Graphics/MonoFont.cs | 0 .../MonoGame/Graphics/MonoRenderTexture.cs | 0 .../MonoGame/Graphics/MonoRenderer.cs | 2 +- .../MonoGame/Graphics/MonoShader.cs | 0 .../MonoGame/Graphics/MonoTexture.cs | 2 +- .../MonoGame/Graphics/MonoTileBuffer.cs | 0 .../MonoGame/Input/MonoClipboard.cs | 0 .../MonoGame/Input/MonoInput.cs | 0 .../MonoGame/IntersectGame.cs | 2 +- .../MonoGame/NativeInterop/DllLoader.cs | 0 .../MonoGame/NativeInterop/FunctionLoader.cs | 0 .../MonoGame/NativeInterop/KnownLibrary.cs | 0 .../MonoGame/NativeInterop/Platform.cs | 0 .../MonoGame/NativeInterop/PlatformHelper.cs | 0 .../MonoGame/NativeInterop/Sdl2.Rect.cs | 0 .../MonoGame/NativeInterop/Sdl2.Video.cs | 0 .../MonoGame/NativeInterop/Sdl2.cs | 0 .../MonoGame/Network/MonoSocket.cs | 2 +- .../Networking/Network.cs | 2 +- .../Networking/NetworkStatus.cs | 2 +- .../Networking/PacketHandler.cs | 2 +- .../Networking/PacketSender.cs | 0 .../ServerStatusResponsePacketHandler.cs | 0 .../Plugins/Audio/AudioManager.cs | 0 .../Plugins/Contexts/ClientPluginContext.cs | 0 .../Plugins/Helpers/ClientLifecycleHelper.cs | 0 .../Plugins/Helpers/ClientNetworkHelper.cs | 0 .../Plugins/Helpers/PluginPacketSender.cs | 0 Intersect.Client.Core/Program.cs | 310 +++++++++++++++++ .../Properties/Resources.Designer.cs | 6 +- .../Properties/Resources.resx | 0 .../Properties/launchSettings.json | 0 .../Resources/MonoGame.Framework.dll.config | 0 .../Resources/Shaders/radialgradient.xnb | Bin .../Resources/openal32.dll | Bin .../Resources/runtimes/.gitignore | 0 .../Spells/Spell.cs | 0 .../ThirdParty/Steam.Attributes.cs | 0 .../ThirdParty/Steam.NativeInterop.cs | 0 .../ThirdParty/Steam.cs | 0 .../Utilities/MathHelper.cs | 0 Intersect.Client/GlobalSuppressions.cs | 22 +- Intersect.Client/Intersect.Client.Core.csproj | 115 +++++++ Intersect.Client/Intersect.Client.csproj | 140 ++------ Intersect.Client/Program.cs | 312 +----------------- .../runtimes/linux-x64/native/.gitkeep | 0 .../Resources/runtimes/osx/native/.gitkeep | 0 .../runtimes/win-x64/native/.gitkeep | 0 .../Intersect.SinglePlayer.csproj | 2 +- Intersect.SinglePlayer/Program.cs | 4 +- .../Intersect.Tests.Client.csproj | 8 +- Intersect.sln | 24 +- 175 files changed, 671 insertions(+), 522 deletions(-) rename {Intersect.Client => Intersect.Client.Core}/.gitignore (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Audio.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Bootstrapper.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/ClientCommandLineOptions.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/ClientContext.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Controls/ControlEnum.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Controls/ControlMap.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Controls/ControlValue.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Controls/Controls.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Fade.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Graphics.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/IClientContext.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/IPlatformRunner.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Input.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Main.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Sounds/MapSound.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Core/Sounds/Sound.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Animation.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/ChatBubble.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Critter.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Dash.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Entity.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Events/Dialog.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Events/Event.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/FriendInstance.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/HotbarInstance.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/PartyMember.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Player.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Projectiles/Projectile.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Projectiles/ProjectileSpawns.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Resource.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Entities/Status.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/General/Globals.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/General/Time.cs (100%) create mode 100644 Intersect.Client.Core/GlobalSuppressions.cs rename {Intersect.Client => Intersect.Client.Core}/Icon.bmp (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Debugging/DebugWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Admin/AdminWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Admin/BanMuteBox.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/AnnouncementWindow.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Bag/BagItem.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Bag/BagWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Bank/BankItem.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Bank/BankWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Character/CharacterWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Character/EquipmentItem.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Chat/Chatbox.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Chat/ChatboxMsg.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Crafting/CraftingWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Crafting/RecipeItem.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/DescriptionWindows/Components/ComponentBase.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/DescriptionWindows/Components/DescriptionComponent.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/DescriptionWindows/Components/DividerComponent.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/DescriptionWindows/Components/HeaderComponent.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/DescriptionWindows/Components/RowContainerComponent.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/DescriptionWindows/DescriptionWindowBase.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Draggable.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/EntityPanel/EntityBox.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/EntityPanel/PlayerStatusWindow.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/EntityPanel/SpellStatus.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/EscapeMenu.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/EventWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Friends/FriendsRow.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Friends/FriendsWindow.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/GameInterface.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/GuildWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Hotbar/HotBar.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Hotbar/HotbarItem.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Inventory/InventoryItem.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Inventory/InventoryWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/MapItem/MapItemIcon.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/MapItem/MapItemWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Menu.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/PartyWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/PictureWindow.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/QuestOfferWindow.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/QuestsWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Shop/ShopItem.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Shop/ShopWindow.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Spells/SpellItem.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Spells/SpellsWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Trades/TradeItem.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Trades/TradeSegment.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Trades/TradingWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Game/Typewriting/Typewriter.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Interface.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/CreateCharacterWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/CreditsParser.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/CreditsWindow.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/ForgotPasswordWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/IMainMenuWindow.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/LoginWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/MainMenu.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/MainMenuWindow.Designer.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/MainMenuWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/MenuGuiBase.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/RegistrationWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/ResetPasswordWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Menu/SelectCharacterWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/MutableInterface.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Shared/ErrorWindow.cs (95%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Shared/InputBox.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Shared/SettingsWindow.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Interface/Window.cs (100%) create mode 100644 Intersect.Client.Core/Intersect.Client.Core.csproj rename {Intersect.Client => Intersect.Client.Core}/Items/Item.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Items/MapItemInstance.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/LICENSE.md (100%) rename {Intersect.Client => Intersect.Client.Core}/Localization/Strings.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Maps/ActionMessage.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Maps/MapAnimation.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Maps/MapGrid.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Maps/MapInstance.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Maps/WeatherParticle.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Audio/MonoAudioInstance.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Audio/MonoMusicInstance.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Audio/MonoMusicSource.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Audio/MonoSoundInstance.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Audio/MonoSoundSource.cs (98%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Database/MonoDatabase.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/File Management/MonoContentManager.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Graphics/MonoFont.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Graphics/MonoRenderTexture.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Graphics/MonoRenderer.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Graphics/MonoShader.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Graphics/MonoTexture.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Graphics/MonoTileBuffer.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Input/MonoClipboard.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Input/MonoInput.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/IntersectGame.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/NativeInterop/DllLoader.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/NativeInterop/FunctionLoader.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/NativeInterop/KnownLibrary.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/NativeInterop/Platform.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/NativeInterop/PlatformHelper.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/NativeInterop/Sdl2.Rect.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/NativeInterop/Sdl2.Video.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/NativeInterop/Sdl2.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/MonoGame/Network/MonoSocket.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Networking/Network.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Networking/NetworkStatus.cs (96%) rename {Intersect.Client => Intersect.Client.Core}/Networking/PacketHandler.cs (99%) rename {Intersect.Client => Intersect.Client.Core}/Networking/PacketSender.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Networking/UnconnectedPacketHandlers/ServerStatusResponsePacketHandler.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Plugins/Audio/AudioManager.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Plugins/Contexts/ClientPluginContext.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Plugins/Helpers/ClientLifecycleHelper.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Plugins/Helpers/ClientNetworkHelper.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Plugins/Helpers/PluginPacketSender.cs (100%) create mode 100644 Intersect.Client.Core/Program.cs rename {Intersect.Client => Intersect.Client.Core}/Properties/Resources.Designer.cs (93%) rename {Intersect.Client => Intersect.Client.Core}/Properties/Resources.resx (100%) rename {Intersect.Client => Intersect.Client.Core}/Properties/launchSettings.json (100%) rename {Intersect.Client => Intersect.Client.Core}/Resources/MonoGame.Framework.dll.config (100%) rename {Intersect.Client => Intersect.Client.Core}/Resources/Shaders/radialgradient.xnb (100%) rename {Intersect.Client => Intersect.Client.Core}/Resources/openal32.dll (100%) rename {Intersect.Client => Intersect.Client.Core}/Resources/runtimes/.gitignore (100%) rename {Intersect.Client => Intersect.Client.Core}/Spells/Spell.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/ThirdParty/Steam.Attributes.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/ThirdParty/Steam.NativeInterop.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/ThirdParty/Steam.cs (100%) rename {Intersect.Client => Intersect.Client.Core}/Utilities/MathHelper.cs (100%) create mode 100644 Intersect.Client/Intersect.Client.Core.csproj delete mode 100644 Intersect.Client/Resources/runtimes/linux-x64/native/.gitkeep delete mode 100644 Intersect.Client/Resources/runtimes/osx/native/.gitkeep delete mode 100644 Intersect.Client/Resources/runtimes/win-x64/native/.gitkeep diff --git a/Intersect.Client/.gitignore b/Intersect.Client.Core/.gitignore similarity index 100% rename from Intersect.Client/.gitignore rename to Intersect.Client.Core/.gitignore diff --git a/Intersect.Client/Core/Audio.cs b/Intersect.Client.Core/Core/Audio.cs similarity index 100% rename from Intersect.Client/Core/Audio.cs rename to Intersect.Client.Core/Core/Audio.cs diff --git a/Intersect.Client/Core/Bootstrapper.cs b/Intersect.Client.Core/Core/Bootstrapper.cs similarity index 100% rename from Intersect.Client/Core/Bootstrapper.cs rename to Intersect.Client.Core/Core/Bootstrapper.cs diff --git a/Intersect.Client/Core/ClientCommandLineOptions.cs b/Intersect.Client.Core/Core/ClientCommandLineOptions.cs similarity index 100% rename from Intersect.Client/Core/ClientCommandLineOptions.cs rename to Intersect.Client.Core/Core/ClientCommandLineOptions.cs diff --git a/Intersect.Client/Core/ClientContext.cs b/Intersect.Client.Core/Core/ClientContext.cs similarity index 100% rename from Intersect.Client/Core/ClientContext.cs rename to Intersect.Client.Core/Core/ClientContext.cs diff --git a/Intersect.Client/Core/Controls/ControlEnum.cs b/Intersect.Client.Core/Core/Controls/ControlEnum.cs similarity index 100% rename from Intersect.Client/Core/Controls/ControlEnum.cs rename to Intersect.Client.Core/Core/Controls/ControlEnum.cs diff --git a/Intersect.Client/Core/Controls/ControlMap.cs b/Intersect.Client.Core/Core/Controls/ControlMap.cs similarity index 100% rename from Intersect.Client/Core/Controls/ControlMap.cs rename to Intersect.Client.Core/Core/Controls/ControlMap.cs diff --git a/Intersect.Client/Core/Controls/ControlValue.cs b/Intersect.Client.Core/Core/Controls/ControlValue.cs similarity index 100% rename from Intersect.Client/Core/Controls/ControlValue.cs rename to Intersect.Client.Core/Core/Controls/ControlValue.cs diff --git a/Intersect.Client/Core/Controls/Controls.cs b/Intersect.Client.Core/Core/Controls/Controls.cs similarity index 100% rename from Intersect.Client/Core/Controls/Controls.cs rename to Intersect.Client.Core/Core/Controls/Controls.cs diff --git a/Intersect.Client/Core/Fade.cs b/Intersect.Client.Core/Core/Fade.cs similarity index 100% rename from Intersect.Client/Core/Fade.cs rename to Intersect.Client.Core/Core/Fade.cs diff --git a/Intersect.Client/Core/Graphics.cs b/Intersect.Client.Core/Core/Graphics.cs similarity index 100% rename from Intersect.Client/Core/Graphics.cs rename to Intersect.Client.Core/Core/Graphics.cs diff --git a/Intersect.Client/Core/IClientContext.cs b/Intersect.Client.Core/Core/IClientContext.cs similarity index 100% rename from Intersect.Client/Core/IClientContext.cs rename to Intersect.Client.Core/Core/IClientContext.cs diff --git a/Intersect.Client/Core/IPlatformRunner.cs b/Intersect.Client.Core/Core/IPlatformRunner.cs similarity index 100% rename from Intersect.Client/Core/IPlatformRunner.cs rename to Intersect.Client.Core/Core/IPlatformRunner.cs diff --git a/Intersect.Client/Core/Input.cs b/Intersect.Client.Core/Core/Input.cs similarity index 100% rename from Intersect.Client/Core/Input.cs rename to Intersect.Client.Core/Core/Input.cs diff --git a/Intersect.Client/Core/Main.cs b/Intersect.Client.Core/Core/Main.cs similarity index 100% rename from Intersect.Client/Core/Main.cs rename to Intersect.Client.Core/Core/Main.cs diff --git a/Intersect.Client/Core/Sounds/MapSound.cs b/Intersect.Client.Core/Core/Sounds/MapSound.cs similarity index 100% rename from Intersect.Client/Core/Sounds/MapSound.cs rename to Intersect.Client.Core/Core/Sounds/MapSound.cs diff --git a/Intersect.Client/Core/Sounds/Sound.cs b/Intersect.Client.Core/Core/Sounds/Sound.cs similarity index 100% rename from Intersect.Client/Core/Sounds/Sound.cs rename to Intersect.Client.Core/Core/Sounds/Sound.cs diff --git a/Intersect.Client/Entities/Animation.cs b/Intersect.Client.Core/Entities/Animation.cs similarity index 100% rename from Intersect.Client/Entities/Animation.cs rename to Intersect.Client.Core/Entities/Animation.cs diff --git a/Intersect.Client/Entities/ChatBubble.cs b/Intersect.Client.Core/Entities/ChatBubble.cs similarity index 100% rename from Intersect.Client/Entities/ChatBubble.cs rename to Intersect.Client.Core/Entities/ChatBubble.cs diff --git a/Intersect.Client/Entities/Critter.cs b/Intersect.Client.Core/Entities/Critter.cs similarity index 100% rename from Intersect.Client/Entities/Critter.cs rename to Intersect.Client.Core/Entities/Critter.cs diff --git a/Intersect.Client/Entities/Dash.cs b/Intersect.Client.Core/Entities/Dash.cs similarity index 100% rename from Intersect.Client/Entities/Dash.cs rename to Intersect.Client.Core/Entities/Dash.cs diff --git a/Intersect.Client/Entities/Entity.cs b/Intersect.Client.Core/Entities/Entity.cs similarity index 99% rename from Intersect.Client/Entities/Entity.cs rename to Intersect.Client.Core/Entities/Entity.cs index c9b10acaa4..37a1557290 100644 --- a/Intersect.Client/Entities/Entity.cs +++ b/Intersect.Client.Core/Entities/Entity.cs @@ -9,7 +9,7 @@ using Intersect.Client.Framework.Maps; using Intersect.Client.General; using Intersect.Client.Items; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Spells; using Intersect.Enums; using Intersect.GameObjects; diff --git a/Intersect.Client/Entities/Events/Dialog.cs b/Intersect.Client.Core/Entities/Events/Dialog.cs similarity index 100% rename from Intersect.Client/Entities/Events/Dialog.cs rename to Intersect.Client.Core/Entities/Events/Dialog.cs diff --git a/Intersect.Client/Entities/Events/Event.cs b/Intersect.Client.Core/Entities/Events/Event.cs similarity index 100% rename from Intersect.Client/Entities/Events/Event.cs rename to Intersect.Client.Core/Entities/Events/Event.cs diff --git a/Intersect.Client/Entities/FriendInstance.cs b/Intersect.Client.Core/Entities/FriendInstance.cs similarity index 100% rename from Intersect.Client/Entities/FriendInstance.cs rename to Intersect.Client.Core/Entities/FriendInstance.cs diff --git a/Intersect.Client/Entities/HotbarInstance.cs b/Intersect.Client.Core/Entities/HotbarInstance.cs similarity index 100% rename from Intersect.Client/Entities/HotbarInstance.cs rename to Intersect.Client.Core/Entities/HotbarInstance.cs diff --git a/Intersect.Client/Entities/PartyMember.cs b/Intersect.Client.Core/Entities/PartyMember.cs similarity index 100% rename from Intersect.Client/Entities/PartyMember.cs rename to Intersect.Client.Core/Entities/PartyMember.cs diff --git a/Intersect.Client/Entities/Player.cs b/Intersect.Client.Core/Entities/Player.cs similarity index 99% rename from Intersect.Client/Entities/Player.cs rename to Intersect.Client.Core/Entities/Player.cs index 798a256553..f59e46e135 100644 --- a/Intersect.Client/Entities/Player.cs +++ b/Intersect.Client.Core/Entities/Player.cs @@ -10,7 +10,7 @@ using Intersect.Client.Interface.Game.EntityPanel; using Intersect.Client.Interface.Shared; using Intersect.Client.Items; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Maps; using Intersect.Client.Networking; using Intersect.Config.Guilds; diff --git a/Intersect.Client/Entities/Projectiles/Projectile.cs b/Intersect.Client.Core/Entities/Projectiles/Projectile.cs similarity index 100% rename from Intersect.Client/Entities/Projectiles/Projectile.cs rename to Intersect.Client.Core/Entities/Projectiles/Projectile.cs diff --git a/Intersect.Client/Entities/Projectiles/ProjectileSpawns.cs b/Intersect.Client.Core/Entities/Projectiles/ProjectileSpawns.cs similarity index 100% rename from Intersect.Client/Entities/Projectiles/ProjectileSpawns.cs rename to Intersect.Client.Core/Entities/Projectiles/ProjectileSpawns.cs diff --git a/Intersect.Client/Entities/Resource.cs b/Intersect.Client.Core/Entities/Resource.cs similarity index 100% rename from Intersect.Client/Entities/Resource.cs rename to Intersect.Client.Core/Entities/Resource.cs diff --git a/Intersect.Client/Entities/Status.cs b/Intersect.Client.Core/Entities/Status.cs similarity index 100% rename from Intersect.Client/Entities/Status.cs rename to Intersect.Client.Core/Entities/Status.cs diff --git a/Intersect.Client/General/Globals.cs b/Intersect.Client.Core/General/Globals.cs similarity index 100% rename from Intersect.Client/General/Globals.cs rename to Intersect.Client.Core/General/Globals.cs diff --git a/Intersect.Client/General/Time.cs b/Intersect.Client.Core/General/Time.cs similarity index 100% rename from Intersect.Client/General/Time.cs rename to Intersect.Client.Core/General/Time.cs diff --git a/Intersect.Client.Core/GlobalSuppressions.cs b/Intersect.Client.Core/GlobalSuppressions.cs new file mode 100644 index 0000000000..c04a503d3a --- /dev/null +++ b/Intersect.Client.Core/GlobalSuppressions.cs @@ -0,0 +1,21 @@ +[assembly: + System.Diagnostics.CodeAnalysis.SuppressMessage( + "Style", "IDE1005:Delegate invocation can be simplified.", + Justification = "if-null is more readable for newer programmers.", Scope = "member", + Target = + "~M:Intersect_Client.Classes.UI.Game.BanMuteBox.okayBtn_Clicked(IntersectClientExtras.Gwen.Control.Base,IntersectClientExtras.Gwen.Control.EventArguments.ClickedEventArgs)" + )] +[assembly: + System.Diagnostics.CodeAnalysis.SuppressMessage( + "Style", "IDE1005:Delegate invocation can be simplified.", + Justification = "if-null is more readable for newer programmers.", Scope = "member", + Target = + "~M:Intersect_Client.Classes.UI.Game.InputBox.cancelBtn_Clicked(IntersectClientExtras.Gwen.Control.Base,IntersectClientExtras.Gwen.Control.EventArguments.ClickedEventArgs)" + )] +[assembly: + System.Diagnostics.CodeAnalysis.SuppressMessage( + "Style", "IDE1005:Delegate invocation can be simplified.", + Justification = "if-null is more readable for newer programmers.", Scope = "member", + Target = + "~M:Intersect_Client.Classes.UI.Game.InputBox.okayBtn_Clicked(IntersectClientExtras.Gwen.Control.Base,IntersectClientExtras.Gwen.Control.EventArguments.ClickedEventArgs)" + )] diff --git a/Intersect.Client/Icon.bmp b/Intersect.Client.Core/Icon.bmp similarity index 100% rename from Intersect.Client/Icon.bmp rename to Intersect.Client.Core/Icon.bmp diff --git a/Intersect.Client/Interface/Debugging/DebugWindow.cs b/Intersect.Client.Core/Interface/Debugging/DebugWindow.cs similarity index 99% rename from Intersect.Client/Interface/Debugging/DebugWindow.cs rename to Intersect.Client.Core/Interface/Debugging/DebugWindow.cs index 82fcb69b75..666d734bfc 100644 --- a/Intersect.Client/Interface/Debugging/DebugWindow.cs +++ b/Intersect.Client.Core/Interface/Debugging/DebugWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control.Data; using Intersect.Client.Framework.Gwen.Control.Layout; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Maps; using Intersect.Extensions; diff --git a/Intersect.Client/Interface/Game/Admin/AdminWindow.cs b/Intersect.Client.Core/Interface/Game/Admin/AdminWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/Admin/AdminWindow.cs rename to Intersect.Client.Core/Interface/Game/Admin/AdminWindow.cs index 606fa62e6a..13d6846a17 100644 --- a/Intersect.Client/Interface/Game/Admin/AdminWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Admin/AdminWindow.cs @@ -6,7 +6,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; using Intersect.Client.Interface.Shared; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.GameObjects.Maps.MapList; using static Intersect.Client.Framework.File_Management.GameContentManager; diff --git a/Intersect.Client/Interface/Game/Admin/BanMuteBox.cs b/Intersect.Client.Core/Interface/Game/Admin/BanMuteBox.cs similarity index 98% rename from Intersect.Client/Interface/Game/Admin/BanMuteBox.cs rename to Intersect.Client.Core/Interface/Game/Admin/BanMuteBox.cs index e3e88f5378..d5c289ab95 100644 --- a/Intersect.Client/Interface/Game/Admin/BanMuteBox.cs +++ b/Intersect.Client.Core/Interface/Game/Admin/BanMuteBox.cs @@ -1,6 +1,6 @@ using Intersect.Client.Core; using Intersect.Client.Framework.Gwen.Control; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using static Intersect.Client.Framework.File_Management.GameContentManager; namespace Intersect.Client.Interface.Game.Admin; diff --git a/Intersect.Client/Interface/Game/AnnouncementWindow.cs b/Intersect.Client.Core/Interface/Game/AnnouncementWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/AnnouncementWindow.cs rename to Intersect.Client.Core/Interface/Game/AnnouncementWindow.cs diff --git a/Intersect.Client/Interface/Game/Bag/BagItem.cs b/Intersect.Client.Core/Interface/Game/Bag/BagItem.cs similarity index 100% rename from Intersect.Client/Interface/Game/Bag/BagItem.cs rename to Intersect.Client.Core/Interface/Game/Bag/BagItem.cs diff --git a/Intersect.Client/Interface/Game/Bag/BagWindow.cs b/Intersect.Client.Core/Interface/Game/Bag/BagWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/Bag/BagWindow.cs rename to Intersect.Client.Core/Interface/Game/Bag/BagWindow.cs index 5e8173aa18..b2a06045a0 100644 --- a/Intersect.Client/Interface/Game/Bag/BagWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Bag/BagWindow.cs @@ -3,7 +3,7 @@ using Intersect.Client.Framework.GenericClasses; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.GameObjects; namespace Intersect.Client.Interface.Game.Bag; diff --git a/Intersect.Client/Interface/Game/Bank/BankItem.cs b/Intersect.Client.Core/Interface/Game/Bank/BankItem.cs similarity index 99% rename from Intersect.Client/Interface/Game/Bank/BankItem.cs rename to Intersect.Client.Core/Interface/Game/Bank/BankItem.cs index a94554fb30..6d816f1261 100644 --- a/Intersect.Client/Interface/Game/Bank/BankItem.cs +++ b/Intersect.Client.Core/Interface/Game/Bank/BankItem.cs @@ -6,7 +6,7 @@ using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; using Intersect.Client.Interface.Game.DescriptionWindows; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Configuration; using Intersect.Enums; diff --git a/Intersect.Client/Interface/Game/Bank/BankWindow.cs b/Intersect.Client.Core/Interface/Game/Bank/BankWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/Bank/BankWindow.cs rename to Intersect.Client.Core/Interface/Game/Bank/BankWindow.cs index 6a62b4f59e..05c7204fa0 100644 --- a/Intersect.Client/Interface/Game/Bank/BankWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Bank/BankWindow.cs @@ -3,7 +3,7 @@ using Intersect.Client.Framework.GenericClasses; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.GameObjects; namespace Intersect.Client.Interface.Game.Bank; diff --git a/Intersect.Client/Interface/Game/Character/CharacterWindow.cs b/Intersect.Client.Core/Interface/Game/Character/CharacterWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/Character/CharacterWindow.cs rename to Intersect.Client.Core/Interface/Game/Character/CharacterWindow.cs index 953ed1b13e..e5086e3f9f 100644 --- a/Intersect.Client/Interface/Game/Character/CharacterWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Character/CharacterWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Enums; using Intersect.GameObjects; diff --git a/Intersect.Client/Interface/Game/Character/EquipmentItem.cs b/Intersect.Client.Core/Interface/Game/Character/EquipmentItem.cs similarity index 100% rename from Intersect.Client/Interface/Game/Character/EquipmentItem.cs rename to Intersect.Client.Core/Interface/Game/Character/EquipmentItem.cs diff --git a/Intersect.Client/Interface/Game/Chat/Chatbox.cs b/Intersect.Client.Core/Interface/Game/Chat/Chatbox.cs similarity index 99% rename from Intersect.Client/Interface/Game/Chat/Chatbox.cs rename to Intersect.Client.Core/Interface/Game/Chat/Chatbox.cs index 53b0ed6e45..611445ed91 100644 --- a/Intersect.Client/Interface/Game/Chat/Chatbox.cs +++ b/Intersect.Client.Core/Interface/Game/Chat/Chatbox.cs @@ -7,7 +7,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.Framework.Input; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Configuration; using Intersect.Enums; diff --git a/Intersect.Client/Interface/Game/Chat/ChatboxMsg.cs b/Intersect.Client.Core/Interface/Game/Chat/ChatboxMsg.cs similarity index 100% rename from Intersect.Client/Interface/Game/Chat/ChatboxMsg.cs rename to Intersect.Client.Core/Interface/Game/Chat/ChatboxMsg.cs diff --git a/Intersect.Client/Interface/Game/Crafting/CraftingWindow.cs b/Intersect.Client.Core/Interface/Game/Crafting/CraftingWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/Crafting/CraftingWindow.cs rename to Intersect.Client.Core/Interface/Game/Crafting/CraftingWindow.cs index 973e339c56..58cb3001b9 100644 --- a/Intersect.Client/Interface/Game/Crafting/CraftingWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Crafting/CraftingWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.GameObjects; using Intersect.GameObjects.Crafting; diff --git a/Intersect.Client/Interface/Game/Crafting/RecipeItem.cs b/Intersect.Client.Core/Interface/Game/Crafting/RecipeItem.cs similarity index 100% rename from Intersect.Client/Interface/Game/Crafting/RecipeItem.cs rename to Intersect.Client.Core/Interface/Game/Crafting/RecipeItem.cs diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/Components/ComponentBase.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/ComponentBase.cs similarity index 100% rename from Intersect.Client/Interface/Game/DescriptionWindows/Components/ComponentBase.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/ComponentBase.cs diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/Components/DescriptionComponent.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/DescriptionComponent.cs similarity index 100% rename from Intersect.Client/Interface/Game/DescriptionWindows/Components/DescriptionComponent.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/DescriptionComponent.cs diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/Components/DividerComponent.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/DividerComponent.cs similarity index 100% rename from Intersect.Client/Interface/Game/DescriptionWindows/Components/DividerComponent.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/DividerComponent.cs diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/Components/HeaderComponent.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/HeaderComponent.cs similarity index 100% rename from Intersect.Client/Interface/Game/DescriptionWindows/Components/HeaderComponent.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/HeaderComponent.cs diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/Components/RowContainerComponent.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/RowContainerComponent.cs similarity index 100% rename from Intersect.Client/Interface/Game/DescriptionWindows/Components/RowContainerComponent.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/RowContainerComponent.cs diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/DescriptionWindowBase.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/DescriptionWindowBase.cs similarity index 100% rename from Intersect.Client/Interface/Game/DescriptionWindows/DescriptionWindowBase.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/DescriptionWindowBase.cs diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs index e13711ffe6..a541613275 100644 --- a/Intersect.Client/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs +++ b/Intersect.Client.Core/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs @@ -1,7 +1,7 @@ using Intersect.Enums; using Intersect.GameObjects; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Logging; using Intersect.Network.Packets.Server; using Intersect.Utilities; diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs index fe14c1c6ad..6d9a49aeaa 100644 --- a/Intersect.Client/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs +++ b/Intersect.Client.Core/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs @@ -1,7 +1,7 @@ using Intersect.Enums; using Intersect.GameObjects; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Utilities; using Intersect.Client.Framework.Gwen.Control; diff --git a/Intersect.Client/Interface/Game/Draggable.cs b/Intersect.Client.Core/Interface/Game/Draggable.cs similarity index 100% rename from Intersect.Client/Interface/Game/Draggable.cs rename to Intersect.Client.Core/Interface/Game/Draggable.cs diff --git a/Intersect.Client/Interface/Game/EntityPanel/EntityBox.cs b/Intersect.Client.Core/Interface/Game/EntityPanel/EntityBox.cs similarity index 99% rename from Intersect.Client/Interface/Game/EntityPanel/EntityBox.cs rename to Intersect.Client.Core/Interface/Game/EntityPanel/EntityBox.cs index 3369a9631c..3fd89493ba 100644 --- a/Intersect.Client/Interface/Game/EntityPanel/EntityBox.cs +++ b/Intersect.Client.Core/Interface/Game/EntityPanel/EntityBox.cs @@ -6,7 +6,7 @@ using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Configuration; using Intersect.Enums; diff --git a/Intersect.Client/Interface/Game/EntityPanel/PlayerStatusWindow.cs b/Intersect.Client.Core/Interface/Game/EntityPanel/PlayerStatusWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/EntityPanel/PlayerStatusWindow.cs rename to Intersect.Client.Core/Interface/Game/EntityPanel/PlayerStatusWindow.cs diff --git a/Intersect.Client/Interface/Game/EntityPanel/SpellStatus.cs b/Intersect.Client.Core/Interface/Game/EntityPanel/SpellStatus.cs similarity index 100% rename from Intersect.Client/Interface/Game/EntityPanel/SpellStatus.cs rename to Intersect.Client.Core/Interface/Game/EntityPanel/SpellStatus.cs diff --git a/Intersect.Client/Interface/Game/EscapeMenu.cs b/Intersect.Client.Core/Interface/Game/EscapeMenu.cs similarity index 99% rename from Intersect.Client/Interface/Game/EscapeMenu.cs rename to Intersect.Client.Core/Interface/Game/EscapeMenu.cs index 749aa77e79..504a6b85d3 100644 --- a/Intersect.Client/Interface/Game/EscapeMenu.cs +++ b/Intersect.Client.Core/Interface/Game/EscapeMenu.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; using Intersect.Client.Interface.Shared; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Utilities; namespace Intersect.Client.Interface.Game; diff --git a/Intersect.Client/Interface/Game/EventWindow.cs b/Intersect.Client.Core/Interface/Game/EventWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/EventWindow.cs rename to Intersect.Client.Core/Interface/Game/EventWindow.cs index b456ffd43b..8ccfa76799 100644 --- a/Intersect.Client/Interface/Game/EventWindow.cs +++ b/Intersect.Client.Core/Interface/Game/EventWindow.cs @@ -6,7 +6,7 @@ using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.General; using Intersect.Client.Interface.Game.Typewriting; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Configuration; using Intersect.Enums; diff --git a/Intersect.Client/Interface/Game/Friends/FriendsRow.cs b/Intersect.Client.Core/Interface/Game/Friends/FriendsRow.cs similarity index 98% rename from Intersect.Client/Interface/Game/Friends/FriendsRow.cs rename to Intersect.Client.Core/Interface/Game/Friends/FriendsRow.cs index 6efb71e97e..b6e6ed576d 100644 --- a/Intersect.Client/Interface/Game/Friends/FriendsRow.cs +++ b/Intersect.Client.Core/Interface/Game/Friends/FriendsRow.cs @@ -1,6 +1,6 @@ using Intersect.Client.Core; using Intersect.Client.Networking; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.Framework.File_Management; diff --git a/Intersect.Client/Interface/Game/Friends/FriendsWindow.cs b/Intersect.Client.Core/Interface/Game/Friends/FriendsWindow.cs similarity index 98% rename from Intersect.Client/Interface/Game/Friends/FriendsWindow.cs rename to Intersect.Client.Core/Interface/Game/Friends/FriendsWindow.cs index 586730e45a..2dd7df595b 100644 --- a/Intersect.Client/Interface/Game/Friends/FriendsWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Friends/FriendsWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; using Intersect.Client.Interface.Shared; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Utilities; diff --git a/Intersect.Client/Interface/Game/GameInterface.cs b/Intersect.Client.Core/Interface/Game/GameInterface.cs similarity index 100% rename from Intersect.Client/Interface/Game/GameInterface.cs rename to Intersect.Client.Core/Interface/Game/GameInterface.cs diff --git a/Intersect.Client/Interface/Game/GuildWindow.cs b/Intersect.Client.Core/Interface/Game/GuildWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/GuildWindow.cs rename to Intersect.Client.Core/Interface/Game/GuildWindow.cs index 11136f84fa..ee969fc7a2 100644 --- a/Intersect.Client/Interface/Game/GuildWindow.cs +++ b/Intersect.Client.Core/Interface/Game/GuildWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; using Intersect.Client.Interface.Shared; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Network.Packets.Server; diff --git a/Intersect.Client/Interface/Game/Hotbar/HotBar.cs b/Intersect.Client.Core/Interface/Game/Hotbar/HotBar.cs similarity index 100% rename from Intersect.Client/Interface/Game/Hotbar/HotBar.cs rename to Intersect.Client.Core/Interface/Game/Hotbar/HotBar.cs diff --git a/Intersect.Client/Interface/Game/Hotbar/HotbarItem.cs b/Intersect.Client.Core/Interface/Game/Hotbar/HotbarItem.cs similarity index 99% rename from Intersect.Client/Interface/Game/Hotbar/HotbarItem.cs rename to Intersect.Client.Core/Interface/Game/Hotbar/HotbarItem.cs index 35320a99cb..ec84d6bedd 100644 --- a/Intersect.Client/Interface/Game/Hotbar/HotbarItem.cs +++ b/Intersect.Client.Core/Interface/Game/Hotbar/HotbarItem.cs @@ -7,7 +7,7 @@ using Intersect.Client.General; using Intersect.Client.Interface.Game.DescriptionWindows; using Intersect.Client.Items; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Spells; using Intersect.GameObjects; using Intersect.Utilities; diff --git a/Intersect.Client/Interface/Game/Inventory/InventoryItem.cs b/Intersect.Client.Core/Interface/Game/Inventory/InventoryItem.cs similarity index 99% rename from Intersect.Client/Interface/Game/Inventory/InventoryItem.cs rename to Intersect.Client.Core/Interface/Game/Inventory/InventoryItem.cs index 3cfe2c07a0..cb07fd3a8e 100644 --- a/Intersect.Client/Interface/Game/Inventory/InventoryItem.cs +++ b/Intersect.Client.Core/Interface/Game/Inventory/InventoryItem.cs @@ -6,7 +6,7 @@ using Intersect.Client.Framework.Input; using Intersect.Client.General; using Intersect.Client.Interface.Game.DescriptionWindows; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Configuration; using Intersect.GameObjects; diff --git a/Intersect.Client/Interface/Game/Inventory/InventoryWindow.cs b/Intersect.Client.Core/Interface/Game/Inventory/InventoryWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/Inventory/InventoryWindow.cs rename to Intersect.Client.Core/Interface/Game/Inventory/InventoryWindow.cs index 764dd3c097..f5b7b38f7c 100644 --- a/Intersect.Client/Interface/Game/Inventory/InventoryWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Inventory/InventoryWindow.cs @@ -3,7 +3,7 @@ using Intersect.Client.Framework.GenericClasses; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.GameObjects; namespace Intersect.Client.Interface.Game.Inventory; diff --git a/Intersect.Client/Interface/Game/MapItem/MapItemIcon.cs b/Intersect.Client.Core/Interface/Game/MapItem/MapItemIcon.cs similarity index 100% rename from Intersect.Client/Interface/Game/MapItem/MapItemIcon.cs rename to Intersect.Client.Core/Interface/Game/MapItem/MapItemIcon.cs diff --git a/Intersect.Client/Interface/Game/MapItem/MapItemWindow.cs b/Intersect.Client.Core/Interface/Game/MapItem/MapItemWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/MapItem/MapItemWindow.cs rename to Intersect.Client.Core/Interface/Game/MapItem/MapItemWindow.cs index dcd58178da..8ed85948e0 100644 --- a/Intersect.Client/Interface/Game/MapItem/MapItemWindow.cs +++ b/Intersect.Client.Core/Interface/Game/MapItem/MapItemWindow.cs @@ -5,7 +5,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; using Intersect.Client.Items; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Maps; using Intersect.Utilities; diff --git a/Intersect.Client/Interface/Game/Menu.cs b/Intersect.Client.Core/Interface/Game/Menu.cs similarity index 99% rename from Intersect.Client/Interface/Game/Menu.cs rename to Intersect.Client.Core/Interface/Game/Menu.cs index 6e1698e89a..ce0d618df8 100644 --- a/Intersect.Client/Interface/Game/Menu.cs +++ b/Intersect.Client.Core/Interface/Game/Menu.cs @@ -7,7 +7,7 @@ using Intersect.Client.Interface.Game.Chat; using Intersect.Client.Interface.Game.Inventory; using Intersect.Client.Interface.Game.Spells; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Enums; diff --git a/Intersect.Client/Interface/Game/PartyWindow.cs b/Intersect.Client.Core/Interface/Game/PartyWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/PartyWindow.cs rename to Intersect.Client.Core/Interface/Game/PartyWindow.cs index 5f8b1d3d8a..84cd020eb2 100644 --- a/Intersect.Client/Interface/Game/PartyWindow.cs +++ b/Intersect.Client.Core/Interface/Game/PartyWindow.cs @@ -3,7 +3,7 @@ using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Enums; diff --git a/Intersect.Client/Interface/Game/PictureWindow.cs b/Intersect.Client.Core/Interface/Game/PictureWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/PictureWindow.cs rename to Intersect.Client.Core/Interface/Game/PictureWindow.cs diff --git a/Intersect.Client/Interface/Game/QuestOfferWindow.cs b/Intersect.Client.Core/Interface/Game/QuestOfferWindow.cs similarity index 98% rename from Intersect.Client/Interface/Game/QuestOfferWindow.cs rename to Intersect.Client.Core/Interface/Game/QuestOfferWindow.cs index 9546633be6..ef8b3695fd 100644 --- a/Intersect.Client/Interface/Game/QuestOfferWindow.cs +++ b/Intersect.Client.Core/Interface/Game/QuestOfferWindow.cs @@ -3,7 +3,7 @@ using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.GameObjects; diff --git a/Intersect.Client/Interface/Game/QuestsWindow.cs b/Intersect.Client.Core/Interface/Game/QuestsWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/QuestsWindow.cs rename to Intersect.Client.Core/Interface/Game/QuestsWindow.cs index f97ecad8bd..0dcf12eed2 100644 --- a/Intersect.Client/Interface/Game/QuestsWindow.cs +++ b/Intersect.Client.Core/Interface/Game/QuestsWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; using Intersect.Client.Interface.Shared; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Enums; using Intersect.GameObjects; diff --git a/Intersect.Client/Interface/Game/Shop/ShopItem.cs b/Intersect.Client.Core/Interface/Game/Shop/ShopItem.cs similarity index 98% rename from Intersect.Client/Interface/Game/Shop/ShopItem.cs rename to Intersect.Client.Core/Interface/Game/Shop/ShopItem.cs index 46a31e9507..a2c5dd4d87 100644 --- a/Intersect.Client/Interface/Game/Shop/ShopItem.cs +++ b/Intersect.Client.Core/Interface/Game/Shop/ShopItem.cs @@ -6,7 +6,7 @@ using Intersect.Client.Framework.Input; using Intersect.Client.General; using Intersect.Client.Interface.Game.DescriptionWindows; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Configuration; using Intersect.GameObjects; using Intersect.Network.Packets.Server; diff --git a/Intersect.Client/Interface/Game/Shop/ShopWindow.cs b/Intersect.Client.Core/Interface/Game/Shop/ShopWindow.cs similarity index 98% rename from Intersect.Client/Interface/Game/Shop/ShopWindow.cs rename to Intersect.Client.Core/Interface/Game/Shop/ShopWindow.cs index 390beebea9..53a8801d86 100644 --- a/Intersect.Client/Interface/Game/Shop/ShopWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Shop/ShopWindow.cs @@ -2,7 +2,7 @@ using Intersect.Client.Framework.File_Management; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.GameObjects; namespace Intersect.Client.Interface.Game.Shop; diff --git a/Intersect.Client/Interface/Game/Spells/SpellItem.cs b/Intersect.Client.Core/Interface/Game/Spells/SpellItem.cs similarity index 100% rename from Intersect.Client/Interface/Game/Spells/SpellItem.cs rename to Intersect.Client.Core/Interface/Game/Spells/SpellItem.cs diff --git a/Intersect.Client/Interface/Game/Spells/SpellsWindow.cs b/Intersect.Client.Core/Interface/Game/Spells/SpellsWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/Spells/SpellsWindow.cs rename to Intersect.Client.Core/Interface/Game/Spells/SpellsWindow.cs index 8119c0af11..9cf1914a07 100644 --- a/Intersect.Client/Interface/Game/Spells/SpellsWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Spells/SpellsWindow.cs @@ -3,7 +3,7 @@ using Intersect.Client.Framework.GenericClasses; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.GameObjects; namespace Intersect.Client.Interface.Game.Spells; diff --git a/Intersect.Client/Interface/Game/Trades/TradeItem.cs b/Intersect.Client.Core/Interface/Game/Trades/TradeItem.cs similarity index 100% rename from Intersect.Client/Interface/Game/Trades/TradeItem.cs rename to Intersect.Client.Core/Interface/Game/Trades/TradeItem.cs diff --git a/Intersect.Client/Interface/Game/Trades/TradeSegment.cs b/Intersect.Client.Core/Interface/Game/Trades/TradeSegment.cs similarity index 98% rename from Intersect.Client/Interface/Game/Trades/TradeSegment.cs rename to Intersect.Client.Core/Interface/Game/Trades/TradeSegment.cs index 9cd7b394f8..38c97d3bce 100644 --- a/Intersect.Client/Interface/Game/Trades/TradeSegment.cs +++ b/Intersect.Client.Core/Interface/Game/Trades/TradeSegment.cs @@ -1,7 +1,7 @@ using Intersect.Client.Core; using Intersect.Client.Framework.File_Management; using Intersect.Client.Framework.Gwen.Control; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; namespace Intersect.Client.Interface.Game.Trades; diff --git a/Intersect.Client/Interface/Game/Trades/TradingWindow.cs b/Intersect.Client.Core/Interface/Game/Trades/TradingWindow.cs similarity index 99% rename from Intersect.Client/Interface/Game/Trades/TradingWindow.cs rename to Intersect.Client.Core/Interface/Game/Trades/TradingWindow.cs index d0809ab0ce..a062bea798 100644 --- a/Intersect.Client/Interface/Game/Trades/TradingWindow.cs +++ b/Intersect.Client.Core/Interface/Game/Trades/TradingWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.GameObjects; diff --git a/Intersect.Client/Interface/Game/Typewriting/Typewriter.cs b/Intersect.Client.Core/Interface/Game/Typewriting/Typewriter.cs similarity index 100% rename from Intersect.Client/Interface/Game/Typewriting/Typewriter.cs rename to Intersect.Client.Core/Interface/Game/Typewriting/Typewriter.cs diff --git a/Intersect.Client/Interface/Interface.cs b/Intersect.Client.Core/Interface/Interface.cs similarity index 100% rename from Intersect.Client/Interface/Interface.cs rename to Intersect.Client.Core/Interface/Interface.cs diff --git a/Intersect.Client/Interface/Menu/CreateCharacterWindow.cs b/Intersect.Client.Core/Interface/Menu/CreateCharacterWindow.cs similarity index 99% rename from Intersect.Client/Interface/Menu/CreateCharacterWindow.cs rename to Intersect.Client.Core/Interface/Menu/CreateCharacterWindow.cs index 7a1c3befda..1521cc6203 100644 --- a/Intersect.Client/Interface/Menu/CreateCharacterWindow.cs +++ b/Intersect.Client.Core/Interface/Menu/CreateCharacterWindow.cs @@ -5,7 +5,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.GameObjects; using Intersect.Logging; diff --git a/Intersect.Client/Interface/Menu/CreditsParser.cs b/Intersect.Client.Core/Interface/Menu/CreditsParser.cs similarity index 100% rename from Intersect.Client/Interface/Menu/CreditsParser.cs rename to Intersect.Client.Core/Interface/Menu/CreditsParser.cs diff --git a/Intersect.Client/Interface/Menu/CreditsWindow.cs b/Intersect.Client.Core/Interface/Menu/CreditsWindow.cs similarity index 98% rename from Intersect.Client/Interface/Menu/CreditsWindow.cs rename to Intersect.Client.Core/Interface/Menu/CreditsWindow.cs index 783d45f40d..ba4f019e8c 100644 --- a/Intersect.Client/Interface/Menu/CreditsWindow.cs +++ b/Intersect.Client.Core/Interface/Menu/CreditsWindow.cs @@ -2,7 +2,7 @@ using Intersect.Client.Framework.File_Management; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Configuration; using Newtonsoft.Json; diff --git a/Intersect.Client/Interface/Menu/ForgotPasswordWindow.cs b/Intersect.Client.Core/Interface/Menu/ForgotPasswordWindow.cs similarity index 99% rename from Intersect.Client/Interface/Menu/ForgotPasswordWindow.cs rename to Intersect.Client.Core/Interface/Menu/ForgotPasswordWindow.cs index c4424eb27f..f3da88718f 100644 --- a/Intersect.Client/Interface/Menu/ForgotPasswordWindow.cs +++ b/Intersect.Client.Core/Interface/Menu/ForgotPasswordWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.Framework.Input; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Utilities; diff --git a/Intersect.Client/Interface/Menu/IMainMenuWindow.cs b/Intersect.Client.Core/Interface/Menu/IMainMenuWindow.cs similarity index 100% rename from Intersect.Client/Interface/Menu/IMainMenuWindow.cs rename to Intersect.Client.Core/Interface/Menu/IMainMenuWindow.cs diff --git a/Intersect.Client/Interface/Menu/LoginWindow.cs b/Intersect.Client.Core/Interface/Menu/LoginWindow.cs similarity index 99% rename from Intersect.Client/Interface/Menu/LoginWindow.cs rename to Intersect.Client.Core/Interface/Menu/LoginWindow.cs index 453e6fdd67..008df28181 100644 --- a/Intersect.Client/Interface/Menu/LoginWindow.cs +++ b/Intersect.Client.Core/Interface/Menu/LoginWindow.cs @@ -5,7 +5,7 @@ using Intersect.Client.Framework.Input; using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Security; using Intersect.Utilities; diff --git a/Intersect.Client/Interface/Menu/MainMenu.cs b/Intersect.Client.Core/Interface/Menu/MainMenu.cs similarity index 100% rename from Intersect.Client/Interface/Menu/MainMenu.cs rename to Intersect.Client.Core/Interface/Menu/MainMenu.cs diff --git a/Intersect.Client/Interface/Menu/MainMenuWindow.Designer.cs b/Intersect.Client.Core/Interface/Menu/MainMenuWindow.Designer.cs similarity index 100% rename from Intersect.Client/Interface/Menu/MainMenuWindow.Designer.cs rename to Intersect.Client.Core/Interface/Menu/MainMenuWindow.Designer.cs diff --git a/Intersect.Client/Interface/Menu/MainMenuWindow.cs b/Intersect.Client.Core/Interface/Menu/MainMenuWindow.cs similarity index 99% rename from Intersect.Client/Interface/Menu/MainMenuWindow.cs rename to Intersect.Client.Core/Interface/Menu/MainMenuWindow.cs index 706fdfcfe0..612f0f0ef9 100644 --- a/Intersect.Client/Interface/Menu/MainMenuWindow.cs +++ b/Intersect.Client.Core/Interface/Menu/MainMenuWindow.cs @@ -4,7 +4,7 @@ using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Logging; using Intersect.Network; diff --git a/Intersect.Client/Interface/Menu/MenuGuiBase.cs b/Intersect.Client.Core/Interface/Menu/MenuGuiBase.cs similarity index 98% rename from Intersect.Client/Interface/Menu/MenuGuiBase.cs rename to Intersect.Client.Core/Interface/Menu/MenuGuiBase.cs index e9a136cba5..af0604365a 100644 --- a/Intersect.Client/Interface/Menu/MenuGuiBase.cs +++ b/Intersect.Client.Core/Interface/Menu/MenuGuiBase.cs @@ -1,7 +1,7 @@ using Intersect.Client.Core; using Intersect.Client.Framework.File_Management; using Intersect.Client.Framework.Gwen.Control; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; namespace Intersect.Client.Interface.Menu; diff --git a/Intersect.Client/Interface/Menu/RegistrationWindow.cs b/Intersect.Client.Core/Interface/Menu/RegistrationWindow.cs similarity index 99% rename from Intersect.Client/Interface/Menu/RegistrationWindow.cs rename to Intersect.Client.Core/Interface/Menu/RegistrationWindow.cs index 20874631f0..b794d4ac29 100644 --- a/Intersect.Client/Interface/Menu/RegistrationWindow.cs +++ b/Intersect.Client.Core/Interface/Menu/RegistrationWindow.cs @@ -3,7 +3,7 @@ using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Security; using Intersect.Utilities; diff --git a/Intersect.Client/Interface/Menu/ResetPasswordWindow.cs b/Intersect.Client.Core/Interface/Menu/ResetPasswordWindow.cs similarity index 99% rename from Intersect.Client/Interface/Menu/ResetPasswordWindow.cs rename to Intersect.Client.Core/Interface/Menu/ResetPasswordWindow.cs index fb16ea30a1..bc9137aee1 100644 --- a/Intersect.Client/Interface/Menu/ResetPasswordWindow.cs +++ b/Intersect.Client.Core/Interface/Menu/ResetPasswordWindow.cs @@ -8,7 +8,7 @@ using Intersect.Client.Framework.Input; using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Utilities; diff --git a/Intersect.Client/Interface/Menu/SelectCharacterWindow.cs b/Intersect.Client.Core/Interface/Menu/SelectCharacterWindow.cs similarity index 99% rename from Intersect.Client/Interface/Menu/SelectCharacterWindow.cs rename to Intersect.Client.Core/Interface/Menu/SelectCharacterWindow.cs index 3111a87ecd..61cf8eba29 100644 --- a/Intersect.Client/Interface/Menu/SelectCharacterWindow.cs +++ b/Intersect.Client.Core/Interface/Menu/SelectCharacterWindow.cs @@ -6,7 +6,7 @@ using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; using Intersect.Client.Interface.Shared; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Networking; using Intersect.Network.Packets.Server; diff --git a/Intersect.Client/Interface/MutableInterface.cs b/Intersect.Client.Core/Interface/MutableInterface.cs similarity index 100% rename from Intersect.Client/Interface/MutableInterface.cs rename to Intersect.Client.Core/Interface/MutableInterface.cs diff --git a/Intersect.Client/Interface/Shared/ErrorWindow.cs b/Intersect.Client.Core/Interface/Shared/ErrorWindow.cs similarity index 95% rename from Intersect.Client/Interface/Shared/ErrorWindow.cs rename to Intersect.Client.Core/Interface/Shared/ErrorWindow.cs index 6bf7a4c22e..5b53ea442a 100644 --- a/Intersect.Client/Interface/Shared/ErrorWindow.cs +++ b/Intersect.Client.Core/Interface/Shared/ErrorWindow.cs @@ -1,4 +1,4 @@ -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; namespace Intersect.Client.Interface.Shared; diff --git a/Intersect.Client/Interface/Shared/InputBox.cs b/Intersect.Client.Core/Interface/Shared/InputBox.cs similarity index 99% rename from Intersect.Client/Interface/Shared/InputBox.cs rename to Intersect.Client.Core/Interface/Shared/InputBox.cs index 948d31e0d3..0664181941 100644 --- a/Intersect.Client/Interface/Shared/InputBox.cs +++ b/Intersect.Client.Core/Interface/Shared/InputBox.cs @@ -3,7 +3,7 @@ using Intersect.Client.Framework.Gwen; using Intersect.Client.Framework.Gwen.Control; using Intersect.Client.Framework.Gwen.Control.EventArguments; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; namespace Intersect.Client.Interface.Shared; diff --git a/Intersect.Client/Interface/Shared/SettingsWindow.cs b/Intersect.Client.Core/Interface/Shared/SettingsWindow.cs similarity index 99% rename from Intersect.Client/Interface/Shared/SettingsWindow.cs rename to Intersect.Client.Core/Interface/Shared/SettingsWindow.cs index b7cf28fb8c..1d7da88cdc 100644 --- a/Intersect.Client/Interface/Shared/SettingsWindow.cs +++ b/Intersect.Client.Core/Interface/Shared/SettingsWindow.cs @@ -8,7 +8,7 @@ using Intersect.Client.General; using Intersect.Client.Interface.Game; using Intersect.Client.Interface.Menu; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Utilities; using static Intersect.Client.Framework.File_Management.GameContentManager; using MathHelper = Intersect.Client.Utilities.MathHelper; diff --git a/Intersect.Client/Interface/Window.cs b/Intersect.Client.Core/Interface/Window.cs similarity index 100% rename from Intersect.Client/Interface/Window.cs rename to Intersect.Client.Core/Interface/Window.cs diff --git a/Intersect.Client.Core/Intersect.Client.Core.csproj b/Intersect.Client.Core/Intersect.Client.Core.csproj new file mode 100644 index 0000000000..033281fa4c --- /dev/null +++ b/Intersect.Client.Core/Intersect.Client.Core.csproj @@ -0,0 +1,113 @@ + + + + true + Library + + + + AscensionGameDev.Intersect.Client.Core + Game Client Core - Part of the Intersect 2D Game Creation Suite + LICENSE.md + Intersect.Client.Core + Intersect Client Core + Properties + 512 + + + + + <_Parameter1>Intersect.Tests.Client + + + <_Parameter1>Intersect.SinglePlayer + + + <_Parameter1>Intersect.Client + + + + + + + + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + Icon.bmp + + + + + + + + + Resources\MonoGame.Framework.dll + + + Resources\libopenal.so.1 + + + Resources\libopenal.1.dylib + + + Resources\x64\soft_oal.dll + + + Resources\libSDL2-2.0.so.0 + + + Resources\libSDL2.dylib + + + Resources\x64\SDL2.dll + + + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Intersect.Client/Items/Item.cs b/Intersect.Client.Core/Items/Item.cs similarity index 100% rename from Intersect.Client/Items/Item.cs rename to Intersect.Client.Core/Items/Item.cs diff --git a/Intersect.Client/Items/MapItemInstance.cs b/Intersect.Client.Core/Items/MapItemInstance.cs similarity index 100% rename from Intersect.Client/Items/MapItemInstance.cs rename to Intersect.Client.Core/Items/MapItemInstance.cs diff --git a/Intersect.Client/LICENSE.md b/Intersect.Client.Core/LICENSE.md similarity index 100% rename from Intersect.Client/LICENSE.md rename to Intersect.Client.Core/LICENSE.md diff --git a/Intersect.Client/Localization/Strings.cs b/Intersect.Client.Core/Localization/Strings.cs similarity index 99% rename from Intersect.Client/Localization/Strings.cs rename to Intersect.Client.Core/Localization/Strings.cs index 3b44e1adaf..8be657ca76 100644 --- a/Intersect.Client/Localization/Strings.cs +++ b/Intersect.Client.Core/Localization/Strings.cs @@ -7,7 +7,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; -namespace Intersect.Client.Localization; +namespace Intersect.Client.Core.Localization; public static partial class Strings diff --git a/Intersect.Client/Maps/ActionMessage.cs b/Intersect.Client.Core/Maps/ActionMessage.cs similarity index 100% rename from Intersect.Client/Maps/ActionMessage.cs rename to Intersect.Client.Core/Maps/ActionMessage.cs diff --git a/Intersect.Client/Maps/MapAnimation.cs b/Intersect.Client.Core/Maps/MapAnimation.cs similarity index 100% rename from Intersect.Client/Maps/MapAnimation.cs rename to Intersect.Client.Core/Maps/MapAnimation.cs diff --git a/Intersect.Client/Maps/MapGrid.cs b/Intersect.Client.Core/Maps/MapGrid.cs similarity index 100% rename from Intersect.Client/Maps/MapGrid.cs rename to Intersect.Client.Core/Maps/MapGrid.cs diff --git a/Intersect.Client/Maps/MapInstance.cs b/Intersect.Client.Core/Maps/MapInstance.cs similarity index 99% rename from Intersect.Client/Maps/MapInstance.cs rename to Intersect.Client.Core/Maps/MapInstance.cs index b52ee8cf6c..8672968738 100644 --- a/Intersect.Client/Maps/MapInstance.cs +++ b/Intersect.Client.Core/Maps/MapInstance.cs @@ -1,4 +1,4 @@ -using System.Diagnostics; +using System.Diagnostics; using System.Collections.Concurrent; using Intersect.Client.Core; @@ -12,7 +12,7 @@ using Intersect.Client.Framework.Items; using Intersect.Client.Framework.Maps; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Compression; using Intersect.Enums; using Intersect.GameObjects; @@ -801,7 +801,7 @@ public void DrawItemNames() var rarity = itemBase.Rarity; if (tileItems[index].Quantity > 1) { - name = Localization.Strings.General.MapItemStackable.ToString(name, Strings.FormatQuantityAbbreviated(quantity)); + name = Intersect.Client.Core.Localization.Strings.General.MapItemStackable.ToString(name, Strings.FormatQuantityAbbreviated(quantity)); } var color = CustomColors.Items.MapRarities.ContainsKey(rarity) ? CustomColors.Items.MapRarities[rarity] diff --git a/Intersect.Client/Maps/WeatherParticle.cs b/Intersect.Client.Core/Maps/WeatherParticle.cs similarity index 100% rename from Intersect.Client/Maps/WeatherParticle.cs rename to Intersect.Client.Core/Maps/WeatherParticle.cs diff --git a/Intersect.Client/MonoGame/Audio/MonoAudioInstance.cs b/Intersect.Client.Core/MonoGame/Audio/MonoAudioInstance.cs similarity index 100% rename from Intersect.Client/MonoGame/Audio/MonoAudioInstance.cs rename to Intersect.Client.Core/MonoGame/Audio/MonoAudioInstance.cs diff --git a/Intersect.Client/MonoGame/Audio/MonoMusicInstance.cs b/Intersect.Client.Core/MonoGame/Audio/MonoMusicInstance.cs similarity index 100% rename from Intersect.Client/MonoGame/Audio/MonoMusicInstance.cs rename to Intersect.Client.Core/MonoGame/Audio/MonoMusicInstance.cs diff --git a/Intersect.Client/MonoGame/Audio/MonoMusicSource.cs b/Intersect.Client.Core/MonoGame/Audio/MonoMusicSource.cs similarity index 99% rename from Intersect.Client/MonoGame/Audio/MonoMusicSource.cs rename to Intersect.Client.Core/MonoGame/Audio/MonoMusicSource.cs index 46c1241056..d5dd458fed 100644 --- a/Intersect.Client/MonoGame/Audio/MonoMusicSource.cs +++ b/Intersect.Client.Core/MonoGame/Audio/MonoMusicSource.cs @@ -1,7 +1,7 @@ using Intersect.Client.Framework.Audio; using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Utilities; using Intersect.Logging; diff --git a/Intersect.Client/MonoGame/Audio/MonoSoundInstance.cs b/Intersect.Client.Core/MonoGame/Audio/MonoSoundInstance.cs similarity index 100% rename from Intersect.Client/MonoGame/Audio/MonoSoundInstance.cs rename to Intersect.Client.Core/MonoGame/Audio/MonoSoundInstance.cs diff --git a/Intersect.Client/MonoGame/Audio/MonoSoundSource.cs b/Intersect.Client.Core/MonoGame/Audio/MonoSoundSource.cs similarity index 98% rename from Intersect.Client/MonoGame/Audio/MonoSoundSource.cs rename to Intersect.Client.Core/MonoGame/Audio/MonoSoundSource.cs index b9e028778e..5135cf8711 100644 --- a/Intersect.Client/MonoGame/Audio/MonoSoundSource.cs +++ b/Intersect.Client.Core/MonoGame/Audio/MonoSoundSource.cs @@ -1,7 +1,7 @@ using Intersect.Client.Framework.Audio; using Intersect.Client.General; using Intersect.Client.Interface.Game.Chat; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Logging; using Microsoft.Xna.Framework.Audio; diff --git a/Intersect.Client/MonoGame/Database/MonoDatabase.cs b/Intersect.Client.Core/MonoGame/Database/MonoDatabase.cs similarity index 100% rename from Intersect.Client/MonoGame/Database/MonoDatabase.cs rename to Intersect.Client.Core/MonoGame/Database/MonoDatabase.cs diff --git a/Intersect.Client/MonoGame/File Management/MonoContentManager.cs b/Intersect.Client.Core/MonoGame/File Management/MonoContentManager.cs similarity index 99% rename from Intersect.Client/MonoGame/File Management/MonoContentManager.cs rename to Intersect.Client.Core/MonoGame/File Management/MonoContentManager.cs index 790fb4bd2f..1b53558811 100644 --- a/Intersect.Client/MonoGame/File Management/MonoContentManager.cs +++ b/Intersect.Client.Core/MonoGame/File Management/MonoContentManager.cs @@ -2,7 +2,7 @@ using Intersect.Client.Framework.File_Management; using Intersect.Client.Framework.GenericClasses; using Intersect.Client.Framework.Graphics; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.MonoGame.Audio; using Intersect.Compression; using Intersect.Configuration; diff --git a/Intersect.Client/MonoGame/Graphics/MonoFont.cs b/Intersect.Client.Core/MonoGame/Graphics/MonoFont.cs similarity index 100% rename from Intersect.Client/MonoGame/Graphics/MonoFont.cs rename to Intersect.Client.Core/MonoGame/Graphics/MonoFont.cs diff --git a/Intersect.Client/MonoGame/Graphics/MonoRenderTexture.cs b/Intersect.Client.Core/MonoGame/Graphics/MonoRenderTexture.cs similarity index 100% rename from Intersect.Client/MonoGame/Graphics/MonoRenderTexture.cs rename to Intersect.Client.Core/MonoGame/Graphics/MonoRenderTexture.cs diff --git a/Intersect.Client/MonoGame/Graphics/MonoRenderer.cs b/Intersect.Client.Core/MonoGame/Graphics/MonoRenderer.cs similarity index 99% rename from Intersect.Client/MonoGame/Graphics/MonoRenderer.cs rename to Intersect.Client.Core/MonoGame/Graphics/MonoRenderer.cs index 1e228ca422..afa54ccfd3 100644 --- a/Intersect.Client/MonoGame/Graphics/MonoRenderer.cs +++ b/Intersect.Client.Core/MonoGame/Graphics/MonoRenderer.cs @@ -5,7 +5,7 @@ using Intersect.Client.Framework.GenericClasses; using Intersect.Client.Framework.Graphics; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.MonoGame.NativeInterop; using Intersect.Client.ThirdParty; using Intersect.Configuration; diff --git a/Intersect.Client/MonoGame/Graphics/MonoShader.cs b/Intersect.Client.Core/MonoGame/Graphics/MonoShader.cs similarity index 100% rename from Intersect.Client/MonoGame/Graphics/MonoShader.cs rename to Intersect.Client.Core/MonoGame/Graphics/MonoShader.cs diff --git a/Intersect.Client/MonoGame/Graphics/MonoTexture.cs b/Intersect.Client.Core/MonoGame/Graphics/MonoTexture.cs similarity index 99% rename from Intersect.Client/MonoGame/Graphics/MonoTexture.cs rename to Intersect.Client.Core/MonoGame/Graphics/MonoTexture.cs index e75ced7a41..9e20fe68e5 100644 --- a/Intersect.Client/MonoGame/Graphics/MonoTexture.cs +++ b/Intersect.Client.Core/MonoGame/Graphics/MonoTexture.cs @@ -1,6 +1,6 @@ using Intersect.Client.Framework.Graphics; using Intersect.Client.Interface.Game.Chat; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Compression; using Intersect.IO.Files; using Intersect.Logging; diff --git a/Intersect.Client/MonoGame/Graphics/MonoTileBuffer.cs b/Intersect.Client.Core/MonoGame/Graphics/MonoTileBuffer.cs similarity index 100% rename from Intersect.Client/MonoGame/Graphics/MonoTileBuffer.cs rename to Intersect.Client.Core/MonoGame/Graphics/MonoTileBuffer.cs diff --git a/Intersect.Client/MonoGame/Input/MonoClipboard.cs b/Intersect.Client.Core/MonoGame/Input/MonoClipboard.cs similarity index 100% rename from Intersect.Client/MonoGame/Input/MonoClipboard.cs rename to Intersect.Client.Core/MonoGame/Input/MonoClipboard.cs diff --git a/Intersect.Client/MonoGame/Input/MonoInput.cs b/Intersect.Client.Core/MonoGame/Input/MonoInput.cs similarity index 100% rename from Intersect.Client/MonoGame/Input/MonoInput.cs rename to Intersect.Client.Core/MonoGame/Input/MonoInput.cs diff --git a/Intersect.Client/MonoGame/IntersectGame.cs b/Intersect.Client.Core/MonoGame/IntersectGame.cs similarity index 99% rename from Intersect.Client/MonoGame/IntersectGame.cs rename to Intersect.Client.Core/MonoGame/IntersectGame.cs index b0df9d0ed9..9612afe242 100644 --- a/Intersect.Client/MonoGame/IntersectGame.cs +++ b/Intersect.Client.Core/MonoGame/IntersectGame.cs @@ -5,7 +5,7 @@ using Intersect.Client.Framework.Input; using Intersect.Client.General; using Intersect.Client.Interface.Game; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.MonoGame.File_Management; using Intersect.Client.MonoGame.Graphics; using Intersect.Client.MonoGame.Input; diff --git a/Intersect.Client/MonoGame/NativeInterop/DllLoader.cs b/Intersect.Client.Core/MonoGame/NativeInterop/DllLoader.cs similarity index 100% rename from Intersect.Client/MonoGame/NativeInterop/DllLoader.cs rename to Intersect.Client.Core/MonoGame/NativeInterop/DllLoader.cs diff --git a/Intersect.Client/MonoGame/NativeInterop/FunctionLoader.cs b/Intersect.Client.Core/MonoGame/NativeInterop/FunctionLoader.cs similarity index 100% rename from Intersect.Client/MonoGame/NativeInterop/FunctionLoader.cs rename to Intersect.Client.Core/MonoGame/NativeInterop/FunctionLoader.cs diff --git a/Intersect.Client/MonoGame/NativeInterop/KnownLibrary.cs b/Intersect.Client.Core/MonoGame/NativeInterop/KnownLibrary.cs similarity index 100% rename from Intersect.Client/MonoGame/NativeInterop/KnownLibrary.cs rename to Intersect.Client.Core/MonoGame/NativeInterop/KnownLibrary.cs diff --git a/Intersect.Client/MonoGame/NativeInterop/Platform.cs b/Intersect.Client.Core/MonoGame/NativeInterop/Platform.cs similarity index 100% rename from Intersect.Client/MonoGame/NativeInterop/Platform.cs rename to Intersect.Client.Core/MonoGame/NativeInterop/Platform.cs diff --git a/Intersect.Client/MonoGame/NativeInterop/PlatformHelper.cs b/Intersect.Client.Core/MonoGame/NativeInterop/PlatformHelper.cs similarity index 100% rename from Intersect.Client/MonoGame/NativeInterop/PlatformHelper.cs rename to Intersect.Client.Core/MonoGame/NativeInterop/PlatformHelper.cs diff --git a/Intersect.Client/MonoGame/NativeInterop/Sdl2.Rect.cs b/Intersect.Client.Core/MonoGame/NativeInterop/Sdl2.Rect.cs similarity index 100% rename from Intersect.Client/MonoGame/NativeInterop/Sdl2.Rect.cs rename to Intersect.Client.Core/MonoGame/NativeInterop/Sdl2.Rect.cs diff --git a/Intersect.Client/MonoGame/NativeInterop/Sdl2.Video.cs b/Intersect.Client.Core/MonoGame/NativeInterop/Sdl2.Video.cs similarity index 100% rename from Intersect.Client/MonoGame/NativeInterop/Sdl2.Video.cs rename to Intersect.Client.Core/MonoGame/NativeInterop/Sdl2.Video.cs diff --git a/Intersect.Client/MonoGame/NativeInterop/Sdl2.cs b/Intersect.Client.Core/MonoGame/NativeInterop/Sdl2.cs similarity index 100% rename from Intersect.Client/MonoGame/NativeInterop/Sdl2.cs rename to Intersect.Client.Core/MonoGame/NativeInterop/Sdl2.cs diff --git a/Intersect.Client/MonoGame/Network/MonoSocket.cs b/Intersect.Client.Core/MonoGame/Network/MonoSocket.cs similarity index 99% rename from Intersect.Client/MonoGame/Network/MonoSocket.cs rename to Intersect.Client.Core/MonoGame/Network/MonoSocket.cs index 7fefa5eaa5..5f0dacd555 100644 --- a/Intersect.Client/MonoGame/Network/MonoSocket.cs +++ b/Intersect.Client.Core/MonoGame/Network/MonoSocket.cs @@ -13,7 +13,7 @@ using Intersect.Client.Core; using Intersect.Client.General; using Intersect.Client.Interface.Menu; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Network.Packets.Unconnected.Client; using Intersect.Rsa; diff --git a/Intersect.Client/Networking/Network.cs b/Intersect.Client.Core/Networking/Network.cs similarity index 99% rename from Intersect.Client/Networking/Network.cs rename to Intersect.Client.Core/Networking/Network.cs index 0e8dd3baf6..1dffac08ea 100644 --- a/Intersect.Client/Networking/Network.cs +++ b/Intersect.Client.Core/Networking/Network.cs @@ -2,7 +2,7 @@ using Intersect.Client.Core; using Intersect.Client.Framework.Network; using Intersect.Client.General; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Configuration; using Intersect.Logging; using Intersect.Network; diff --git a/Intersect.Client/Networking/NetworkStatus.cs b/Intersect.Client.Core/Networking/NetworkStatus.cs similarity index 96% rename from Intersect.Client/Networking/NetworkStatus.cs rename to Intersect.Client.Core/Networking/NetworkStatus.cs index b8038c68a9..3807537be3 100644 --- a/Intersect.Client/Networking/NetworkStatus.cs +++ b/Intersect.Client.Core/Networking/NetworkStatus.cs @@ -1,4 +1,4 @@ -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Network; namespace Intersect.Client.Networking; diff --git a/Intersect.Client/Networking/PacketHandler.cs b/Intersect.Client.Core/Networking/PacketHandler.cs similarity index 99% rename from Intersect.Client/Networking/PacketHandler.cs rename to Intersect.Client.Core/Networking/PacketHandler.cs index efb5c61e3f..9c8e590722 100644 --- a/Intersect.Client/Networking/PacketHandler.cs +++ b/Intersect.Client.Core/Networking/PacketHandler.cs @@ -8,7 +8,7 @@ using Intersect.Client.Interface.Game.Chat; using Intersect.Client.Interface.Menu; using Intersect.Client.Items; -using Intersect.Client.Localization; +using Intersect.Client.Core.Localization; using Intersect.Client.Maps; using Intersect.Configuration; using Intersect.Core; diff --git a/Intersect.Client/Networking/PacketSender.cs b/Intersect.Client.Core/Networking/PacketSender.cs similarity index 100% rename from Intersect.Client/Networking/PacketSender.cs rename to Intersect.Client.Core/Networking/PacketSender.cs diff --git a/Intersect.Client/Networking/UnconnectedPacketHandlers/ServerStatusResponsePacketHandler.cs b/Intersect.Client.Core/Networking/UnconnectedPacketHandlers/ServerStatusResponsePacketHandler.cs similarity index 100% rename from Intersect.Client/Networking/UnconnectedPacketHandlers/ServerStatusResponsePacketHandler.cs rename to Intersect.Client.Core/Networking/UnconnectedPacketHandlers/ServerStatusResponsePacketHandler.cs diff --git a/Intersect.Client/Plugins/Audio/AudioManager.cs b/Intersect.Client.Core/Plugins/Audio/AudioManager.cs similarity index 100% rename from Intersect.Client/Plugins/Audio/AudioManager.cs rename to Intersect.Client.Core/Plugins/Audio/AudioManager.cs diff --git a/Intersect.Client/Plugins/Contexts/ClientPluginContext.cs b/Intersect.Client.Core/Plugins/Contexts/ClientPluginContext.cs similarity index 100% rename from Intersect.Client/Plugins/Contexts/ClientPluginContext.cs rename to Intersect.Client.Core/Plugins/Contexts/ClientPluginContext.cs diff --git a/Intersect.Client/Plugins/Helpers/ClientLifecycleHelper.cs b/Intersect.Client.Core/Plugins/Helpers/ClientLifecycleHelper.cs similarity index 100% rename from Intersect.Client/Plugins/Helpers/ClientLifecycleHelper.cs rename to Intersect.Client.Core/Plugins/Helpers/ClientLifecycleHelper.cs diff --git a/Intersect.Client/Plugins/Helpers/ClientNetworkHelper.cs b/Intersect.Client.Core/Plugins/Helpers/ClientNetworkHelper.cs similarity index 100% rename from Intersect.Client/Plugins/Helpers/ClientNetworkHelper.cs rename to Intersect.Client.Core/Plugins/Helpers/ClientNetworkHelper.cs diff --git a/Intersect.Client/Plugins/Helpers/PluginPacketSender.cs b/Intersect.Client.Core/Plugins/Helpers/PluginPacketSender.cs similarity index 100% rename from Intersect.Client/Plugins/Helpers/PluginPacketSender.cs rename to Intersect.Client.Core/Plugins/Helpers/PluginPacketSender.cs diff --git a/Intersect.Client.Core/Program.cs b/Intersect.Client.Core/Program.cs new file mode 100644 index 0000000000..b079836ca9 --- /dev/null +++ b/Intersect.Client.Core/Program.cs @@ -0,0 +1,310 @@ +using Intersect.Logging; +using Intersect.Utilities; +using System.Diagnostics; +using System.Globalization; +using System.Reflection; +using System.Resources; +using Intersect.Client.ThirdParty; +using Intersect.Configuration; +using Intersect.Extensions; +using Microsoft.Xna.Framework.Audio; +using Microsoft.Xna.Framework.Graphics; + +namespace Intersect.Client.Core; + +/// +/// The main class. +/// +static class Program +{ + public static string OpenALLink { get; set; }= string.Empty; + + public static string OpenGLLink { get; set; }= string.Empty; + + /// + /// The main entry point for the application. + /// + [STAThread] + public static void Main(string[] args) + { + var waitForDebugger = args.Contains("--debugger"); + + while (waitForDebugger && !Debugger.IsAttached) + { + System.Console.WriteLine("Waiting for debugger, sleeping 5000ms..."); + Thread.Sleep(5000); + } + + CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US"); + + ExportDependencies(); + Assembly.LoadFile(Path.Combine(Environment.CurrentDirectory, "MonoGame.Framework.Client.dll")); + + try + { + var type = Type.GetType("Intersect.Client.Core.Bootstrapper", true); + Debug.Assert(type != null, "type != null"); + var method = type.GetMethod("Start"); + Debug.Assert(method != null, "method != null"); + method.Invoke(null, new object[] { args }); + } + catch (NoSuitableGraphicsDeviceException noSuitableGraphicsDeviceException) + { + try + { + var message = noSuitableGraphicsDeviceException.AsFullStackString(); + Console.Error.WriteLine(message); + File.WriteAllText("graphics-error.txt", message); + } + catch (Exception exception) + { + Console.Error.WriteLine(exception); + } + finally + { + if (!string.IsNullOrEmpty(OpenGLLink)) + { + BrowserUtils.Open(OpenGLLink); + } + + Environment.Exit(-1); + } + } + catch (NoAudioHardwareException noAudioHardwareException) + { + try + { + var message = noAudioHardwareException.AsFullStackString(); + Console.Error.WriteLine(message); + File.WriteAllText("audio-error.txt", message); + } + catch (Exception exception) + { + Console.Error.WriteLine(exception); + } + finally + { + if (!string.IsNullOrEmpty(OpenALLink)) + { + BrowserUtils.Open(OpenALLink); + } + + Environment.Exit(-1); + } + } + catch (Exception exception) + { + ClientContext.DispatchUnhandledException(exception, true, true); + } + } + + private static void ClearDlls() + { + //Delete any files that exist + DeleteIfExists("libopenal.so.1"); + DeleteIfExists("libSDL2-2.0.so.0"); + DeleteIfExists("SDL2.dll"); + DeleteIfExists("soft_oal.dll"); + DeleteIfExists("libopenal.1.dylib"); + DeleteIfExists("libSDL2-2.0.0.dylib"); + DeleteIfExists("openal32.dll"); + DeleteIfExists("MonoGame.Framework.Client.dll.config"); + DeleteIfExists("MonoGame.Framework.Client.dll"); + + DeleteIfExists("libsdkencryptedappticket.dylib"); + DeleteIfExists("libsteam_api.dylib"); + DeleteIfExists("libsdkencryptedappticket.so"); + DeleteIfExists("libsteam_api.so"); + DeleteIfExists("sdkencryptedappticket64.dll"); + DeleteIfExists("steam_api64.dll"); + } + + private static string ReadProcessOutput(string name) + { + Debug.Assert(name != null, "name != null"); + var processStartInfo = new ProcessStartInfo + { + UseShellExecute = false, + RedirectStandardOutput = true, + FileName = name + }; + + try + { + + using (var p = new Process { StartInfo = processStartInfo }) + { + p.Start(); + + // Do not wait for the child process to exit before + // reading to the end of its redirected stream. + // p.WaitForExit(); + // Read the output stream first and then wait. + var output = p.StandardOutput.ReadToEnd(); + p.WaitForExit(); + output = output.Trim(); + + return output; + } + } + catch (Exception exception) + { + Log.Warn(exception); + return string.Empty; + } + } + + private static void ExportDependencies() + { + // Delete any files that exist + ClearDlls(); + + var os = Environment.OSVersion; + var platformId = os.Platform; + if (platformId == PlatformID.Unix) + { + var unixName = ReadProcessOutput("uname"); + if (unixName?.Contains("Darwin") ?? false) + { + platformId = PlatformID.MacOSX; + } + } + + if (!Environment.Is64BitProcess) + { + throw new PlatformNotSupportedException("x86 (32-bit) systems are not supported."); + } + + switch (platformId) + { + case PlatformID.Win32NT: + case PlatformID.Win32S: + case PlatformID.Win32Windows: + case PlatformID.WinCE: + ExportDependency("SDL2.dll", "x64"); + ExportDependency("soft_oal.dll", "x64"); + if (Steam.SupportedAttribute.IsPresent(typeof(Program).Assembly)) + { + ExportDependency("sdkencryptedappticket64.dll", "runtimes/win-x64/native"); + ExportDependency("steam_api64.dll", "runtimes/win-x64/native"); + } + break; + + case PlatformID.MacOSX: + ExportDependency("libopenal.1.dylib"); + ExportDependency("libSDL2.dylib"); + ExportDependency("openal32.dll"); + ExportDependency("MonoGame.Framework.dll.config", nameoverride: "MonoGame.Framework.Client.dll.config"); + if (Steam.SupportedAttribute.IsPresent(typeof(Program).Assembly)) + { + ExportDependency("libsdkencryptedappticket.dylib", "runtimes/osx/native"); + ExportDependency("libsteam_api.dylib", "runtimes/osx/native"); + } + break; + + case PlatformID.Xbox: + break; + + case PlatformID.Unix: + default: + ExportDependency("libopenal.so.1"); + ExportDependency("libSDL2-2.0.so.0"); + ExportDependency("openal32.dll"); + ExportDependency("MonoGame.Framework.dll.config", nameoverride: "MonoGame.Framework.Client.dll.config"); + if (Steam.SupportedAttribute.IsPresent(typeof(Program).Assembly)) + { + ExportDependency("libsdkencryptedappticket.so", "runtimes/linux-x64/native"); + ExportDependency("libsteam_api.so", "runtimes/linux-x64/native"); + } + break; + } + + ExportDependency("MonoGame.Framework.dll", "", "MonoGame.Framework.Client.dll"); + } + + private static void ExportDependency(string filename, string? folder = default, string? nameoverride = default) + { + /* If it failed it means the file already exists and can't be deleted for whatever reason. */ + var path = string.IsNullOrEmpty(nameoverride) ? filename : nameoverride; + if (!DeleteIfExists(path)) + { + return; + } + + Debug.Assert(filename != null, "filename != null"); + + var assembly = Assembly.GetExecutingAssembly(); + var cleanFolder = folder?.Trim().Replace('/', '.').Replace('\\', '.').Replace('-', '_') ?? string.Empty; + if (cleanFolder.Length > 0) + { + cleanFolder += '.'; + } + var resourceName = $"Intersect.Client.Resources.{cleanFolder}{filename}"; + + if (assembly.GetManifestResourceNames().Contains(resourceName)) + { + Console.WriteLine($@"Resource: {resourceName}"); + using var resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName); + Debug.Assert(resourceStream != null, "resourceStream != null"); + using var fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite); + var data = new byte[resourceStream.Length]; + resourceStream.Read(data, 0, (int)resourceStream.Length); + fileStream.Write(data, 0, data.Length); + } + else + { + Log.Warn($"Was looking for '{resourceName}' but only the following resources were found:\n{string.Join("\n\t", assembly.GetManifestResourceNames())}"); + var resourceStream = assembly.GetManifestResourceStream("Intersect Client.g.resources"); + Debug.Assert(resourceStream != null, "resourceStream != null"); + var resources = new ResourceSet(resourceStream); + + path = Path.Combine(ClientConfiguration.ResourcesDirectory, folder, filename.Split('.')[0].Split('-')[0]); + + path = path.ToLower(); + + var enumerator = resources.GetEnumerator(); + while (enumerator.MoveNext()) + { + Console.WriteLine(enumerator.Key); + if (enumerator.Key == null || enumerator.Key.ToString().Trim() != path.Trim()) + { + continue; + } + + using var fs = new FileStream( + string.IsNullOrEmpty(nameoverride) ? filename : nameoverride, FileMode.OpenOrCreate, + FileAccess.ReadWrite + ); + var memoryStream = (UnmanagedMemoryStream)enumerator.Value; + if (memoryStream == null) + { + continue; + } + + var data = new byte[memoryStream.Length]; + var read = memoryStream.Read(data, 0, (int)memoryStream.Length); + Debug.Assert(read == memoryStream.Length); + fs.Write(data, 0, read); + } + } + } + + private static bool DeleteIfExists(string filename) + { + try + { + Debug.Assert(filename != null, "filename != null"); + if (File.Exists(filename)) + { + File.Delete(filename); + } + + return true; + } + catch + { + return false; + } + } + +} diff --git a/Intersect.Client/Properties/Resources.Designer.cs b/Intersect.Client.Core/Properties/Resources.Designer.cs similarity index 93% rename from Intersect.Client/Properties/Resources.Designer.cs rename to Intersect.Client.Core/Properties/Resources.Designer.cs index a9d6e04676..8ff7bf1234 100644 --- a/Intersect.Client/Properties/Resources.Designer.cs +++ b/Intersect.Client.Core/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace Intersect.Client.Properties { +namespace Intersect.Client.Core.Properties { using System; @@ -19,7 +19,7 @@ namespace Intersect.Client.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -39,7 +39,7 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Intersect.Client.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Intersect.Client.Core.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/Intersect.Client/Properties/Resources.resx b/Intersect.Client.Core/Properties/Resources.resx similarity index 100% rename from Intersect.Client/Properties/Resources.resx rename to Intersect.Client.Core/Properties/Resources.resx diff --git a/Intersect.Client/Properties/launchSettings.json b/Intersect.Client.Core/Properties/launchSettings.json similarity index 100% rename from Intersect.Client/Properties/launchSettings.json rename to Intersect.Client.Core/Properties/launchSettings.json diff --git a/Intersect.Client/Resources/MonoGame.Framework.dll.config b/Intersect.Client.Core/Resources/MonoGame.Framework.dll.config similarity index 100% rename from Intersect.Client/Resources/MonoGame.Framework.dll.config rename to Intersect.Client.Core/Resources/MonoGame.Framework.dll.config diff --git a/Intersect.Client/Resources/Shaders/radialgradient.xnb b/Intersect.Client.Core/Resources/Shaders/radialgradient.xnb similarity index 100% rename from Intersect.Client/Resources/Shaders/radialgradient.xnb rename to Intersect.Client.Core/Resources/Shaders/radialgradient.xnb diff --git a/Intersect.Client/Resources/openal32.dll b/Intersect.Client.Core/Resources/openal32.dll similarity index 100% rename from Intersect.Client/Resources/openal32.dll rename to Intersect.Client.Core/Resources/openal32.dll diff --git a/Intersect.Client/Resources/runtimes/.gitignore b/Intersect.Client.Core/Resources/runtimes/.gitignore similarity index 100% rename from Intersect.Client/Resources/runtimes/.gitignore rename to Intersect.Client.Core/Resources/runtimes/.gitignore diff --git a/Intersect.Client/Spells/Spell.cs b/Intersect.Client.Core/Spells/Spell.cs similarity index 100% rename from Intersect.Client/Spells/Spell.cs rename to Intersect.Client.Core/Spells/Spell.cs diff --git a/Intersect.Client/ThirdParty/Steam.Attributes.cs b/Intersect.Client.Core/ThirdParty/Steam.Attributes.cs similarity index 100% rename from Intersect.Client/ThirdParty/Steam.Attributes.cs rename to Intersect.Client.Core/ThirdParty/Steam.Attributes.cs diff --git a/Intersect.Client/ThirdParty/Steam.NativeInterop.cs b/Intersect.Client.Core/ThirdParty/Steam.NativeInterop.cs similarity index 100% rename from Intersect.Client/ThirdParty/Steam.NativeInterop.cs rename to Intersect.Client.Core/ThirdParty/Steam.NativeInterop.cs diff --git a/Intersect.Client/ThirdParty/Steam.cs b/Intersect.Client.Core/ThirdParty/Steam.cs similarity index 100% rename from Intersect.Client/ThirdParty/Steam.cs rename to Intersect.Client.Core/ThirdParty/Steam.cs diff --git a/Intersect.Client/Utilities/MathHelper.cs b/Intersect.Client.Core/Utilities/MathHelper.cs similarity index 100% rename from Intersect.Client/Utilities/MathHelper.cs rename to Intersect.Client.Core/Utilities/MathHelper.cs diff --git a/Intersect.Client/GlobalSuppressions.cs b/Intersect.Client/GlobalSuppressions.cs index c04a503d3a..5f282702bb 100644 --- a/Intersect.Client/GlobalSuppressions.cs +++ b/Intersect.Client/GlobalSuppressions.cs @@ -1,21 +1 @@ -[assembly: - System.Diagnostics.CodeAnalysis.SuppressMessage( - "Style", "IDE1005:Delegate invocation can be simplified.", - Justification = "if-null is more readable for newer programmers.", Scope = "member", - Target = - "~M:Intersect_Client.Classes.UI.Game.BanMuteBox.okayBtn_Clicked(IntersectClientExtras.Gwen.Control.Base,IntersectClientExtras.Gwen.Control.EventArguments.ClickedEventArgs)" - )] -[assembly: - System.Diagnostics.CodeAnalysis.SuppressMessage( - "Style", "IDE1005:Delegate invocation can be simplified.", - Justification = "if-null is more readable for newer programmers.", Scope = "member", - Target = - "~M:Intersect_Client.Classes.UI.Game.InputBox.cancelBtn_Clicked(IntersectClientExtras.Gwen.Control.Base,IntersectClientExtras.Gwen.Control.EventArguments.ClickedEventArgs)" - )] -[assembly: - System.Diagnostics.CodeAnalysis.SuppressMessage( - "Style", "IDE1005:Delegate invocation can be simplified.", - Justification = "if-null is more readable for newer programmers.", Scope = "member", - Target = - "~M:Intersect_Client.Classes.UI.Game.InputBox.okayBtn_Clicked(IntersectClientExtras.Gwen.Control.Base,IntersectClientExtras.Gwen.Control.EventArguments.ClickedEventArgs)" - )] + \ No newline at end of file diff --git a/Intersect.Client/Intersect.Client.Core.csproj b/Intersect.Client/Intersect.Client.Core.csproj new file mode 100644 index 0000000000..387e44000d --- /dev/null +++ b/Intersect.Client/Intersect.Client.Core.csproj @@ -0,0 +1,115 @@ + + + + true + Library + + + + AscensionGameDev.Intersect.Client.Client.Core + Game Client Core - Part of the Intersect 2D Game Creation Suite + LICENSE.md + Intersect.Client.Core + Intersect Client Core + Properties + app.manifest + 512 + + + + + <_Parameter1>Intersect.Tests.Client + + + <_Parameter1>Intersect.SinglePlayer + + + <_Parameter1>Intersect.Client + + + + + + + + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + Icon.bmp + + + + + + + + + + Resources\MonoGame.Framework.dll + + + Resources\libopenal.so.1 + + + Resources\libopenal.1.dylib + + + Resources\x64\soft_oal.dll + + + Resources\libSDL2-2.0.so.0 + + + Resources\libSDL2.dylib + + + Resources\x64\SDL2.dll + + + + + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Intersect.Client/Intersect.Client.csproj b/Intersect.Client/Intersect.Client.csproj index f3ad896af8..5c93d486e3 100644 --- a/Intersect.Client/Intersect.Client.csproj +++ b/Intersect.Client/Intersect.Client.csproj @@ -1,119 +1,31 @@ - + - true WinExe + net7.0 + enable + enable - - true - true - true - - - - AscensionGameDev.Intersect.Client - Game Client - Part of the Intersect 2D Game Creation Suite - LICENSE.md - Intersect.Client - Intersect Client - Properties - app.manifest - 512 - - - - - <_Parameter1>Intersect.Tests.Client - - - <_Parameter1>Intersect.SinglePlayer - - - - - - - - - - - - True - True - Resources.resx - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - - - Icon.bmp - - - - - - - - - - Resources\MonoGame.Framework.dll - - - Resources\libopenal.so.1 - - - Resources\libopenal.1.dylib - - - Resources\x64\soft_oal.dll - - - Resources\libSDL2-2.0.so.0 - - - Resources\libSDL2.dylib - - - Resources\x64\SDL2.dll - - - - - - - PreserveNewest - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + true + true + true + + + + AscensionGameDev.Intersect.Client + Game Client - Part of the Intersect 2D Game Creation Suite + LICENSE.md + Intersect.Client + Intersect Client + Properties + app.manifest + 512 + + + + + + + diff --git a/Intersect.Client/Program.cs b/Intersect.Client/Program.cs index ac9163f45f..c4fa176aa7 100644 --- a/Intersect.Client/Program.cs +++ b/Intersect.Client/Program.cs @@ -1,311 +1 @@ -using Intersect.Logging; -using Intersect.Utilities; -using System.Diagnostics; -using System.Globalization; -using System.Reflection; -using System.Resources; -using Intersect.Client.Core; -using Intersect.Client.ThirdParty; -using Intersect.Configuration; -using Intersect.Extensions; -using Microsoft.Xna.Framework.Audio; -using Microsoft.Xna.Framework.Graphics; - -namespace Intersect.Client; - -/// -/// The main class. -/// -static class Program -{ - public static string OpenALLink { get; set; }= string.Empty; - - public static string OpenGLLink { get; set; }= string.Empty; - - /// - /// The main entry point for the application. - /// - [STAThread] - internal static void Main(string[] args) - { - var waitForDebugger = args.Contains("--debugger"); - - while (waitForDebugger && !Debugger.IsAttached) - { - System.Console.WriteLine("Waiting for debugger, sleeping 5000ms..."); - Thread.Sleep(5000); - } - - CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("en-US"); - - ExportDependencies(); - Assembly.LoadFile(Path.Combine(Environment.CurrentDirectory, "MonoGame.Framework.Client.dll")); - - try - { - var type = Type.GetType("Intersect.Client.Core.Bootstrapper", true); - Debug.Assert(type != null, "type != null"); - var method = type.GetMethod("Start"); - Debug.Assert(method != null, "method != null"); - method.Invoke(null, new object[] { args }); - } - catch (NoSuitableGraphicsDeviceException noSuitableGraphicsDeviceException) - { - try - { - var message = noSuitableGraphicsDeviceException.AsFullStackString(); - Console.Error.WriteLine(message); - File.WriteAllText("graphics-error.txt", message); - } - catch (Exception exception) - { - Console.Error.WriteLine(exception); - } - finally - { - if (!string.IsNullOrEmpty(OpenGLLink)) - { - BrowserUtils.Open(OpenGLLink); - } - - Environment.Exit(-1); - } - } - catch (NoAudioHardwareException noAudioHardwareException) - { - try - { - var message = noAudioHardwareException.AsFullStackString(); - Console.Error.WriteLine(message); - File.WriteAllText("audio-error.txt", message); - } - catch (Exception exception) - { - Console.Error.WriteLine(exception); - } - finally - { - if (!string.IsNullOrEmpty(OpenALLink)) - { - BrowserUtils.Open(OpenALLink); - } - - Environment.Exit(-1); - } - } - catch (Exception exception) - { - ClientContext.DispatchUnhandledException(exception, true, true); - } - } - - private static void ClearDlls() - { - //Delete any files that exist - DeleteIfExists("libopenal.so.1"); - DeleteIfExists("libSDL2-2.0.so.0"); - DeleteIfExists("SDL2.dll"); - DeleteIfExists("soft_oal.dll"); - DeleteIfExists("libopenal.1.dylib"); - DeleteIfExists("libSDL2-2.0.0.dylib"); - DeleteIfExists("openal32.dll"); - DeleteIfExists("MonoGame.Framework.Client.dll.config"); - DeleteIfExists("MonoGame.Framework.Client.dll"); - - DeleteIfExists("libsdkencryptedappticket.dylib"); - DeleteIfExists("libsteam_api.dylib"); - DeleteIfExists("libsdkencryptedappticket.so"); - DeleteIfExists("libsteam_api.so"); - DeleteIfExists("sdkencryptedappticket64.dll"); - DeleteIfExists("steam_api64.dll"); - } - - private static string ReadProcessOutput(string name) - { - Debug.Assert(name != null, "name != null"); - var processStartInfo = new ProcessStartInfo - { - UseShellExecute = false, - RedirectStandardOutput = true, - FileName = name - }; - - try - { - - using (var p = new Process { StartInfo = processStartInfo }) - { - p.Start(); - - // Do not wait for the child process to exit before - // reading to the end of its redirected stream. - // p.WaitForExit(); - // Read the output stream first and then wait. - var output = p.StandardOutput.ReadToEnd(); - p.WaitForExit(); - output = output.Trim(); - - return output; - } - } - catch (Exception exception) - { - Log.Warn(exception); - return string.Empty; - } - } - - private static void ExportDependencies() - { - // Delete any files that exist - ClearDlls(); - - var os = Environment.OSVersion; - var platformId = os.Platform; - if (platformId == PlatformID.Unix) - { - var unixName = ReadProcessOutput("uname"); - if (unixName?.Contains("Darwin") ?? false) - { - platformId = PlatformID.MacOSX; - } - } - - if (!Environment.Is64BitProcess) - { - throw new PlatformNotSupportedException("x86 (32-bit) systems are not supported."); - } - - switch (platformId) - { - case PlatformID.Win32NT: - case PlatformID.Win32S: - case PlatformID.Win32Windows: - case PlatformID.WinCE: - ExportDependency("SDL2.dll", "x64"); - ExportDependency("soft_oal.dll", "x64"); - if (Steam.SupportedAttribute.IsPresent(typeof(Program).Assembly)) - { - ExportDependency("sdkencryptedappticket64.dll", "runtimes/win-x64/native"); - ExportDependency("steam_api64.dll", "runtimes/win-x64/native"); - } - break; - - case PlatformID.MacOSX: - ExportDependency("libopenal.1.dylib"); - ExportDependency("libSDL2.dylib"); - ExportDependency("openal32.dll"); - ExportDependency("MonoGame.Framework.dll.config", nameoverride: "MonoGame.Framework.Client.dll.config"); - if (Steam.SupportedAttribute.IsPresent(typeof(Program).Assembly)) - { - ExportDependency("libsdkencryptedappticket.dylib", "runtimes/osx/native"); - ExportDependency("libsteam_api.dylib", "runtimes/osx/native"); - } - break; - - case PlatformID.Xbox: - break; - - case PlatformID.Unix: - default: - ExportDependency("libopenal.so.1"); - ExportDependency("libSDL2-2.0.so.0"); - ExportDependency("openal32.dll"); - ExportDependency("MonoGame.Framework.dll.config", nameoverride: "MonoGame.Framework.Client.dll.config"); - if (Steam.SupportedAttribute.IsPresent(typeof(Program).Assembly)) - { - ExportDependency("libsdkencryptedappticket.so", "runtimes/linux-x64/native"); - ExportDependency("libsteam_api.so", "runtimes/linux-x64/native"); - } - break; - } - - ExportDependency("MonoGame.Framework.dll", "", "MonoGame.Framework.Client.dll"); - } - - private static void ExportDependency(string filename, string? folder = default, string? nameoverride = default) - { - /* If it failed it means the file already exists and can't be deleted for whatever reason. */ - var path = string.IsNullOrEmpty(nameoverride) ? filename : nameoverride; - if (!DeleteIfExists(path)) - { - return; - } - - Debug.Assert(filename != null, "filename != null"); - - var assembly = Assembly.GetExecutingAssembly(); - var cleanFolder = folder?.Trim().Replace('/', '.').Replace('\\', '.').Replace('-', '_') ?? string.Empty; - if (cleanFolder.Length > 0) - { - cleanFolder += '.'; - } - var resourceName = $"Intersect.Client.Resources.{cleanFolder}{filename}"; - - if (assembly.GetManifestResourceNames().Contains(resourceName)) - { - Console.WriteLine($@"Resource: {resourceName}"); - using var resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName); - Debug.Assert(resourceStream != null, "resourceStream != null"); - using var fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite); - var data = new byte[resourceStream.Length]; - resourceStream.Read(data, 0, (int)resourceStream.Length); - fileStream.Write(data, 0, data.Length); - } - else - { - Log.Warn($"Was looking for '{resourceName}' but only the following resources were found:\n{string.Join("\n\t", assembly.GetManifestResourceNames())}"); - var resourceStream = assembly.GetManifestResourceStream("Intersect Client.g.resources"); - Debug.Assert(resourceStream != null, "resourceStream != null"); - var resources = new ResourceSet(resourceStream); - - path = Path.Combine(ClientConfiguration.ResourcesDirectory, folder, filename.Split('.')[0].Split('-')[0]); - - path = path.ToLower(); - - var enumerator = resources.GetEnumerator(); - while (enumerator.MoveNext()) - { - Console.WriteLine(enumerator.Key); - if (enumerator.Key == null || enumerator.Key.ToString().Trim() != path.Trim()) - { - continue; - } - - using var fs = new FileStream( - string.IsNullOrEmpty(nameoverride) ? filename : nameoverride, FileMode.OpenOrCreate, - FileAccess.ReadWrite - ); - var memoryStream = (UnmanagedMemoryStream)enumerator.Value; - if (memoryStream == null) - { - continue; - } - - var data = new byte[memoryStream.Length]; - var read = memoryStream.Read(data, 0, (int)memoryStream.Length); - Debug.Assert(read == memoryStream.Length); - fs.Write(data, 0, read); - } - } - } - - private static bool DeleteIfExists(string filename) - { - try - { - Debug.Assert(filename != null, "filename != null"); - if (File.Exists(filename)) - { - File.Delete(filename); - } - - return true; - } - catch - { - return false; - } - } - -} +Intersect.Client.Core.Program.Main(args); \ No newline at end of file diff --git a/Intersect.Client/Resources/runtimes/linux-x64/native/.gitkeep b/Intersect.Client/Resources/runtimes/linux-x64/native/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Intersect.Client/Resources/runtimes/osx/native/.gitkeep b/Intersect.Client/Resources/runtimes/osx/native/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Intersect.Client/Resources/runtimes/win-x64/native/.gitkeep b/Intersect.Client/Resources/runtimes/win-x64/native/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Intersect.SinglePlayer/Intersect.SinglePlayer.csproj b/Intersect.SinglePlayer/Intersect.SinglePlayer.csproj index 1aa7177646..b2567021c1 100644 --- a/Intersect.SinglePlayer/Intersect.SinglePlayer.csproj +++ b/Intersect.SinglePlayer/Intersect.SinglePlayer.csproj @@ -8,7 +8,7 @@ - + diff --git a/Intersect.SinglePlayer/Program.cs b/Intersect.SinglePlayer/Program.cs index 7b68cf2758..7441d18641 100644 --- a/Intersect.SinglePlayer/Program.cs +++ b/Intersect.SinglePlayer/Program.cs @@ -1,4 +1,4 @@ -using System.Security.Cryptography; +using System.Security.Cryptography; using System.Text; using Intersect; using Intersect.Client.Core; @@ -57,7 +57,7 @@ Thread serverThread = new(args => Bootstrapper.Start(args as string[])); serverThread.Start(args.Append("--migrate-automatically").Distinct().ToArray()); - Intersect.Client.Program.Main(args); + Intersect.Client.Core.Program.Main(args); } finally { diff --git a/Intersect.Tests.Client/Intersect.Tests.Client.csproj b/Intersect.Tests.Client/Intersect.Tests.Client.csproj index 509d2401b3..b4144a783e 100644 --- a/Intersect.Tests.Client/Intersect.Tests.Client.csproj +++ b/Intersect.Tests.Client/Intersect.Tests.Client.csproj @@ -12,10 +12,6 @@ Intersect.Tests.Client - - - - @@ -26,4 +22,8 @@ + + + + \ No newline at end of file diff --git a/Intersect.sln b/Intersect.sln index 203d495b53..dd9c1fcbf7 100644 --- a/Intersect.sln +++ b/Intersect.sln @@ -4,8 +4,6 @@ VisualStudioVersion = 17.1.32228.430 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Intersect.Core", "Intersect (Core)\Intersect.Core.csproj", "{BC304B43-1F2C-4454-9EDC-48F47357CA94}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Intersect.Client", "Intersect.Client\Intersect.Client.csproj", "{2240F3DD-3694-4606-B181-F204CBBCB971}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Intersect.Client.Framework", "Intersect.Client.Framework\Intersect.Client.Framework.csproj", "{40973F13-3339-4548-9008-FF76A0C8CD79}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Intersect.Editor", "Intersect.Editor\Intersect.Editor.csproj", "{5AC53DF1-8152-466D-B7D0-238657F013F7}" @@ -84,6 +82,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WinFormsUI", "vendor\dockpa EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThemeVS2015", "vendor\dockpanelsuite\WinFormsUI\ThemeVS2015.csproj", "{B9678B78-A00D-4765-9380-B1DC4EFD642D}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Intersect.Client", "Intersect.Client\Intersect.Client.csproj", "{250CFACD-95A8-438F-B66E-987279B89576}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Intersect.Client.Core", "Intersect.Client.Core\Intersect.Client.Core.csproj", "{1456C77A-D0F6-4DAE-8D32-59BF335F5165}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -97,12 +99,6 @@ Global {BC304B43-1F2C-4454-9EDC-48F47357CA94}.NoFody|Any CPU.Build.0 = Debug|Any CPU {BC304B43-1F2C-4454-9EDC-48F47357CA94}.Release|Any CPU.ActiveCfg = Release|Any CPU {BC304B43-1F2C-4454-9EDC-48F47357CA94}.Release|Any CPU.Build.0 = Release|Any CPU - {2240F3DD-3694-4606-B181-F204CBBCB971}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2240F3DD-3694-4606-B181-F204CBBCB971}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2240F3DD-3694-4606-B181-F204CBBCB971}.NoFody|Any CPU.ActiveCfg = Debug|Any CPU - {2240F3DD-3694-4606-B181-F204CBBCB971}.NoFody|Any CPU.Build.0 = Debug|Any CPU - {2240F3DD-3694-4606-B181-F204CBBCB971}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2240F3DD-3694-4606-B181-F204CBBCB971}.Release|Any CPU.Build.0 = Release|Any CPU {40973F13-3339-4548-9008-FF76A0C8CD79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {40973F13-3339-4548-9008-FF76A0C8CD79}.Debug|Any CPU.Build.0 = Debug|Any CPU {40973F13-3339-4548-9008-FF76A0C8CD79}.NoFody|Any CPU.ActiveCfg = Debug|Any CPU @@ -193,6 +189,18 @@ Global {B9678B78-A00D-4765-9380-B1DC4EFD642D}.NoFody|Any CPU.Build.0 = Debug|Any CPU {B9678B78-A00D-4765-9380-B1DC4EFD642D}.Release|Any CPU.ActiveCfg = Release|Any CPU {B9678B78-A00D-4765-9380-B1DC4EFD642D}.Release|Any CPU.Build.0 = Release|Any CPU + {250CFACD-95A8-438F-B66E-987279B89576}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {250CFACD-95A8-438F-B66E-987279B89576}.Debug|Any CPU.Build.0 = Debug|Any CPU + {250CFACD-95A8-438F-B66E-987279B89576}.NoFody|Any CPU.ActiveCfg = Debug|Any CPU + {250CFACD-95A8-438F-B66E-987279B89576}.NoFody|Any CPU.Build.0 = Debug|Any CPU + {250CFACD-95A8-438F-B66E-987279B89576}.Release|Any CPU.ActiveCfg = Release|Any CPU + {250CFACD-95A8-438F-B66E-987279B89576}.Release|Any CPU.Build.0 = Release|Any CPU + {1456C77A-D0F6-4DAE-8D32-59BF335F5165}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1456C77A-D0F6-4DAE-8D32-59BF335F5165}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1456C77A-D0F6-4DAE-8D32-59BF335F5165}.NoFody|Any CPU.ActiveCfg = Debug|Any CPU + {1456C77A-D0F6-4DAE-8D32-59BF335F5165}.NoFody|Any CPU.Build.0 = Debug|Any CPU + {1456C77A-D0F6-4DAE-8D32-59BF335F5165}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1456C77A-D0F6-4DAE-8D32-59BF335F5165}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE