Any entity can have a model, model scale improved

0.1 meter in blender is now equivalent to 1/16th of a P3D unit or 1 pixel on a 16 pixels wide/tall texture. Mt Silver will need to be updated to match this scale, making the ModelEntity obsolete.

Also added Snorlax battle model
This commit is contained in:
JappaWakka 2022-07-13 00:12:16 +02:00
parent c401b4f063
commit 352b80db9c
93 changed files with 390 additions and 181 deletions

View File

@ -69,7 +69,6 @@
End If
End If
End If
MyBase.Update()
End Sub
@ -97,7 +96,11 @@
Public Overrides Sub Render()
If Me.startDelay <= 0.0F Then
If CanRemove = False Then
Draw(Me.Model, Me.Textures, True)
If Me.Model Is Nothing Then
Draw(Me.BaseModel, Me.Textures, True)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End If
End If
End Sub

View File

@ -60,8 +60,8 @@
Public OwnTrainerNPC As NPC
Public OppTrainerNPC As NPC
Public OwnPokemonModel As ModelEntity
Public OppPokemonModel As ModelEntity
Public OwnPokemonModel As Entity
Public OppPokemonModel As Entity
Public OwnPokemonIndex As Integer = 0
Public OppPokemonIndex As Integer = 0
@ -227,10 +227,10 @@
If ownModel = "" Then
OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, 1), NPC)
OwnPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(12, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 0.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 0, "Models\Bulbasaur\Normal", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock)
Else
OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC)
OwnPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(12, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 0.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 1, ownModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, 1), ModelEntity)
OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, ownModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, 1), WallBlock)
End If
Screen.Level.Entities.Add(OwnPokemonNPC)
@ -238,10 +238,10 @@
If oppModel = "" Then
OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC)
OppPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(15, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 1.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 0, "Models\Bulbasaur\Normal", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock)
Else
OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC)
OppPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(15, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 1.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 1, oppModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 13) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, oppModel), WallBlock)
End If
Screen.Level.Entities.Add(OppPokemonNPC)
@ -366,10 +366,10 @@
If ownModel = "" Then
OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, OwnPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, InitiallyVisibleOwn), NPC)
OwnPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 0.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 0, "Models\Bulbasaur\Normal", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock)
Else
OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, OwnPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC)
OwnPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 0.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 1, ownModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, InitiallyVisibleOwn), ModelEntity)
OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, ownModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, InitiallyVisibleOwn), WallBlock)
End If
Screen.Level.Entities.Add(OwnPokemonNPC)
@ -382,10 +382,10 @@
If oppModel = "" Then
OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OppPokemon), 1, OppPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}, InitiallyVisibleOpp), NPC)
OppPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 1.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 0, "Models\Bulbasaur\Normal", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock)
Else
OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OppPokemon), 1, OppPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC)
OppPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 1.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 1, oppModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, InitiallyVisibleOpp), ModelEntity)
OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, oppModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, InitiallyVisibleOpp), WallBlock)
End If
Screen.Level.Entities.Add(OppPokemonNPC)
@ -580,10 +580,10 @@
If ownModel = "" Then
OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC)
OwnPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 0.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 0, "Models\Bulbasaur\Normal", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock)
Else
OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, WildPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC)
OwnPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 0.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 1, ownModel, False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, ownModel), WallBlock)
End If
Screen.Level.Entities.Add(OwnPokemonNPC)
@ -591,10 +591,10 @@
If oppModel = "" Then
OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC)
OppPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 1.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 0, "Models\Bulbasaur\Normal", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock)
Else
OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC)
OppPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 1.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 1, oppModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, oppModel), WallBlock)
End If
Screen.Level.Entities.Add(OppPokemonNPC)
@ -692,10 +692,10 @@
If ownModel = "" Then
OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, OwnPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}, 1), NPC)
OwnPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 0.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 0, "Models\Bulbasaur\Normal", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock)
Else
OwnPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(12, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(OwnPokemon), 3, OwnPokemon.GetDisplayName(), 0, True, "Still", New List(Of Rectangle)}), NPC)
OwnPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 0.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 1, ownModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, 1), ModelEntity)
OwnPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(12, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 0.5F, 0), New Vector3(OwnPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, ownModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing, 1), WallBlock)
End If
Screen.Level.Entities.Add(OwnPokemonNPC)
@ -703,10 +703,10 @@
If oppModel = "" Then
OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", True, New Vector3(1), 1, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC)
OppPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 1.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 0, "Models\Bulbasaur\Normal", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, "Models\Bulbasaur\Normal"), WallBlock)
Else
OppPokemonNPC = CType(Entity.GetNewEntity("NPC", New Vector3(15, 0, 13) + BattleMapOffset, {Nothing}, {0, 0}, False, New Vector3(0), New Vector3(1), BaseModel.BillModel, 0, "", False, New Vector3(1), 0, "", "", New Vector3(0), {PokemonForms.GetOverworldSpriteName(WildPokemon), 1, WildPokemon.GetDisplayName(), 1, True, "Still", New List(Of Rectangle)}), NPC)
OppPokemonModel = CType(Entity.GetNewEntity("ModelEntity", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(MathHelper.Pi * 0.5F, MathHelper.Pi * 1.5F, 0), New Vector3(0.07F), BaseModel.BlockModel, 1, oppModel, True, New Vector3(1), 0, "", "", New Vector3(0), Nothing), ModelEntity)
OppPokemonModel = CType(Entity.GetNewEntity("WallBlock", New Vector3(15, -0.5F, 12.5F) + BattleMapOffset, {}, {}, False, New Vector3(0, MathHelper.Pi * 1.5F, 0), New Vector3(OppPokemon.GetModelProperties().Item1), BaseModel.BlockModel, 1, "", True, New Vector3(1), 0, "", "", New Vector3(0), Nothing,,,, oppModel), WallBlock)
End If
Screen.Level.Entities.Add(OppPokemonNPC)

View File

@ -9,7 +9,7 @@
Public AnimationSequence As List(Of BattleAnimation3D)
Public SpawnedEntities As List(Of Entity)
Public CurrentEntity As Entity
Public CurrentModel As ModelEntity
Public CurrentModel As Entity
Public DrawBeforeEntities As Boolean
Public Overrides ReadOnly Property IsReady As Boolean
@ -18,7 +18,7 @@
End Get
End Property
Public Sub New(ByVal entity As Entity, ByVal BattleFlipped As Boolean, Optional ByVal model As ModelEntity = Nothing, Optional DrawBeforeEntities As Boolean = False)
Public Sub New(ByVal entity As Entity, ByVal BattleFlipped As Boolean, Optional ByVal model As Entity = Nothing, Optional DrawBeforeEntities As Boolean = False)
MyBase.New(QueryTypes.MoveAnimation)
Me.AnimationSequence = New List(Of BattleAnimation3D)
Me.SpawnedEntities = New List(Of Entity)

View File

@ -124,9 +124,11 @@
Case 2
Select Case Me._entity
Case BattleEntities.OwnPokemon
BV2Screen.OwnPokemonModel.LoadModel(_newTexture)
BV2Screen.OwnPokemonModel.ModelPath = _newTexture
BV2Screen.OwnPokemonModel.Model = ModelManager.GetModel(BV2Screen.OwnPokemonModel.ModelPath)
Case BattleEntities.OppPokemon
BV2Screen.OppPokemonModel.LoadModel(_newTexture)
BV2Screen.OppPokemonModel.ModelPath = _newTexture
BV2Screen.OppPokemonModel.Model = ModelManager.GetModel(BV2Screen.OppPokemonModel.ModelPath)
End Select
End Select
_done = True

View File

@ -291,7 +291,7 @@ Trees:
{"EntityField"{ENT[{"EntityID"{str[WallBill]}}{"Position"{sngArr[31,2.05,8]}}{"Size"{intArr[3,3]}}{"SeasonTexture"{str[PlantColoring]}}{"Scale"{sngArr[1.1,1.3,1.1]}}{"TexturePath"{str[park]}}{"Textures"{recArr[[64,64,32,32]]}}{"TextureIndex"{intArr[0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[3]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[0]}}]}}
Boat:
{"EntityField"{ENT[{"Size"{intArr[1,1]}}{"Scale"{sngArr[1,1,1]}}{"EntityID"{str[ModelEntity]}}{"Position"{sngArr[0,-0.5,9]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"AdditionalValue"{str[models\boat2\boat]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"ID"{int[0]}}{"Scale"{sngArr[2,2,2]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[0,-1,9.375]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"ModelPath"{str[models\boat2\boat]}}{"Rotation"{int[2]}}]}}
SlantW:
{"EntityField"{ENT[{"EntityID"{str[WallBlock]}}{"Position"{sngArr[9,0,7]}}{"Size"{intArr[1,4]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[160,16,16,16]]}}{"TextureIndex"{intArr[-1,-1,-1,-1,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[2]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[1]}}]}}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -71,9 +71,8 @@ Crates:
{"EntityField"{ENT[{"Size"{intArr[1,5]}}{"Scale"{sngArr[0.45,0.45,0.45]}}{"Steps"{sngArr[1,4]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[0,0.7,7]}}{"TexturePath"{str[rocketbase]}}{"Textures"{recArr[[16,0,16,16][32,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0,0,0,1,1]}}{"Collision"{bool[1]}}{"ModelID"{int[1]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[0]}}]}}
Boats:
{"EntityField"{ENT[{"Size"{intArr[1,1]}}{"Scale"{sngArr[0.00002,0.00002,0.00002]}}{"EntityID"{str[ModelEntity]}}{"Position"{sngArr[6,0.77,7.55]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"AdditionalValue"{str[models\boat\SSAqua]}}{"Rotation"{int[2]}}]}}
{"Entity"{ENT[{"ID"{int[0]}}{"Scale"{sngArr[0.07,0.07,0.07]}}{"EntityID"{str[ModelEntity]}}{"Position"{sngArr[6,0.72,10.6]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"AdditionalValue"{str[models\boat2\boat]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"Scale"{sngArr[0.1,0.1,0.1]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[6,0.7,7.525]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"ModelPath"{str[models\boat\SSAqua]}}{"Rotation"{int[2]}}]}}
{"Entity"{ENT[{"Scale"{sngArr[0.2,0.2,0.2]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[6,0.7,10.5]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"ModelPath"{str[models\boat2\boat]}}{"Rotation"{int[2]}}]}}
Big Red Button:
{"EntityField"{ENT[{"Size"{intArr[1,1]}}{"Scale"{sngArr[0.2,0.2,0.2]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[15,0.2,6.5]}}{"TexturePath"{str[kolben]}}{"Textures"{recArr[[16,32,16,16][48,32,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0,0,0,1,1]}}{"Collision"{bool[0]}}{"ModelID"{int[1]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"RotationXYZ"{sngArr[1.57,1.57,1.57]}}]}}

View File

@ -292,7 +292,7 @@ Trees:
{"EntityField"{ENT[{"EntityID"{str[WallBill]}}{"Position"{sngArr[31,2.05,8]}}{"Size"{intArr[3,3]}}{"SeasonTexture"{str[PlantColoringAlt]}}{"Scale"{sngArr[1.1,1.3,1.1]}}{"TexturePath"{str[park]}}{"Textures"{recArr[[64,64,32,32]]}}{"TextureIndex"{intArr[0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[3]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[0]}}]}}
Boat:
{"EntityField"{ENT[{"Size"{intArr[1,1]}}{"Scale"{sngArr[1,1,1]}}{"EntityID"{str[ModelEntity]}}{"Position"{sngArr[0.7,-0.5,9]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"AdditionalValue"{str[models\boat2\boat]}}{"Rotation"{int[0]}}]}}
{"Entity"{ENT[{"ID"{int[0]}}{"Scale"{sngArr[2,2,2]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[0,-1,9.375]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"ModelPath"{str[models\boat2\boat]}}{"Rotation"{int[2]}}]}}
SlantW:
{"EntityField"{ENT[{"EntityID"{str[WallBlock]}}{"Position"{sngArr[9,0,7]}}{"Size"{intArr[1,4]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[160,16,16,16]]}}{"TextureIndex"{intArr[-1,-1,-1,-1,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[2]}}{"Action"{int[0]}}{"AdditionalValue"{str[]}}{"Rotation"{int[1]}}]}}

View File

@ -30,4 +30,4 @@ Fences:
NPCs:
{"NPC"{NPC[{"Position"{sngArr[5,0,2]}}{"TextureID"{str[32]}}{"ID"{int[0]}}{"Name"{str[GymGuy]}}{"Action"{int[1]}}{"AdditionalValue"{str[quest\dockguy]}}{"Rotation"{int[0]}}{"Movement"{str[Still]}}{"MoveRectangles"{recArr[]}}]}}
{"EntityField"{ENT[{"Size"{intArr[1,1]}}{"ID"{int[0]}}{"Scale"{sngArr[1,1,1]}}{"EntityID"{str[ModelEntity]}}{"Position"{sngArr[5.4,-0.75,5.7]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"AdditionalValue"{str[models\boat2\boat]}}{"Rotation"{int[3]}}]}}
{"Entity"{ENT[{"ID"{int[0]}}{"Scale"{sngArr[2,2,2]}}{"EntityID"{str[WallBlock]}}{"Position"{sngArr[6.625,-1,5]}}{"TexturePath"{str[Routes]}}{"Textures"{recArr[[96,0,16,16]]}}{"TextureIndex"{intArr[0,0,0,0,0,0]}}{"Collision"{bool[1]}}{"ModelID"{int[0]}}{"Action"{int[0]}}{"ModelPath"{str[models\boat2\boat]}}{"Rotation"{int[1]}}]}}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 B

View File

@ -18,7 +18,8 @@
Public TextureIndex() As Integer
Public ActionValue As Integer
Public AdditionalValue As String
Public Model As BaseModel
Public ModelPath As String = ""
Public Visible As Boolean = True
Public Shader As New Vector3(1.0F)
Public Shaders As New List(Of Vector3)
@ -35,14 +36,17 @@
Public isDancing As Boolean = False
Public Opacity As Single = 1.0F
Private _normalOpactity As Single = 1.0F
Private _normalOpacity As Single = 1.0F
Public BaseModel As BaseModel
Public Model As Model = Nothing
Public Property NormalOpacity As Single
Get
Return Me._normalOpactity
Return Me._normalOpacity
End Get
Set(value As Single)
Me.Opacity = value
Me._normalOpactity = value
Me._normalOpacity = value
End Set
End Property
@ -77,7 +81,7 @@
MyBase.New(EntityTypes.Entity)
End Sub
Public Sub New(ByVal X As Single, ByVal Y As Single, ByVal Z As Single, ByVal EntityID As String, ByVal Textures() As Texture2D, ByVal TextureIndex() As Integer, ByVal Collision As Boolean, ByVal Rotation As Integer, ByVal Scale As Vector3, ByVal Model As BaseModel, ByVal ActionValue As Integer, ByVal AdditionalValue As String, ByVal Shader As Vector3)
Public Sub New(ByVal X As Single, ByVal Y As Single, ByVal Z As Single, ByVal EntityID As String, ByVal Textures() As Texture2D, ByVal TextureIndex() As Integer, ByVal Collision As Boolean, ByVal Rotation As Integer, ByVal Scale As Vector3, ByVal BaseModel As BaseModel, ByVal ActionValue As Integer, ByVal AdditionalValue As String, ByVal Shader As Vector3, Optional ModelPath As String = "")
MyBase.New(EntityTypes.Entity)
Me.Position = New Vector3(X, Y, Z)
@ -87,7 +91,8 @@
Me.Collision = Collision
Me.Rotation = GetRotationFromInteger(Rotation)
Me.Scale = Scale
Me.Model = Model
Me.BaseModel = BaseModel
Me.ModelPath = ModelPath
Me.ActionValue = ActionValue
Me.AdditionalValue = AdditionalValue
Me.Shader = Shader
@ -126,7 +131,7 @@
Me.UpdateEntity()
End Sub
Public Shared Function GetNewEntity(ByVal EntityID As String, ByVal Position As Vector3, ByVal Textures() As Texture2D, ByVal TextureIndex() As Integer, ByVal Collision As Boolean, ByVal Rotation As Vector3, ByVal Scale As Vector3, ByVal Model As BaseModel, ByVal ActionValue As Integer, ByVal AdditionalValue As String, ByVal Visible As Boolean, ByVal Shader As Vector3, ByVal ID As Integer, ByVal MapOrigin As String, ByVal SeasonColorTexture As String, ByVal Offset As Vector3, Optional ByVal Params() As Object = Nothing, Optional ByVal Opacity As Single = 1.0F, Optional ByVal AnimationData As List(Of List(Of Integer)) = Nothing, Optional ByVal CameraDistanceDelta As Single = 0.0F) As Entity
Public Shared Function GetNewEntity(ByVal EntityID As String, ByVal Position As Vector3, ByVal Textures() As Texture2D, ByVal TextureIndex() As Integer, ByVal Collision As Boolean, ByVal Rotation As Vector3, ByVal Scale As Vector3, ByVal BaseModel As BaseModel, ByVal ActionValue As Integer, ByVal AdditionalValue As String, ByVal Visible As Boolean, ByVal Shader As Vector3, ByVal ID As Integer, ByVal MapOrigin As String, ByVal SeasonColorTexture As String, ByVal Offset As Vector3, Optional ByVal Params() As Object = Nothing, Optional ByVal Opacity As Single = 1.0F, Optional ByVal AnimationData As List(Of List(Of Integer)) = Nothing, Optional ByVal CameraDistanceDelta As Single = 0.0F, Optional ModelPath As String = "") As Entity
Dim newEnt As New Entity()
Dim propertiesEnt As New Entity()
@ -137,7 +142,8 @@
propertiesEnt.Collision = Collision
propertiesEnt.Rotation = Rotation
propertiesEnt.Scale = Scale
propertiesEnt.Model = Model
propertiesEnt.BaseModel = BaseModel
propertiesEnt.ModelPath = ModelPath
propertiesEnt.ActionValue = ActionValue
propertiesEnt.AdditionalValue = AdditionalValue
propertiesEnt.Visible = Visible
@ -149,7 +155,11 @@
propertiesEnt.SeasonColorTexture = SeasonColorTexture
propertiesEnt.Offset = Offset
propertiesEnt.CameraDistanceDelta = CameraDistanceDelta
If ModelManager.ModelExist(ModelPath) = True Then
propertiesEnt.Scale *= ModelManager.MODELSCALE
propertiesEnt.ModelPath = ModelPath
propertiesEnt.Model = ModelManager.GetModel(ModelPath)
End If
Select Case EntityID.ToLower()
Case "animatedblock"
newEnt = New AnimatedBlock()
@ -280,6 +290,8 @@
newEnt.Collision = PropertiesEnt.Collision
newEnt.Rotation = PropertiesEnt.Rotation
newEnt.Scale = PropertiesEnt.Scale
newEnt.BaseModel = PropertiesEnt.BaseModel
newEnt.ModelPath = PropertiesEnt.ModelPath
newEnt.Model = PropertiesEnt.Model
newEnt.ActionValue = PropertiesEnt.ActionValue
newEnt.AdditionalValue = PropertiesEnt.AdditionalValue
@ -332,26 +344,35 @@
End Sub
Public Overridable Sub Update()
UpdateModel()
End Sub
Public Sub UpdateModel()
If Not Me.Model Is Nothing Then
ViewBox = New BoundingBox(
Vector3.Transform(New Vector3(-1, -1, -1), Matrix.CreateScale(viewBoxScale) * Matrix.CreateTranslation(Position)),
Vector3.Transform(New Vector3(1, 1, 1), Matrix.CreateScale(viewBoxScale) * Matrix.CreateTranslation(Position)))
ApplyEffect()
End If
End Sub
Public Overridable Sub OpacityCheck()
If Me.CameraDistance > 10.0F Or
Screen.Level.OwnPlayer IsNot Nothing AndAlso CameraDistance > Screen.Level.OwnPlayer.CameraDistance Then
Me.Opacity = Me._normalOpactity
Me.Opacity = Me._normalOpacity
Exit Sub
End If
Dim notNames() As String = {"Floor", "OwnPlayer", "Water", "Whirlpool", "Particle", "OverworldPokemon", "ItemObject", "NetworkPokemon", "NetworkPlayer"}
If Screen.Camera.Name = "Overworld" AndAlso notNames.Contains(Me.EntityID) = False Then
Me.Opacity = Me._normalOpactity
Me.Opacity = Me._normalOpacity
If CType(Screen.Camera, OverworldCamera).ThirdPerson = True Then
Dim Ray As Ray = Screen.Camera.Ray
Dim result As Single? = Ray.Intersects(Me.boundingBox)
If result.HasValue = True Then
If result.Value < 0.3F + (CType(Screen.Camera, OverworldCamera).ThirdPersonOffset.Z - 1.5F) Then
Me.Opacity = Me._normalOpactity - 0.5F
Me.Opacity = Me._normalOpacity - 0.5F
If Me.Opacity < 0.3F Then
Me.Opacity = 0.3F
End If
@ -495,8 +516,8 @@
If CreatedWorld = False Or CreateWorldEveryFrame = True Then
Dim v As Vector3 = Vector3.Zero '(Me.ViewBox.Min - Me.Position) + (Me.ViewBox.Max - Me.Position)
If Not Me.Model Is Nothing Then
Select Case Me.Model.ID
If Not Me.BaseModel Is Nothing Then
Select Case Me.BaseModel.ID
Case 0, 9, 10, 11
v.Y -= 0.5F
End Select
@ -507,28 +528,35 @@
Return Me.tempCenterVector
End Function
Public Overridable Sub Draw(ByVal Model As BaseModel, ByVal Textures() As Texture2D, ByVal setRasterizerState As Boolean)
Public Overridable Sub Draw(ByVal BaseModel As BaseModel, ByVal Textures() As Texture2D, ByVal setRasterizerState As Boolean, Optional Model As Model = Nothing)
If Visible = True Then
If Me.IsInFieldOfView() = True Then
If setRasterizerState = True Then
Core.GraphicsDevice.RasterizerState = newRasterizerState
End If
Model.Draw(Me, Textures)
If setRasterizerState = True Then
Core.GraphicsDevice.RasterizerState = oldRasterizerState
End If
Me.DrawnLastFrame = True
If Me.EntityID <> "Floor" And Me.EntityID <> "Water" Then
If drawViewBox = True Then
BoundingBoxRenderer.Render(ViewBox, GraphicsDevice, Screen.Camera.View, Screen.Camera.Projection, Microsoft.Xna.Framework.Color.LightCoral)
End If
If Not Model Is Nothing Then
Model.Draw(Me.World, Screen.Camera.View, Screen.Camera.Projection)
If drawViewBox = True Then
BoundingBoxRenderer.Render(ViewBox, Core.GraphicsDevice, Screen.Camera.View, Screen.Camera.Projection, Microsoft.Xna.Framework.Color.Red)
End If
Else
Me.DrawnLastFrame = False
If Me.IsInFieldOfView() = True Then
If setRasterizerState = True Then
Core.GraphicsDevice.RasterizerState = newRasterizerState
End If
BaseModel.Draw(Me, Textures)
If setRasterizerState = True Then
Core.GraphicsDevice.RasterizerState = oldRasterizerState
End If
Me.DrawnLastFrame = True
If Me.EntityID <> "Floor" And Me.EntityID <> "Water" Then
If drawViewBox = True Then
BoundingBoxRenderer.Render(ViewBox, GraphicsDevice, Screen.Camera.View, Screen.Camera.Projection, Microsoft.Xna.Framework.Color.LightCoral)
End If
End If
Else
Me.DrawnLastFrame = False
End If
End If
Else
Me.DrawnLastFrame = False
@ -581,8 +609,8 @@
Public ReadOnly Property VertexCount() As Integer
Get
If Me._cachedVertexCount = -1 Then
If Not Me.Model Is Nothing Then
Dim c As Integer = CInt(Me.Model.vertexBuffer.VertexCount / 3)
If Not Me.BaseModel Is Nothing Then
Dim c As Integer = CInt(Me.BaseModel.vertexBuffer.VertexCount / 3)
Dim min As Integer = 0
For i = 0 To Me.TextureIndex.Length - 1
@ -617,4 +645,31 @@
Return Nothing
End Function
Public Sub ApplyEffect()
If Not Me.Model Is Nothing Then
For Each mesh As ModelMesh In Me.Model.Meshes
For Each part As ModelMeshPart In mesh.MeshParts
If part.Effect.GetType().Name.ToLower() = Screen.Effect.GetType().Name.ToLower() Then
With CType(part.Effect, BasicEffect)
Lighting.UpdateLighting(CType(part.Effect, BasicEffect), True)
.DiffuseColor = Screen.Effect.DiffuseColor
If Not Screen.Level.World Is Nothing Then
If Screen.Level.World.EnvironmentType = P3D.World.EnvironmentTypes.Outside Then
.DiffuseColor *= SkyDome.GetDaytimeColor(True).ToVector3()
End If
End If
.FogEnabled = True
.FogColor = Screen.Effect.FogColor
.FogEnd = Screen.Effect.FogEnd
.FogStart = Screen.Effect.FogStart
End With
End If
Next
Next
End If
End Sub
End Class

View File

@ -3,7 +3,11 @@
Inherits Entity
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, True)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, True)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -220,9 +220,12 @@
End Sub
Public Overrides Sub Render()
Dim setRasterizerState As Boolean = Me.Model.ID <> 0
Me.Draw(Me.Model, Textures, setRasterizerState)
Dim setRasterizerState As Boolean = Me.BaseModel.ID <> 0
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, setRasterizerState)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -38,6 +38,11 @@
End While
r = New Rectangle(x * 16, y * 16, 16, 16)
If ModelManager.ModelExist(Me.ModelPath & "_" & (y + x)) = True Then
Me.Model = ModelManager.GetModel(Me.ModelPath & "_" & (y + x))
Me.NeedsUpdate = True
ApplyEffect()
End If
End If
Textures(0) = TextureManager.GetTexture("Apricorn", r)
@ -116,7 +121,11 @@
End Sub
Public Overrides Sub Render()
Draw(Model, Textures, False)
If Me.Model Is Nothing Then
Draw(BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Public Overrides Sub ClickFunction()

View File

@ -87,7 +87,6 @@
NewTexture()
End If
End If
Me.LastUpdateDate = Date.Now
End Sub
@ -205,7 +204,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Private Sub RemoveBerry()

View File

@ -73,7 +73,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -110,7 +110,11 @@
End Function
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -54,8 +54,11 @@
ChangeSand()
End If
End If
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Private Shared FloorDictionary As New Dictionary(Of String, Entity)
@ -96,7 +99,7 @@
If hasEntityOnAllSides = False Then
Me.Textures = {P3D.TextureManager.GetTexture("Routes", New Rectangle(208, 16, 16, 2)), P3D.TextureManager.GetTexture("Routes", New Rectangle(208, 16, 16, 16))}
Me.Model = BaseModel.BlockModel
Me.BaseModel = BaseModel.BlockModel
Me.TextureIndex = {sides(0), sides(0), sides(1), sides(1), sides(2), sides(2), sides(3), sides(3), 1, 1}
Me.Scale = New Vector3(1, 0.1F, 1)
Me.Position.Y -= 0.45F
@ -153,7 +156,7 @@
If hasEntityOnAllSides = False Then
Me.Textures = {P3D.TextureManager.GetTexture("Routes", New Rectangle(240, 80, 16, 2)), P3D.TextureManager.GetTexture("Routes", New Rectangle(240, 80, 16, 16))}
Me.Model = BaseModel.BlockModel
Me.BaseModel = BaseModel.BlockModel
Me.TextureIndex = {sides(0), sides(0), sides(1), sides(1), sides(2), sides(2), sides(3), sides(3), 1, 1}
Me.Scale = New Vector3(1, 0.1F, 1)
Me.Position.Y -= 0.45F

View File

@ -22,7 +22,11 @@
End Function
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Public Shared Function GetGrassTilesAroundPlayer(ByVal radius As Single) As List(Of Entity)

View File

@ -78,7 +78,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -155,7 +155,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Public Shared Function ItemExists(ByVal ItemObject As ItemObject) As Boolean

View File

@ -4,8 +4,11 @@
Public Overrides Sub Initialize()
MyBase.Initialize()
Me.Visible = False
If Me.Model Is Nothing Then
Me.Visible = False
Else
Me.Visible = True
End If
End Sub
Public Overrides Sub ClickFunction()
@ -50,7 +53,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -24,32 +24,6 @@
ApplyEffect()
End Sub
Private Sub ApplyEffect()
If Not _model Is Nothing Then
For Each mesh As ModelMesh In Me._model.Meshes
For Each part As ModelMeshPart In mesh.MeshParts
If part.Effect.GetType().Name.ToLower() = Screen.Effect.GetType().Name.ToLower() Then
With CType(part.Effect, BasicEffect)
Lighting.UpdateLighting(CType(part.Effect, BasicEffect), True)
.DiffuseColor = Screen.Effect.DiffuseColor
If Not Screen.Level.World Is Nothing Then
If Screen.Level.World.EnvironmentType = P3D.World.EnvironmentTypes.Outside Then
.DiffuseColor *= SkyDome.GetDaytimeColor(True).ToVector3()
End If
End If
.FogEnabled = True
.FogColor = Screen.Effect.FogColor
.FogEnd = Screen.Effect.FogEnd
.FogStart = Screen.Effect.FogStart
End With
End If
Next
Next
End If
End Sub
Public Overrides Sub Update()
ViewBox = New BoundingBox(

View File

@ -228,7 +228,11 @@
End Function
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -42,6 +42,7 @@
End If
End If
End If
UpdateModel()
End Sub
Private Function GetSteps() As Integer
@ -85,7 +86,11 @@ theend:
End Function
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Public Overrides Function LetPlayerMove() As Boolean

View File

@ -119,7 +119,11 @@
End Function
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, True)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, True)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Public ReadOnly Property ScriptID() As String

View File

@ -52,7 +52,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, True)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, True)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -164,7 +164,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -156,7 +156,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Me.Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Me.Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -27,7 +27,11 @@
End Function
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -126,7 +126,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -69,7 +69,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, True)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, True)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -37,7 +37,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, True)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, True)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -16,7 +16,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -7,7 +7,11 @@
End Function
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -3,7 +3,11 @@
Inherits Entity
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Public Overrides Function WalkAgainstFunction() As Boolean

View File

@ -252,9 +252,12 @@
End Sub
Public Overrides Sub Render()
Dim setRasterizerState As Boolean = Me.Model.ID <> 0
Me.Draw(Me.Model, Textures, setRasterizerState)
Dim setRasterizerState As Boolean = Me.BaseModel.ID <> 0
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, setRasterizerState)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
End Class

View File

@ -153,7 +153,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Private Function ReturnWaterFallPokemonName() As Pokemon

View File

@ -31,15 +31,18 @@
End Sub
Public Overrides Sub UpdateEntity()
If Not WaterAnimation Is Nothing Then
WaterAnimation.Update(0.01)
If currentRectangle <> WaterAnimation.TextureRectangle Then
ChangeTexture()
If Me.Model Is Nothing Then
If Not WaterAnimation Is Nothing Then
WaterAnimation.Update(0.01)
If currentRectangle <> WaterAnimation.TextureRectangle Then
ChangeTexture()
currentRectangle = WaterAnimation.TextureRectangle
currentRectangle = WaterAnimation.TextureRectangle
End If
End If
Else
Me.Rotation.Y += 0.01F
End If
MyBase.UpdateEntity()
End Sub
@ -62,7 +65,11 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Textures, False)
If Me.Model Is Nothing Then
Me.Draw(Me.BaseModel, Textures, False)
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
Private Function ReturnWhirlPoolPokemonName() As String

View File

@ -100,7 +100,7 @@
End Sub
Public Overrides Sub Render()
Me.Draw(Me.Model, Me.Textures, True)
Me.Draw(Me.BaseModel, Me.Textures, True)
End Sub
End Class

View File

@ -472,18 +472,28 @@
End Function
Public Overrides Sub UpdateEntity()
If Me.Rotation.Y <> Screen.Camera.Yaw Then
Me.Rotation.Y = Screen.Camera.Yaw
If Me.Model Is Nothing Then
If Me.Rotation.Y <> Screen.Camera.Yaw Then
Me.Rotation.Y = Screen.Camera.Yaw
End If
Else
If Me.Rotation.Y <> faceRotation Then
Me.Rotation.Y = GetRotationFromInteger(faceRotation).Y
End If
End If
MyBase.UpdateEntity()
End Sub
Public Overrides Sub Render()
Dim state = GraphicsDevice.DepthStencilState
GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead
Draw(Me.Model, Me.Textures, True)
GraphicsDevice.DepthStencilState = state
If Me.Model Is Nothing Then
Dim state = GraphicsDevice.DepthStencilState
GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead
Draw(Me.BaseModel, Me.Textures, True)
GraphicsDevice.DepthStencilState = state
Else
Draw(Me.BaseModel, Me.Textures, True, Me.Model)
End If
End Sub
#Region "Movement and Camera"

View File

@ -250,7 +250,7 @@
Public Overrides Sub Render()
If ConnectScreen.Connected = True Then
If IsCorrectScreen() = True Then
Me.Draw(Me.Model, Textures, False)
Me.Draw(Me.BaseModel, Textures, False)
If Core.GameOptions.ShowGUI = True Then
If Me.NameTexture IsNot Nothing Then
Dim state = GraphicsDevice.DepthStencilState

View File

@ -87,7 +87,7 @@
If Me.Textures IsNot Nothing Then
Dim state = GraphicsDevice.DepthStencilState
GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead
Draw(Me.Model, {Me.Textures(0)}, False)
Draw(Me.BaseModel, {Me.Textures(0)}, False)
GraphicsDevice.DepthStencilState = state
End If
End If

View File

@ -125,7 +125,7 @@ Public Class OverworldPokemon
If Me.IsVisible() = True Then
Dim state = GraphicsDevice.DepthStencilState
GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead
Draw(Me.Model, {Me.Textures(0)}, False)
Draw(Me.BaseModel, {Me.Textures(0)}, False)
GraphicsDevice.DepthStencilState = state
End If
End Sub

View File

@ -193,7 +193,7 @@
If InCameraFocus() = True Then
Dim state = GraphicsDevice.DepthStencilState
GraphicsDevice.DepthStencilState = DepthStencilState.DepthRead
Draw(Me.Model, Me.Textures, True)
Draw(Me.BaseModel, Me.Textures, True)
GraphicsDevice.DepthStencilState = state
End If
End Sub

View File

@ -103,7 +103,7 @@
End Sub
Public Overrides Sub Render()
MyBase.Draw(Me.Model, Me.Textures, False)
MyBase.Draw(Me.BaseModel, Me.Textures, False)
End Sub
End Class

View File

@ -97,7 +97,7 @@
Dim i As Integer = 0
Select Case e.Model.ID
Select Case e.BaseModel.ID
Case 0
i = 0
Case 1

View File

@ -2168,7 +2168,7 @@
Dim BattleFlip As Boolean = False
Dim CurrentPokemon As Pokemon = BattleScreen.OwnPokemon
Dim CurrentEntity As NPC = BattleScreen.OwnPokemonNPC
Dim CurrentModel As ModelEntity = BattleScreen.OwnPokemonModel
Dim CurrentModel As Entity = BattleScreen.OwnPokemonModel
If own = False Then
BattleFlip = True
CurrentPokemon = BattleScreen.OppPokemon
@ -2179,7 +2179,7 @@
End If
End Sub
Public Overridable Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overridable Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
'Override this method in the attack class to insert the move animation query objects into the queue.
End Sub
@ -2188,7 +2188,7 @@
Dim BattleFlip As Boolean = False
Dim CurrentPokemon As Pokemon = BattleScreen.OppPokemon
Dim CurrentEntity As NPC = BattleScreen.OppPokemonNPC
Dim CurrentModel As ModelEntity = BattleScreen.OppPokemonModel
Dim CurrentModel As Entity = BattleScreen.OppPokemonModel
If own = False Then
BattleFlip = True
CurrentPokemon = BattleScreen.OwnPokemon
@ -2199,7 +2199,7 @@
End If
End Sub
Public Overridable Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overridable Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
'Override this method in the attack class to insert the move animation query objects into the queue.
End Sub

View File

@ -63,7 +63,7 @@
End If
End Sub
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip)
Dim TextureYOffset As Integer = 0
If BattleFlip = True Then
@ -80,7 +80,7 @@
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip)
Dim TextureYOffset As Integer = 0
If BattleFlip = True Then

View File

@ -92,7 +92,7 @@
End If
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
Dim maxAmount As Integer = 12
Dim currentAmount As Integer = 0

View File

@ -51,7 +51,7 @@
Me.IsWonderGuardAffected = True
'#End
End Sub
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, CurrentModel)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Grass\VineWhip_Start", 0.5, 2.5)
MoveAnimation.AnimationMove(Nothing, False, 0, 0, -0.1, 0.025, False, False, 0, 0.5)
@ -59,7 +59,7 @@
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Grass\VineWhip_Hit", 0, 2.5)
Dim TextureXOffset As Integer = 0

View File

@ -76,7 +76,7 @@
End If
End Sub
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip)
For i = 0 To 6
Dim HeartEntity = MoveAnimation.SpawnEntity(Nothing, TextureManager.GetTexture("Textures\Battle\Normal\Attract"), New Vector3(0.25F), 1.0F, CSng(i * 0.2))
@ -89,7 +89,7 @@
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation = New AnimationQueryObject(CurrentEntity, BattleFlip)
For i = 0 To 6

View File

@ -87,7 +87,7 @@ Namespace BattleSystem.Moves.Normal
End If
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Bind", 5.0F, 0)
Dim BindEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Bind", New Rectangle(0, 0, 80, 40), ""), New Vector3(1.0F, 0.5F, 1.0F), 1, 0, 0.75)

View File

@ -62,7 +62,7 @@
End If
End Sub
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
MoveAnimation.AnimationPlaySound(CStr(CurrentPokemon.Number), 0, 0,, True)

View File

@ -63,7 +63,7 @@
End If
End Sub
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Leer", 0, 0)
Dim SpawnEntity = MoveAnimation.SpawnEntity(New Vector3(0, 0.1, 0.1), TextureManager.GetTexture("Textures\Battle\Normal\Leer"), New Vector3(0.5F), 1.0F, 0, 2)
@ -74,7 +74,7 @@
MoveAnimation.AnimationFade(SpawnEntity, True, 1.0F, False, 0.0F, 2, 0)
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, CurrentModel)
MoveAnimation.AnimationMove(Nothing, False, 0, 0, -0.1, 0.025, False, False, 0, 0.5)
MoveAnimation.AnimationMove(Nothing, False, 0, 0, 0.1, 0.025, False, False, 0.75, 0.5)

View File

@ -55,7 +55,7 @@
Me.AIField2 = AIField.Nothing
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Pound", 0.5, 2.5)
Dim PoundEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Pound"), New Vector3(0.5F), 1, 0, 3)

View File

@ -52,7 +52,7 @@
'#End
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Scratch", 0.5, 2.5)
Dim TextureXOffset As Integer = 0

View File

@ -52,14 +52,14 @@
'#End
End Sub
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip, CurrentModel)
MoveAnimation.AnimationMove(Nothing, False, -0.5F, 0, 0, 0.3F, False, False, 0, 0,,, 2)
MoveAnimation.AnimationMove(Nothing, False, 0, 0, 0, 0.3F, False, False, 1, 0,,, 2)
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Tackle", 0, 0)
Dim SpawnEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Tackle"), New Vector3(0.5F), 1.0F, 0, 2)

View File

@ -87,7 +87,7 @@
End If
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Normal\Wrap", 5.0F, 0)
Dim WrapEntity = MoveAnimation.SpawnEntity(New Vector3(0, -0.2, 0), TextureManager.GetTexture("Textures\Battle\Normal\Wrap", New Rectangle(0, 0, 80, 40), ""), New Vector3(1.0F, 0.5F, 1.0F), 1, 0, 0.75)

View File

@ -65,7 +65,7 @@
End If
End Sub
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalUserPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
Dim TextureYOffset As Integer = 0
@ -80,7 +80,7 @@
BattleScreen.BattleQuery.Add(MoveAnimation)
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
Dim TextureYOffset As Integer = 0

View File

@ -87,7 +87,7 @@ Namespace BattleSystem.Moves.Water
End If
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip)
Dim offsetLeft As Single = -0.35
Dim offsetRight As Single = 0.35

View File

@ -99,7 +99,7 @@ Namespace BattleSystem.Moves.Water
End If
End If
End Sub
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As ModelEntity)
Public Overrides Sub InternalOpponentPokemonMoveAnimation(ByVal BattleScreen As BattleScreen, ByVal BattleFlip As Boolean, ByVal CurrentPokemon As Pokemon, ByVal CurrentEntity As NPC, ByVal CurrentModel As Entity)
Dim MoveAnimation As AnimationQueryObject = New AnimationQueryObject(CurrentEntity, BattleFlip,, True)
MoveAnimation.AnimationPlaySound("Battle\Attacks\Water\Whirlpool", 0.0F, 0)
Dim WhirlpoolEntity As Entity = MoveAnimation.SpawnEntity(New Vector3(0, -0.3F, 0), TextureManager.GetTexture("Textures\Battle\Water\Whirlpool"), New Vector3(0.0F), 1.0F, 0.0F, 0.0F)

View File

@ -2684,7 +2684,6 @@ Public Class Pokemon
z = -8
Case 143
scale = 0.5
roll = 1.2F
Case 144
z = -9
scale = 0.35

View File

@ -1,7 +1,7 @@
Public Class ModelManager
Shared ModelList As New Dictionary(Of String, Model)
Public Const MODELSCALE As Single = 0.00625F
Public Shared Function GetModel(ByVal Path As String) As Model
Dim cContent As ContentManager = ContentPackManager.GetContentManager(Path, ".xnb")
@ -48,7 +48,7 @@ Public Class ModelManager
End Sub
Public Shared Function DrawModelToTexture(ByVal modelName As String, ByVal renderTarget As RenderTarget2D, ByVal modelPosition As Vector3, ByVal cameraPosition As Vector3, ByVal cameraRotation As Vector3, ByVal Scale As Single, ByVal enableLight As Boolean) As Texture2D
Dim _scale As Single = Scale * MODELSCALE
Core.GraphicsDevice.SetRenderTarget(renderTarget)
Core.GraphicsDevice.Clear(Color.Transparent)
@ -77,7 +77,7 @@ Public Class ModelManager
Next
End If
m.Draw(Matrix.CreateFromYawPitchRoll(cameraRotation.X, cameraRotation.Y, cameraRotation.Z) * Matrix.CreateScale(New Vector3(Scale)) * Matrix.CreateTranslation(modelPosition), Matrix.CreateLookAt(cameraPosition, modelPosition, Vector3.Up), Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0F), Core.GraphicsDevice.Viewport.AspectRatio, 0.1F, 10000.0F))
m.Draw(Matrix.CreateFromYawPitchRoll(cameraRotation.X, cameraRotation.Y, cameraRotation.Z) * Matrix.CreateScale(New Vector3(_scale)) * Matrix.CreateTranslation(modelPosition), Matrix.CreateLookAt(cameraPosition, modelPosition, Vector3.Up), Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0F), Core.GraphicsDevice.Viewport.AspectRatio, 0.1F, 10000.0F))
Core.GraphicsDevice.SetRenderTarget(Nothing)

View File

@ -1326,8 +1326,8 @@ Public Class StorageSystemScreen
If p.IsShiny = True Then
shinyString = "Shiny"
End If
If Core.Player.ShowModelsInBattle = True AndAlso ModelManager.ModelExist("Models\" & modelName & "\" & shinyString) = True And p.IsEgg() = False Then
Draw3DModel(p, "Models\" & modelName & "\" & shinyString)
If Core.Player.ShowModelsInBattle = True AndAlso ModelManager.ModelExist("Models\Pokemon\" & modelName & "\" & shinyString) = True And p.IsEgg() = False Then
Draw3DModel(p, "Models\Pokemon\" & modelName & "\" & shinyString)
Else
GetYOffset(p)
Core.SpriteBatch.Draw(p.GetTexture(True), New Rectangle(634, 180 - yOffset, 256, 256), Color.White)

View File

@ -644,7 +644,10 @@
Dim AdditionalValue As String = CStr(GetTag(Tags, "AdditionalValue"))
Dim Name As String = CStr(GetTag(Tags, "Name"))
Dim ID As Integer = CInt(GetTag(Tags, "ID"))
Dim ModelPath As String = ""
If TagExists(Tags, "ModelPath") = True Then
ModelPath = CStr(GetTag(Tags, "ModelPath"))
End If
Dim Movement As String = CStr(GetTag(Tags, "Movement"))
Dim MoveRectangles As List(Of Rectangle) = CType(GetTag(Tags, "MoveRectangles"), List(Of Rectangle))
@ -659,7 +662,7 @@
AnimateIdle = CBool(GetTag(Tags, "AnimateIdle"))
End If
Dim NPC As NPC = CType(Entity.GetNewEntity("NPC", Position, {Nothing}, {0, 0}, True, New Vector3(0), Scale, BaseModel.BillModel, ActionValue, AdditionalValue, True, Shader, -1, MapOrigin, "", Offset, {TextureID, Rotation, Name, ID, AnimateIdle, Movement, MoveRectangles}), NPC)
Dim NPC As NPC = CType(Entity.GetNewEntity("NPC", Position, {Nothing}, {0, 0}, True, New Vector3(0), Scale, BaseModel.BillModel, ActionValue, AdditionalValue, True, Shader, -1, MapOrigin, "", Offset, {TextureID, Rotation, Name, ID, AnimateIdle, Movement, MoveRectangles},,,,ModelPath), NPC)
If loadOffsetMap = False Then
Screen.Level.Entities.Add(NPC)
@ -817,6 +820,11 @@
Dim ModelID As Integer = CInt(GetTag(Tags, "ModelID"))
Dim ModelPath As String = ""
If TagExists(Tags, "ModelPath") = True Then
ModelPath = CStr(GetTag(Tags, "ModelPath"))
End If
Dim ActionValue As Integer = CInt(GetTag(Tags, "Action"))
Dim AdditionalValue As String = ""
@ -921,7 +929,8 @@
{},
Opacity,
AnimationData,
CameraDistanceDelta)
CameraDistanceDelta,
ModelPath)
newEnt.IsOffsetMapContent = loadOffsetMap
If Not newEnt Is Nothing Then

View File

@ -221,6 +221,44 @@
/processorParam:TextureFormat=Compressed
/build:Models/Environment/Test_floor/Test_floor.obj
#begin Models/Pokemon/Snorlax/Normal.fbx
/importer:FbxImporter
/processor:ModelProcessor
/processorParam:ColorKeyColor=0,0,0,0
/processorParam:ColorKeyEnabled=True
/processorParam:DefaultEffect=BasicEffect
/processorParam:GenerateMipmaps=False
/processorParam:GenerateTangentFrames=False
/processorParam:PremultiplyTextureAlpha=True
/processorParam:PremultiplyVertexColors=True
/processorParam:ResizeTexturesToPowerOfTwo=False
/processorParam:RotationX=0
/processorParam:RotationY=0
/processorParam:RotationZ=0
/processorParam:Scale=1
/processorParam:SwapWindingOrder=False
/processorParam:TextureFormat=Color
/build:Models/Pokemon/Snorlax/Normal.fbx
#begin Models/Pokemon/Snorlax/Shiny.fbx
/importer:FbxImporter
/processor:ModelProcessor
/processorParam:ColorKeyColor=0,0,0,0
/processorParam:ColorKeyEnabled=True
/processorParam:DefaultEffect=BasicEffect
/processorParam:GenerateMipmaps=False
/processorParam:GenerateTangentFrames=False
/processorParam:PremultiplyTextureAlpha=True
/processorParam:PremultiplyVertexColors=True
/processorParam:ResizeTexturesToPowerOfTwo=False
/processorParam:RotationX=0
/processorParam:RotationY=0
/processorParam:RotationZ=0
/processorParam:Scale=1
/processorParam:SwapWindingOrder=False
/processorParam:TextureFormat=Color
/build:Models/Pokemon/Snorlax/Shiny.fbx
#begin Models/Snorlax/Normal.fbx
/importer:FbxImporter
/processor:ModelProcessor

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

View File

@ -61,6 +61,8 @@
<None Include="Content\Models\Environment\Test_floor\Test_floor.mtl" />
<None Include="Content\Models\Environment\Test_floor\Test_floor.obj" />
<None Include="Content\Models\Environment\Test_floor\Texture\floor.tga" />
<None Include="Content\Models\Pokemon\Snorlax\Normal.fbx" />
<None Include="Content\Models\Pokemon\Snorlax\Shiny.fbx" />
<None Include="Content\Models\Snorlax\Normal.fbx" />
<None Include="Content\Models\Snorlax\Shiny.fbx" />
<None Include="Content\Models\truck2\Truck.fbx" />
@ -86,6 +88,8 @@
<Content Include="Content\Models\building\KolbenTower.png" />
<Content Include="Content\Models\Environment\MtSilver\Gray.png" />
<Content Include="Content\Models\Environment\MtSilver\White.png" />
<Content Include="Content\Models\Pokemon\Snorlax\Snorlax_Normal.png" />
<Content Include="Content\Models\Pokemon\Snorlax\Snorlax_Shiny.png" />
<Content Include="Content\Models\Snorlax\Snorlax_Normal.png" />
<Content Include="Content\Models\Snorlax\Snorlax_Shiny.png" />
<Content Include="Content\Models\truck2\Truck.png" />