├── assets ├── production │ ├── client │ │ └── .gitkeep │ └── server │ │ └── .gitkeep ├── staging │ ├── client │ │ └── .gitkeep │ └── server │ │ └── .gitkeep ├── development │ ├── client │ │ └── .gitkeep │ ├── server │ │ └── .gitkeep │ └── single-player │ │ └── .gitkeep ├── intersect-logo-qu.bmp ├── intersect-logo-qu.ico ├── intersect-logo-qu.png └── .gitignore ├── Intersect.Client ├── GlobalSuppressions.cs ├── Icon.bmp └── Program.cs ├── .idea └── .idea.Intersect │ └── .idea │ ├── .name │ ├── encodings.xml │ ├── vcs.xml │ ├── indexLayout.xml │ ├── misc.xml │ └── .gitignore ├── Intersect.Server ├── Web │ ├── Pages │ │ ├── User │ │ │ ├── Index.cshtml │ │ │ ├── UserProfile.cshtml.css │ │ │ ├── UserProfile.cs │ │ │ └── Index.cshtml.cs │ │ ├── Developer │ │ │ ├── Index.cshtml.css │ │ │ ├── Assets │ │ │ │ ├── _TabSet.cshtml.css │ │ │ │ └── _TabSet.cshtml.cs │ │ │ ├── Assets.cshtml.css │ │ │ └── ServerSettings │ │ │ │ └── Index.cshtml.css │ │ ├── Shared │ │ │ ├── _Toast.cshtml.css │ │ │ ├── _Toast.cshtml │ │ │ ├── _Toasts.cshtml │ │ │ ├── _ValidationScriptsPartial.cshtml │ │ │ └── Players │ │ │ │ └── _PlayerCard.cshtml.cs │ │ ├── _ViewStart.cshtml │ │ ├── _ViewImports.cshtml │ │ ├── Index.cshtml.cs │ │ ├── Account │ │ │ ├── Login.cshtml.css │ │ │ └── Logout.cshtml │ │ ├── Index.cshtml │ │ └── Index copy.cshtml │ ├── Types │ │ ├── IdPayload.cs │ │ ├── Demo │ │ │ └── DemoResponseBody.cs │ │ ├── Player │ │ │ ├── LevelChangeRequestBody.cs │ │ │ ├── OnlineCountResponseBody.cs │ │ │ ├── ItemsTakeResponseBody.cs │ │ │ ├── ItemInfoRequestBody.cs │ │ │ ├── ItemsGiveResponseBody.cs │ │ │ ├── ItemsGiveQuantityData.cs │ │ │ └── ItemListResponseBody.cs │ │ ├── StatusMessageResponseBody.cs │ │ ├── User │ │ │ ├── AdminChangeRequestBody.cs │ │ │ ├── PasswordValidationRequestBody.cs │ │ │ ├── AuthorizedChangeRequestBody.cs │ │ │ ├── RegisterResponseBody.cs │ │ │ └── UserInfoRequestBody.cs │ │ ├── Info │ │ │ ├── AuthorizedResponseBody.cs │ │ │ ├── InfoResponseBody.cs │ │ │ └── InfoStatsResponseBody.cs │ │ ├── Chat │ │ │ ├── ChatMessageResponseBody.cs │ │ │ ├── ChatMessageMapResponseBody.cs │ │ │ └── ChatMessageLookupKeyResponseBody.cs │ │ ├── NameChangePayload.cs │ │ ├── VariableValueBody.cs │ │ ├── Guild │ │ │ └── GuildRankPayload.cs │ │ ├── Logs │ │ │ └── IpAddressResponseBody.cs │ │ ├── IDataPage.cs │ │ ├── AdminActionParameters.cs │ │ └── PagingInfo.cs │ ├── Authentication │ │ ├── SecuritySchemes.cs │ │ └── AuthenticationResultType.cs │ ├── Configuration │ │ ├── PartialKestrelEndpoint.cs │ │ ├── PartialKestrelEndpointCertificateType.cs │ │ └── PartialKestrelEndpointCertificate.cs │ ├── IApiService.cs │ ├── Controllers │ │ └── AssetManagement │ │ │ ├── AssetFileInfo.cs │ │ │ ├── AssetDirectoryInfo.cs │ │ │ ├── CachedManifest.cs │ │ │ └── AssetFileSystemInfoType.cs │ ├── Http │ │ └── ContentTypes.cs │ ├── Extensions │ │ └── BaseContextExtensions.cs │ └── Middleware │ │ └── ApplicationContextMiddleware.cs ├── wwwroot │ ├── favicon.ico │ └── material │ │ ├── file │ │ ├── file_upload │ │ │ ├── materialicons │ │ │ │ └── 24px.svg │ │ │ ├── materialiconssharp │ │ │ │ └── 24px.svg │ │ │ └── materialiconstwotone │ │ │ │ └── 24px.svg │ │ ├── file_download │ │ │ ├── materialicons │ │ │ │ └── 24px.svg │ │ │ ├── materialiconssharp │ │ │ │ └── 24px.svg │ │ │ └── materialiconstwotone │ │ │ │ └── 24px.svg │ │ ├── drive_file_rename_outline │ │ │ └── materialicons │ │ │ │ └── 24px.svg │ │ └── create_new_folder │ │ │ └── materialiconsoutlined │ │ │ └── 24px.svg │ │ ├── notification │ │ └── account_tree │ │ │ ├── materialicons │ │ │ └── 24px.svg │ │ │ ├── materialiconssharp │ │ │ └── 24px.svg │ │ │ └── materialiconsoutlined │ │ │ └── 24px.svg │ │ ├── action │ │ ├── delete │ │ │ └── materialiconsoutlined │ │ │ │ └── 24px.svg │ │ └── receipt │ │ │ ├── materialicons │ │ │ └── 24px.svg │ │ │ └── materialiconssharp │ │ │ └── 24px.svg │ │ └── navigation │ │ └── refresh │ │ ├── materialicons │ │ └── 24px.svg │ │ ├── materialiconssharp │ │ └── 24px.svg │ │ ├── materialiconstwotone │ │ └── 24px.svg │ │ └── materialiconsoutlined │ │ └── 24px.svg ├── Resources │ ├── e_sqlite3x64.dll │ ├── e_sqlite3x86.dll │ ├── libe_sqlite3.dylib │ ├── libe_sqlite3_x64.so │ └── libe_sqlite3_x86.so ├── Core │ ├── IConsoleService.cs │ └── CommandParsing │ │ └── Arguments │ │ └── HelpArgument.cs ├── appsettings.Staging.json └── Database │ └── DataMigrations │ └── MySql │ └── MySqlUserVariablePopulateNewColumnId.cs ├── Intersect.Client.Core ├── .gitignore ├── Resources │ ├── runtimes │ │ └── .gitignore │ ├── openal32.dll │ └── Shaders │ │ └── radialgradient.xnb ├── ThirdParty │ └── Steam.NativeInterop.cs ├── Interface │ ├── Menu │ │ ├── IMainMenuWindow.cs │ │ ├── PasswordChangeMode.cs │ │ └── CharacterSelectionPreviewMetadata.cs │ ├── Shared │ │ └── InputType.cs │ └── Game │ │ └── DescriptionWindows │ │ └── Components │ │ └── DividerComponent.cs ├── MonoGame │ ├── NativeInterop │ │ ├── KnownLibrary.cs │ │ ├── Platform.cs │ │ ├── Sdl2.Rect.cs │ │ └── OpenGL │ │ │ └── GL.NVX_gpu_memory_info.cs │ ├── Audio │ │ └── MonoSoundInstance.cs │ └── Graphics │ │ └── SpriteFontRenderer.cs ├── Entities │ ├── Events │ │ └── Dialog.cs │ ├── FriendInstance.cs │ └── Entity.Constants.cs ├── Spells │ └── Spell.cs └── Maps │ └── MapGrid.cs ├── Examples ├── .idea │ └── .idea.Intersect.Examples │ │ └── .idea │ │ ├── .name │ │ ├── encodings.xml │ │ ├── vcs.xml │ │ ├── indexLayout.xml │ │ ├── misc.xml │ │ └── .gitignore ├── Intersect.Examples.Plugin.Client │ └── Assets │ │ └── join-our-discord.png └── Intersect.Examples.Plugin.ClientVB │ └── Assets │ └── join-our-discord.png ├── Intersect.Editor ├── DarkUI.dll ├── Pngcs.dll ├── sqlite3.dll ├── Resources │ ├── layer.png │ ├── layer_face.png │ ├── layer_sel.png │ ├── sqlite3x64.dll │ ├── sqlite3x86.dll │ ├── layer_hidden.png │ ├── layer_face_sel.png │ ├── intersect-logo-qu.ico │ ├── Shaders │ │ └── radialgradient_editor.xnb │ └── ThirdParty │ │ └── material-design-icons │ │ ├── sharp_pause_white_48dp.png │ │ ├── sharp_save_white_48dp.png │ │ ├── sharp_undo_white_48dp.png │ │ ├── sharp_colorize_white_48dp.png │ │ └── sharp_play_arrow_white_48dp.png ├── Properties │ └── launchSettings.json ├── Core │ └── DummyStartupOptions.cs └── GlobalSuppressions.cs ├── Intersect.Server.Core ├── Database │ ├── ISqliteDbContext.cs │ ├── IMySqlDbContext.cs │ ├── IntersectModelOptions.cs │ ├── ExternalModelCacheKey.cs │ ├── MigrationType.cs │ ├── PlayerData │ │ ├── LoginFailureReason.cs │ │ ├── LoginFailureType.cs │ │ ├── UserRole.cs │ │ ├── UserSaveResult.cs │ │ └── Players │ │ │ └── IPlayerOwned.cs │ ├── IntersectModelCacheKey.cs │ ├── SchemaMigrationMetadata.cs │ ├── CleanDatabaseMigrationMetadata.cs │ ├── ISeedableContext.cs │ ├── IDataMigration.cs │ ├── ContextProvider.Locking.cs │ ├── DataMigrations │ │ └── Sqlite │ │ │ └── SqliteUserVariablePopulateNewColumnId.cs │ └── SchemaMigrationAttribute.cs ├── Collections │ └── Sorting │ │ └── SortDirection.cs ├── Entities │ ├── Pathfinding │ │ ├── IIndexedObject.cs │ │ ├── PathNodeBlockType.cs │ │ └── PathfinderResultType.cs │ ├── MovementBlockerType.cs │ └── Label.cs ├── Core │ ├── INetworkPoolDataProvider.cs │ ├── SinglePlayerNetworkPoolDataProvider.cs │ ├── ServerContextFactory.cs │ └── Services │ │ └── ILogicService.cs ├── Maps │ ├── MapNpcSpawn.cs │ ├── MapResourceSpawn.cs │ └── MapItemSpawn.cs └── Plugins │ └── Helpers │ └── ServerLifecycleHelper.cs ├── Intersect.Client.Framework ├── ColorizedText.cs ├── Gwen │ ├── Control │ │ ├── NodePair.cs │ │ ├── ValueChangeHandler.cs │ │ ├── Utility │ │ │ ├── SearchableTreeFilterCriteria.cs │ │ │ ├── SearchableTreeDataEntryEventArgs.cs │ │ │ ├── SearchableTreeDataEntriesEventArgs.cs │ │ │ └── SearchableTreeDataEntry.cs │ │ ├── DisplayMode.cs │ │ ├── IAutoSizeToContents.cs │ │ ├── IColorPicker.cs │ │ ├── ComponentState.cs │ │ ├── EventArguments │ │ │ ├── InputSubmissionEvent │ │ │ │ ├── SubmissionValue.cs │ │ │ │ ├── BooleanSubmissionValue.cs │ │ │ │ ├── StringSubmissionValue.cs │ │ │ │ └── NumericalSubmissionValue.cs │ │ │ └── InputSubmissionEventArgs.cs │ │ ├── Layout │ │ │ └── IFitHeightToContents.cs │ │ ├── IColorableText.cs │ │ ├── NodeFilter.cs │ │ ├── INumericInput.cs │ │ ├── IFontProvider.cs │ │ ├── TabChangeEventArgs.cs │ │ └── ITextContainer.cs │ ├── Input │ │ └── FocusSource.cs │ ├── Skin │ │ ├── skin-intersect.png │ │ └── Texturing │ │ │ ├── UVSquare.cs │ │ │ └── IAtlasDrawable.cs │ ├── WrappingBehavior.cs │ ├── OverflowBehavior.cs │ ├── HSV.cs │ ├── ControlInternal │ │ └── ButtonSoundState.cs │ ├── Orientation.cs │ └── DragDrop │ │ └── Package.cs ├── Graphics │ ├── BufferUsage.cs │ ├── ScreenshotRequest.cs │ ├── WriteTextureToStreamDelegate.cs │ ├── BufferWriteMode.cs │ ├── PrimitiveType.cs │ ├── BoundsComparison.cs │ ├── BufferEventArgs.cs │ ├── TextureEventArgs.cs │ ├── IGPUBuffer.cs │ ├── IGameRenderTexture.cs │ ├── FontSizeRenderer.cs │ ├── GameBlendModes.cs │ ├── DrawStates.cs │ ├── ITextHelper.cs │ ├── IFont.cs │ └── VertexComponent.cs ├── Input │ ├── InputDeviceType.cs │ ├── KeyboardType.cs │ ├── MouseButton.cs │ └── IControlsProvider.cs ├── Configuration │ └── Features │ │ └── Typewriter │ │ └── TypewriterBehavior.cs ├── Entities │ ├── IDash.cs │ ├── IFriendInstance.cs │ ├── IResource.cs │ ├── SpriteAnimations.cs │ ├── LabelType.cs │ ├── IHotbarInstance.cs │ ├── IPartyMember.cs │ └── Label.cs ├── Core │ └── Sounds │ │ ├── IMapSound.cs │ │ └── ISound.cs ├── Maps │ ├── IMapAnimation.cs │ ├── IWeatherParticle.cs │ └── IActionMessage.cs ├── Plugins │ ├── Interfaces │ │ ├── GameDrawHandler.cs │ │ ├── GameUpdateHandler.cs │ │ ├── LifecycleChangeStateHandler.cs │ │ ├── LifecycleChangeStateArgs.cs │ │ └── TimedArgs.cs │ └── ClientPluginEntry.cs ├── Interface │ └── Data │ │ ├── IUpdatableDataProvider.cs │ │ ├── ValueAdapterDelegate.cs │ │ ├── DataProviderEventHandler`1.cs │ │ ├── DataProviderEventHandler.cs │ │ ├── TryProviderValueDelegate.cs │ │ ├── IDataProvider.cs │ │ ├── DelayProvider.cs │ │ └── IDataProvider`1.cs ├── General │ └── GameStates.cs ├── Items │ └── IMapItemInstance.cs ├── Sys │ └── GameSystem.cs └── Content │ ├── TextureType.cs │ └── IAsset.cs ├── Intersect (Core) ├── IO │ ├── ISaveable.cs │ ├── ILoadable.cs │ ├── ISaveable.Generic.cs │ └── ISaveableProvider.cs ├── Enums │ ├── DamageType.cs │ ├── NpcMovement.cs │ └── EventResponseType.cs ├── Localization │ └── LocaleNamespace.cs ├── Collections │ └── Slotting │ │ └── ISlot.cs ├── Network │ ├── NetworkLayerInterfaceFactory.cs │ ├── PortHelper.cs │ ├── IClient.cs │ ├── NetworkFactory.cs │ └── PacketLifecycle.cs ├── BytePoint.cs ├── GlobalSuppressions.cs ├── SharedConstants.cs ├── Extensions │ └── KeyValuePairExtensions.cs ├── Utilities │ └── Nullability.cs └── Core │ └── IThreadableApplicationService.cs ├── Intersect.Network ├── IServer.cs ├── LiteNetLib │ ├── UnconnectedPacketType.cs │ ├── EncryptionResult.cs │ └── LiteNetLibLogger.cs └── NetworkMetaStatus.cs ├── Documentation ├── Features.HomepageLeaderboard.png ├── Intersect Documentation.url └── AvatarController │ └── AvatarController.FileStructureEditorResources.png ├── Framework ├── Intersect.Framework.Core │ ├── Entities │ │ ├── Gender.cs │ │ ├── Vital.cs │ │ ├── TargetType.cs │ │ ├── Stat.cs │ │ ├── EntityType.cs │ │ └── NpcAggression.cs │ ├── Config │ │ ├── OptionsLoadedEventHandler.cs │ │ ├── DatabaseType.cs │ │ └── MetricsOptions.cs │ ├── Models │ │ ├── IObject.cs │ │ ├── INamedObject.cs │ │ ├── VariableDataType.cs │ │ └── IFolderable.cs │ ├── Network │ │ ├── Delegates.cs │ │ ├── HandlePacketAvailable.cs │ │ ├── ShouldProcessPacket.cs │ │ ├── HandlePacketGeneric.cs │ │ ├── HandleConnectionRequest.cs │ │ ├── IPacketHandler.cs │ │ ├── HandleUnconnectedMessage.cs │ │ ├── HandleConnectionEvent.cs │ │ ├── Packets │ │ │ ├── Editor │ │ │ │ └── PingPacket.cs │ │ │ ├── Server │ │ │ │ ├── SpellPacket.cs │ │ │ │ ├── StopMusicPacket.cs │ │ │ │ ├── EnteringGamePacket.cs │ │ │ │ ├── HidePicturePacket.cs │ │ │ │ ├── JoinGamePacket.cs │ │ │ │ ├── StopSoundsPacket.cs │ │ │ │ └── NpcEntityPacket.cs │ │ │ ├── Client │ │ │ │ ├── CloseBankPacket.cs │ │ │ │ ├── CloseShopPacket.cs │ │ │ │ ├── EnterGamePacket.cs │ │ │ │ ├── AcceptTradePacket.cs │ │ │ │ ├── CloseBagPacket.cs │ │ │ │ ├── DeclineTradePacket.cs │ │ │ │ ├── NewCharacterPacket.cs │ │ │ │ ├── PartyLeavePacket.cs │ │ │ │ ├── CloseCraftingPacket.cs │ │ │ │ ├── RequestFriendsPacket.cs │ │ │ │ ├── OpenAdminWindowPacket.cs │ │ │ │ ├── FadeCompletePacket.cs │ │ │ │ ├── PingPacket.cs │ │ │ │ ├── GuildLeavePacket.cs │ │ │ │ ├── RequestGuildPacket.cs │ │ │ │ ├── GuildInviteAcceptPacket.cs │ │ │ │ ├── GuildInviteDeclinePacket.cs │ │ │ │ ├── BuyItemPacket.cs │ │ │ │ ├── DropItemPacket.cs │ │ │ │ ├── HotbarSwapPacket.cs │ │ │ │ ├── SellItemPacket.cs │ │ │ │ ├── SwapSpellsPacket.cs │ │ │ │ ├── SwapBagItemsPacket.cs │ │ │ │ ├── SwapInvItemsPacket.cs │ │ │ │ └── SwapBankItemsPacket.cs │ │ │ └── Unconnected │ │ │ │ └── Server │ │ │ │ └── ServerStatusResponsePacket.cs │ │ ├── HandlePacket.cs │ │ ├── HandlePacketVoid.cs │ │ ├── UnconnectedPacket.cs │ │ ├── UnconnectedResponsePacket.cs │ │ ├── IPacketSender.cs │ │ ├── Events │ │ │ └── ConnectionEventArgs.cs │ │ ├── NetworkStatus.cs │ │ ├── IPacket.cs │ │ ├── GenericPacketTypeArgumentsAttribute.cs │ │ └── UnconnectedRequestPacket.cs │ ├── Web │ │ ├── TokenTypes.cs │ │ └── TokenResultType.cs │ ├── Localization │ │ ├── BooleanStyle.cs │ │ └── Localized.cs │ ├── GameObjects │ │ ├── Events │ │ │ ├── VariableMod.cs │ │ │ ├── FadeType.cs │ │ │ ├── Access.cs │ │ │ ├── StringVariableComparator.cs │ │ │ ├── EventGraphicType.cs │ │ │ ├── EventMovementType.cs │ │ │ ├── EventRenderLayer.cs │ │ │ ├── EventTrigger.cs │ │ │ ├── Commands │ │ │ │ ├── LevelUpCommand.cs │ │ │ │ ├── OpenBankCommand.cs │ │ │ │ ├── FadeoutBgmCommand.cs │ │ │ │ ├── HidePlayerCommand.cs │ │ │ │ ├── HoldPlayerCommand.cs │ │ │ │ ├── ShowPlayerCommand.cs │ │ │ │ ├── StopSoundsCommand.cs │ │ │ │ ├── HidePictureCommmand.cs │ │ │ │ ├── OpenGuildBankCommand.cs │ │ │ │ ├── ReleasePlayerCommand.cs │ │ │ │ ├── ExitEventProcessingCommand.cs │ │ │ │ ├── WaitCommand.cs │ │ │ │ ├── LabelCommand.cs │ │ │ │ ├── OpenShopCommand.cs │ │ │ │ ├── SetClassCommand.cs │ │ │ │ ├── GoToLabelCommand.cs │ │ │ │ ├── ResetStatPointAllocationsCommand.cs │ │ │ │ ├── RestoreHpCommand.cs │ │ │ │ ├── RestoreMpCommand.cs │ │ │ │ ├── SetAccessCommand.cs │ │ │ │ ├── ChangeLevelCommand.cs │ │ │ │ ├── PlayBgmCommand.cs │ │ │ │ ├── PlaySoundCommand.cs │ │ │ │ ├── ChangeFaceCommand.cs │ │ │ │ ├── WaitForRouteCommand.cs │ │ │ │ ├── ChangeSpriteCommand.cs │ │ │ │ ├── SetMoveRouteCommand.cs │ │ │ │ ├── DespawnNpcCommand.cs │ │ │ │ ├── ChangeGenderCommand.cs │ │ │ │ ├── EndQuestCommand.cs │ │ │ │ ├── CompleteQuestTaskCommand.cs │ │ │ │ ├── SetSelfSwitchCommand.cs │ │ │ │ ├── ShowTextCommand.cs │ │ │ │ ├── SetGuildBankSlotsCommand.cs │ │ │ │ ├── ScreenFadeCommand.cs │ │ │ │ └── ChangeNameColorCommand.cs │ │ │ ├── EventMovementSpeed.cs │ │ │ ├── EventMovementFrequency.cs │ │ │ ├── ItemEventTrigger.cs │ │ │ ├── VariableComparator.cs │ │ │ ├── StringVariableMod.cs │ │ │ └── BooleanVariableMod.cs │ │ ├── Annotations │ │ │ ├── EditorFieldType.cs │ │ │ └── EditorTimeAttribute.cs │ │ ├── Animations │ │ │ ├── AnimationSource.cs │ │ │ └── AnimationSourceType.cs │ │ ├── Maps │ │ │ ├── Point16i.cs │ │ │ ├── MapZone.cs │ │ │ ├── WarpDirection.cs │ │ │ ├── NpcSpawnDirection.cs │ │ │ ├── Attributes │ │ │ │ ├── MapBlockedAttribute.cs │ │ │ │ ├── MapNpcAvoidAttribute.cs │ │ │ │ └── MapGrappleStoneAttribute.cs │ │ │ ├── MapList │ │ │ │ └── MapListItem.cs │ │ │ ├── ResourceSpawn.cs │ │ │ ├── Tile.cs │ │ │ └── MapAttributeType.cs │ │ ├── IGameObject.cs │ │ ├── Conditions │ │ │ ├── ConditionMetadata │ │ │ │ ├── VariableComparison.cs │ │ │ │ ├── CombatCondition.cs │ │ │ │ ├── MapIsCondition.cs │ │ │ │ ├── ClassIsCondition.cs │ │ │ │ ├── CheckEquippedSlot.cs │ │ │ │ ├── KnowsSpellCondition.cs │ │ │ │ ├── CanStartQuestCondition.cs │ │ │ │ ├── IsItemEquippedCondition.cs │ │ │ │ ├── QuestCompletedCondition.cs │ │ │ │ ├── TimeBetweenCondition.cs │ │ │ │ ├── GenderIsCondition.cs │ │ │ │ ├── NoNpcsOnMapCondition.cs │ │ │ │ ├── SelfSwitchCondition.cs │ │ │ │ └── AccessIsCondition.cs │ │ │ └── Condition.cs │ │ ├── Projectiles │ │ │ ├── Location.cs │ │ │ └── GrappleOption.cs │ │ ├── Resources │ │ │ └── ResourceTextureSource.cs │ │ ├── Quests │ │ │ ├── QuestObjective.cs │ │ │ ├── QuestProgressState.cs │ │ │ └── QuestProgress.cs │ │ ├── Items │ │ │ ├── ConsumableType.cs │ │ │ ├── ItemType.cs │ │ │ ├── ItemEffect.cs │ │ │ └── ConsumableData.cs │ │ ├── Spells │ │ │ ├── SpellType.cs │ │ │ ├── SpellTargetType.cs │ │ │ ├── SpellWarpDescriptor.cs │ │ │ └── SpellDashDescriptor.cs │ │ └── PlayerClass │ │ │ ├── ClassSprite.cs │ │ │ └── ClassSpell.cs │ ├── Threading │ │ └── ILockingActionQueue.cs │ ├── Async │ │ ├── ICancellableGenerator.cs │ │ └── ICancellableGenerator`1.cs │ ├── Security │ │ ├── PermissionSetChangedHandler.cs │ │ ├── ActivePermissionSetChangedHandler.cs │ │ └── PasswordResetResultType.cs │ ├── AssetManagement │ │ ├── DownloadState.cs │ │ ├── UpdaterStatus.cs │ │ ├── DownloadValidity.cs │ │ ├── UpdateStatus.cs │ │ └── DownloadResult.cs │ ├── Properties │ │ └── AssemblyAttributes.cs │ ├── Chatting │ │ └── ChatboxChannel.cs │ ├── Editor │ │ └── Mapping │ │ │ └── MapListUpdate.cs │ ├── Collections │ │ ├── IGameObjectLookup.cs │ │ ├── ListExtensions.cs │ │ └── SanitizedValue.cs │ ├── Plugins │ │ ├── Interfaces │ │ │ └── ILifecycleHelper.cs │ │ ├── PluginConfiguration.cs │ │ └── IPluginContext`1.cs │ ├── Features │ │ └── Guilds │ │ │ └── GuildMemberUpdateAction.cs │ ├── Serialization │ │ └── IRestrictedContractResolver.cs │ ├── Direction.cs │ └── Attributes │ │ └── RelatedTableAttribute.cs ├── Intersect.Framework │ ├── Services │ │ ├── Bootstrapping │ │ │ ├── BootstrapServiceOptions.cs │ │ │ ├── IBootstrapTask.cs │ │ │ └── IBootstrapperService.cs │ │ ├── EmbeddedResources │ │ │ └── EmbeddedResourceUnpackingServiceOptions.cs │ │ └── ExceptionHandling │ │ │ └── IExceptionHandlingService.cs │ ├── Eventing │ │ ├── EventHandler`2.cs │ │ ├── IAggregateSender.cs │ │ └── IAggregateSender`1.cs │ ├── Net │ │ ├── NetworkTypes.cs │ │ └── NetworkTypesExtensions.cs │ ├── SystemInformation │ │ └── IGPUStatisticsProvider.cs │ └── Annotations │ │ ├── PasswordAttribute.cs │ │ └── IgnoreAttribute.cs └── Directory.Build.props ├── Intersect.SinglePlayer └── Networking │ └── NetworkPairAccessor.cs ├── Utilities ├── Intersect.OpenPortChecker │ ├── PendingRequest.cs │ ├── PortCheckerOptions.cs │ ├── appsettings.json │ └── appsettings.Development.json └── Directory.Build.props ├── vendor └── Directory.Build.props ├── Intersect.Server.Framework ├── Items │ ├── ItemSourceType.cs │ ├── IItemSource.cs │ ├── IItem.cs │ ├── MapItemSource.cs │ └── EntityItemSource.cs ├── Maps │ └── IMapInstance.cs ├── Entities │ └── IEntity.cs └── Plugins │ ├── ServerPluginEntry.cs │ ├── Helpers │ └── IServerLifecycleHelper.cs │ └── IServerPluginContext.cs ├── .gitmodules ├── NuGet.Config ├── .github └── ISSUE_TEMPLATE │ └── config.yml ├── .dockerignore ├── Intersect.Tests.Client └── Stub.cs ├── .gitattributes ├── Intersect.Tests.Editor └── Stub.cs └── Intersect.Tests.Network └── Stub.cs /assets/production/client/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/production/server/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/staging/client/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/staging/server/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Client/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/development/client/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/development/server/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/.name: -------------------------------------------------------------------------------- 1 | Intersect -------------------------------------------------------------------------------- /assets/development/single-player/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/User/Index.cshtml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Client.Core/.gitignore: -------------------------------------------------------------------------------- 1 | steam_appid.txt 2 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Developer/Index.cshtml.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Shared/_Toast.cshtml.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/User/UserProfile.cshtml.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Developer/Assets/_TabSet.cshtml.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Resources/runtimes/.gitignore: -------------------------------------------------------------------------------- 1 | **/native/** 2 | -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/.name: -------------------------------------------------------------------------------- 1 | Intersect.Examples -------------------------------------------------------------------------------- /Intersect.Client/Icon.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Client/Icon.bmp -------------------------------------------------------------------------------- /Intersect.Editor/DarkUI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/DarkUI.dll -------------------------------------------------------------------------------- /Intersect.Editor/Pngcs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Pngcs.dll -------------------------------------------------------------------------------- /Intersect.Editor/sqlite3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/sqlite3.dll -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/IdPayload.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types; 2 | 3 | public record struct IdPayload(Guid Id); -------------------------------------------------------------------------------- /assets/intersect-logo-qu.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/assets/intersect-logo-qu.bmp -------------------------------------------------------------------------------- /assets/intersect-logo-qu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/assets/intersect-logo-qu.ico -------------------------------------------------------------------------------- /assets/intersect-logo-qu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/assets/intersect-logo-qu.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/layer.png -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/ISqliteDbContext.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | public interface ISqliteDbContext 4 | { 5 | } -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Server/wwwroot/favicon.ico -------------------------------------------------------------------------------- /Intersect.Client.Core/ThirdParty/Steam.NativeInterop.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.ThirdParty; 2 | 3 | public partial class Steam 4 | { 5 | 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/ColorizedText.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Utilities; 2 | 3 | public record struct ColorizedText(string Text, Color? Color); -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/layer_face.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/layer_sel.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/sqlite3x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/sqlite3x64.dll -------------------------------------------------------------------------------- /Intersect.Editor/Resources/sqlite3x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/sqlite3x86.dll -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/IMySqlDbContext.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | public interface IMySqlDbContext : IDbContext 4 | { 5 | } -------------------------------------------------------------------------------- /Intersect (Core)/IO/ISaveable.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.IO; 2 | 3 | 4 | public interface ISaveable 5 | { 6 | 7 | bool Save(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Resources/openal32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Client.Core/Resources/openal32.dll -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer_hidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/layer_hidden.png -------------------------------------------------------------------------------- /Intersect.Network/IServer.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | 4 | public interface IServer 5 | { 6 | 7 | bool Listen(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Server/Resources/e_sqlite3x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Server/Resources/e_sqlite3x64.dll -------------------------------------------------------------------------------- /Intersect.Server/Resources/e_sqlite3x86.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Server/Resources/e_sqlite3x86.dll -------------------------------------------------------------------------------- /Documentation/Features.HomepageLeaderboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Documentation/Features.HomepageLeaderboard.png -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Entities/Gender.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum Gender 4 | { 5 | Male = 0, 6 | 7 | Female, 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Entities/Vital.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum Vital 4 | { 5 | Health = 0, 6 | 7 | Mana, 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Editor/Resources/layer_face_sel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/layer_face_sel.png -------------------------------------------------------------------------------- /Intersect.Server/Resources/libe_sqlite3.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Server/Resources/libe_sqlite3.dylib -------------------------------------------------------------------------------- /Intersect.Server/Resources/libe_sqlite3_x64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Server/Resources/libe_sqlite3_x64.so -------------------------------------------------------------------------------- /Intersect.Server/Resources/libe_sqlite3_x86.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Server/Resources/libe_sqlite3_x86.so -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Shared/_Toast.cshtml: -------------------------------------------------------------------------------- 1 | @model ToastModel 2 | 3 |
4 | @Model.Message 5 |
-------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Demo/DemoResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Demo; 2 | 3 | public record struct DemoResponseBody(string Value); 4 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Config/OptionsLoadedEventHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect; 2 | 3 | public delegate void OptionsLoadedEventHandler(Options options); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Models/IObject.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Models; 2 | 3 | 4 | public interface IObject 5 | { 6 | Guid Id { get; } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Delegates.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public delegate bool HandlePacket(IConnection connection, IPacket packet); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/NodePair.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public record struct NodePair(Base This, Base? Parent); -------------------------------------------------------------------------------- /Intersect.Editor/Resources/intersect-logo-qu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/intersect-logo-qu.ico -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/User/UserProfile.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Pages.User; 2 | 3 | public partial record UserProfile(string Username, string? Avatar); -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Player/LevelChangeRequestBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Player; 2 | 3 | public record struct LevelChangeRequestBody(int Level); -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/StatusMessageResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types; 2 | 3 | public record struct StatusMessageResponseBody(string Message); -------------------------------------------------------------------------------- /Intersect.Client.Core/Interface/Menu/IMainMenuWindow.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Interface.Menu; 2 | 3 | public interface IMainMenuWindow 4 | { 5 | void Show(); 6 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/IntersectModelOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | internal sealed record IntersectModelOptions(bool DisableAutoInclude); -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/User/AdminChangeRequestBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.User; 2 | 3 | public record struct AdminChangeRequestBody(string New); 4 | -------------------------------------------------------------------------------- /Intersect.SinglePlayer/Networking/NetworkPairAccessor.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.SinglePlayer.Networking; 2 | 3 | internal delegate SinglePlayerNetwork? NetworkPairAccessor(); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Entities/TargetType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum TargetType 4 | { 5 | Hover = 0, 6 | 7 | Selected = 1, 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Web/TokenTypes.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Web; 2 | 3 | public static class TokenTypes 4 | { 5 | public const string Bearer = "bearer"; 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/BufferUsage.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public enum BufferUsage 4 | { 5 | None, 6 | WriteOnly, 7 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Input/FocusSource.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Input; 2 | 3 | public enum FocusSource 4 | { 5 | Keyboard, 6 | Mouse, 7 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Localization/BooleanStyle.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Localization; 2 | 3 | public enum BooleanStyle 4 | { 5 | TrueFalse, 6 | YesNo, 7 | } 8 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/HandlePacketAvailable.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public delegate void HandlePacketAvailable(INetworkLayerInterface sender); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/ShouldProcessPacket.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public delegate bool ShouldProcessPacket(IConnection connection, long pSize); -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Services/Bootstrapping/BootstrapServiceOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Services.Bootstrapping; 2 | 3 | public record BootstrapServiceOptions; -------------------------------------------------------------------------------- /Intersect (Core)/Enums/DamageType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum DamageType 4 | { 5 | Physical = 0, 6 | 7 | Magic, 8 | 9 | True, 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Skin/skin-intersect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Client.Framework/Gwen/Skin/skin-intersect.png -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/WrappingBehavior.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen; 2 | 3 | public enum WrappingBehavior 4 | { 5 | NoWrap, 6 | 7 | Wrapped, 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Input/InputDeviceType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Input; 2 | 3 | public enum InputDeviceType 4 | { 5 | Mouse, 6 | Controller 7 | } 8 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/ExternalModelCacheKey.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | internal sealed record ExternalModelCacheKey(Type ContextType, bool DesignTime); -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/MigrationType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | public enum MigrationType 4 | { 5 | Clean, 6 | Data, 7 | Schema, 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/PlayerData/LoginFailureReason.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database.PlayerData; 2 | 3 | public record struct LoginFailureReason(LoginFailureType Type); -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Info/AuthorizedResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Info; 2 | 3 | public record struct AuthorizedResponseBody(bool authorized = true); 4 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Player/OnlineCountResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Player; 2 | 3 | public record struct OnlineCountResponseBody(int OnlineCount); 4 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/VariableMod.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | 4 | public partial class VariableMod 5 | { 6 | 7 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Localization/Localized.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Localization; 2 | 3 | 4 | [Serializable] 5 | public abstract partial class Localized 6 | { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/HandlePacketGeneric.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public delegate bool HandlePacketGeneric(IPacketSender packetSender, IPacket packet); -------------------------------------------------------------------------------- /Intersect.Client.Core/Resources/Shaders/radialgradient.xnb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Client.Core/Resources/Shaders/radialgradient.xnb -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Chat/ChatMessageResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Chat; 2 | 3 | public record ChatMessageResponseBody(bool Success, ChatMessage ChatMessage); -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/User/PasswordValidationRequestBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.User; 2 | 3 | public record struct PasswordValidationRequestBody(string Password); -------------------------------------------------------------------------------- /Documentation/Intersect Documentation.url: -------------------------------------------------------------------------------- 1 | [{000214A0-0000-0000-C000-000000000046}] 2 | Prop3=19,11 3 | [InternetShortcut] 4 | IDList= 5 | URL=https://docs.freemmorpgmaker.com/ 6 | HotKey=0 7 | -------------------------------------------------------------------------------- /Intersect (Core)/IO/ILoadable.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.IO; 2 | 3 | 4 | public interface ILoadable 5 | { 6 | 7 | bool Load(TFrom from = default(TFrom)); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Configuration/Features/Typewriter/TypewriterBehavior.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum TypewriterBehavior 4 | { 5 | Off, 6 | Word, 7 | } 8 | -------------------------------------------------------------------------------- /Intersect.Editor/Resources/Shaders/radialgradient_editor.xnb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/Shaders/radialgradient_editor.xnb -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @using Intersect 2 | @{ 3 | Layout = "Shared/_Layout.cshtml"; 4 | 5 | ViewData[nameof(Options.GameName)] = Options.Instance.GameName; 6 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/NameChangePayload.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types; 2 | 3 | public partial struct NameChangePayload 4 | { 5 | public string Name { get; set; } 6 | } 7 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/VariableValueBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types; 2 | 3 | public partial struct VariableValueBody 4 | { 5 | public dynamic Value { get; set; } 6 | } 7 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Models/INamedObject.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Models; 2 | 3 | 4 | public interface INamedObject : IObject 5 | { 6 | string Name { get; set; } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Threading/ILockingActionQueue.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Threading; 2 | 3 | public interface ILockingActionQueue 4 | { 5 | Action? NextAction { get; set; } 6 | } -------------------------------------------------------------------------------- /Intersect (Core)/Localization/LocaleNamespace.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Localization; 2 | 3 | 4 | [Serializable] 5 | public abstract partial class LocaleNamespace : Localized 6 | { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Interface/Menu/PasswordChangeMode.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Interface.Menu; 2 | 3 | public enum PasswordChangeMode 4 | { 5 | ResetToken, 6 | ExistingPassword, 7 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IDash.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities; 2 | 3 | public interface IDash 4 | { 5 | float OffsetX { get; } 6 | float OffsetY { get; } 7 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Skin/Texturing/UVSquare.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Skin.Texturing; 2 | 3 | public record struct UVSquare(float U1, float V1, float U2, float V2); -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Guild/GuildRankPayload.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Guild; 2 | 3 | public partial struct GuildRankPayload 4 | { 5 | public int Rank { get; set; } 6 | } 7 | -------------------------------------------------------------------------------- /Utilities/Intersect.OpenPortChecker/PendingRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.OpenPortChecker; 2 | 3 | internal record struct PendingRequest(Guid Id, TaskCompletionSource TaskCompletionSource); -------------------------------------------------------------------------------- /vendor/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | linux-arm64;linux-x64;osx-arm64;osx-x64;win-x64 4 | 5 | -------------------------------------------------------------------------------- /Intersect (Core)/IO/ISaveable.Generic.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.IO; 2 | 3 | 4 | public interface ISaveable : ISaveable 5 | { 6 | 7 | bool Save(TTo to = default(TTo)); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/ScreenshotRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public record struct ScreenshotRequest(Func StreamFactory, string? Hint = default); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/WriteTextureToStreamDelegate.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public delegate bool WriteTextureToStreamDelegate(Stream stream, string? hint); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/ValueChangeHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public delegate void ValueChangeHandler(TValue oldValue, TValue newValue); -------------------------------------------------------------------------------- /Intersect.Server.Core/Collections/Sorting/SortDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Collections.Sorting; 2 | 3 | public enum SortDirection 4 | { 5 | Ascending, 6 | 7 | Descending, 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Entities/Pathfinding/IIndexedObject.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Entities.Pathfinding; 2 | 3 | public interface IIndexedObject 4 | { 5 | 6 | int Index { get; set; } 7 | 8 | } -------------------------------------------------------------------------------- /Intersect.Server.Framework/Items/ItemSourceType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Framework.Items; 2 | 3 | public enum ItemSourceType 4 | { 5 | Unknown = 0, 6 | Entity = 1, 7 | Map = 2, 8 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/User/AuthorizedChangeRequestBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.User; 2 | 3 | public record struct AuthorizedChangeRequestBody(string Authorization, string New); 4 | -------------------------------------------------------------------------------- /Examples/Intersect.Examples.Plugin.Client/Assets/join-our-discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Examples/Intersect.Examples.Plugin.Client/Assets/join-our-discord.png -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Async/ICancellableGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Async; 2 | 3 | public interface ICancellableGenerator : IDisposable 4 | { 5 | ICancellableGenerator Start(); 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/HandleConnectionRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public delegate bool HandleConnectionRequest(INetworkLayerInterface sender, IConnection connection); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/IPacketHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public interface IPacketHandler 4 | { 5 | bool Handle(IPacketSender packetSender, IPacket packet); 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Security/PermissionSetChangedHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.Security; 2 | 3 | public delegate void PermissionSetChangedHandler(PermissionSet permissionSet); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/BufferWriteMode.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public enum BufferWriteMode 4 | { 5 | Overwrite, 6 | Discard, 7 | NoOverwrite, 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/PrimitiveType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public enum PrimitiveType 4 | { 5 | LineList, 6 | TriangleList, 7 | TriangleStrip, 8 | } -------------------------------------------------------------------------------- /Intersect.Network/LiteNetLib/UnconnectedPacketType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network.LiteNetLib; 2 | 3 | public enum UnconnectedPacketType : byte 4 | { 5 | Plaintext = 0, 6 | AsymmetricEncrypted, 7 | } -------------------------------------------------------------------------------- /Intersect.Server.Framework/Items/IItemSource.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Framework.Items; 2 | 3 | public interface IItemSource 4 | { 5 | Guid Id { get; } 6 | ItemSourceType SourceType { get; } 7 | } -------------------------------------------------------------------------------- /Examples/Intersect.Examples.Plugin.ClientVB/Assets/join-our-discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Examples/Intersect.Examples.Plugin.ClientVB/Assets/join-our-discord.png -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Annotations/EditorFieldType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.GameObjects.Annotations; 2 | 3 | public enum EditorFieldType 4 | { 5 | Default, 6 | 7 | Pivot, 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/FadeType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum FadeType 4 | { 5 | None = 0, 6 | FadeIn, 7 | FadeOut, 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Eventing/EventHandler`2.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Eventing; 2 | 3 | public delegate void EventHandler(TSender sender, TArgs args) where TArgs : EventArgs; -------------------------------------------------------------------------------- /Intersect.Client.Core/MonoGame/NativeInterop/KnownLibrary.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.MonoGame.NativeInterop; 2 | 3 | public enum KnownLibrary 4 | { 5 | OpenAL, 6 | SDL2, 7 | steam_api, 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Core/Sounds/IMapSound.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Core.Sounds; 2 | 3 | public interface IMapSound : ISound 4 | { 5 | void UpdatePosition(int x, int y, Guid mapId); 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/Utility/SearchableTreeFilterCriteria.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.Utility; 2 | 3 | public record struct SearchableTreeFilterCriteria(string? Query); -------------------------------------------------------------------------------- /Intersect.Server/Web/Authentication/SecuritySchemes.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Authentication; 2 | 3 | public static class SecuritySchemes 4 | { 5 | public const string Bearer = nameof(Bearer); 6 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Shared/_Toasts.cshtml: -------------------------------------------------------------------------------- 1 | @using Microsoft.AspNetCore.Mvc.TagHelpers 2 | @model ToastModel[] 3 | 4 | @foreach (var model in Model) 5 | { 6 | 7 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Animations/AnimationSource.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Animations; 2 | 3 | public record struct AnimationSource(AnimationSourceType Type, Guid Id); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/DisplayMode.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public enum DisplayMode 4 | { 5 | Initial, 6 | FlowStartToEnd, 7 | FlowTopToBottom, 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/IAutoSizeToContents.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public interface IAutoSizeToContents 4 | { 5 | bool AutoSizeToContents { get; set; } 6 | } -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/Point16i.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps; 2 | 3 | public partial struct Point16i 4 | { 5 | public short X; 6 | 7 | public short Y; 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Security/ActivePermissionSetChangedHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.Security; 2 | 3 | public delegate void ActivePermissionSetChangedHandler(string activePermissionSetName); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/IColorPicker.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | 4 | public interface IColorPicker 5 | { 6 | 7 | Color SelectedColor { get; } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/IntersectModelCacheKey.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | internal sealed record IntersectModelCacheKey(Type ContextType, bool DesignTime, IntersectModelOptions ModelOptions); -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/PlayerData/LoginFailureType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database.PlayerData; 2 | 3 | public enum LoginFailureType 4 | { 5 | None, 6 | InvalidCredentials, 7 | ServerError, 8 | } -------------------------------------------------------------------------------- /Intersect.Server.Framework/Maps/IMapInstance.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Framework.Maps; 2 | 3 | public interface IMapInstance: IDisposable 4 | { 5 | Guid Id { get; } 6 | public Guid MapInstanceId { get; } 7 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Configuration/PartialKestrelEndpoint.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Configuration; 2 | 3 | public sealed record PartialKestrelEndpoint(string Url, PartialKestrelEndpointCertificate? Certificate); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Animations/AnimationSourceType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Animations; 2 | 3 | public enum AnimationSourceType 4 | { 5 | Any, 6 | SpellCast, 7 | } 8 | -------------------------------------------------------------------------------- /Intersect (Core)/Collections/Slotting/ISlot.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Collections.Slotting; 2 | 3 | 4 | public interface ISlot 5 | { 6 | 7 | int Slot { get; } 8 | 9 | bool IsEmpty { get; } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect (Core)/Enums/NpcMovement.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum NpcMovement 4 | { 5 | MoveRandomly = 0, 6 | 7 | TurnRandomly, 8 | 9 | StandStill, 10 | 11 | Static, 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Client.Core/MonoGame/NativeInterop/Platform.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.MonoGame.NativeInterop; 2 | 3 | public enum Platform 4 | { 5 | Unknown, 6 | Linux, 7 | MacOS, 8 | Windows 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/ComponentState.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public enum ComponentState 4 | { 5 | Normal = 0, 6 | Hovered, 7 | Active, 8 | Disabled, 9 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Input/KeyboardType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Input; 2 | 3 | public enum KeyboardType 4 | { 5 | Normal, 6 | Password, 7 | Email, 8 | Numeric, 9 | Pin, 10 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/PlayerData/UserRole.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database.PlayerData; 2 | 3 | public class UserRole 4 | { 5 | public Guid Id { get; set; } 6 | 7 | public string Name { get; set; } 8 | } -------------------------------------------------------------------------------- /Documentation/AvatarController/AvatarController.FileStructureEditorResources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Documentation/AvatarController/AvatarController.FileStructureEditorResources.png -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/MapZone.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps; 2 | 3 | public enum MapZone 4 | { 5 | Normal = 0, 6 | 7 | Safe, 8 | 9 | Arena, 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/EventArguments/InputSubmissionEvent/SubmissionValue.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.EventArguments.InputSubmissionEvent; 2 | 3 | public abstract record SubmissionValue; -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/Layout/IFitHeightToContents.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.Layout; 2 | 3 | public interface IFitHeightToContents 4 | { 5 | bool FitHeightToContents { get; set; } 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/OverflowBehavior.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen; 2 | 3 | public enum OverflowBehavior 4 | { 5 | Auto, 6 | 7 | Visible, 8 | 9 | Hidden, 10 | 11 | Scroll, 12 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Maps/IMapAnimation.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Entities; 2 | 3 | namespace Intersect.Client.Framework.Maps; 4 | 5 | public interface IMapAnimation : IAnimation 6 | { 7 | Guid Id { get; } 8 | } -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/AssetManagement/DownloadState.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.AssetManagement; 2 | 3 | internal enum DownloadState 4 | { 5 | Queued, 6 | Failed, 7 | Active, 8 | Completed, 9 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Access.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum Access 4 | { 5 | None = 0, 6 | 7 | Moderator, 8 | 9 | Admin, 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/IGameObject.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.GameObjects; 2 | 3 | 4 | public interface IGameObject where TValue : IGameObject 5 | { 6 | TKey Id { get; } 7 | } 8 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/HandleUnconnectedMessage.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Memory; 2 | 3 | namespace Intersect.Network; 4 | 5 | public delegate void HandleUnconnectedMessage(UnconnectedMessageSender sender, IBuffer message); -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Eventing/IAggregateSender.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Eventing; 2 | 3 | public interface IAggregateSender 4 | { 5 | object CurrentSender { get; } 6 | 7 | object? OriginalSender { get; } 8 | } -------------------------------------------------------------------------------- /Intersect (Core)/Enums/EventResponseType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum EventResponseType 4 | { 5 | OneOption = 1, 6 | 7 | TwoOption, 8 | 9 | ThreeOption, 10 | 11 | FourOption, 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Plugins/Interfaces/GameDrawHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Plugins.Interfaces; 2 | 3 | public delegate void GameDrawHandler( 4 | IClientPluginContext context, 5 | GameDrawArgs drawGameArgs 6 | ); -------------------------------------------------------------------------------- /Intersect.Editor/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Intersect.Editor": { 4 | "commandName": "Project", 5 | "workingDirectory": "$(ProjectDir)../assets/development/client" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/VariableComparison.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class VariableComparison 4 | { 5 | 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/StringVariableComparator.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum StringVariableComparator 4 | { 5 | Equal = 0, 6 | 7 | Contains, 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Net/NetworkTypes.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Net; 2 | 3 | [Flags] 4 | public enum NetworkTypes 5 | { 6 | Public = 0, 7 | Loopback = 1, 8 | Subnet = 2, 9 | PrivateNetwork = 4, 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Net/NetworkTypesExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Net; 2 | 3 | public static class NetworkTypesExtensions 4 | { 5 | public static readonly NetworkTypes[] Flags = Enum.GetValues(); 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Services/Bootstrapping/IBootstrapTask.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Services.Bootstrapping; 2 | 3 | public interface IBootstrapTask 4 | { 5 | Task ExecuteAsync(CancellationToken cancellationToken); 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Services/Bootstrapping/IBootstrapperService.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.Hosting; 2 | 3 | namespace Intersect.Framework.Services.Bootstrapping; 4 | 5 | public interface IBootstrapperService : IHostedService { } -------------------------------------------------------------------------------- /Intersect (Core)/IO/ISaveableProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.IO; 2 | 3 | 4 | public interface ISaveableProvider 5 | { 6 | 7 | ISaveable DefaultSaveable { get; } 8 | 9 | ISaveable AsSaveable(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Core/MonoGame/NativeInterop/Sdl2.Rect.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.MonoGame.NativeInterop; 2 | 3 | public struct SDL_Rect 4 | { 5 | public int x; 6 | public int y; 7 | public int w; 8 | public int h; 9 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/BoundsComparison.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public enum BoundsComparison 4 | { 5 | Width, 6 | 7 | Height, 8 | 9 | Dimensions, 10 | 11 | Area, 12 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/BufferEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public class BufferEventArgs(IGPUBuffer gpuBuffer) : EventArgs 4 | { 5 | public IGPUBuffer Buffer { get; } = gpuBuffer; 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/HSV.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen; 2 | 3 | 4 | public partial struct Hsv 5 | { 6 | 7 | public float H; 8 | 9 | public float s; 10 | 11 | public float V; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Plugins/ClientPluginEntry.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins; 2 | 3 | namespace Intersect.Client.Plugins; 4 | 5 | public abstract partial class ClientPluginEntry : PluginEntry 6 | { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_pause_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_pause_white_48dp.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_save_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_save_white_48dp.png -------------------------------------------------------------------------------- /Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_undo_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_undo_white_48dp.png -------------------------------------------------------------------------------- /Intersect.Server.Framework/Entities/IEntity.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Framework.Entities; 2 | 3 | public interface IEntity: IDisposable 4 | { 5 | Guid Id { get; } 6 | string Name { get; } 7 | Guid MapInstanceId { get; } 8 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Intersect.Server.Web.Pages 2 | @using Htmx.TagHelpers 3 | @namespace Intersect.Server.Web.Pages 4 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 5 | @addTagHelper *, Htmx.TagHelpers -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Projectiles/Location.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.GameObjects; 2 | 3 | public partial class Location 4 | { 5 | public bool[] Directions = new bool[ProjectileDescriptor.MAX_PROJECTILE_DIRECTIONS]; 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Interface/Data/IUpdatableDataProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Interface.Data; 2 | 3 | public interface IUpdatableDataProvider : IDataProvider 4 | { 5 | bool TryUpdate(TimeSpan elapsed, TimeSpan total); 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Interface/Data/ValueAdapterDelegate.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Interface.Data; 2 | 3 | public delegate TDependentValue ValueAdapterDelegate(TBaseValue value, TBaseValue oldValue); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Plugins/Interfaces/GameUpdateHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Plugins.Interfaces; 2 | 3 | public delegate void GameUpdateHandler( 4 | IClientPluginContext context, 5 | GameUpdateArgs gameUpdateArgs 6 | ); -------------------------------------------------------------------------------- /Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_colorize_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_colorize_white_48dp.png -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/PlayerData/UserSaveResult.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database.PlayerData; 2 | 3 | public enum UserSaveResult 4 | { 5 | Completed, 6 | SkippedCouldNotTakeLock, 7 | Failed, 8 | DatabaseFailure, 9 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Index.cshtml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.RazorPages; 2 | 3 | namespace Intersect.Server.Web.Pages; 4 | 5 | public class IndexModel : PageModel 6 | { 7 | public void OnGet() 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/file/file_upload/materialicons/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/AssetManagement/UpdaterStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.AssetManagement; 2 | 3 | public enum UpdaterStatus 4 | { 5 | Offline, 6 | NeedsAuthentication, 7 | Ready, 8 | NoUpdateNeeded, 9 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Entities/Stat.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum Stat 4 | { 5 | Attack = 0, 6 | 7 | AbilityPower, 8 | 9 | Defense, 10 | 11 | MagicResist, 12 | 13 | Speed, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Resources/ResourceTextureSource.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Resources; 2 | 3 | public enum ResourceTextureSource 4 | { 5 | Resource, 6 | Tileset, 7 | Animation, 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Properties/AssemblyAttributes.cs: -------------------------------------------------------------------------------- 1 | [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Intersect.Framework.Core.Tests")] 2 | [assembly: System.Runtime.CompilerServices.InternalsVisibleTo("Intersect Core")] 3 | -------------------------------------------------------------------------------- /Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_play_arrow_white_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AscensionGameDev/Intersect-Engine/HEAD/Intersect.Editor/Resources/ThirdParty/material-design-icons/sharp_play_arrow_white_48dp.png -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/SchemaMigrationMetadata.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | public class SchemaMigrationMetadata : MigrationMetadata 4 | { 5 | public override MigrationType MigrationType => MigrationType.Schema; 6 | } 7 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Chat/ChatMessageMapResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Chat; 2 | 3 | public record ChatMessageMapResponseBody(Guid MapId, bool Success, ChatMessage ChatMessage) : ChatMessageResponseBody(Success, ChatMessage); -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/AssetManagement/DownloadValidity.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.AssetManagement; 2 | 3 | internal enum DownloadValidity 4 | { 5 | Valid, 6 | Missing, 7 | LengthMismatch, 8 | ChecksumMismatch, 9 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Chatting/ChatboxChannel.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum ChatboxChannel 4 | { 5 | Player = 0, 6 | 7 | Local, 8 | 9 | Global, 10 | 11 | Party, 12 | 13 | Guild, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Editor/Mapping/MapListUpdate.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum MapListUpdate 4 | { 5 | MoveItem = 0, 6 | 7 | AddFolder = 1, 8 | 9 | Rename = 2, 10 | 11 | Delete = 3, 12 | } 13 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/EventGraphicType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum EventGraphicType 4 | { 5 | None = 0, 6 | 7 | Sprite, 8 | 9 | Tileset, 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/EventMovementType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum EventMovementType 4 | { 5 | None = 0, 6 | 7 | Random, 8 | 9 | MoveRoute, 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Projectiles/GrappleOption.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum GrappleOption 4 | { 5 | MapAttribute = 0, 6 | 7 | Player, 8 | 9 | NPC, 10 | 11 | Resource, 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/NetworkLayerInterfaceFactory.cs: -------------------------------------------------------------------------------- 1 | using System.Security.Cryptography; 2 | 3 | namespace Intersect.Network; 4 | 5 | public delegate INetworkLayerInterface NetworkLayerInterfaceFactory(INetwork network, RSAParameters rsaParameters); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IFriendInstance.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities; 2 | 3 | public interface IFriendInstance 4 | { 5 | string? Map { get; set; } 6 | string Name { get; set; } 7 | bool Online { get; set; } 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/TextureEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public class TextureEventArgs(IGameTexture gameTexture) : EventArgs 4 | { 5 | public IGameTexture GameTexture { get; } = gameTexture; 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/IColorableText.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public interface IColorableText 4 | { 5 | Color? TextColor { get; set; } 6 | 7 | Color? TextColorOverride { get; set; } 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/file/file_download/materialicons/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Quests/QuestObjective.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Quests; 2 | 3 | public enum QuestObjective 4 | { 5 | EventDriven = 0, 6 | 7 | GatherItems, 8 | 9 | KillNpcs, 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/HandleConnectionEvent.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Network.Events; 2 | 3 | namespace Intersect.Network; 4 | 5 | public delegate void HandleConnectionEvent(INetworkLayerInterface sender, ConnectionEventArgs connectionEventArgs); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Editor/PingPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Editor; 4 | 5 | 6 | [MessagePackObject] 7 | public partial class PingPacket : IntersectPacket 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Server/SpellPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server; 4 | 5 | [MessagePackObject] 6 | public partial class SpellPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IResource.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Framework.Core.GameObjects.Resources; 2 | 3 | namespace Intersect.Client.Framework.Entities; 4 | 5 | public interface IResource : IEntity 6 | { 7 | ResourceDescriptor? Descriptor { get; } 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/SpriteAnimations.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities; 2 | 3 | public enum SpriteAnimations 4 | { 5 | Normal = 0, 6 | Idle, 7 | Attack, 8 | Shoot, 9 | Cast, 10 | Weapon, 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/IGPUBuffer.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public interface IGPUBuffer : IDisposable 4 | { 5 | uint Id { get; } 6 | 7 | int Count { get; } 8 | 9 | int SizeBytes { get; } 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Interface/Data/DataProviderEventHandler`1.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Interface.Data; 2 | 3 | public delegate void DataProviderEventHandler(IDataProvider sender, TEventArgs args) 4 | where TEventArgs : EventArgs; -------------------------------------------------------------------------------- /Intersect.Server/Web/IApiService.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Core; 2 | using Intersect.Server.Web.Configuration; 3 | 4 | namespace Intersect.Server.Web; 5 | 6 | public interface IApiService : IApplicationService 7 | { 8 | ApiConfiguration Configuration { get; } 9 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Items/ConsumableType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Items; 2 | 3 | public enum ConsumableType : byte 4 | { 5 | Health = 0, 6 | 7 | Mana = 1, 8 | 9 | Experience = 2, 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/HandlePacket.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public delegate bool HandlePacket(TPacketSender packetSender, TPacket packet) 4 | where TPacketSender : IPacketSender where TPacket : IPacket; -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/CloseBankPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class CloseBankPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/CloseShopPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class CloseShopPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/EnterGamePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class EnterGamePacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Server/StopMusicPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server; 4 | 5 | [MessagePackObject] 6 | public partial class StopMusicPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework/SystemInformation/IGPUStatisticsProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.SystemInformation; 2 | 3 | public interface IGPUStatisticsProvider 4 | { 5 | long? AvailableMemory { get; } 6 | 7 | long? TotalMemory { get; } 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Core/Sounds/ISound.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Core.Sounds; 2 | 3 | public interface ISound 4 | { 5 | bool Loaded { get; set; } 6 | bool Loop { get; set; } 7 | 8 | void Stop(); 9 | bool Update(); 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/General/GameStates.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.General; 2 | 3 | 4 | public enum GameStates 5 | { 6 | 7 | Intro = 0, 8 | 9 | Menu, 10 | 11 | Loading, 12 | 13 | InGame, 14 | 15 | Error 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Core/INetworkPoolDataProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Core; 2 | 3 | internal interface INetworkPoolDataProvider 4 | { 5 | long ActiveThreads { get; } 6 | long CurrentWorkItemsCount { get; } 7 | long InUseThreads { get; } 8 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/CleanDatabaseMigrationMetadata.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | public sealed class CleanDatabaseMigrationMetadata : MigrationMetadata 4 | { 5 | public override MigrationType MigrationType => MigrationType.Clean; 6 | } -------------------------------------------------------------------------------- /Intersect.Server.Framework/Plugins/ServerPluginEntry.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins; 2 | 3 | namespace Intersect.Server.Plugins 4 | { 5 | public abstract partial class ServerPluginEntry : PluginEntry 6 | { 7 | 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Utilities/Intersect.OpenPortChecker/PortCheckerOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.OpenPortChecker; 2 | 3 | public sealed class PortCheckerOptions 4 | { 5 | public bool EnableIPv6 { get; set; } = true; 6 | 7 | public List? KnownProxies { get; set; } 8 | } -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Collections/IGameObjectLookup.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Models; 2 | 3 | namespace Intersect.Collections; 4 | 5 | 6 | public interface IGameObjectLookup : ILookup where TValue : INamedObject 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/EventRenderLayer.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum EventRenderLayer 4 | { 5 | BelowPlayer = 0, 6 | 7 | SameAsPlayer, 8 | 9 | AbovePlayer, 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Models/VariableDataType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum VariableDataType : byte 4 | { 5 | None = 0, 6 | 7 | Boolean = 1, 8 | 9 | Integer, 10 | 11 | String, 12 | 13 | Number, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/AcceptTradePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class AcceptTradePacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/CloseBagPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | 6 | [MessagePackObject] 7 | public partial class CloseBagPacket : IntersectPacket 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/DeclineTradePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class DeclineTradePacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/NewCharacterPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class NewCharacterPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/PartyLeavePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class PartyLeavePacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Server/EnteringGamePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server; 4 | 5 | [MessagePackObject] 6 | public partial class EnteringGamePacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Server/HidePicturePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server; 4 | 5 | [MessagePackObject] 6 | public partial class HidePicturePacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Server/JoinGamePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server; 4 | 5 | [MessagePackObject] 6 | public partial class JoinGamePacket : AbstractTimedPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Server/StopSoundsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Server; 4 | 5 | [MessagePackObject] 6 | public partial class StopSoundsPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/LabelType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities; 2 | 3 | public enum LabelType 4 | { 5 | 6 | Header = 0, 7 | 8 | Footer, 9 | 10 | Name, 11 | 12 | ChatBubble, 13 | 14 | Guild 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/IGameRenderTexture.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public interface IGameRenderTexture : IGameTexture 4 | { 5 | bool Begin(); 6 | 7 | void Clear(Color black); 8 | 9 | void End(); 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/EventArguments/InputSubmissionEvent/BooleanSubmissionValue.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.EventArguments.InputSubmissionEvent; 2 | 3 | public sealed record BooleanSubmissionValue(bool Value) : SubmissionValue; -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/EventArguments/InputSubmissionEvent/StringSubmissionValue.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.EventArguments.InputSubmissionEvent; 2 | 3 | public sealed record StringSubmissionValue(string? Value) : SubmissionValue; -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/ControlInternal/ButtonSoundState.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.ControlInternal; 2 | 3 | public enum ButtonSoundState 4 | { 5 | None, 6 | Hover, 7 | MouseDown, 8 | MouseUp, 9 | MouseClicked, 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Maps/IWeatherParticle.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Maps; 2 | 3 | public interface IWeatherParticle 4 | { 5 | float X { get; set; } 6 | float Y { get; set; } 7 | 8 | void Dispose(); 9 | void Update(); 10 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Entities/MovementBlockerType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Entities; 2 | 3 | public enum MovementBlockerType 4 | { 5 | NotBlocked = 0, 6 | OutOfBounds, 7 | MapAttribute, 8 | Slide, 9 | Entity, 10 | ZDimension, 11 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Authentication/AuthenticationResultType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Authentication; 2 | 3 | public enum AuthenticationResultType 4 | { 5 | Unknown, 6 | Success, 7 | ErrorOccurred, 8 | Expired, 9 | Unauthorized, 10 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Controllers/AssetManagement/AssetFileInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Controllers.AssetManagement; 2 | 3 | public sealed record AssetFileInfo(string Path, string Name, long Size) : AssetFileSystemInfo(Path, Name, AssetFileSystemInfoType.File); -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Info/InfoResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Info; 2 | 3 | public readonly struct InfoResponseBody(string name, int port) 4 | { 5 | public string Name { get; } = name; 6 | 7 | public int Port { get; } = port; 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Collections/ListExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Collections; 2 | 3 | public static partial class ListExtensions 4 | { 5 | public static IReadOnlyList WrapReadOnly(this IList list) => 6 | new ReadOnlyList(list); 7 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Entities/EntityType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum EntityType 4 | { 5 | GlobalEntity = 0, 6 | 7 | Player = 1, 8 | 9 | Resource = 2, 10 | 11 | Projectile = 3, 12 | 13 | Event = 4, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Entities/NpcAggression.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum NpcAggression 4 | { 5 | Aggressive, 6 | 7 | AttackWhenAttacked, 8 | 9 | AttackOnSight, 10 | 11 | Neutral, 12 | 13 | Guard, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Quests/QuestProgressState.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.GameObjects; 2 | 3 | public enum QuestProgressState 4 | { 5 | OnAnyTask = 0, 6 | 7 | BeforeTask = 1, 8 | 9 | AfterTask = 2, 10 | 11 | OnTask = 3, 12 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Spells/SpellType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum SpellType 4 | { 5 | CombatSpell = 0, 6 | 7 | Warp = 1, 8 | 9 | WarpTo = 2, 10 | 11 | Dash = 3, 12 | 13 | Event = 4, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/HandlePacketVoid.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public delegate void HandlePacketVoid(TPacketSender packetSender, TPacket packet) 4 | where TPacketSender : IPacketSender where TPacket : IPacket; -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/CloseCraftingPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class CloseCraftingPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/RequestFriendsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class RequestFriendsPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/UnconnectedPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network; 4 | 5 | public abstract class UnconnectedPacket : IntersectPacket 6 | { 7 | [Key(0)] public Guid MessageId { get; private set; } = Guid.NewGuid(); 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IHotbarInstance.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities; 2 | 3 | public interface IHotbarInstance 4 | { 5 | Guid BagId { get; set; } 6 | Guid ItemOrSpellId { get; set; } 7 | int[] PreferredStatBuffs { get; set; } 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/EventArguments/InputSubmissionEvent/NumericalSubmissionValue.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.EventArguments.InputSubmissionEvent; 2 | 3 | public sealed record NumericalSubmissionValue(double Value) : SubmissionValue; -------------------------------------------------------------------------------- /Intersect.Client.Framework/Items/IMapItemInstance.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Items; 2 | 3 | public interface IMapItemInstance : IItem 4 | { 5 | int TileIndex { get; } 6 | Guid Id { get; set; } 7 | int X { get; set; } 8 | int Y { get; set; } 9 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Controllers/AssetManagement/AssetDirectoryInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Controllers.AssetManagement; 2 | 3 | public sealed record AssetDirectoryInfo(string Path, string Name) : AssetFileSystemInfo(Path, Name, AssetFileSystemInfoType.Directory); -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/User/Index.cshtml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.RazorPages; 2 | 3 | namespace Intersect.Server.Web.Pages.User; 4 | 5 | public class UserIndexModel : PageModel 6 | { 7 | public void OnGet() 8 | { 9 | 10 | } 11 | } -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/notification/account_tree/materialicons/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendor/LiteNetLib"] 2 | path = vendor/LiteNetLib 3 | url = https://github.com/AscensionGameDev/LiteNetLib.git 4 | [submodule "vendor/dockpanelsuite"] 5 | path = vendor/dockpanelsuite 6 | url = https://github.com/AscensionGameDev/dockpanelsuite.git 7 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/WarpDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps; 2 | 3 | public enum WarpDirection 4 | { 5 | Retain = 0, 6 | 7 | Up, 8 | 9 | Down, 10 | 11 | Left, 12 | 13 | Right, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/OpenAdminWindowPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class OpenAdminWindowPacket : IntersectPacket 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/UnconnectedResponsePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network; 4 | 5 | public abstract class UnconnectedResponsePacket : UnconnectedPacket 6 | { 7 | [IgnoreMember] public byte[] ResponseKey { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Plugins/Interfaces/ILifecycleHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Plugins.Interfaces; 2 | 3 | /// 4 | /// Defines the API for accessing lifecycle information and events. 5 | /// 6 | public interface ILifecycleHelper 7 | { 8 | } 9 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Security/PasswordResetResultType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.Security; 2 | 3 | public enum PasswordResetResultType 4 | { 5 | Unknown, 6 | Success, 7 | NoUserFound, 8 | InvalidRequest, 9 | InvalidToken, 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Services/EmbeddedResources/EmbeddedResourceUnpackingServiceOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Services.EmbeddedResources; 2 | 3 | public sealed record EmbeddedResourceUnpackingServiceOptions(IEnumerable Requests); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/FontSizeRenderer.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public abstract class FontSizeRenderer(TPlatformObject platformObject) 4 | { 5 | public TPlatformObject PlatformObject { get; } = platformObject; 6 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/NodeFilter.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | [Flags] 4 | public enum NodeFilter 5 | { 6 | None, 7 | 8 | IncludeHidden = 1, 9 | IncludeMouseInputDisabled = 2, 10 | IncludeText = 4, 11 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Sys/GameSystem.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Sys; 2 | 3 | 4 | public abstract partial class GameSystem 5 | { 6 | 7 | public abstract void Log(string msg); 8 | 9 | public abstract void LogError(string error); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/ISeedableContext.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | 3 | namespace Intersect.Server.Database; 4 | 5 | 6 | public interface ISeedableContext 7 | { 8 | 9 | DbSet GetDbSet() where TType : class; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Maps/MapNpcSpawn.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Entities; 2 | 3 | namespace Intersect.Server.Maps; 4 | 5 | public partial class MapNpcSpawn 6 | { 7 | public Npc Entity { get; set; } 8 | 9 | public long RespawnTime { get; set; } = -1; 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Developer/Assets/_TabSet.cshtml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.RazorPages; 2 | 3 | namespace Intersect.Server.Web.Pages.Developer.Assets; 4 | 5 | public class _TabSet : PageModel 6 | { 7 | public void OnGet() 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Features/Guilds/GuildMemberUpdateAction.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum GuildMemberUpdateAction 4 | { 5 | Invite = 0, 6 | 7 | Remove, 8 | 9 | Promote, 10 | 11 | Demote, 12 | 13 | Transfer, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/EventTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum EventTrigger 4 | { 5 | ActionButton = 0, 6 | 7 | PlayerCollide, 8 | 9 | Autorun, 10 | 11 | PlayerBump, 12 | } 13 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/PortHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | 4 | public static partial class PortHelper 5 | { 6 | 7 | public static bool IsValidPort(ulong port) 8 | { 9 | return 0 < port && port <= ushort.MaxValue; 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/GameBlendModes.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public enum GameBlendModes 4 | { 5 | Add = 0, 6 | 7 | Alpha, 8 | 9 | Multiply, 10 | 11 | None, 12 | 13 | Opaque, 14 | 15 | Cutout, 16 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/INumericInput.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public interface INumericInput 4 | { 5 | double Maximum { get; set; } 6 | 7 | double Minimum { get; set; } 8 | 9 | double Value { get; set; } 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/Utility/SearchableTreeDataEntryEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.Utility; 2 | 3 | public class SearchableTreeDataEntryEventArgs : EventArgs { 4 | public required SearchableTreeDataEntry? Entry { get; init; } 5 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Input/MouseButton.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Input; 2 | 3 | public enum MouseButton 4 | { 5 | 6 | None = -1, 7 | 8 | Left = 0, 9 | 10 | Right, 11 | 12 | Middle, 13 | 14 | X1, 15 | 16 | X2 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Plugins/Interfaces/LifecycleChangeStateHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Plugins.Interfaces; 2 | 3 | public delegate void LifecycleChangeStateHandler( 4 | IClientPluginContext context, 5 | LifecycleChangeStateArgs lifecycleChangeStateArgs 6 | ); -------------------------------------------------------------------------------- /Utilities/Intersect.OpenPortChecker/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AllowedHosts": "*", 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | }, 9 | "PortChecker": { 10 | "EnableIPv6": true 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/NpcSpawnDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps; 2 | 3 | public enum NpcSpawnDirection 4 | { 5 | Random = 0, 6 | 7 | Up, 8 | 9 | Down, 10 | 11 | Left, 12 | 13 | Right, 14 | } 15 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/Utility/SearchableTreeDataEntriesEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.Utility; 2 | 3 | public class SearchableTreeDataEntriesEventArgs : EventArgs { 4 | public required SearchableTreeDataEntry[] Entries { get; init; } 5 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/LevelUpCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class LevelUpCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.LevelUp; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Serialization/IRestrictedContractResolver.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json.Serialization; 2 | 3 | namespace Intersect.Framework.Core.Serialization; 4 | 5 | public interface IRestrictedContractResolver : IContractResolver 6 | { 7 | bool SupportsType(Type type); 8 | } -------------------------------------------------------------------------------- /Intersect (Core)/BytePoint.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect; 2 | 3 | 4 | public partial struct BytePoint 5 | { 6 | 7 | public byte X; 8 | 9 | public byte Y; 10 | 11 | public BytePoint(byte x, byte y) 12 | { 13 | X = x; 14 | Y = y; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Interface/Shared/InputType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Interface.Shared; 2 | 3 | public enum InputType 4 | { 5 | Okay, 6 | 7 | YesNo, 8 | 9 | YesNoCancel, 10 | 11 | NumericInput, 12 | 13 | NumericSliderInput, 14 | 15 | TextInput, 16 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/IFontProvider.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Graphics; 2 | 3 | namespace Intersect.Client.Framework.Gwen.Control; 4 | 5 | public interface IFontProvider 6 | { 7 | IFont? Font { get; set; } 8 | 9 | int FontSize { get; set; } 10 | } -------------------------------------------------------------------------------- /Intersect.Server/Core/IConsoleService.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Core; 2 | 3 | namespace Intersect.Server.Core.Services 4 | { 5 | internal interface IConsoleService : IThreadableApplicationService 6 | { 7 | 8 | void Wait(bool doNotContinue = false); 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/AssetManagement/UpdateStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.AssetManagement; 2 | 3 | public enum UpdateStatus 4 | { 5 | None, 6 | Error, 7 | DownloadingManifest, 8 | UpdateInProgress, 9 | UpdateCompleted, 10 | Restart, 11 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/OpenBankCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class OpenBankCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.OpenBank; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/Attributes/MapBlockedAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps.Attributes; 2 | 3 | public partial class MapBlockedAttribute : MapAttribute 4 | { 5 | public override MapAttributeType Type => MapAttributeType.Blocked; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/Attributes/MapNpcAvoidAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps.Attributes; 2 | 3 | public partial class MapNpcAvoidAttribute : MapAttribute 4 | { 5 | public override MapAttributeType Type => MapAttributeType.NpcAvoid; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/MapList/MapListItem.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps.MapList; 2 | 3 | public partial class MapListItem 4 | { 5 | public string Name = string.Empty; 6 | 7 | public int Type = -1; //0 for directory, 1 for map 8 | } 9 | -------------------------------------------------------------------------------- /Intersect (Core)/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | // This file is used by Code Analysis to maintain SuppressMessage 2 | // attributes that are applied to this project. 3 | // Project-level suppressions either have no target or are given 4 | // a specific target and scoped to a namespace, type, member, etc. 5 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/TabChangeEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public class TabChangeEventArgs : EventArgs 4 | { 5 | public required TabButton? PreviousTab { get; init; } 6 | 7 | public required TabButton? ActiveTab { get; init; } 8 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Player/ItemsTakeResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Player; 2 | 3 | public readonly struct ItemsTakeResponseBody(Guid itemId, int quantity) 4 | { 5 | public Guid ItemId { get; } = itemId; 6 | 7 | public int Quantity { get; } = quantity; 8 | } 9 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/User/RegisterResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.User; 2 | 3 | public struct RegisterResponseBody(string username, string email) 4 | { 5 | public string Username { get; set; } = username; 6 | 7 | public string Email { get; set; } = email; 8 | } 9 | -------------------------------------------------------------------------------- /assets/.gitignore: -------------------------------------------------------------------------------- 1 | # Make sure we keep the default folders to prevent IDE errors when they do not exist 2 | !/development 3 | !/development/*/ 4 | !/development/*/.gitkeep 5 | !/production/ 6 | !/production/*/ 7 | !/production/*/.gitkeep 8 | !/staging/ 9 | !/staging/*/ 10 | !/staging/*/.gitkeep -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/FadeoutBgmCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class FadeoutBgmCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.FadeoutBgm; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/HidePlayerCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class HidePlayerCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.HidePlayer; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/HoldPlayerCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class HoldPlayerCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.HoldPlayer; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ShowPlayerCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ShowPlayerCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ShowPlayer; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/StopSoundsCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class StopSoundsCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.StopSounds; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/EventMovementSpeed.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum EventMovementSpeed 4 | { 5 | Slowest = 0, 6 | 7 | Slower, 8 | 9 | Normal, 10 | 11 | Faster, 12 | 13 | Fastest, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Eventing/IAggregateSender`1.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Eventing; 2 | 3 | public interface IAggregateSender : IAggregateSender where T : notnull 4 | { 5 | new T CurrentSender { get; } 6 | 7 | object IAggregateSender.CurrentSender => CurrentSender; 8 | } -------------------------------------------------------------------------------- /Intersect.Network/LiteNetLib/EncryptionResult.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network.LiteNetLib; 2 | 3 | public enum EncryptionResult 4 | { 5 | Success, 6 | NoHeader, 7 | InvalidVersion, 8 | InvalidNonce, 9 | InvalidTag, 10 | EmptyInput, 11 | SizeMismatch, 12 | Error, 13 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Account/Login.cshtml.css: -------------------------------------------------------------------------------- 1 | article { 2 | display: flex; 3 | flex-direction: row; 4 | justify-content: center; 5 | } 6 | 7 | form > section { 8 | display: flex; 9 | flex-direction: column; 10 | max-width: calc(max(37.5rem, 50vw)); 11 | min-width: 37.5rem; 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Developer/Assets.cshtml.css: -------------------------------------------------------------------------------- 1 | tab-set { 2 | width: calc(100% - 2em); 3 | } 4 | 5 | tab-content > * { 6 | margin: 1em 0; 7 | } 8 | 9 | tab-content > *:first-child { 10 | margin-top: 0; 11 | } 12 | 13 | tab-content > *:last-child { 14 | margin-bottom: 0; 15 | } 16 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Async/ICancellableGenerator`1.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Async; 2 | 3 | public interface ICancellableGenerator : ICancellableGenerator 4 | { 5 | new ICancellableGenerator Start(); 6 | 7 | ICancellableGenerator ICancellableGenerator.Start() => Start(); 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/HidePictureCommmand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class HidePictureCommmand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.HidePicture; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/EventMovementFrequency.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum EventMovementFrequency 4 | { 5 | Lowest = 0, 6 | 7 | Lower, 8 | 9 | Normal, 10 | 11 | Higher, 12 | 13 | Highest, 14 | } 15 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Spells/SpellTargetType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum SpellTargetType 4 | { 5 | Self = 0, 6 | 7 | Single = 1, 8 | 9 | AoE = 2, 10 | 11 | Projectile = 3, 12 | 13 | OnHit = 4, 14 | 15 | Trap = 5, 16 | } 17 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Models/IFolderable.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Models; 2 | 3 | public interface IFolderable 4 | { 5 | /// 6 | /// Used to group editor items together into folders with the same name 7 | /// 8 | string? Folder { get; set; } 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/DrawStates.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public enum DrawStates 4 | { 5 | GroundLayers = 0, 6 | 7 | BelowPlayer, 8 | 9 | AbovePlayer, 10 | 11 | FringeLayers, 12 | 13 | BeforeEntity, 14 | 15 | AfterEntity, 16 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/ITextContainer.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control; 2 | 3 | public interface ITextContainer 4 | { 5 | Padding Padding { get; set; } 6 | 7 | string? Text { get; set; } 8 | 9 | Color? TextPaddingDebugColor { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Skin/Texturing/IAtlasDrawable.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.GenericClasses; 2 | 3 | namespace Intersect.Client.Framework.Gwen.Skin.Texturing; 4 | 5 | public interface IAtlasDrawable 6 | { 7 | void Draw(Renderer.Base renderer, Rectangle targetBounds, Color color); 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Interface/Data/DataProviderEventHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Interface.Data; 2 | 3 | public delegate void DataProviderEventHandler(TDataProvider sender, TEventArgs args) 4 | where TDataProvider : IDataProvider where TEventArgs : EventArgs; -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/file/file_upload/materialiconssharp/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/OpenGuildBankCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class OpenGuildBankCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.OpenGuildBank; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ReleasePlayerCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ReleasePlayerCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ReleasePlayer; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/ItemEventTrigger.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum ItemEventTrigger 4 | { 5 | OnPickup = 0, 6 | OnDrop, 7 | OnUse, 8 | OnEquip, 9 | OnUnequip, 10 | OnHit, 11 | OnDamageReceived 12 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/Attributes/MapGrappleStoneAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps.Attributes; 2 | 3 | public partial class MapGrappleStoneAttribute : MapAttribute 4 | { 5 | public override MapAttributeType Type => MapAttributeType.GrappleStone; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/FadeCompletePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public class FadeCompletePacket : IntersectPacket 7 | { 8 | public FadeCompletePacket() 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/ITextHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | using Intersect.Client.Framework.GenericClasses; 3 | 4 | namespace Intersect.Client.Framework.Graphics; 5 | 6 | public interface ITextHelper 7 | { 8 | Vector2 MeasureText(string? text, IFont? font, int size, float fontScale); 9 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/PlayerData/Players/IPlayerOwned.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Entities; 2 | 3 | namespace Intersect.Server.Database.PlayerData.Players; 4 | 5 | 6 | public interface IPlayerOwned 7 | { 8 | 9 | Player Player { get; } 10 | 11 | Guid PlayerId { get; } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/User/UserInfoRequestBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.User; 2 | 3 | public partial struct UserInfoRequestBody 4 | { 5 | public string Username { get; set; } 6 | 7 | public string Password { get; set; } 8 | 9 | public string Email { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/file/file_download/materialiconssharp/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Direction.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Enums; 2 | 3 | public enum Direction 4 | { 5 | None = -1, 6 | 7 | Up, 8 | 9 | Down, 10 | 11 | Left, 12 | 13 | Right, 14 | 15 | UpLeft, 16 | 17 | UpRight, 18 | 19 | DownRight, 20 | 21 | DownLeft, 22 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/IPacketSender.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Core; 2 | 3 | namespace Intersect.Network; 4 | 5 | public interface IPacketSender 6 | { 7 | IApplicationContext ApplicationContext { get; } 8 | 9 | INetwork Network { get; } 10 | 11 | bool Send(IPacket packet); 12 | } 13 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/PingPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class PingPacket : AbstractTimedPacket 7 | { 8 | [Key(3)] 9 | public bool Responding { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Editor/Core/DummyStartupOptions.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Core; 2 | 3 | namespace Intersect.Editor.Core; 4 | 5 | public sealed class DummyStartupOptions : ICommandLineOptions 6 | { 7 | public string WorkingDirectory => Environment.CurrentDirectory; 8 | public IEnumerable PluginDirectories => []; 9 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Entities/Label.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Server.Entities; 4 | 5 | 6 | public partial struct Label(string label, Color color) 7 | { 8 | [JsonProperty(nameof(Label))] 9 | public string Text = label; 10 | 11 | public Color Color = color; 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Player/ItemInfoRequestBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Player; 2 | 3 | public partial struct ItemInfoRequestBody 4 | { 5 | public Guid ItemId { get; set; } 6 | 7 | public int Quantity { get; set; } 8 | 9 | public bool BankOverflow { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/CombatCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class CombatCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.IsInCombat; 6 | } 7 | -------------------------------------------------------------------------------- /Intersect.Client.Core/MonoGame/Audio/MonoSoundInstance.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Xna.Framework.Audio; 2 | 3 | namespace Intersect.Client.MonoGame.Audio; 4 | 5 | public partial class MonoSoundInstance(MonoSoundSource source) 6 | : MonoAudioInstance(source, source.Effect?.CreateInstance()); -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/IPartyMember.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Entities; 2 | 3 | public interface IPartyMember 4 | { 5 | Guid Id { get; set; } 6 | int Level { get; set; } 7 | long[] MaxVital { get; set; } 8 | string Name { get; set; } 9 | long[] Vital { get; set; } 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Interface/Data/TryProviderValueDelegate.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics.CodeAnalysis; 2 | 3 | namespace Intersect.Client.Interface.Data; 4 | 5 | public delegate bool TryProviderValueDelegate( 6 | TimeSpan elapsed, 7 | TimeSpan total, 8 | [NotNullWhen(true)] out TValue newValue 9 | ); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ExitEventProcessingCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ExitEventProcessingCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ExitEventProcess; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/WaitCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class WaitCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.Wait; 6 | 7 | public int Time { get; set; } 8 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Entities/Pathfinding/PathNodeBlockType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Entities.Pathfinding; 2 | 3 | public enum PathNodeBlockType 4 | { 5 | Nonblocking, 6 | InvalidTile, 7 | OutOfRange, 8 | AttributeBlock, 9 | AttributeNpcAvoid, 10 | Npc, 11 | Player, 12 | Entity, 13 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Maps/MapResourceSpawn.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Entities; 2 | 3 | namespace Intersect.Server.Maps; 4 | 5 | 6 | public partial class MapResourceSpawn 7 | { 8 | 9 | public Resource Entity; 10 | 11 | public int EntityIndex = -1; 12 | 13 | public long RespawnTime = -1; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Chat/ChatMessageLookupKeyResponseBody.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Collections.Indexing; 2 | 3 | namespace Intersect.Server.Web.Types.Chat; 4 | 5 | public record ChatMessageLookupKeyResponseBody(LookupKey LookupKey, bool Success, ChatMessage ChatMessage) : ChatMessageResponseBody(Success, ChatMessage); 6 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Player/ItemsGiveResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Player; 2 | 3 | public readonly struct ItemsGiveResponseBody(Guid id, ItemsGiveQuantityData items) 4 | { 5 | public Guid Id { get; init; } = id; 6 | 7 | public ItemsGiveQuantityData Quantity { get; init; } = items; 8 | } 9 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/IClient.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | 4 | public interface IClient : INetwork 5 | { 6 | IConnection Connection { get; } 7 | 8 | bool IsConnected { get; } 9 | 10 | bool IsServerOnline { get; } 11 | 12 | int Ping { get; } 13 | 14 | bool Connect(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Interface/Game/DescriptionWindows/Components/DividerComponent.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Gwen.Control; 2 | 3 | namespace Intersect.Client.Interface.Game.DescriptionWindows.Components; 4 | 5 | public partial class DividerComponent(Base parent, string name) : ComponentBase(parent, name) 6 | { 7 | } 8 | -------------------------------------------------------------------------------- /Intersect.Client.Core/MonoGame/Graphics/SpriteFontRenderer.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Graphics; 2 | using Microsoft.Xna.Framework.Graphics; 3 | 4 | namespace Intersect.Client.MonoGame.Graphics; 5 | 6 | public sealed class SpriteFontRenderer(SpriteFont platformObject) : FontSizeRenderer(platformObject) 7 | { 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/AssetManagement/DownloadResult.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.AssetManagement; 2 | 3 | internal sealed class DownloadResult 4 | { 5 | public long Count { get; set; } 6 | 7 | public string? OverrideBaseUrl { get; init; } 8 | 9 | public DownloadState State { get; set; } 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/LabelCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class LabelCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.Label; 6 | 7 | public string Label { get; set; } 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Core/Entities/Events/Dialog.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Entities.Events; 2 | 3 | public partial class Dialog 4 | { 5 | public Guid EventId; 6 | 7 | public string? Face; 8 | 9 | public string[] Options = []; 10 | 11 | public string? Prompt; 12 | 13 | public bool ResponseSent; 14 | } 15 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Controllers/AssetManagement/CachedManifest.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Framework.Core.AssetManagement; 2 | 3 | namespace Intersect.Server.Web.Controllers.AssetManagement; 4 | 5 | internal sealed record CachedManifest(UpdateManifest Manifest, DateTime Expiry) 6 | { 7 | public bool IsExpired => DateTime.UtcNow >= Expiry; 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/OpenShopCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class OpenShopCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.OpenShop; 6 | 7 | public Guid ShopId { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/SetClassCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class SetClassCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.SetClass; 6 | 7 | public Guid ClassId { get; set; } 8 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Core/SinglePlayerNetworkPoolDataProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Core; 2 | 3 | internal sealed class SinglePlayerNetworkPoolDataProvider : INetworkPoolDataProvider 4 | { 5 | public long ActiveThreads => default; 6 | public long CurrentWorkItemsCount => default; 7 | public long InUseThreads => default; 8 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Maps/MapItemSpawn.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Maps; 2 | 3 | 4 | public partial class MapItemSpawn 5 | { 6 | public Guid Id { get; } = Guid.NewGuid(); 7 | 8 | public int AttributeSpawnX = -1; 9 | 10 | public int AttributeSpawnY = -1; 11 | 12 | public long RespawnTime = -1; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Logs/IpAddressResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Logs; 2 | 3 | public partial class IpAddressResponseBody 4 | { 5 | public string Ip { get; set; } 6 | 7 | public DateTime LastUsed { get; set; } 8 | 9 | public Dictionary OtherUsers { get; set; } = []; 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/action/delete/materialiconsoutlined/24px.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/GoToLabelCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class GoToLabelCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.GoToLabel; 6 | 7 | public string Label { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ResetStatPointAllocationsCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ResetStatPointAllocationsCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ResetStatPointAllocations; 6 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/RestoreHpCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class RestoreHpCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.RestoreHp; 6 | 7 | public int Amount { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/RestoreMpCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class RestoreMpCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.RestoreMp; 6 | 7 | public int Amount { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/SetAccessCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class SetAccessCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.SetAccess; 6 | 7 | public Access Access { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Events/ConnectionEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network.Events; 2 | 3 | public partial class ConnectionEventArgs : EventArgs 4 | { 5 | public Guid EventId { get; set; } 6 | 7 | public NetworkStatus NetworkStatus { get; set; } 8 | 9 | public IConnection Connection { get; set; } 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/IFont.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public interface IFont 4 | { 5 | string Name { get; } 6 | 7 | ICollection SupportedSizes { get; } 8 | 9 | int PickBestMatchFor(int size); 10 | 11 | int GetNextFontSize(int startSize, int direction, int limit = 0); 12 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Http/ContentTypes.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Http; 2 | 3 | public static class ContentTypes 4 | { 5 | public const string Html = "text/html"; 6 | public const string Json = "application/json"; 7 | public const string OctetStream = "application/octet-stream"; 8 | public const string Png = "image/png"; 9 | } -------------------------------------------------------------------------------- /Intersect.Server/appsettings.Staging.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "Common": { 5 | "MinimumLevel": { 6 | "Default": "Information", 7 | "Override": { 8 | "Intersect": "Debug", 9 | "Microsoft": "Information", 10 | "System": "Information" 11 | } 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/MapIsCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class MapIsCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.MapIs; 6 | 7 | public Guid MapId { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ChangeLevelCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ChangeLevelCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ChangeLevel; 6 | 7 | public int Level { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Items/ItemType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Items; 2 | 3 | public enum ItemType 4 | { 5 | None = 0, 6 | 7 | Equipment = 1, 8 | 9 | Consumable = 2, 10 | 11 | Currency = 3, 12 | 13 | Spell = 4, 14 | 15 | Event = 5, 16 | 17 | Bag = 6, 18 | } 19 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Interface/Data/IDataProvider.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Gwen.Control.EventArguments; 2 | 3 | namespace Intersect.Client.Interface.Data; 4 | 5 | public interface IDataProvider 6 | { 7 | event DataProviderEventHandler>? ValueChanged; 8 | 9 | object? Value { get; } 10 | } -------------------------------------------------------------------------------- /Intersect.Network/NetworkMetaStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | 4 | public enum NetworkMetaStatus 5 | { 6 | 7 | Unknown = 0, 8 | 9 | ConnectionEstablished = 1, 10 | 11 | HandshakeRequested = 2, 12 | 13 | HandshakeReceived = 4, 14 | 15 | HandshakeCompleted = 8, 16 | 17 | Connected = 16 18 | 19 | } 20 | -------------------------------------------------------------------------------- /NuGet.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/PlayBgmCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class PlayBgmCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.PlayBgm; 6 | 7 | public string File { get; set; } = string.Empty; 8 | } -------------------------------------------------------------------------------- /Intersect (Core)/SharedConstants.cs: -------------------------------------------------------------------------------- 1 | using System.Text; 2 | 3 | namespace Intersect; 4 | 5 | 6 | public static partial class SharedConstants 7 | { 8 | 9 | public static readonly string VersionName = "Beta Eridani (201802251101-05)"; 10 | 11 | public static readonly byte[] VersionData = Encoding.UTF8.GetBytes(VersionName); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Core/ServerContextFactory.cs: -------------------------------------------------------------------------------- 1 | 2 | using Intersect.Plugins.Interfaces; 3 | using Microsoft.Extensions.Logging; 4 | 5 | namespace Intersect.Server.Core; 6 | 7 | internal delegate IServerContext ServerContextFactory( 8 | ServerCommandLineOptions startupOptions, 9 | ILogger logger, 10 | IPacketHelper packetHelper 11 | ); -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/IDataMigration.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | internal partial interface IDataMigration 4 | where TContext : IntersectDbContext 5 | { 6 | void Down(DatabaseContextOptions databaseContextOptions); 7 | 8 | void Up(DatabaseContextOptions databaseContextOptions); 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Server/Database/DataMigrations/MySql/MySqlUserVariablePopulateNewColumnId.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database.DataMigrations.MySql; 2 | 3 | [SchemaMigration(typeof(Migrations.MySql.Player.UserVariables_AddStandaloneIdPK), ApplyIfLast = true)] 4 | public sealed class MySqlUserVariablePopulateNewColumnId : UserVariablePopulateNewColumnId 5 | { 6 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Developer/ServerSettings/Index.cshtml.css: -------------------------------------------------------------------------------- 1 | ::deep form { 2 | width: 100%; 3 | } 4 | 5 | ::deep form tab-content.selected, 6 | ::deep span.field > fieldset { 7 | display: grid; 8 | grid-gap: 0.5em; 9 | grid-template-columns: minmax(min-content, 20em) minmax(min-content, 20em); 10 | grid-auto-rows: min-content; 11 | } 12 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/ClassIsCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class ClassIsCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.ClassIs; 6 | 7 | public Guid ClassId { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/PlaySoundCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class PlaySoundCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.PlaySound; 6 | 7 | public string File { get; set; } = string.Empty; 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/VariableComparator.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public enum VariableComparator 4 | { 5 | Equal = 0, 6 | 7 | GreaterOrEqual, 8 | 9 | LesserOrEqual, 10 | 11 | Greater, 12 | 13 | Less, 14 | 15 | NotEqual, 16 | 17 | Between, 18 | } 19 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Configuration/PartialKestrelEndpointCertificateType.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using Newtonsoft.Json.Converters; 3 | 4 | namespace Intersect.Server.Web.Configuration; 5 | 6 | [JsonConverter(typeof(StringEnumConverter))] 7 | public enum PartialKestrelEndpointCertificateType 8 | { 9 | None, 10 | ECDSA, 11 | RSA, 12 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ChangeFaceCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ChangeFaceCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ChangeFace; 6 | 7 | public string Face { get; set; } = string.Empty; 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/WaitForRouteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class WaitForRouteCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.WaitForRouteCompletion; 6 | 7 | public Guid TargetId { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/ResourceSpawn.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps; 2 | 3 | public partial class ResourceSpawn 4 | { 5 | public Guid Id { get; set; } = Guid.NewGuid(); 6 | 7 | public Guid ResourceId; 8 | 9 | public byte X; 10 | 11 | public byte Y; 12 | 13 | public byte Z; 14 | } 15 | -------------------------------------------------------------------------------- /Intersect (Core)/Extensions/KeyValuePairExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Extensions; 2 | 3 | public static partial class KeyValuePairExtensions 4 | { 5 | public static void Deconstruct(this KeyValuePair pair, out TKey key, out TValue val) 6 | { 7 | key = pair.Key; 8 | val = pair.Value; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Orientation.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen; 2 | 3 | public enum Orientation 4 | { 5 | LeftToRight, 6 | RightToLeft, 7 | TopToBottom, 8 | BottomToTop, 9 | 10 | Horizontal = LeftToRight, 11 | Vertical = TopToBottom, 12 | 13 | Landscape = Horizontal, 14 | Portrait = Vertical, 15 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/CheckEquippedSlot.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class CheckEquippedSlot : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.CheckEquipment; 6 | 7 | public string Name { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/KnowsSpellCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class KnowsSpellCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.KnowsSpell; 6 | 7 | public Guid SpellId { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ChangeSpriteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ChangeSpriteCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ChangeSprite; 6 | 7 | public string Sprite { get; set; } = string.Empty; 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/SetMoveRouteCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class SetMoveRouteCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.SetMoveRoute; 6 | 7 | public EventMoveRoute Route { get; set; } = new(); 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Items/ItemEffect.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Items; 2 | 3 | public enum ItemEffect : byte 4 | { 5 | None = 0, 6 | 7 | CooldownReduction = 1, 8 | 9 | Lifesteal = 2, 10 | 11 | Tenacity = 3, 12 | 13 | Luck = 4, 14 | 15 | EXP = 5, 16 | 17 | Manasteal = 6, 18 | } 19 | -------------------------------------------------------------------------------- /Intersect (Core)/Network/NetworkFactory.cs: -------------------------------------------------------------------------------- 1 | using System.Security.Cryptography; 2 | using Intersect.Core; 3 | 4 | namespace Intersect.Network; 5 | 6 | public delegate INetwork NetworkFactory( 7 | IApplicationContext applicationContext, 8 | RSAParameters rsaParameters, 9 | HandlePacket handlePacket, 10 | ShouldProcessPacket? shouldProcessPacket 11 | ); -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/ContextProvider.Locking.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | public sealed partial class ContextProvider 4 | { 5 | private partial class LockProvider where TContext : IntersectDbContext, UContext 6 | { 7 | public static readonly object Lock = new object(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/DataMigrations/Sqlite/SqliteUserVariablePopulateNewColumnId.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database.DataMigrations.Sqlite; 2 | 3 | [SchemaMigration(typeof(Migrations.Sqlite.Player.UserVariables_AddStandaloneIdPK), ApplyIfLast = true)] 4 | public sealed class SqliteUserVariablePopulateNewColumnId : UserVariablePopulateNewColumnId 5 | { 6 | 7 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Player/ItemsGiveQuantityData.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Player; 2 | 3 | public readonly struct ItemsGiveQuantityData(int total, int bank, int inventory) 4 | { 5 | public int Total { get; init; } = total; 6 | 7 | public int Bank { get; init; } = bank; 8 | 9 | public int Inventory { get; init; } = inventory; 10 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ascension Game Dev 4 | url: https://ascensiongamedev.com 5 | about: Please ask and answer questions on our public forum. 6 | - name: Community Discord 7 | url: https://discord.gg/Ggt3KJV 8 | about: Feel free to chat or also find support in our Discord community. 9 | -------------------------------------------------------------------------------- /.idea/.idea.Intersect/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /contentModel.xml 6 | /projectSettingsUpdater.xml 7 | /.idea.Intersect.iml 8 | /modules.xml 9 | # Datasource local storage ignored files 10 | /dataSources/ 11 | /dataSources.local.xml 12 | # Editor-based HTTP Client requests 13 | /httpRequests/ 14 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Unconnected/Server/ServerStatusResponsePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Unconnected.Server; 4 | 5 | [MessagePackObject] 6 | public partial class ServerStatusResponsePacket : UnconnectedResponsePacket 7 | { 8 | [Key(1)] 9 | public NetworkStatus Status { get; set; } 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Core/Entities/FriendInstance.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Entities; 2 | 3 | namespace Intersect.Client.Entities; 4 | 5 | public partial class FriendInstance : IFriendInstance 6 | { 7 | public string? Map { get; set; } 8 | 9 | public string Name { get; set; } = null!; 10 | 11 | public bool Online { get; set; } = false; 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Core/Services/ILogicService.cs: -------------------------------------------------------------------------------- 1 | using Amib.Threading; 2 | using Intersect.Core; 3 | 4 | namespace Intersect.Server.Core.Services; 5 | 6 | internal interface ILogicService : IThreadableApplicationService 7 | { 8 | long CyclesPerSecond { get; } 9 | 10 | object LogicLock { get; } 11 | 12 | SmartThreadPool LogicPool { get; } 13 | } 14 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/CanStartQuestCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class CanStartQuestCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.CanStartQuest; 6 | 7 | public Guid QuestId { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/IsItemEquippedCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class IsItemEquippedCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.IsItemEquipped; 6 | 7 | public Guid ItemId { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/QuestCompletedCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class QuestCompletedCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.QuestCompleted; 6 | 7 | public Guid QuestId { get; set; } 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/StringVariableMod.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events; 2 | 3 | public partial class StringVariableMod : VariableMod 4 | { 5 | public VariableModType ModType { get; set; } = VariableModType.Set; 6 | 7 | public string Value { get; set; } 8 | 9 | public string Replace { get; set; } 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Web/TokenResultType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Web; 2 | 3 | public enum TokenResultType 4 | { 5 | Unknown, 6 | TokenReceived, 7 | RequestError, 8 | InvalidUsername, 9 | InvalidPassword, 10 | ClientSideFailure, 11 | InvalidRefreshToken, 12 | InvalidCredentials, 13 | InvalidResponse, 14 | Failed, 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Utilities/Nullability.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Utilities; 2 | 3 | 4 | public static partial class Nullability 5 | { 6 | 7 | public static T IsNotNull(this T value) 8 | { 9 | if (value == null) 10 | { 11 | throw new InvalidOperationException(); 12 | } 13 | 14 | return value; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/EventArguments/InputSubmissionEventArgs.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Gwen.Control.EventArguments.InputSubmissionEvent; 2 | 3 | namespace Intersect.Client.Framework.Gwen.Control.EventArguments; 4 | 5 | public class InputSubmissionEventArgs(SubmissionValue value) : EventArgs 6 | { 7 | public SubmissionValue Value { get; } = value; 8 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Interface/Data/DelayProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Interface.Data; 2 | 3 | public sealed class DelayProvider(TimeSpan delay) : DelayedDataProvider(delay) 4 | { 5 | protected override bool TryDelayedUpdate(TimeSpan elapsed, TimeSpan total) 6 | { 7 | EmitValueChanged(true, true); 8 | return true; 9 | } 10 | } -------------------------------------------------------------------------------- /Intersect.Editor/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 | [assembly: 2 | System.Diagnostics.CodeAnalysis.SuppressMessage( 3 | "Style", "IDE1005:Delegate invocation can be simplified.", 4 | Justification = "if-null is more readable for newer programmers.", Scope = "member", 5 | Target = "~M:Intersect_Editor.Classes.PacketHandler.HandleGameObject(System.Byte[])" 6 | )] 7 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/TimeBetweenCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class TimeBetweenCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.TimeBetween; 6 | 7 | public int[] Ranges { get; set; } = new int[2]; 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/NetworkStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public enum NetworkStatus 4 | { 5 | 6 | Unknown = 0, 7 | 8 | Connecting, 9 | 10 | Online, 11 | 12 | Offline, 13 | 14 | Failed, 15 | 16 | VersionMismatch, 17 | 18 | ServerFull, 19 | 20 | HandshakeFailure, 21 | 22 | Quitting, 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/Control/Utility/SearchableTreeDataEntry.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Gwen.Control.Utility; 2 | 3 | public record struct SearchableTreeDataEntry( 4 | string Id, 5 | string DisplayText, 6 | Color? DisplayColor = null, 7 | string? Name = default, 8 | string? ParentId = default, 9 | object? UserData = default 10 | ); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Collections/SanitizedValue.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Collections; 2 | 3 | 4 | public partial struct SanitizedValue 5 | { 6 | 7 | public T Before { get; } 8 | 9 | public T After { get; } 10 | 11 | public SanitizedValue(T before, T after) 12 | { 13 | Before = before; 14 | After = after; 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Items/ConsumableData.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | 3 | namespace Intersect.Framework.Core.GameObjects.Items; 4 | 5 | [Owned] 6 | public partial class ConsumableData 7 | { 8 | public ConsumableType Type { get; set; } 9 | 10 | public long Value { get; set; } 11 | 12 | public int Percentage { get; set; } 13 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/Tile.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Framework.Core.GameObjects.Maps; 4 | 5 | public partial struct Tile 6 | { 7 | public Guid TilesetId; 8 | 9 | public int X; 10 | 11 | public int Y; 12 | 13 | public byte Autotile; 14 | 15 | [JsonIgnore] 16 | public object TilesetTexture; 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Client/Program.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Intersect.Framework.Reflection; 3 | 4 | var executingAssembly = Assembly.GetExecutingAssembly(); 5 | Console.WriteLine( 6 | $"Starting {executingAssembly.GetMetadataName()} in {Environment.CurrentDirectory}...\n\t{string.Join(' ', args)}" 7 | ); 8 | 9 | Intersect.Client.Core.Program.Main(Assembly.GetExecutingAssembly(), args); -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/notification/account_tree/materialiconssharp/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Annotations/EditorTimeAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.GameObjects.Annotations; 2 | 3 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] 4 | public class EditorTimeAttribute : EditorFormattedAttribute 5 | { 6 | public EditorTimeAttribute() : base("FormatTimeMilliseconds") 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/PlayerClass/ClassSprite.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | 3 | namespace Intersect.Framework.Core.GameObjects.PlayerClass; 4 | 5 | public partial class ClassSprite 6 | { 7 | public string Face { get; set; } = string.Empty; 8 | 9 | public Gender Gender { get; set; } 10 | 11 | public string Sprite { get; set; } = string.Empty; 12 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Annotations/PasswordAttribute.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | namespace Intersect.Framework.Annotations; 4 | 5 | [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] 6 | public sealed class PasswordAttribute : CachedExistenceAttribute 7 | { 8 | public static bool IsPassword(MemberInfo memberInfo) => ExistsOn(memberInfo); 9 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Plugins/Interfaces/LifecycleChangeStateArgs.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.General; 2 | 3 | namespace Intersect.Client.Plugins.Interfaces; 4 | 5 | public partial class LifecycleChangeStateArgs : EventArgs 6 | { 7 | public GameStates State { get; } 8 | 9 | public LifecycleChangeStateArgs(GameStates state) 10 | { 11 | State = state; 12 | } 13 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Plugins/Interfaces/TimedArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Plugins.Interfaces; 2 | 3 | public partial class TimedArgs : EventArgs 4 | { 5 | /// 6 | /// Time since the last update. 7 | /// 8 | public TimeSpan Delta { get; } 9 | 10 | public TimedArgs(TimeSpan delta) 11 | { 12 | Delta = delta; 13 | } 14 | } -------------------------------------------------------------------------------- /Intersect.Server.Framework/Items/IItem.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Framework.Core.GameObjects.Items; 2 | using Intersect.GameObjects; 3 | 4 | namespace Intersect.Server.Framework.Items; 5 | 6 | public interface IItem 7 | { 8 | Guid ItemId { get; } 9 | ItemDescriptor Descriptor { get; } 10 | int Quantity { get; } 11 | string ItemName { get; } 12 | double DropChance { get; } 13 | } -------------------------------------------------------------------------------- /Utilities/Intersect.OpenPortChecker/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Kestrel": { 3 | "Endpoints": { 4 | "Http": { 5 | "Url": "http://localhost:5380" 6 | } 7 | } 8 | }, 9 | "Logging": { 10 | "LogLevel": { 11 | "Default": "Debug", 12 | "Microsoft.AspNetCore": "Warning" 13 | } 14 | }, 15 | "PortChecker": { 16 | "KnownProxies": ["localhost"] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/DespawnNpcCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class DespawnNpcCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.DespawnNpc; 6 | 7 | //No parameters, only despawns npcs that have been spawned via events for the player 8 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Spells/SpellWarpDescriptor.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | 3 | namespace Intersect.GameObjects; 4 | 5 | [Owned] 6 | public partial class SpellWarpDescriptor 7 | { 8 | public Guid MapId { get; set; } 9 | 10 | public int X { get; set; } 11 | 12 | public int Y { get; set; } 13 | 14 | public int Dir { get; set; } 15 | } -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/file/drive_file_rename_outline/materialicons/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Examples/.idea/.idea.Intersect.Examples/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /contentModel.xml 6 | /projectSettingsUpdater.xml 7 | /.idea.Intersect.Examples.iml 8 | /modules.xml 9 | # Datasource local storage ignored files 10 | /dataSources/ 11 | /dataSources.local.xml 12 | # Editor-based HTTP Client requests 13 | /httpRequests/ 14 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Interface/Menu/CharacterSelectionPreviewMetadata.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Network.Packets.Server; 2 | 3 | namespace Intersect.Client.Interface.Menu; 4 | 5 | public record struct CharacterSelectionPreviewMetadata( 6 | Guid Id, 7 | string Name, 8 | string Sprite, 9 | string Face, 10 | int Level, 11 | string Class, 12 | EquipmentFragment[] Equipment 13 | ); -------------------------------------------------------------------------------- /Intersect.Server.Core/Entities/Pathfinding/PathfinderResultType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Entities.Pathfinding; 2 | 3 | public enum PathfinderResultType 4 | { 5 | 6 | Success, 7 | 8 | OutOfRange, 9 | 10 | NoPathToTarget, 11 | 12 | Failure, //No Map, No Target, Who Knows? 13 | 14 | Wait, //Pathfinder won't run due to recent failures and trying to conserve cpu 15 | 16 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Index.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @using Intersect.Server.Web.Pages.Shared.Players 3 | @model IndexModel 4 | @{ 5 | ViewData["Title"] = "Home page"; 6 | } 7 | 8 | @await Html.PartialAsync( 9 | "~/Web/Pages/Shared/Players/_PlayerList.cshtml", 10 | new PlayerListModel 11 | { 12 | Caption = WebResources.Leaderboard, 13 | ShowRank = true, 14 | } 15 | ) -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ChangeGenderCommand.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | 3 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 4 | 5 | public partial class ChangeGenderCommand : EventCommand 6 | { 7 | public override EventCommandType Type { get; } = EventCommandType.ChangeGender; 8 | 9 | public Gender Gender { get; set; } = Gender.Male; 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/EndQuestCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class EndQuestCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.EndQuest; 6 | 7 | public Guid QuestId { get; set; } 8 | 9 | public bool SkipCompletionEvent { get; set; } 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Input/IControlsProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics.CodeAnalysis; 2 | 3 | namespace Intersect.Client.Framework.Input; 4 | 5 | public interface IControlsProvider 6 | { 7 | Control[] Controls { get; } 8 | 9 | bool TryGetDefaultMapping(Control control, [NotNullWhen(true)] out ControlMapping? defaultMapping); 10 | 11 | void ReloadFromOptions(Options? options); 12 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Index copy.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @using Intersect.Server.Web.Pages.Shared.Players 3 | @model IndexModel 4 | @{ 5 | ViewData["Title"] = "Home page"; 6 | } 7 | 8 | @await Html.PartialAsync( 9 | "~/Web/Pages/Shared/Players/_PlayerList.cshtml", 10 | new PlayerListModel 11 | { 12 | Caption = WebResources.Leaderboard, 13 | ShowRank = true, 14 | } 15 | ) -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/navigation/refresh/materialicons/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/navigation/refresh/materialiconssharp/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildProjectDirectory)\..\.. 5 | 6 | 7 | 8 | 9 | 10 | $(MSBuildProjectDirectory)\..\.. 11 | 12 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Attributes/RelatedTableAttribute.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | 3 | namespace Intersect.Attributes; 4 | 5 | [AttributeUsage(AttributeTargets.Field)] 6 | public sealed class RelatedTableAttribute : Attribute 7 | { 8 | public GameObjectType TableType { get; } 9 | 10 | public RelatedTableAttribute(GameObjectType gameObjectType) { TableType = gameObjectType; } 11 | } 12 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/GenderIsCondition.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | 3 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 4 | 5 | public partial class GenderIsCondition : Condition 6 | { 7 | public override ConditionType Type { get; } = ConditionType.GenderIs; 8 | 9 | public Gender Gender { get; set; } = Gender.Male; 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Quests/QuestProgress.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.GameObjects; 4 | 5 | public partial class QuestProgress 6 | { 7 | public bool Completed; 8 | 9 | public Guid TaskId; 10 | 11 | public int TaskProgress; 12 | 13 | public QuestProgress(string data) 14 | { 15 | JsonConvert.PopulateObject(data, this); 16 | } 17 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/GuildLeavePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class GuildLeavePacket : IntersectPacket 7 | { 8 | /// 9 | /// Parameterless Constructor for MessagePack 10 | /// 11 | public GuildLeavePacket() 12 | { 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect (Core)/Core/IThreadableApplicationService.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Core; 2 | 3 | /// 4 | /// Declares the API surface for application services that have their own thread. 5 | /// 6 | public interface IThreadableApplicationService : IApplicationService 7 | { 8 | /// 9 | /// The thread for this service. 10 | /// 11 | Thread Thread { get; } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Gwen/DragDrop/Package.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Gwen.Control; 2 | 3 | namespace Intersect.Client.Framework.Gwen.DragDrop; 4 | 5 | 6 | public partial class Package 7 | { 8 | 9 | public Base DrawControl; 10 | 11 | public Point HoldOffset; 12 | 13 | public bool IsDraggable; 14 | 15 | public string Name; 16 | 17 | public object UserData; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Shared/Players/_PlayerCard.cshtml.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Entities; 2 | using Microsoft.AspNetCore.Mvc.RazorPages; 3 | 4 | namespace Intersect.Server.Web.Pages.Shared.Players; 5 | 6 | public partial class PlayerCardModel : PageModel 7 | { 8 | public Player? Player { get; set; } 9 | 10 | public long? Rank { get; set; } 11 | 12 | public long? RankScale { get; set; } 13 | } -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/action/receipt/materialicons/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/navigation/refresh/materialiconstwotone/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/notification/account_tree/materialiconsoutlined/24px.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /Utilities/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(MSBuildProjectDirectory)\..\.. 5 | 6 | 7 | 8 | 9 | 10 | $(MSBuildProjectDirectory)\..\.. 11 | 12 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/CompleteQuestTaskCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class CompleteQuestTaskCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.CompleteQuestTask; 6 | 7 | public Guid QuestId { get; set; } 8 | 9 | public Guid TaskId { get; set; } 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/SetSelfSwitchCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class SetSelfSwitchCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.SetSelfSwitch; 6 | 7 | public int SwitchId { get; set; } //0 through 3 8 | 9 | public bool Value { get; set; } 10 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Content/TextureType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Content; 2 | 3 | public enum TextureType 4 | { 5 | 6 | Tileset = 0, 7 | 8 | Item, 9 | 10 | Entity, 11 | 12 | Spell, 13 | 14 | Animation, 15 | 16 | Face, 17 | 18 | Image, 19 | 20 | Fog, 21 | 22 | Resource, 23 | 24 | Paperdoll, 25 | 26 | Gui, 27 | 28 | Misc, 29 | 30 | } 31 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Controllers/AssetManagement/AssetFileSystemInfoType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Controllers.AssetManagement; 2 | 3 | [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] 4 | [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] 5 | public enum AssetFileSystemInfoType 6 | { 7 | File, 8 | Directory, 9 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Extensions/BaseContextExtensions.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Authentication; 2 | 3 | namespace Intersect.Server.Web.Extensions; 4 | 5 | public static class BaseContextExtensions 6 | { 7 | public static ILogger GetAPILogger(this BaseContext context) where TOptions : AuthenticationSchemeOptions 8 | { 9 | return context.HttpContext.GetAPILogger(); 10 | } 11 | } -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/file/create_new_folder/materialiconsoutlined/24px.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/NoNpcsOnMapCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class NoNpcsOnMapCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.NoNpcsOnMap; 6 | 7 | public bool SpecificNpc { get; set; } 8 | 9 | public Guid NpcId { get; set; } 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ShowTextCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ShowTextCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ShowText; 6 | 7 | public string Text { get; set; } = string.Empty; 8 | 9 | public string Face { get; set; } = string.Empty; 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/RequestGuildPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class RequestGuildPacket : IntersectPacket 7 | { 8 | /// 9 | /// Parameterless Constructor for MessagePack 10 | /// 11 | public RequestGuildPacket() 12 | { 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Entities/Entity.Constants.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Entities; 2 | 3 | public partial class Entity 4 | { 5 | protected readonly int MapWidth = Options.Instance.Map.MapWidth; 6 | protected readonly int MapHeight = Options.Instance.Map.MapHeight; 7 | protected readonly int TileWidth = Options.Instance.Map.TileWidth; 8 | protected readonly int TileHeight = Options.Instance.Map.TileHeight; 9 | } -------------------------------------------------------------------------------- /Intersect.Client.Core/MonoGame/NativeInterop/OpenGL/GL.NVX_gpu_memory_info.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.MonoGame.NativeInterop.OpenGL; 2 | 3 | public static partial class GL 4 | { 5 | public static bool IsNVX_gpu_memory_infoSupported => IsExtensionSupported("GL_NVX_gpu_memory_info"); 6 | 7 | private static long glGetNVXGPUMemoryInfo(GLenum name) 8 | { 9 | return glGetIntegerv(name); 10 | } 11 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Maps/IActionMessage.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Maps; 2 | 3 | public interface IActionMessage 4 | { 5 | Color Color { get; init; } 6 | IMapInstance Map { get; init; } 7 | string Text { get; init; } 8 | long TransmissionTimer { get; init; } 9 | int X { get; init; } 10 | int XOffset { get; init; } 11 | int Y { get; init; } 12 | 13 | void TryRemove(); 14 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Pages/Account/Logout.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @using Microsoft.AspNetCore.Mvc.TagHelpers 3 | @model LogoutModel 4 | @{ 5 | ViewData["Title"] = WebResources.Logout; 6 | } 7 | 8 |
9 |
10 | 11 |
12 |
-------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/action/receipt/materialiconssharp/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/IPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Collections; 2 | 3 | namespace Intersect.Network; 4 | 5 | 6 | public interface IPacket : IDisposable 7 | { 8 | 9 | byte[] Data { get; } 10 | 11 | bool IsValid { get; } 12 | 13 | long ReceiveTime { get; set; } 14 | 15 | long ProcessTime { get; set; } 16 | 17 | Dictionary> Sanitize(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Interface/Data/IDataProvider`1.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Framework.Gwen.Control.EventArguments; 2 | 3 | namespace Intersect.Client.Interface.Data; 4 | 5 | public interface IDataProvider : IDataProvider 6 | { 7 | new event DataProviderEventHandler>? ValueChanged; 8 | 9 | object? IDataProvider.Value => Value; 10 | 11 | new TValue Value { get; } 12 | } -------------------------------------------------------------------------------- /Intersect.Server.Framework/Plugins/Helpers/IServerLifecycleHelper.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins.Interfaces; 2 | 3 | namespace Intersect.Server.Plugins.Helpers 4 | { 5 | /// 6 | /// Defines the API for accessing server lifecycle information and events. 7 | /// 8 | /// 9 | public interface IServerLifecycleHelper : ILifecycleHelper 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | **/.dockerignore 2 | **/.env 3 | **/.git 4 | **/.gitignore 5 | **/.project 6 | **/.settings 7 | **/.toolstarget 8 | **/.vs 9 | **/.vscode 10 | **/.idea 11 | **/*.*proj.user 12 | **/*.dbmdl 13 | **/*.jfm 14 | **/azds.yaml 15 | **/bin 16 | **/charts 17 | **/docker-compose* 18 | **/Dockerfile* 19 | **/node_modules 20 | **/npm-debug.log 21 | **/obj 22 | **/secrets.dev.yaml 23 | **/values.dev.yaml 24 | LICENSE 25 | README.md -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/SelfSwitchCondition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 2 | 3 | public partial class SelfSwitchCondition : Condition 4 | { 5 | public override ConditionType Type { get; } = ConditionType.SelfSwitch; 6 | 7 | public int SwitchIndex { get; set; } //0 through 3 8 | 9 | public bool Value { get; set; } 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/SetGuildBankSlotsCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class SetGuildBankSlotsCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.SetGuildBankSlots; 6 | 7 | public VariableType VariableType { get; set; } 8 | 9 | public Guid VariableId { get; set; } 10 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/GenericPacketTypeArgumentsAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | [AttributeUsage(AttributeTargets.Class)] 4 | public sealed class GenericPacketTypeArgumentsAttribute : Attribute 5 | { 6 | public GenericPacketTypeArgumentsAttribute(params Type[] typeArguments) 7 | { 8 | TypeArguments = typeArguments; 9 | } 10 | 11 | public Type[] TypeArguments { get; } 12 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Entities/Label.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Client.Framework.Entities; 4 | 5 | 6 | public partial class Label 7 | { 8 | 9 | [JsonProperty("Label")] public string Text { get; set; } 10 | 11 | public Color Color { get; set; } 12 | 13 | public Label(string label, Color color) 14 | { 15 | Text = label; 16 | Color = color; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Intersect.Network/LiteNetLib/LiteNetLibLogger.cs: -------------------------------------------------------------------------------- 1 | 2 | using Intersect.Core; 3 | using LiteNetLib; 4 | using Microsoft.Extensions.Logging; 5 | 6 | namespace Intersect.Network.LiteNetLib; 7 | 8 | public sealed class LiteNetLibLogger : INetLogger 9 | { 10 | public void WriteNet(NetLogLevel level, string format, params object[] args) => 11 | ApplicationContext.Context.Value?.Logger.Log(level.ToLogLevel(), format, args); 12 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Configuration/PartialKestrelEndpointCertificate.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using Newtonsoft.Json.Converters; 3 | 4 | namespace Intersect.Server.Web.Configuration; 5 | 6 | public record PartialKestrelEndpointCertificate( 7 | string? Path, 8 | string? KeyPath, 9 | [property: JsonConverter(typeof(StringEnumConverter))] 10 | PartialKestrelEndpointCertificateType SelfSignedCertificateType 11 | ); -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/GuildInviteAcceptPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class GuildInviteAcceptPacket : IntersectPacket 7 | { 8 | /// 9 | /// Parameterless Constructor for MessagePack 10 | /// 11 | public GuildInviteAcceptPacket() 12 | { 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/GuildInviteDeclinePacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class GuildInviteDeclinePacket : IntersectPacket 7 | { 8 | /// 9 | /// Parameterless Constructor for MessagePack 10 | /// 11 | public GuildInviteDeclinePacket() 12 | { 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Server.Framework/Items/MapItemSource.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Framework.Maps; 2 | 3 | namespace Intersect.Server.Framework.Items; 4 | 5 | public partial class MapItemSource : IItemSource 6 | { 7 | public Guid Id { get; init; } 8 | public ItemSourceType SourceType => ItemSourceType.Map; 9 | public WeakReference MapInstanceReference { get; init; } 10 | public Guid DescriptorId { get; init; } 11 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Plugins/PluginConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Plugins; 4 | 5 | /// 6 | /// The basic plugin configuration class. 7 | /// 8 | public partial class PluginConfiguration 9 | { 10 | /// 11 | /// If this plugin is enabled or not. 12 | /// 13 | [JsonProperty] 14 | public bool IsEnabled { get; internal set; } 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Spells/Spell.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Spells; 2 | 3 | 4 | public partial class Spell 5 | { 6 | 7 | public Guid Id { get; set; } 8 | 9 | public Spell Clone() 10 | { 11 | var newSpell = new Spell() { 12 | Id = Id 13 | }; 14 | 15 | return newSpell; 16 | } 17 | 18 | public void Load(Guid spellId) 19 | { 20 | Id = spellId; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Middleware/ApplicationContextMiddleware.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Core; 2 | 3 | namespace Intersect.Server.Web.Middleware; 4 | 5 | public sealed class ApplicationContextMiddleware(RequestDelegate next, IApplicationContext applicationContext) 6 | { 7 | public async Task Invoke(HttpContext context) 8 | { 9 | ApplicationContext.Context.Value ??= applicationContext; 10 | await next(context); 11 | } 12 | } -------------------------------------------------------------------------------- /Intersect (Core)/Network/PacketLifecycle.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Network; 2 | 3 | public sealed partial class PacketLifecycle 4 | { 5 | public Type PacketType { get; } 6 | 7 | public IReadOnlyList PreHandlers { get; } 8 | 9 | public IReadOnlyList PostHandlers { get; } 10 | 11 | public IPacketHandler Preprocessor { get; } 12 | 13 | public IPacketHandler Handler { get; } 14 | 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Intersect.Server.Core/Database/SchemaMigrationAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Database; 2 | 3 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] 4 | internal sealed partial class SchemaMigrationAttribute : SchemaMigrationTypeAttribute 5 | { 6 | public SchemaMigrationAttribute(Type schemaMigrationType) 7 | : base(schemaMigrationType) { } 8 | 9 | public bool ApplyIfLast { get; set; } 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Server/Core/CommandParsing/Arguments/HelpArgument.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Localization; 2 | 3 | namespace Intersect.Server.Core.CommandParsing.Arguments 4 | { 5 | 6 | public partial class HelpArgument : CommandArgument 7 | { 8 | 9 | public HelpArgument() : base(Strings.Commands.Arguments.Help) 10 | { 11 | } 12 | 13 | public override bool IsFlag => true; 14 | 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/file/file_upload/materialiconstwotone/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/ConditionMetadata/AccessIsCondition.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using Intersect.Framework.Core.GameObjects.Events; 3 | 4 | namespace Intersect.Framework.Core.GameObjects.Conditions.ConditionMetadata; 5 | 6 | public partial class AccessIsCondition : Condition 7 | { 8 | public override ConditionType Type { get; } = ConditionType.AccessIs; 9 | 10 | public Access Access { get; set; } 11 | } -------------------------------------------------------------------------------- /Intersect.Client.Framework/Content/IAsset.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Content; 2 | 3 | public interface IAsset 4 | { 5 | public event Action? Disposed; 6 | 7 | public event Action? Loaded; 8 | 9 | public event Action? Unloaded; 10 | 11 | public bool IsDisposed { get; } 12 | 13 | public bool IsLoaded { get; } 14 | 15 | string Id { get; } 16 | 17 | public string Name { get; } 18 | } 19 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/IDataPage.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Collections.Sorting; 2 | 3 | namespace Intersect.Server.Web.Types; 4 | 5 | public interface IDataPage 6 | { 7 | int Total { get; init; } 8 | int Page { get; init; } 9 | int PageSize { get; init; } 10 | int Count { get; init; } 11 | IEnumerable Sort { get; init; } 12 | IEnumerable Values { get; init; } 13 | dynamic Extra { get; init; } 14 | } -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/file/file_download/materialiconstwotone/24px.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ScreenFadeCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ScreenFadeCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.Fade; 6 | 7 | public FadeType FadeType { get; set; } 8 | 9 | public bool WaitForCompletion { get; set; } 10 | 11 | public int DurationMs { get; set; } 12 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/BuyItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public class BuyItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public BuyItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public BuyItemPacket(int slot, int quantity) : base(slot, quantity) 14 | { 15 | } 16 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Annotations/IgnoreAttribute.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | namespace Intersect.Framework.Annotations; 4 | 5 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Struct | AttributeTargets.Enum)] 6 | public sealed class IgnoreAttribute : CachedExistenceAttribute 7 | { 8 | public static bool IsIgnored(MemberInfo memberInfo) => ExistsOn(memberInfo); 9 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework/Services/ExceptionHandling/IExceptionHandlingService.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Services.ExceptionHandling; 2 | 3 | public interface IExceptionHandlingService 4 | { 5 | event EventHandler? UnhandledException; 6 | 7 | event EventHandler? UnobservedTaskException; 8 | 9 | void DispatchUnhandledException(Exception exception, bool isTerminating); 10 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Player/ItemListResponseBody.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Server.Database.PlayerData.Players; 2 | 3 | namespace Intersect.Server.Web.Types.Player; 4 | 5 | public readonly struct ItemListResponse(IEnumerable bankItems, IEnumerable inventoryItems) 6 | { 7 | public IEnumerable Bank { get; init; } = bankItems; 8 | 9 | public IEnumerable Inventory { get; init; } = inventoryItems; 10 | } -------------------------------------------------------------------------------- /Intersect.Server/wwwroot/material/navigation/refresh/materialiconsoutlined/24px.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /Intersect.Tests.Client/Stub.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.Utilities; 2 | using NUnit.Framework; 3 | 4 | namespace Intersect.Tests.Client 5 | { 6 | 7 | [TestFixture] 8 | public partial class Stub 9 | { 10 | 11 | [Test] 12 | public void TestStub() 13 | { 14 | // Needed so NUnit doesn't return -2 15 | Assert.That(0, Is.EqualTo(MathHelper.Lerp(0, 0, 0))); 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/Commands/ChangeNameColorCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Events.Commands; 2 | 3 | public partial class ChangeNameColorCommand : EventCommand 4 | { 5 | public override EventCommandType Type { get; } = EventCommandType.ChangeNameColor; 6 | 7 | public Color Color { get; set; } 8 | 9 | public bool Override { get; set; } 10 | 11 | public bool Remove { get; set; } 12 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/PlayerClass/ClassSpell.cs: -------------------------------------------------------------------------------- 1 | using Intersect.GameObjects; 2 | using Newtonsoft.Json; 3 | 4 | namespace Intersect.Framework.Core.GameObjects.PlayerClass; 5 | 6 | public partial class ClassSpell 7 | { 8 | [JsonProperty] 9 | public Guid Id { get; set; } 10 | 11 | public int Level { get; set; } 12 | 13 | public SpellDescriptor Get() 14 | { 15 | return SpellDescriptor.Get(Id); 16 | } 17 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/DropItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public class DropItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public DropItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public DropItemPacket(int slot, int quantity) : base(slot, quantity) 14 | { 15 | } 16 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/HotbarSwapPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class HotbarSwapPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public HotbarSwapPacket() : base(0,0) 10 | { 11 | } 12 | 13 | public HotbarSwapPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/SellItemPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public class SellItemPacket : SlotQuantityPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SellItemPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SellItemPacket(int slot, int quantity) : base(slot, quantity) 14 | { 15 | } 16 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/SwapSpellsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class SwapSpellsPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SwapSpellsPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SwapSpellsPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Events/BooleanVariableMod.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | 3 | namespace Intersect.Framework.Core.GameObjects.Events; 4 | 5 | public partial class BooleanVariableMod : VariableMod 6 | { 7 | public bool Value { get; set; } 8 | 9 | public VariableType DupVariableType { get; set; } = VariableType.PlayerVariable; 10 | 11 | [JsonProperty("DupVariableId")] 12 | public Guid DuplicateVariableId { get; set; } 13 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Maps/MapAttributeType.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Maps; 2 | 3 | public enum MapAttributeType : byte 4 | { 5 | Walkable = 0, 6 | 7 | Blocked, 8 | 9 | Item, 10 | 11 | ZDimension, 12 | 13 | NpcAvoid, 14 | 15 | Warp, 16 | 17 | Sound, 18 | 19 | Resource, 20 | 21 | Animation, 22 | 23 | GrappleStone, 24 | 25 | Slide, 26 | 27 | Critter, 28 | } 29 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Spells/SpellDashDescriptor.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.EntityFrameworkCore; 2 | 3 | namespace Intersect.GameObjects; 4 | 5 | [Owned] 6 | public partial class SpellDashDescriptor 7 | { 8 | public bool IgnoreMapBlocks { get; set; } 9 | 10 | public bool IgnoreActiveResources { get; set; } 11 | 12 | public bool IgnoreInactiveResources { get; set; } 13 | 14 | public bool IgnoreZDimensionAttributes { get; set; } 15 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Server/NpcEntityPacket.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using MessagePack; 3 | 4 | namespace Intersect.Network.Packets.Server; 5 | 6 | [MessagePackObject] 7 | public partial class NpcEntityPacket : EntityPacket 8 | { 9 | //Parameterless Constructor for MessagePack 10 | public NpcEntityPacket() 11 | { 12 | } 13 | 14 | 15 | [Key(24)] 16 | public NpcAggression Aggression { get; set; } 17 | } 18 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Plugins/IPluginContext`1.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Plugins; 2 | 3 | /// 4 | /// Defines the API of the during application runtime. 5 | /// 6 | /// a subtype 7 | public interface IPluginContext : IPluginContext 8 | where TPluginContext : IPluginContext 9 | { 10 | } 11 | -------------------------------------------------------------------------------- /Intersect.Client.Framework/Graphics/VertexComponent.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Client.Framework.Graphics; 2 | 3 | public enum VertexComponent 4 | { 5 | Position = 0x1 << 1, 6 | Color = 0x1 << 2, 7 | TextureUV = 0x1 << 3, 8 | Normal = 0x1 << 4, 9 | Binormal = 0x1 << 5, 10 | Tangent = 0x1 << 6, 11 | BlendIndices = 0x1 << 7, 12 | BlendWeight = 0x1 << 8, 13 | Depth = 0x1 << 9, 14 | Fog = 0x1 << 10, 15 | PointSize = 0x1 << 11, 16 | } -------------------------------------------------------------------------------- /Intersect.Server.Core/Plugins/Helpers/ServerLifecycleHelper.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins.Helpers; 2 | 3 | namespace Intersect.Server.Plugins.Helpers; 4 | 5 | /// 6 | internal sealed partial class ServerLifecycleHelper : ContextHelper, IServerLifecycleHelper 7 | { 8 | /// 9 | public ServerLifecycleHelper(IServerPluginContext context) : base(context) 10 | { 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/AdminActionParameters.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types; 2 | 3 | public partial struct AdminActionParameters 4 | { 5 | public string Moderator { get; set; } 6 | 7 | public int Duration { get; set; } 8 | 9 | public bool Ip { get; set; } 10 | 11 | public string Reason { get; set; } 12 | 13 | public byte X { get; set; } 14 | 15 | public byte Y { get; set; } 16 | 17 | public Guid MapId { get; set; } 18 | } -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/Info/InfoStatsResponseBody.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types.Info; 2 | 3 | public struct InfoStatsResponseBody(long uptime, long cps, int? connectedClients, int? onlineCount) 4 | { 5 | public long Uptime { get; set; } = uptime; 6 | 7 | public long Cps { get; set; } = cps; 8 | 9 | public int? ConnectedClients { get; set; } = connectedClients; 10 | 11 | public int? OnlineCount { get; set; } = onlineCount; 12 | } 13 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Config/DatabaseType.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Framework.Annotations; 2 | 3 | namespace Intersect.Config; 4 | 5 | public enum DatabaseType 6 | { 7 | [Ignore] 8 | Unknown, 9 | 10 | SQLite, 11 | 12 | Sqlite = SQLite, 13 | 14 | sqlite = SQLite, 15 | 16 | MySQL, 17 | 18 | MySql = MySQL, 19 | 20 | Mysql = MySQL, 21 | 22 | mysql = MySQL, 23 | 24 | MariaDB = MySQL, 25 | 26 | mariadb = MariaDB, 27 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/GameObjects/Conditions/Condition.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Framework.Core.GameObjects.Conditions; 2 | 3 | public partial class Condition 4 | { 5 | public virtual ConditionType Type { get; } 6 | 7 | public bool Negated { get; set; } 8 | 9 | /// 10 | /// Configures whether or not this condition does or does not have an else branch. 11 | /// 12 | public bool ElseEnabled { get; set; } = true; 13 | } -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/SwapBagItemsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class SwapBagItemsPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SwapBagItemsPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SwapBagItemsPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/SwapInvItemsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class SwapInvItemsPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SwapInvItemsPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SwapInvItemsPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Intersect.Client.Core/Maps/MapGrid.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Client.General; 2 | using Intersect.Client.Framework.Maps; 3 | 4 | namespace Intersect.Client.Maps; 5 | 6 | public partial class MapGrid : IMapGrid 7 | { 8 | /// 9 | public Guid[,] Content => Globals.MapGrid; 10 | 11 | /// 12 | public long Height => Globals.MapGridHeight; 13 | 14 | /// 15 | public long Width => Globals.MapGridWidth; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Intersect.Server.Framework/Items/EntityItemSource.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Enums; 2 | using Intersect.Server.Framework.Entities; 3 | 4 | namespace Intersect.Server.Framework.Items; 5 | 6 | public partial class EntityItemSource: IItemSource 7 | { 8 | public Guid Id { get; init; } 9 | public ItemSourceType SourceType => ItemSourceType.Entity; 10 | public EntityType EntityType { get; init; } 11 | public WeakReference EntityReference { get; init; } 12 | } -------------------------------------------------------------------------------- /Intersect.Server.Framework/Plugins/IServerPluginContext.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Plugins; 2 | using Intersect.Server.Plugins.Helpers; 3 | 4 | namespace Intersect.Server.Plugins 5 | { 6 | /// 7 | /// Declares the plugin API surface for the Intersect server 8 | /// 9 | public interface IServerPluginContext : IPluginContext 10 | { 11 | IMapHelper MapHelper { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Intersect.Server/Web/Types/PagingInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Intersect.Server.Web.Types; 2 | 3 | // TODO: Struct, right now there's an exception when it's a struct and I'm not sure how to fix it 4 | public class PagingInfo 5 | { 6 | public const int MaxPageSize = 100; 7 | public const int MinPageSize = 5; 8 | public const int DefaultPageSize = 10; 9 | 10 | public int Page { get; set; } = 0; 11 | 12 | public int PageSize { get; set; } = DefaultPageSize; 13 | } -------------------------------------------------------------------------------- /Intersect.Tests.Editor/Stub.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace Intersect.Tests.Editor 4 | { 5 | 6 | [TestFixture] 7 | public partial class Stub 8 | { 9 | 10 | [Test] 11 | public void TestStub() 12 | { 13 | // Needed so NUnit doesn't return -2 14 | // TODO: Remove this when there are actual tests in this assembly 15 | Assert.AreEqual(0, 0); 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Intersect.Tests.Network/Stub.cs: -------------------------------------------------------------------------------- 1 | using NUnit.Framework; 2 | 3 | namespace Intersect.Tests.Network 4 | { 5 | 6 | [TestFixture] 7 | public partial class Stub 8 | { 9 | 10 | [Test] 11 | public void TestStub() 12 | { 13 | // Needed so NUnit doesn't return -2 14 | // TODO: Remove this when there are actual tests in this assembly 15 | Assert.AreEqual(0, 0); 16 | } 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Config/MetricsOptions.cs: -------------------------------------------------------------------------------- 1 | using Intersect.Framework.Annotations; 2 | 3 | namespace Intersect.Config; 4 | 5 | /// 6 | /// Contains configurable options pertaining to stat/metrics collecting 7 | /// 8 | public partial class MetricsOptions 9 | { 10 | /// 11 | /// Track game performance metrics 12 | /// 13 | [RequiresRestart] 14 | public bool Enable { get; set; } = false; 15 | } 16 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/Packets/Client/SwapBankItemsPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network.Packets.Client; 4 | 5 | [MessagePackObject] 6 | public partial class SwapBankItemsPacket : SlotSwapPacket 7 | { 8 | //Parameterless Constructor for MessagePack 9 | public SwapBankItemsPacket() : base(0, 0) 10 | { 11 | } 12 | 13 | public SwapBankItemsPacket(int slot1, int slot2) : base(slot1, slot2) { } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Framework/Intersect.Framework.Core/Network/UnconnectedRequestPacket.cs: -------------------------------------------------------------------------------- 1 | using MessagePack; 2 | 3 | namespace Intersect.Network; 4 | 5 | public abstract class UnconnectedRequestPacket : UnconnectedPacket 6 | { 7 | protected UnconnectedRequestPacket() { } 8 | 9 | protected UnconnectedRequestPacket(byte[] responseKey) 10 | { 11 | ResponseKey = responseKey; 12 | } 13 | 14 | [Key(1)] public byte[] ResponseKey { get; set; } = Array.Empty(); 15 | } --------------------------------------------------------------------------------