From e4a2e7ff3654916564b3ac073392fb85c52a02ab Mon Sep 17 00:00:00 2001 From: CaptainSegis Date: Sat, 15 Apr 2017 03:12:22 -0500 Subject: [PATCH] Added DataModel ignored files to source control --- .../2.5DHero/DataModel/IDataModelContainer.vb | 15 + .../DataModel/Json/ContentPack/ContentPack.vb | 22 + .../DataModel/Json/EntityPropertyExtension.vb | 49 ++ 2.5DHero/2.5DHero/DataModel/Json/Game/Item.vb | 210 ++++++++ .../DataModel/Json/Game/MainMenuMap.vb | 16 + .../2.5DHero/DataModel/Json/Game/MapModel.vb | 375 +++++++++++++++ .../DataModel/Json/Game/PrimitiveModel.vb | 27 ++ .../2.5DHero/DataModel/Json/Game/Trainer.vb | 128 +++++ .../DataModel/Json/GameJolt/BanList.vb | 33 ++ .../DataModel/Json/GameJolt/DataStorage.vb | 29 ++ .../DataModel/Json/GameJolt/UserData.vb | 64 +++ .../DataModel/Json/GameJolt/VerifyUser.vb | 26 + .../DataModel/Json/GameMode Data/Badges.vb | 31 ++ .../DataModel/Json/GameMode Data/Contacts.vb | 27 ++ .../DataModel/Json/GameMode Data/GameMode.vb | 74 +++ .../Json/GameMode Data/Interactions.vb | 78 +++ .../DataModel/Json/GameMode Data/Pokedex.vb | 24 + .../DataModel/Json/GameMode Data/Radio.vb | 62 +++ .../Json/GameMode Data/RoamingRegions.vb | 18 + .../Json/GameMode Data/SmashRockItems.vb | 29 ++ .../DataModel/Json/GameMode Data/Worldmap.vb | 65 +++ .../2.5DHero/DataModel/Json/JsonDataModel.vb | 244 ++++++++++ .../2.5DHero/DataModel/Json/JsonFormatter.vb | 88 ++++ .../Json/Localization/LocalizationModel.vb | 30 ++ .../DataModel/Json/Network/PackageModel.vb | 24 + .../DataModel/Json/PlayerData/KeyboardSave.vb | 93 ++++ .../DataModel/Json/PlayerData/Options.vb | 86 ++++ .../DataModel/Json/PlayerData/Pokemon.vb | 449 ++++++++++++++++++ .../DataModel/Json/PlayerData/ServerList.vb | 35 ++ 29 files changed, 2451 insertions(+) create mode 100644 2.5DHero/2.5DHero/DataModel/IDataModelContainer.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/ContentPack/ContentPack.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/EntityPropertyExtension.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/Game/Item.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/Game/MainMenuMap.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/Game/MapModel.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/Game/PrimitiveModel.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/Game/Trainer.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameJolt/BanList.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameJolt/DataStorage.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameJolt/UserData.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameJolt/VerifyUser.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Badges.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Contacts.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/GameMode.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Interactions.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Pokedex.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Radio.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/RoamingRegions.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/SmashRockItems.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Worldmap.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/JsonDataModel.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/JsonFormatter.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/Localization/LocalizationModel.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/Network/PackageModel.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/PlayerData/KeyboardSave.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/PlayerData/Options.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/PlayerData/Pokemon.vb create mode 100644 2.5DHero/2.5DHero/DataModel/Json/PlayerData/ServerList.vb diff --git a/2.5DHero/2.5DHero/DataModel/IDataModelContainer.vb b/2.5DHero/2.5DHero/DataModel/IDataModelContainer.vb new file mode 100644 index 000000000..05d1e6770 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/IDataModelContainer.vb @@ -0,0 +1,15 @@ +Namespace DataModel + + ''' + ''' An interface for objects that implement a datamodel. + ''' + Public Interface IDataModelContainer + + ''' + ''' Gets and/or sets the data model. + ''' + ReadOnly Property DataModel As Json.JsonDataModel + + End Interface + +End Namespace diff --git a/2.5DHero/2.5DHero/DataModel/Json/ContentPack/ContentPack.vb b/2.5DHero/2.5DHero/DataModel/Json/ContentPack/ContentPack.vb new file mode 100644 index 000000000..4a80fca62 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/ContentPack/ContentPack.vb @@ -0,0 +1,22 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.ContentPack + + + Public Class ContentPackModel + + + Public Name As String + + + Public Version As String + + + Public Author As String + + + Public Description As String + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/EntityPropertyExtension.vb b/2.5DHero/2.5DHero/DataModel/Json/EntityPropertyExtension.vb new file mode 100644 index 000000000..58036a3b5 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/EntityPropertyExtension.vb @@ -0,0 +1,49 @@ +Namespace DataModel.Json + + Class EntityPropertyExtension + + Private _entityModel As Game.EntityModel + + Public Sub New(ByVal entityModel As Game.EntityModel) + _entityModel = entityModel + End Sub + + Private Property _PropertyValue(ByVal propertyName As String) As String + Get + For Each p As Game.EntityModel.PropertyDataModel In _entityModel.Properties + If p.Name = propertyName Then + Return p.Value + End If + Next + Return "" + End Get + Set(value As String) + For Each p As Game.EntityModel.PropertyDataModel In _entityModel.Properties + If p.Name = propertyName Then + p.Value = value + End If + Next + End Set + End Property + +#Region "Converters" + + Private Function Bool(ByVal s As String) As Boolean + Return Boolean.Parse(s) + End Function + +#End Region + +#Region "Floor" + + Public ReadOnly Property HasIce() As Boolean + Get + Return Bool(_PropertyValue("HasIce")) + End Get + End Property + +#End Region + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/Game/Item.vb b/2.5DHero/2.5DHero/DataModel/Json/Game/Item.vb new file mode 100644 index 000000000..fe95aaa2e --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/Game/Item.vb @@ -0,0 +1,210 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.Game + + ''' + ''' The data model of an item. + ''' + + Public Class ItemModel + + Inherits JsonDataModel + + + Public Name As String + + + Public PluralName As String + + + Public Price As Integer + + + Public Id As Integer + + + Public Texture As TextureSourceModel + + + Public Description As String + + + Public ScriptBinding As String + + + Public InventoryDefinition As InventoryDefinitionModel + + + Public Usage As ItemUsageModel + + + Public Classification As ItemClassificationModel + + + Public Berry As BerryModel + + + Public Megastone As MegastoneModel + + + Public Plate As PlateModel + + + Public TechnicalMachine As TechnicalMachineModel + + + Public Class TechnicalMachineModel + + + Public MoveId As Integer + + + Public IsTM As Boolean + + End Class + + + Public Class PlateModel + + + Private TypeStr As String + + Public Property Type() As Element + Get + Return New Element(TypeStr) + End Get + Set(value As Element) + TypeStr = value.ToString() + End Set + End Property + + End Class + + + Public Class MegastoneModel + + + Public MegaPokemonNumber As Integer + + End Class + + + Public Class BerryModel + + Inherits JsonDataModel + + + Public PhaseTime As Integer + + + Public Size As String + + + Public Firmness As String + + + Public MinBerries As Integer + + + Public MaxBerries As Integer + + + Private FlavourStr As String + + Public Property Flavour() As Items.Berry.Flavours + Get + Return ConvertStringToEnum(Of Items.Berry.Flavours)(FlavourStr) + End Get + Set(value As Items.Berry.Flavours) + FlavourStr = value.ToString() + End Set + End Property + + + Private TypeStr As String + + Public Property Type() As Element + Get + Return New Element(TypeStr) + End Get + Set(value As Element) + TypeStr = value.ToString() + End Set + End Property + + + Public Power As Integer + + End Class + + + Public Class ItemClassificationModel + + + Public IsBall As Boolean + + + Public IsBerry As Boolean + + + Public IsHealingItem As Boolean + + + Public IsMail As Boolean + + + Public IsMegastone As Boolean + + + Public IsPlate As Boolean + + End Class + + + Public Class ItemUsageModel + + + Public InBattle As Boolean + + + Public Overworld As Boolean + + + Public Trade As Boolean + + + Public Held As Boolean + + + Public Toss As Boolean + + End Class + + + Public Class InventoryDefinitionModel + + Inherits JsonDataModel + + + Private TypeStr As String + + Public Property Type() As Item.ItemTypes + Get + Return ConvertStringToEnum(Of Item.ItemTypes)(TypeStr) + End Get + Set(value As Item.ItemTypes) + TypeStr = value.ToString() + End Set + End Property + + + Public MaxStack As Integer + + + Public SortValue As Integer + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/Game/MainMenuMap.vb b/2.5DHero/2.5DHero/DataModel/Json/Game/MainMenuMap.vb new file mode 100644 index 000000000..2f52740b5 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/Game/MainMenuMap.vb @@ -0,0 +1,16 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.Game + + + Public Class MainMenuMapModel + + + Public Mapfile As String + + + Public Offset As Vector3Model + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/Game/MapModel.vb b/2.5DHero/2.5DHero/DataModel/Json/Game/MapModel.vb new file mode 100644 index 000000000..590936cc2 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/Game/MapModel.vb @@ -0,0 +1,375 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.Game + + + Class MapModel + + Inherits JsonDataModel + + + Public Name As String + + + Public Region As String + + + Public Song As String + + + Public CanTeleport As Boolean + + + Public CanDig As Boolean + + + Public CanFly As Boolean + + + Public MapScriptBinding As String + + + Public EnvironmentType As Integer + + + Public WeatherType As Integer + + + Public LightType As Integer + + + Public RideType As Integer + + + Public IsDark As Boolean + + + Private TerrainStr As String + + Public Property Terrain() As Terrain.TerrainTypes + Get + Return ConvertStringToEnum(Of Terrain.TerrainTypes)(TerrainStr) + End Get + Set(value As Terrain.TerrainTypes) + TerrainStr = value.ToString() + End Set + End Property + + + Public IsSafariZone As Boolean + + + Public IsBugCatchingContest As Boolean + + + Public AllowedRadioChannels As Decimal() + + + Public BattleMapData As BattleMapDataModel + + + Public WildPokemonFloor As Boolean + + + Public ShowOverworldPokemon As Boolean + + + Public HiddenAbilityChance As Integer + + + Public Entities As EntityFieldModel() + + + Public NPCs As NPCModel() + + + Public OffsetMaps As OffsetMapModel() + + + Public Shaders As ShaderModel() + + + Public Backdrops As BackdropModel() + + + Public Structures As StructureModel() + + + Class BattleMapDataModel + + + Public BattleMapfile As String + + + Public StartPosition As Vector3Model + + End Class + + + Class EntityFieldModel + + + Public Placing As EntityFieldPositioningModel() + + + Public Entity As EntityModel + + Public Class EntityFieldPositioningModel + + + Public Position As Vector3Model + + + Public Size As Vector3Model + + + Public Fill As Boolean + + + Public Steps As Vector3Model + + End Class + + End Class + + End Class + + + Class EntityModel + + Inherits JsonDataModel + + + Public Id As Integer + + + Public Rotation As Vector3Model + + + Public TakeFullRotation As Boolean + + + Public Scale As Vector3Model + + + Public RenderMode As EntityRenderModeModel + + + Public Collision As Boolean + + + Public IsFloor As Boolean + + + Public SeasonConfiguration As EntitySeasonConfigurationModel + + + Public Properties As PropertyDataModel() + + + Public Class EntitySeasonConfigurationModel + + Inherits JsonDataModel + + + Public TexturePath As String + + + Private ActiveSeasonsStr As String() + + Public Property ActiveSeasons() As World.Seasons() + Get + Return ConvertStringArrayToEnumArray(Of World.Seasons)(ActiveSeasonsStr) + End Get + Set(value As World.Seasons()) + ActiveSeasonsStr = ConvertEnumArrayToStringArray(value) + End Set + End Property + + End Class + + + Public Class PropertyDataModel + + + Public Name As String + + + Public Value As String + + End Class + + End Class + + + Public Class NPCModel + + Inherits JsonDataModel + + + Public Id As Integer + + + Public Position As Vector3Model + + + Public Skin As String + + + Public Name As String + + + Public Facing As Integer + + 'TODO: Add enum + + Public Movement As String + + + Public MoveRectangles As RectangleModel() + + + Public SightDistance As Integer + + + Public IsTrainer As Boolean + + + Public ScriptBinding As String + + End Class + + + Public Class OffsetMapModel + + + Public Offset As Vector3Model + + + Public MapFile As String + + End Class + + + Class EntityRenderModeModel + + Inherits JsonDataModel + + + Private RenderMethodStr As String + + Public Property RenderMethod() As GameModes.Maps.EntityRenderMode + Get + Return ConvertStringToEnum(Of GameModes.Maps.EntityRenderMode)(RenderMethodStr) + End Get + Set(value As GameModes.Maps.EntityRenderMode) + RenderMethodStr = value.ToString() + End Set + End Property + +#Region "PrimitiveRenderMode" + + + Public Textures As TextureSourceModel() + + + Public TextureIndex As Integer() + + + Public PrimitiveModelId As Integer + + + Public RenderBackfaces As Boolean + +#End Region + +#Region "ModelRenderMode" + + + Public ModelPath As String + +#End Region + + + Public Visible As Boolean + + + Public Opacity As Decimal + + + Public Shader As Vector3Model + + + Public ObstructCamera As Boolean + + End Class + + + Public Class ShaderModel + + Inherits JsonDataModel + + + Public Size As Vector3Model + + + Public Shader As Vector3Model + + + Public Position As Vector3Model + + + Public StopOnContact As Boolean + + + Private DaytimesStr As String() + + Public Property Daytimes() As World.DayTime() + Get + Return ConvertStringArrayToEnumArray(Of World.DayTime)(DaytimesStr) + End Get + Set(value As World.DayTime()) + DaytimesStr = ConvertEnumArrayToStringArray(value) + End Set + End Property + + End Class + + + Public Class BackdropModel + + + Public Size As Vector2Model + + + Public Position As Vector3Model + + + Public Rotation As Vector3Model + + + Public Type As String + + + Public Texture As TextureSourceModel + + + Public Trigger As String + + End Class + + + Public Class StructureModel + + + Public Offset As Vector3Model + + + Public MapFile As String + + + Public AddNPCs As Boolean + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/Game/PrimitiveModel.vb b/2.5DHero/2.5DHero/DataModel/Json/Game/PrimitiveModel.vb new file mode 100644 index 000000000..510a391c5 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/Game/PrimitiveModel.vb @@ -0,0 +1,27 @@ +Namespace DataModel.Json.Game + + ''' + ''' A data model for a primitive model. + ''' + Public Class PrimitiveModel + + Inherits JsonDataModel + + Public Vertices As VertexPositionNormalTextureModel() + + End Class + + ''' + ''' A data model for a . + ''' + Public Class VertexPositionNormalTextureModel + + Inherits JsonDataModel + + Public Position As Vector3Model + Public Normal As Vector3Model + Public TextureCoordinate As Vector2Model + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/Game/Trainer.vb b/2.5DHero/2.5DHero/DataModel/Json/Game/Trainer.vb new file mode 100644 index 000000000..7967146e1 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/Game/Trainer.vb @@ -0,0 +1,128 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.Game + + ''' + ''' The data model for a trainer definition. + ''' + + Public Class TrainerModel + + Inherits JsonDataModel + + + Public Name As String + + + Public [Class] As String + + + Public Money As Integer + + + Public Messages As TrainerMessagesModel + + + Public Songs As TrainerMusicModel + + + Public Skin As String + + + Public Region As String + + + Public Pokemon As TrainerPokemonModel() + + + Public Items As Integer() + + + Private GenderStr As String + + Public Property Gender As Pokemon.Genders + Get + Return ConvertStringToEnum(Of Pokemon.Genders)(GenderStr) + End Get + Set(value As Pokemon.Genders) + GenderStr = value.ToString() + End Set + End Property + + + Public AI As Integer + + + Public Intro As TrainerIntroSequenceModel + + ''' + ''' The data model for a trainer VS intro. + ''' + + Public Class TrainerIntroSequenceModel + + + Public VSType As String + + + Public BarType As String + + End Class + + ''' + ''' The data model for a trainer's Pokémon data. + ''' + + Public Class TrainerPokemonModel + + + Public HasFullData As Boolean + + + Public Level As Integer + + + Public Number As Integer + + + Public Data As PlayerData.PokemonDataModel + + End Class + + ''' + ''' The data model for a trainer's messages. + ''' + + Public Class TrainerMessagesModel + + + Public Intro As String + + + Public Outro As String + + + Public Defeat As String + + End Class + + ''' + ''' The data model for a trainer's music model + ''' + + Public Class TrainerMusicModel + + + Public Intro As String + + + Public Defeat As String + + + Public Battle As String + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameJolt/BanList.vb b/2.5DHero/2.5DHero/DataModel/Json/GameJolt/BanList.vb new file mode 100644 index 000000000..e3c0a4384 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameJolt/BanList.vb @@ -0,0 +1,33 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameJolt + + ''' + ''' An entry of the GameJolt ban list. + ''' + + Public Class BanListEntryModel + + + Public GameJoltId As String 'For future compatibility, we use string instead of int. + + + Public BanReason As Integer + + End Class + + ''' + ''' An entry of the GameJolt ban reason list. + ''' + + Public Class BanReasonEntryModel + + + Public Id As Integer + + + Public Reason As String + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameJolt/DataStorage.vb b/2.5DHero/2.5DHero/DataModel/Json/GameJolt/DataStorage.vb new file mode 100644 index 000000000..12f3c6e7c --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameJolt/DataStorage.vb @@ -0,0 +1,29 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameJolt + + + Public Class DataStorageResponseModel + + Inherits JsonDataModel + + + Public response As DataStorageModel + + + Public Class DataStorageModel + + + Public success As String + + + Public data As String + + + Public message As String + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameJolt/UserData.vb b/2.5DHero/2.5DHero/DataModel/Json/GameJolt/UserData.vb new file mode 100644 index 000000000..1c68d9a41 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameJolt/UserData.vb @@ -0,0 +1,64 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameJolt + + + Public Class UserDataResponseModel + + Inherits JsonDataModel + + + Public response As UserDataCollectionModel + + + Public Class UserDataCollectionModel + + + Public success As String + + + Public users As UserDataModel() + + + Public Class UserDataModel + + + Public message As String + + + Public id As String + + + Public type As String + + + Public username As String + + + Public avatar_url As String + + + Public signed_up As String + + + Public last_logged_in As String + + + Public status As String + + + Public developer_name As String + + + Public developer_website As String + + + Public developer_description As String + + End Class + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameJolt/VerifyUser.vb b/2.5DHero/2.5DHero/DataModel/Json/GameJolt/VerifyUser.vb new file mode 100644 index 000000000..44e7d024d --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameJolt/VerifyUser.vb @@ -0,0 +1,26 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameJolt + + + Public Class VerifyUserResponseModel + + Inherits JsonDataModel + + + Public response As VerifyUserModel + + + Public Class VerifyUserModel + + + Public success As String + + + Public message As String + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Badges.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Badges.vb new file mode 100644 index 000000000..0c9dcfed9 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Badges.vb @@ -0,0 +1,31 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + ''' + ''' The data model for a badge. + ''' + + Public Class BadgeModel + + Inherits JsonDataModel + + + Public Index As Integer + + + Public Name As String + + + Public Texture As TextureSourceModel + + + Public Region As String + + 'TODO: Add enum + + Public HM As String + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Contacts.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Contacts.vb new file mode 100644 index 000000000..76924ddf9 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Contacts.vb @@ -0,0 +1,27 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + + Public Class ContactModel + + Inherits JsonDataModel + + + Public Id As Integer + + + Public Name As String + + + Public Skin As String + + + Public Location As String + + + Public Removable As Boolean + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/GameMode.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/GameMode.vb new file mode 100644 index 000000000..165a683bb --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/GameMode.vb @@ -0,0 +1,74 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + ''' + ''' The data model of a GameMode config file. + ''' + + Public Class GameModeModel + + Inherits JsonDataModel + + + Public Name As String + + + Public Description As String + + + Public Version As String + + + Public Author As String + +#Region "Paths" + + + Public MapPath As String + + + Public ScriptPath As String + + + Public PokeFilePath As String + + + Public ContentPath As String + + + Public DataPath As String + +#End Region + + + Public StartConfiguration As GameModeStartConfigurationModel + + + Public Gamerules As List(Of GameRuleModel) + + + Public Class GameRuleModel + + + Public Name As String + + + Public Value As String + + End Class + + + Public Class GameModeStartConfigurationModel + + + Public Map As String + + + Public Script As String + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Interactions.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Interactions.vb new file mode 100644 index 000000000..7bef4b6af --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Interactions.vb @@ -0,0 +1,78 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + ''' + ''' The data model for a Pokémon interaction. + ''' + + Public Class InteractionModel + + Inherits JsonDataModel + + + Public MapFiles As String() + + + Public PokemonIDs As Integer() + + + Private DaytimesStr As String() + + Public Property Daytimes() As World.DayTime() + Get + Return ConvertStringArrayToEnumArray(Of World.DayTime)(DaytimesStr) + End Get + Set(value As World.DayTime()) + DaytimesStr = ConvertEnumArrayToStringArray(value) + End Set + End Property + + + Private WeathersStr As String() + + Public Property Weathers() As World.Weathers() + Get + Return ConvertStringArrayToEnumArray(Of World.Weathers)(WeathersStr) + End Get + Set(value As World.Weathers()) + WeathersStr = ConvertEnumArrayToStringArray(value) + End Set + End Property + + + Private SeasonsStr As String() + + Public Property Seasons() As World.Seasons() + Get + Return ConvertStringArrayToEnumArray(Of World.Seasons)(SeasonsStr) + End Get + Set(value As World.Seasons()) + SeasonsStr = ConvertEnumArrayToStringArray(value) + End Set + End Property + + + Private TypesStr As String() + + Public Property Types() As Element.Types() + Get + Return ConvertStringArrayToEnumArray(Of Element.Types)(TypesStr) + End Get + Set(value As Element.Types()) + TypesStr = ConvertEnumArrayToStringArray(value) + End Set + End Property + + + Public Probability As Integer + + + Public Emoji As String + + + Public Message As String + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Pokedex.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Pokedex.vb new file mode 100644 index 000000000..a37e28008 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Pokedex.vb @@ -0,0 +1,24 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + + Public Class PokedexModel + + Inherits JsonDataModel + + + Public Name As String + + + Public UnlockRegister As String + + + Public PokemonNumbers As RangeModel() + + + Public IncludeExternalPokemon As Boolean + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Radio.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Radio.vb new file mode 100644 index 000000000..b8ec99009 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Radio.vb @@ -0,0 +1,62 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + ''' + ''' The data model of a Pokégear channel. + ''' + + Public Class ChannelModel + + Inherits JsonDataModel + + + Public ListenRange As RangeModel + + + Public OverwriteRange As RangeModel + + + Public Name As String + + + Public Region As String + + + Private DaytimesStr As String() + + Public Property Daytimes() As World.DayTime() + Get + Return ConvertStringArrayToEnumArray(Of World.DayTime)(DaytimesStr) + End Get + Set(value As World.DayTime()) + DaytimesStr = ConvertEnumArrayToStringArray(value) + End Set + End Property + + + Public CardRequirements As String() + + + Public Music As String + + + Public Content As String + + 'TODO: Add enum + + Public ContentType As Integer '0=Text/1=Script/2=Special + + + Public CanBeOverwritten As Boolean + + 'TODO: Add enum + + Public Activation As Integer '0=Alawys/1=LevelChannel + + + Public ActivationRegister As String '0=no register + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/RoamingRegions.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/RoamingRegions.vb new file mode 100644 index 000000000..a08e12b88 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/RoamingRegions.vb @@ -0,0 +1,18 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + + Public Class RoamingRegionModel + + Inherits JsonDataModel + + + Public Region As String + + + Public MapFiles As String() + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/SmashRockItems.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/SmashRockItems.vb new file mode 100644 index 000000000..f1a29ae92 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/SmashRockItems.vb @@ -0,0 +1,29 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + + Public Class SmashRockDefinitionModel + + Inherits JsonDataModel + + + Public MapFile As String + + + Public Items As SmashRockItemModel() + + + Public Class SmashRockItemModel + + + Public Id As Integer + + + Public Probability As Integer + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Worldmap.vb b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Worldmap.vb new file mode 100644 index 000000000..c05e0b86a --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/GameMode Data/Worldmap.vb @@ -0,0 +1,65 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.GameModeData + + ''' + ''' The data model for a region map. + ''' + + Public Class RegionmapModel + + + Public RegionName As String + + + Public Places As MapPlaceModel() + + End Class + + ''' + ''' The data model for a place on the region map. + ''' + + Public Class MapPlaceModel + + + Public PlaceType As String + + + Public Name As String + + + Public Mapfiles As String() + + + Public Position As Vector2Model + + + Public Direction As String + + + Public RouteType As String + + + Public Size As String + + + Public FlyTarget As FlyTargetModel + + ''' + ''' The data model for a fly target. + ''' + + Public Class FlyTargetModel + + + Public Mapfile As String + + + Public Position As Vector3Model + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/JsonDataModel.vb b/2.5DHero/2.5DHero/DataModel/Json/JsonDataModel.vb new file mode 100644 index 000000000..5c4a1dfab --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/JsonDataModel.vb @@ -0,0 +1,244 @@ +Imports System.Runtime.Serialization.Json +Imports System.Runtime.Serialization + +Namespace DataModel.Json + + ''' + ''' The base data model class. + ''' + + Public MustInherit Class JsonDataModel + + Protected Sub New() + 'Empty constructor. + End Sub + + ''' + ''' Creates a data model of a specific type. + ''' + ''' The return type of the data model. + ''' The Json input string. + ''' + Public Shared Function FromString(Of T)(ByVal input As String) As T + 'We create a new Json serializer of the given type and a corresponding memory stream here. + Dim serializer As New DataContractJsonSerializer(GetType(T)) + Dim memStream As New MemoryStream() + + 'Create StreamWriter to the memory stream, which writes the input string to the stream. + Dim sw As New StreamWriter(memStream) + sw.Write(input) + sw.Flush() + + 'Reset the stream's position to the beginning: + memStream.Position = 0 + + Try + 'Create and return the object: + Dim returnObj As T = CType(serializer.ReadObject(memStream), T) + Return returnObj + Catch ex As Exception + 'Exception occurs while loading the object due to malformed Json. + 'Throw exception and move up to handler class. + Throw New JsonDataLoadException(input, GetType(T)) + End Try + End Function + + ''' + ''' Converts a string representation of an enum member into the enum type. + ''' + ''' The enum type. + ''' The string representation of the enum member. + ''' + Protected Function ConvertStringToEnum(Of TEnum)(ByVal enumMember As String) As TEnum + Dim names As String() = [Enum].GetNames(GetType(TEnum)) + Dim index As Integer = 0 + + If names.Contains(enumMember) Then + index = Array.IndexOf(names, enumMember) + End If + + Return CType([Enum].Parse(GetType(TEnum), names(index)), TEnum) + End Function + + Protected Function ConvertStringArrayToEnumArray(Of TEnum)(ByVal enumMemberArray As String()) As TEnum() + Dim enumArr As TEnum() = New TEnum(enumMemberArray.Length - 1) {} + For i = 0 To enumMemberArray.Length - 1 + enumArr(i) = ConvertStringToEnum(Of TEnum)(enumMemberArray(i)) + Next + Return enumArr + End Function + + Protected Function ConvertEnumArrayToStringArray(Of TEnum)(ByVal enumArray As TEnum()) As String() + Dim stringArr As String() = New String(enumArray.Length - 1) {} + For i = 0 To enumArray.Length - 1 + stringArr(i) = enumArray(i).ToString() + Next + Return stringArr + End Function + + ''' + ''' Returns the Json representation of this object. + ''' + ''' + Public Overrides Function ToString() As String + 'We create a new Json serializer of the given type and a corresponding memory stream here. + Dim serializer As New DataContractJsonSerializer(Me.GetType()) + Dim memStream As New MemoryStream() + + 'Write the data to the stream. + serializer.WriteObject(memStream, Me) + + 'Reset the stream's position to the beginning: + memStream.Position = 0 + + 'Create stream reader, read string and return it. + Dim sr As New StreamReader(memStream) + Dim returnJson As String = sr.ReadToEnd() + + Return returnJson + End Function + + ''' + ''' Returns the Json representation of this object in multiline format. + ''' + ''' The spaces to use for outlining. + ''' + Public Overloads Function ToString(ByVal spaces As String) As String + Return JsonFormatter.FormatMultiline(ToString(), spaces) + End Function + + End Class + + ''' + ''' An exception thrown when an error occurs while loading Json data. + ''' + Public Class JsonDataLoadException + + Inherits Exception + + Public Sub New(ByVal jsonData As String, ByVal targetType As Type) + MyBase.New("An exception occured trying to read Json data into an internal format. Please check that the input data is correct.") + + Data.Add("Target type", targetType.Name) + Data.Add("Json data", jsonData) + End Sub + + End Class + +#Region "Data type model definitions" + + ''' + ''' The data model for a RGB color (no alpha). + ''' + + Public Class RGBColorModel + + + Public Red As Byte + + + Public Green As Byte + + + Public Blue As Byte + + Public Function GetColor() As Color + Return New Color(Red, Green, Blue) + End Function + + End Class + + ''' + ''' The data model for a rectangle definition. + ''' + + Public Class RectangleModel + + + Public X As Integer + + + Public Y As Integer + + + Public Width As Integer + + + Public Height As Integer + + Public Function GetRectangle() As Rectangle + Return New Rectangle(X, Y, Width, Height) + End Function + + End Class + + ''' + ''' The data model for a Vector 3 definition. + ''' + + Public Class Vector3Model + + + Public X As Decimal + + + Public Y As Decimal + + + Public Z As Decimal + + Public Function ToVector3() As Vector3 + Return New Vector3(X, Y, Z) + End Function + + End Class + + ''' + ''' The data model for a Vector 2 definition. + ''' + + Public Class Vector2Model + + + Public X As Decimal + + + Public Y As Decimal + + Public Function ToVector2() As Vector2 + Return New Vector2(X, Y) + End Function + + End Class + + ''' + ''' The data model for a range. + ''' + + Public Class RangeModel + + + Public Min As Decimal + + + Public Max As Decimal + + End Class + + ''' + ''' The data model for a texture source, with source file and rectangle. + ''' + + Public Class TextureSourceModel + + + Public Source As String + + + Public Rectangle As RectangleModel + + End Class + +#End Region + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/JsonFormatter.vb b/2.5DHero/2.5DHero/DataModel/Json/JsonFormatter.vb new file mode 100644 index 000000000..ec8d4ced6 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/JsonFormatter.vb @@ -0,0 +1,88 @@ +Namespace DataModel.Json + + ''' + ''' A class to handle Json formatting. + ''' + Public Class JsonFormatter + + ''' + ''' Sanitizes unformatted Json. + ''' + ''' The unformatted Json. + ''' The characters which are used to indent. + ''' + Public Shared Function FormatMultiline(ByVal json As String, ByVal space As String) As String + If json.Contains(vbNewLine) = True Then + 'The input Json already contains new lines. + Return json + End If + + Dim sb As New Text.StringBuilder() + Dim isString As Boolean = False + Dim isEscaped As Boolean = False + Dim indentLevel As Integer = 0 + + For Each c As Char In json + If isString = True Then + Select Case c + Case """"c + If isEscaped = False Then + isString = False + Else + isEscaped = False + End If + sb.Append(c) + Case "\"c + If isEscaped = False Then + isEscaped = True + Else + isEscaped = False + sb.Append(c) + sb.Append(c) + End If + Case Else + If isEscaped = False Then + sb.Append(c) + Else + isEscaped = False + End If + End Select + Else + Select Case c + Case "}"c, "]"c + indentLevel -= 1 + sb.AppendLine() + AppendIndent(sb, indentLevel, space) + sb.Append(c) + Case "{"c, "["c + indentLevel += 1 + sb.Append(c) + sb.AppendLine() + AppendIndent(sb, indentLevel, space) + Case ","c + sb.Append(c) + sb.AppendLine() + AppendIndent(sb, indentLevel, space) + Case """"c + sb.Append(c) + isString = True + Case Else + sb.Append(c) + End Select + End If + Next + + Return sb.ToString() + End Function + + Private Shared Sub AppendIndent(ByRef sb As Text.StringBuilder, ByVal level As Integer, ByVal space As String) + If level > 0 Then + For i = 1 To level + sb.Append(space) + Next + End If + End Sub + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/Localization/LocalizationModel.vb b/2.5DHero/2.5DHero/DataModel/Json/Localization/LocalizationModel.vb new file mode 100644 index 000000000..c4d41fd53 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/Localization/LocalizationModel.vb @@ -0,0 +1,30 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.Localization + + ''' + ''' The data model for localization files containing . + ''' + + Public Class LocalizationModel + + Inherits JsonDataModel + + + Public Property Tokens As List(Of TokenModel) + + End Class + + + Public Class TokenModel + + Inherits JsonDataModel + + + Public Property Id As String + + Public Property Val As String + + End Class + +End Namespace diff --git a/2.5DHero/2.5DHero/DataModel/Json/Network/PackageModel.vb b/2.5DHero/2.5DHero/DataModel/Json/Network/PackageModel.vb new file mode 100644 index 000000000..b17c93c76 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/Network/PackageModel.vb @@ -0,0 +1,24 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.Network + + + Public Class PackageModel + + Inherits JsonDataModel + + + Public ProtocolVersion As String + + + Public PackageType As Integer + + + Public Origin As Integer + + + Public Data As List(Of String) + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/PlayerData/KeyboardSave.vb b/2.5DHero/2.5DHero/DataModel/Json/PlayerData/KeyboardSave.vb new file mode 100644 index 000000000..2f3601f84 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/PlayerData/KeyboardSave.vb @@ -0,0 +1,93 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.PlayerData + + ''' + ''' The data model for the keyboard save file. + ''' + + Public Class KeyboardSave + + Inherits JsonDataModel + + + Public ForwardMove As String + + + Public LeftMove As String + + + Public BackwardMove As String + + + Public RightMove As String + + + Public Inventory As String + + + Public Chat As String + + + Public Special As String + + + Public MuteMusic As String + + + Public Up As String + + + Public Down As String + + + Public Left As String + + + Public Right As String + + + Public CameraLock As String + + + Public GUIControl As String + + + Public ScreenShot As String + + + Public DebugControl As String + + + Public Lighting As String + + + Public PerspectiveSwitch As String + + + Public FullScreen As String + + + Public Enter1 As String + + + Public Enter2 As String + + + Public Back1 As String + + + Public Back2 As String + + + Public Escape As String + + + Public OnlineStatus As String + + + Public Sprinting As String + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/PlayerData/Options.vb b/2.5DHero/2.5DHero/DataModel/Json/PlayerData/Options.vb new file mode 100644 index 000000000..8bae1963a --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/PlayerData/Options.vb @@ -0,0 +1,86 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.PlayerData + + ''' + ''' The data model for the options save file. + ''' + + Public Class OptionsModel + + Inherits JsonDataModel + + + Public Music As Integer + + + Public Sound As Integer + + + Public Muted As Boolean + + + Public RenderDistance As Integer + + + Public ShowDebug As Integer + + + Public ShowBoundingBoxes As Boolean + + + Public ShowDebugConsole As Boolean + + + Public ShowGUI As Boolean + + + Public GraphicStyle As Integer + + + Public LoadOffsetMaps As Integer + + + Public Language As String + + + Public ViewBobbing As Boolean + + + Public GamePadEnabled As Boolean + + + Public LightingEnabled As Boolean + + + Public StartedOfflineGame As Boolean + + + Public PreferMultiSampling As Boolean + + + Public ContentPacks As String() + + + Public WindowSize As WindowSizeModel + + + Public ForceMusic As Boolean + + + Public MaxOffsetLevel As Integer + + + Public Class WindowSizeModel + + + Public Width As Integer + + + Public Height As Integer + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/PlayerData/Pokemon.vb b/2.5DHero/2.5DHero/DataModel/Json/PlayerData/Pokemon.vb new file mode 100644 index 000000000..0cd1e56b0 --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/PlayerData/Pokemon.vb @@ -0,0 +1,449 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.PlayerData + + ''' + ''' The data model of a Pokémon save. + ''' + + Public Class PokemonDataModel + + Inherits JsonDataModel + + + Public ID As Integer + + + Public Experience As Integer + + + Private GenderStr As String + + Public Property Gender() As Pokemon.Genders + Get + Return ConvertStringToEnum(Of Pokemon.Genders)(GenderStr) + End Get + Set(value As Pokemon.Genders) + GenderStr = value.ToString() + End Set + End Property + + + Public EggSteps As Integer + + + Public Item As HeldItemModel + + + Public Nickname As String + + + Public Level As Integer + + + Public OT As String + + + Public Ability As Integer + + + Private StatusStr As String + + Public Property Status() As Pokemon.StatusProblems + Get + Return ConvertStringToEnum(Of Pokemon.StatusProblems)(StatusStr) + End Get + Set(value As Pokemon.StatusProblems) + StatusStr = value.ToString() + End Set + End Property + + + Public NatureStr As String + + Public Property Nature() As Pokemon.Natures + Get + Return ConvertStringToEnum(Of Pokemon.Natures)(NatureStr) + End Get + Set(value As Pokemon.Natures) + NatureStr = value.ToString() + End Set + End Property + + + Public CatchInfo As PokemonCatchInformationModel + + + Public Friendship As Integer + + + Public IsShiny As Boolean + + + Public Moves As MoveModel() + + + Public HP As Integer + + + Public EV As StatDefinitionModel + + + Public IV As StatDefinitionModel + + + Public Data As String + + + Public IDValue As String + + ''' + ''' The data model for a Pokémon's stat definitions. + ''' + + Public Class StatDefinitionModel + + + Public HP As Integer + + + Public Atk As Integer + + + Public Def As Integer + + + Public SpAtk As Integer + + + Public SpDef As Integer + + + Public Speed As Integer + + End Class + + ''' + ''' The data model for a move. + ''' + + Public Class MoveModel + + + Private ID As Integer + + + Private CurrentPP As Integer + + + Private MaxPP As Integer + + End Class + + ''' + ''' The data model for Pokémon catch information. + ''' + + Public Class PokemonCatchInformationModel + + + Public Location As String + + + Public Trainer As String + + + Public BallID As Integer + + + Public Method As String + + End Class + + ''' + ''' The data model of a held item. + ''' + + Public Class HeldItemModel + + + Private ID As Integer + + + Private Data As String + + End Class + + End Class + +End Namespace + +Namespace DataModel.Json.GameModeData + + ''' + ''' The data model of a Pokémon definition. + ''' + + Public Class PokemonDefinitionModel + + Inherits JsonDataModel + + + Public Name As String + + + Public Number As Integer + + + Private ExperienceTypeStr As String + + Public Property ExperienceType() As Pokemon.ExperienceTypes + Get + Return ConvertStringToEnum(Of Pokemon.ExperienceTypes)(ExperienceTypeStr) + End Get + Set(value As Pokemon.ExperienceTypes) + ExperienceTypeStr = value.ToString() + End Set + End Property + + + Public BaseExperience As Integer + + + Private Type1Str As String + + Public Property Type1() As Element + Get + Return New Element(Type1Str) + End Get + Set(value As Element) + Type1Str = value.ToString() + End Set + End Property + + + Private Type2Str As String + + Public Property Type2() As Element + Get + Return New Element(Type2Str) + End Get + Set(value As Element) + Type2Str = value.ToString() + End Set + End Property + + + Public CatchRate As Integer + + + Public BaseFriendship As Integer + + + Private EggGroup1Str As String + + Public Property EggGroup1() As Pokemon.EggGroups + Get + Return ConvertStringToEnum(Of Pokemon.EggGroups)(EggGroup1Str) + End Get + Set(value As Pokemon.EggGroups) + EggGroup1Str = value.ToString() + End Set + End Property + + + Private EggGroup2Str As String + + Public Property EggGroup2() As Pokemon.EggGroups + Get + Return ConvertStringToEnum(Of Pokemon.EggGroups)(EggGroup2Str) + End Get + Set(value As Pokemon.EggGroups) + EggGroup2Str = value.ToString() + End Set + End Property + + + Public BaseEggSteps As Integer + + + Public EggPokemon As Integer + + + Public Devolution As Integer + + + Public CanBreed As Boolean + + + Public IsGenderless As Boolean + + + Public IsMale As Decimal + + + Public Abilities As Integer() + + + Public HiddenAbilityID As Integer + + + Public EggMoves As Integer() + + + Public Machines As Integer() + + + Public TutorMoves As Integer() + + + Public BaseStats As PlayerData.PokemonDataModel.StatDefinitionModel + + + Public RewardEV As PlayerData.PokemonDataModel.StatDefinitionModel + + + Public CanFly As Boolean + + + Public CanSwim As Boolean + + + Public PokedexEntry As PokedexEntryModel + + + Public Scale As Vector3Model + + + Public TradeValue As Integer + + + Public Moves As LevelUpMoveModel() + + + Public EvolutionConditions As EvolutionConditionModel() + + + Public Items As WildItemModel() + + ''' + ''' The data model of a Pokédex entry. + ''' + + Public Class PokedexEntryModel + + + Public Text As String + + + Public Species As String + + + Public Height As Decimal + + + Public Weight As Decimal + + + Public Color As RGBColorModel + + Public Function GetPokedexEntry() As PokedexEntry + Return New PokedexEntry(Text, Species, Weight, Height, Color.GetColor()) + End Function + + End Class + + ''' + ''' The data model of a move a Pokémon learns on level up. + ''' + + Public Class LevelUpMoveModel + + + Public Level As Integer + + + Public ID As Integer + + End Class + + ''' + ''' The data model of an evolution condition. + ''' + + Public Class EvolutionConditionModel + + + Public Evolution As Integer + + 'TODO: Add enum (Type + Trigger) + + Public ConditionType As String + + + Public Trigger As String + + + Public Condition As String + + End Class + + ''' + ''' The data model of a held item on a wild Pokémon on encounter. + ''' + + Public Class WildItemModel + + + Public Id As Integer + + + Public Chance As Integer + + End Class + + End Class + + ''' + ''' The data model of a Battle Frontier Pokémon definition. + ''' + + Public Class FrontierDataModel + + Inherits JsonDataModel + + + Public Level As Integer + + + Public Pokemon As FrontierPokemonDataModel() + + ''' + ''' The data model of a Pokémon definition for a Battle Frontier Pokémon definition. + ''' + + Public Class FrontierPokemonDataModel + + + Public Numbers As Integer() + + + Public ResultNumber As Integer + + + Public MoveIds As Integer() + + + Public Stat1 As String + + + Public Stat2 As String + + + Public HeldItemId As Integer + + End Class + + End Class + +End Namespace \ No newline at end of file diff --git a/2.5DHero/2.5DHero/DataModel/Json/PlayerData/ServerList.vb b/2.5DHero/2.5DHero/DataModel/Json/PlayerData/ServerList.vb new file mode 100644 index 000000000..0a11170fe --- /dev/null +++ b/2.5DHero/2.5DHero/DataModel/Json/PlayerData/ServerList.vb @@ -0,0 +1,35 @@ +Imports System.Runtime.Serialization + +Namespace DataModel.Json.PlayerData + + ''' + ''' The data model for the server list save file. + ''' + + Public Class ServerListModel + + Inherits JsonDataModel + + + Public Servers As ServerModel() + + ''' + ''' The data model for a server. + ''' + + Public Class ServerModel + + + Public ListName As String + + + Public IpAddress As String + + + Public Port As Integer + + End Class + + End Class + +End Namespace \ No newline at end of file