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 100% rename from Intersect.Client/Entities/Entity.cs rename to Intersect.Client.Core/Entities/Entity.cs 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 100% rename from Intersect.Client/Entities/Player.cs rename to Intersect.Client.Core/Entities/Player.cs 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 000000000..c04a503d3 --- /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/Interface/Debugging/DebugWindow.cs b/Intersect.Client.Core/Interface/Debugging/DebugWindow.cs similarity index 100% rename from Intersect.Client/Interface/Debugging/DebugWindow.cs rename to Intersect.Client.Core/Interface/Debugging/DebugWindow.cs diff --git a/Intersect.Client/Interface/Game/Admin/AdminWindow.cs b/Intersect.Client.Core/Interface/Game/Admin/AdminWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/Admin/AdminWindow.cs rename to Intersect.Client.Core/Interface/Game/Admin/AdminWindow.cs diff --git a/Intersect.Client/Interface/Game/Admin/BanMuteBox.cs b/Intersect.Client.Core/Interface/Game/Admin/BanMuteBox.cs similarity index 100% rename from Intersect.Client/Interface/Game/Admin/BanMuteBox.cs rename to Intersect.Client.Core/Interface/Game/Admin/BanMuteBox.cs 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 100% rename from Intersect.Client/Interface/Game/Bag/BagWindow.cs rename to Intersect.Client.Core/Interface/Game/Bag/BagWindow.cs diff --git a/Intersect.Client/Interface/Game/Bank/BankItem.cs b/Intersect.Client.Core/Interface/Game/Bank/BankItem.cs similarity index 100% rename from Intersect.Client/Interface/Game/Bank/BankItem.cs rename to Intersect.Client.Core/Interface/Game/Bank/BankItem.cs diff --git a/Intersect.Client/Interface/Game/Bank/BankWindow.cs b/Intersect.Client.Core/Interface/Game/Bank/BankWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/Bank/BankWindow.cs rename to Intersect.Client.Core/Interface/Game/Bank/BankWindow.cs diff --git a/Intersect.Client/Interface/Game/Character/CharacterWindow.cs b/Intersect.Client.Core/Interface/Game/Character/CharacterWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/Character/CharacterWindow.cs rename to Intersect.Client.Core/Interface/Game/Character/CharacterWindow.cs 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 100% rename from Intersect.Client/Interface/Game/Chat/Chatbox.cs rename to Intersect.Client.Core/Interface/Game/Chat/Chatbox.cs 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 100% rename from Intersect.Client/Interface/Game/Crafting/CraftingWindow.cs rename to Intersect.Client.Core/Interface/Game/Crafting/CraftingWindow.cs 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 100% rename from Intersect.Client/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/ItemDescriptionWindow.cs diff --git a/Intersect.Client/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs b/Intersect.Client.Core/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs rename to Intersect.Client.Core/Interface/Game/DescriptionWindows/SpellDescriptionWindow.cs 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 100% rename from Intersect.Client/Interface/Game/EntityPanel/EntityBox.cs rename to Intersect.Client.Core/Interface/Game/EntityPanel/EntityBox.cs 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 100% rename from Intersect.Client/Interface/Game/EscapeMenu.cs rename to Intersect.Client.Core/Interface/Game/EscapeMenu.cs diff --git a/Intersect.Client/Interface/Game/EventWindow.cs b/Intersect.Client.Core/Interface/Game/EventWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/EventWindow.cs rename to Intersect.Client.Core/Interface/Game/EventWindow.cs diff --git a/Intersect.Client/Interface/Game/Friends/FriendsRow.cs b/Intersect.Client.Core/Interface/Game/Friends/FriendsRow.cs similarity index 100% rename from Intersect.Client/Interface/Game/Friends/FriendsRow.cs rename to Intersect.Client.Core/Interface/Game/Friends/FriendsRow.cs diff --git a/Intersect.Client/Interface/Game/Friends/FriendsWindow.cs b/Intersect.Client.Core/Interface/Game/Friends/FriendsWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/Friends/FriendsWindow.cs rename to Intersect.Client.Core/Interface/Game/Friends/FriendsWindow.cs 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 100% rename from Intersect.Client/Interface/Game/GuildWindow.cs rename to Intersect.Client.Core/Interface/Game/GuildWindow.cs 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 100% rename from Intersect.Client/Interface/Game/Hotbar/HotbarItem.cs rename to Intersect.Client.Core/Interface/Game/Hotbar/HotbarItem.cs diff --git a/Intersect.Client/Interface/Game/Inventory/InventoryItem.cs b/Intersect.Client.Core/Interface/Game/Inventory/InventoryItem.cs similarity index 100% rename from Intersect.Client/Interface/Game/Inventory/InventoryItem.cs rename to Intersect.Client.Core/Interface/Game/Inventory/InventoryItem.cs diff --git a/Intersect.Client/Interface/Game/Inventory/InventoryWindow.cs b/Intersect.Client.Core/Interface/Game/Inventory/InventoryWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/Inventory/InventoryWindow.cs rename to Intersect.Client.Core/Interface/Game/Inventory/InventoryWindow.cs 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 100% rename from Intersect.Client/Interface/Game/MapItem/MapItemWindow.cs rename to Intersect.Client.Core/Interface/Game/MapItem/MapItemWindow.cs diff --git a/Intersect.Client/Interface/Game/Menu.cs b/Intersect.Client.Core/Interface/Game/Menu.cs similarity index 100% rename from Intersect.Client/Interface/Game/Menu.cs rename to Intersect.Client.Core/Interface/Game/Menu.cs diff --git a/Intersect.Client/Interface/Game/PartyWindow.cs b/Intersect.Client.Core/Interface/Game/PartyWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/PartyWindow.cs rename to Intersect.Client.Core/Interface/Game/PartyWindow.cs 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 100% rename from Intersect.Client/Interface/Game/QuestOfferWindow.cs rename to Intersect.Client.Core/Interface/Game/QuestOfferWindow.cs diff --git a/Intersect.Client/Interface/Game/QuestsWindow.cs b/Intersect.Client.Core/Interface/Game/QuestsWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/QuestsWindow.cs rename to Intersect.Client.Core/Interface/Game/QuestsWindow.cs diff --git a/Intersect.Client/Interface/Game/Shop/ShopItem.cs b/Intersect.Client.Core/Interface/Game/Shop/ShopItem.cs similarity index 100% rename from Intersect.Client/Interface/Game/Shop/ShopItem.cs rename to Intersect.Client.Core/Interface/Game/Shop/ShopItem.cs diff --git a/Intersect.Client/Interface/Game/Shop/ShopWindow.cs b/Intersect.Client.Core/Interface/Game/Shop/ShopWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/Shop/ShopWindow.cs rename to Intersect.Client.Core/Interface/Game/Shop/ShopWindow.cs diff --git a/Intersect.Client/Interface/Game/SimplifiedEscapeMenu.cs b/Intersect.Client.Core/Interface/Game/SimplifiedEscapeMenu.cs similarity index 100% rename from Intersect.Client/Interface/Game/SimplifiedEscapeMenu.cs rename to Intersect.Client.Core/Interface/Game/SimplifiedEscapeMenu.cs 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 100% rename from Intersect.Client/Interface/Game/Spells/SpellsWindow.cs rename to Intersect.Client.Core/Interface/Game/Spells/SpellsWindow.cs 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 100% rename from Intersect.Client/Interface/Game/Trades/TradeSegment.cs rename to Intersect.Client.Core/Interface/Game/Trades/TradeSegment.cs diff --git a/Intersect.Client/Interface/Game/Trades/TradingWindow.cs b/Intersect.Client.Core/Interface/Game/Trades/TradingWindow.cs similarity index 100% rename from Intersect.Client/Interface/Game/Trades/TradingWindow.cs rename to Intersect.Client.Core/Interface/Game/Trades/TradingWindow.cs 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 100% rename from Intersect.Client/Interface/Menu/CreateCharacterWindow.cs rename to Intersect.Client.Core/Interface/Menu/CreateCharacterWindow.cs 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 100% rename from Intersect.Client/Interface/Menu/CreditsWindow.cs rename to Intersect.Client.Core/Interface/Menu/CreditsWindow.cs diff --git a/Intersect.Client/Interface/Menu/ForgotPasswordWindow.cs b/Intersect.Client.Core/Interface/Menu/ForgotPasswordWindow.cs similarity index 100% rename from Intersect.Client/Interface/Menu/ForgotPasswordWindow.cs rename to Intersect.Client.Core/Interface/Menu/ForgotPasswordWindow.cs 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 100% rename from Intersect.Client/Interface/Menu/LoginWindow.cs rename to Intersect.Client.Core/Interface/Menu/LoginWindow.cs 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 100% rename from Intersect.Client/Interface/Menu/MainMenuWindow.cs rename to Intersect.Client.Core/Interface/Menu/MainMenuWindow.cs diff --git a/Intersect.Client/Interface/Menu/MenuGuiBase.cs b/Intersect.Client.Core/Interface/Menu/MenuGuiBase.cs similarity index 100% rename from Intersect.Client/Interface/Menu/MenuGuiBase.cs rename to Intersect.Client.Core/Interface/Menu/MenuGuiBase.cs diff --git a/Intersect.Client/Interface/Menu/RegistrationWindow.cs b/Intersect.Client.Core/Interface/Menu/RegistrationWindow.cs similarity index 100% rename from Intersect.Client/Interface/Menu/RegistrationWindow.cs rename to Intersect.Client.Core/Interface/Menu/RegistrationWindow.cs diff --git a/Intersect.Client/Interface/Menu/ResetPasswordWindow.cs b/Intersect.Client.Core/Interface/Menu/ResetPasswordWindow.cs similarity index 100% rename from Intersect.Client/Interface/Menu/ResetPasswordWindow.cs rename to Intersect.Client.Core/Interface/Menu/ResetPasswordWindow.cs diff --git a/Intersect.Client/Interface/Menu/SelectCharacterWindow.cs b/Intersect.Client.Core/Interface/Menu/SelectCharacterWindow.cs similarity index 100% rename from Intersect.Client/Interface/Menu/SelectCharacterWindow.cs rename to Intersect.Client.Core/Interface/Menu/SelectCharacterWindow.cs 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 100% rename from Intersect.Client/Interface/Shared/ErrorWindow.cs rename to Intersect.Client.Core/Interface/Shared/ErrorWindow.cs diff --git a/Intersect.Client/Interface/Shared/InputBox.cs b/Intersect.Client.Core/Interface/Shared/InputBox.cs similarity index 100% rename from Intersect.Client/Interface/Shared/InputBox.cs rename to Intersect.Client.Core/Interface/Shared/InputBox.cs diff --git a/Intersect.Client/Interface/Shared/SettingsWindow.cs b/Intersect.Client.Core/Interface/Shared/SettingsWindow.cs similarity index 100% rename from Intersect.Client/Interface/Shared/SettingsWindow.cs rename to Intersect.Client.Core/Interface/Shared/SettingsWindow.cs 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 000000000..1cff05557 --- /dev/null +++ b/Intersect.Client.Core/Intersect.Client.Core.csproj @@ -0,0 +1,95 @@ + + + + true + Library + + + + AscensionGameDev.Intersect.Client.Core + Game Client Core - Part of the Intersect 2D Game Creation Suite + LICENSE.md + Intersect.Client + Intersect Client Core + Properties + 512 + + + + + <_Parameter1>Intersect.Tests.Client + + + <_Parameter1>Intersect.SinglePlayer + + + <_Parameter1>Intersect Client + + + + + + + + + + + + + + + + + + + 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.Core/LICENSE.md b/Intersect.Client.Core/LICENSE.md new file mode 100644 index 000000000..375feb9e7 --- /dev/null +++ b/Intersect.Client.Core/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Ascension Game Dev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. 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 99c146558..bf4e191df 100644 --- a/Intersect.Client/Localization/Strings.cs +++ b/Intersect.Client.Core/Localization/Strings.cs @@ -96,8 +96,8 @@ private static void SynchronizeConfigurableStrings() private static void PostLoad() { - Program.OpenGLLink = Errors.OpenGlLink.ToString(); - Program.OpenALLink = Errors.OpenAllLink.ToString(); + Intersect.Client.Core.Program.OpenGLLink = Errors.OpenGlLink.ToString(); + Intersect.Client.Core.Program.OpenALLink = Errors.OpenAllLink.ToString(); } public static void Load() 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 b52ee8cf6..c5bee6512 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; @@ -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 = 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 100% rename from Intersect.Client/MonoGame/Audio/MonoMusicSource.cs rename to Intersect.Client.Core/MonoGame/Audio/MonoMusicSource.cs 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 100% rename from Intersect.Client/MonoGame/Audio/MonoSoundSource.cs rename to Intersect.Client.Core/MonoGame/Audio/MonoSoundSource.cs 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 100% rename from Intersect.Client/MonoGame/File Management/MonoContentManager.cs rename to Intersect.Client.Core/MonoGame/File Management/MonoContentManager.cs 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 100% rename from Intersect.Client/MonoGame/Graphics/MonoRenderer.cs rename to Intersect.Client.Core/MonoGame/Graphics/MonoRenderer.cs 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 100% rename from Intersect.Client/MonoGame/Graphics/MonoTexture.cs rename to Intersect.Client.Core/MonoGame/Graphics/MonoTexture.cs 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 100% rename from Intersect.Client/MonoGame/IntersectGame.cs rename to Intersect.Client.Core/MonoGame/IntersectGame.cs 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 7fefa5eaa..390e083e9 100644 --- a/Intersect.Client/MonoGame/Network/MonoSocket.cs +++ b/Intersect.Client.Core/MonoGame/Network/MonoSocket.cs @@ -1,4 +1,4 @@ -using System.Collections.Concurrent; +using System.Collections.Concurrent; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Net; diff --git a/Intersect.Client/Networking/Network.cs b/Intersect.Client.Core/Networking/Network.cs similarity index 100% rename from Intersect.Client/Networking/Network.cs rename to Intersect.Client.Core/Networking/Network.cs diff --git a/Intersect.Client/Networking/NetworkStatus.cs b/Intersect.Client.Core/Networking/NetworkStatus.cs similarity index 100% rename from Intersect.Client/Networking/NetworkStatus.cs rename to Intersect.Client.Core/Networking/NetworkStatus.cs diff --git a/Intersect.Client/Networking/PacketHandler.cs b/Intersect.Client.Core/Networking/PacketHandler.cs similarity index 100% rename from Intersect.Client/Networking/PacketHandler.cs rename to Intersect.Client.Core/Networking/PacketHandler.cs 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 000000000..83c3a9f9c --- /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] + 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; + } + } + +} 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 c04a503d3..5f282702b 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.csproj b/Intersect.Client/Intersect.Client.csproj index f3ad896af..f02b13240 100644 --- a/Intersect.Client/Intersect.Client.csproj +++ b/Intersect.Client/Intersect.Client.csproj @@ -1,119 +1,49 @@ - + - true WinExe - - 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 + + + + + + + + + Icon.bmp + + + + + + Resources.resx + True + True + + + + + + Resources.Designer.cs + ResXFileCodeGenerator + + + + diff --git a/Intersect.Client/Program.cs b/Intersect.Client/Program.cs index ac9163f45..c4fa176aa 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/Properties/Resources.Designer.cs b/Intersect.Client/Properties/Resources.Designer.cs index a9d6e0467..e2d351a74 100644 --- a/Intersect.Client/Properties/Resources.Designer.cs +++ b/Intersect.Client/Properties/Resources.Designer.cs @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// O código foi gerado por uma ferramenta. +// Versão de Tempo de Execução:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// As alterações ao arquivo poderão causar comportamento incorreto e serão perdidas se +// o código for gerado novamente. // //------------------------------------------------------------------------------ @@ -13,13 +13,13 @@ namespace Intersect.Client.Properties { /// - /// A strongly-typed resource class, for looking up localized strings, etc. + /// Uma classe de recurso de tipo de alta segurança, para pesquisar cadeias de caracteres localizadas etc. /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // 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")] + // Essa classe foi gerada automaticamente pela classe StronglyTypedResourceBuilder + // através de uma ferramenta como ResGen ou Visual Studio. + // Para adicionar ou remover um associado, edite o arquivo .ResX e execute ResGen novamente + // com a opção /str, ou recrie o projeto do VS. + [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 { @@ -33,7 +33,7 @@ internal Resources() { } /// - /// Returns the cached ResourceManager instance used by this class. + /// Retorna a instância de ResourceManager armazenada em cache usada por essa classe. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { @@ -47,8 +47,8 @@ internal Resources() { } /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. + /// Substitui a propriedade CurrentUICulture do thread atual para todas as + /// pesquisas de recursos que usam essa classe de recurso de tipo de alta segurança. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { 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 e69de29bb..000000000 diff --git a/Intersect.Client/Resources/runtimes/osx/native/.gitkeep b/Intersect.Client/Resources/runtimes/osx/native/.gitkeep deleted file mode 100644 index e69de29bb..000000000 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 e69de29bb..000000000 diff --git a/Intersect.SinglePlayer/Intersect.SinglePlayer.csproj b/Intersect.SinglePlayer/Intersect.SinglePlayer.csproj index 1aa717764..b2567021c 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 7b68cf275..7441d1864 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 509d2401b..68c23f3dc 100644 --- a/Intersect.Tests.Client/Intersect.Tests.Client.csproj +++ b/Intersect.Tests.Client/Intersect.Tests.Client.csproj @@ -12,9 +12,9 @@ Intersect.Tests.Client - - - + + + diff --git a/Intersect.sln b/Intersect.sln index 203d495b5..cb622e34d 100644 --- a/Intersect.sln +++ b/Intersect.sln @@ -4,7 +4,9 @@ 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}" +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 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Intersect.Client.Framework", "Intersect.Client.Framework\Intersect.Client.Framework.csproj", "{40973F13-3339-4548-9008-FF76A0C8CD79}" EndProject @@ -97,12 +99,18 @@ 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 + {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 {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