From eb3211101d66ceccd0fbf769f7536bd753f0dc1f Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Tue, 19 May 2015 06:30:52 +1000 Subject: [PATCH] Mobs can use custom textures. --- Entities/Player.cs | 4 ++-- Model/ChickenModel.cs | 6 +++--- Model/CreeperModel.cs | 6 +++--- Model/IModel.cs | 2 +- Model/PigModel.cs | 6 +++--- Model/PlayerModel.cs | 6 +++--- Model/SheepModel.cs | 6 +++--- Model/SkeletonModel.cs | 6 +++--- Model/SpiderModel.cs | 6 +++--- Model/ZombieModel.cs | 6 +++--- Rendering/PlayerRenderer.cs | 4 ++-- 11 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Entities/Player.cs b/Entities/Player.cs index a4f195b52..8f5d85ca9 100644 --- a/Entities/Player.cs +++ b/Entities/Player.cs @@ -110,8 +110,8 @@ namespace ClassicalSharp { Window.AsyncDownloader.TryGetItem( "skin_" + SkinName, out item ); if( item != null && item.Bmp != null ) { Bitmap bmp = item.Bmp; - Window.Graphics.DeleteTexture( ref renderer.TextureId ); - renderer.TextureId = Window.Graphics.LoadTexture( bmp ); + Window.Graphics.DeleteTexture( ref renderer.PlayerTextureId ); + renderer.PlayerTextureId = Window.Graphics.LoadTexture( bmp ); SkinType = Utils.GetSkinType( bmp ); bmp.Dispose(); } diff --git a/Model/ChickenModel.cs b/Model/ChickenModel.cs index b668e70d5..d65ccc846 100644 --- a/Model/ChickenModel.cs +++ b/Model/ChickenModel.cs @@ -22,7 +22,7 @@ namespace ClassicalSharp.Model { Set.RightWing = MakeWing( 0.1875f, 0.25f ); vertices = null; - DefaultSkinTextureId = graphics.LoadTexture( "chicken.png" ); + DefaultTexId = graphics.LoadTexture( "chicken.png" ); } ModelPart MakeHead() { @@ -59,7 +59,7 @@ namespace ClassicalSharp.Model { protected override void DrawPlayerModel( Player player, PlayerRenderer renderer ) { graphics.Texturing = true; - int texId = DefaultSkinTextureId; + int texId = renderer.MobTextureId <= 0 ? DefaultTexId : renderer.MobTextureId; graphics.Bind2DTexture( texId ); graphics.AlphaTest = true; @@ -75,7 +75,7 @@ namespace ClassicalSharp.Model { public override void Dispose() { Set.Dispose(); - graphics.DeleteTexture( ref DefaultSkinTextureId ); + graphics.DeleteTexture( ref DefaultTexId ); } class ModelSet { diff --git a/Model/CreeperModel.cs b/Model/CreeperModel.cs index e9b1f2e80..1d7f23cf6 100644 --- a/Model/CreeperModel.cs +++ b/Model/CreeperModel.cs @@ -20,7 +20,7 @@ namespace ClassicalSharp.Model { Set.RightLegBack = MakeLeg( 0, 0.25f, 0.125f, 0.375f ); vertices = null; - DefaultSkinTextureId = graphics.LoadTexture( "creeper.png" ); + DefaultTexId = graphics.LoadTexture( "creeper.png" ); } ModelPart MakeHead() { @@ -41,7 +41,7 @@ namespace ClassicalSharp.Model { protected override void DrawPlayerModel( Player player, PlayerRenderer renderer ) { graphics.Texturing = true; - int texId = DefaultSkinTextureId; + int texId = renderer.MobTextureId <= 0 ? DefaultTexId : renderer.MobTextureId; graphics.Bind2DTexture( texId ); DrawRotate( 0, 1.125f, 0, -pitch, 0, 0, Set.Head ); @@ -55,7 +55,7 @@ namespace ClassicalSharp.Model { public override void Dispose() { Set.Dispose(); - graphics.DeleteTexture( ref DefaultSkinTextureId ); + graphics.DeleteTexture( ref DefaultTexId ); } class ModelSet { diff --git a/Model/IModel.cs b/Model/IModel.cs index c3aaaadcf..7d73d1329 100644 --- a/Model/IModel.cs +++ b/Model/IModel.cs @@ -44,7 +44,7 @@ namespace ClassicalSharp.Model { public abstract void Dispose(); - public int DefaultSkinTextureId; //{ get; protected set; } + public int DefaultTexId; //{ get; protected set; } protected FastColour col = new FastColour( 178, 178, 178 ); protected VertexPos3fTex2fCol4b[] vertices; diff --git a/Model/PigModel.cs b/Model/PigModel.cs index 2f2c025cf..28b082db2 100644 --- a/Model/PigModel.cs +++ b/Model/PigModel.cs @@ -20,7 +20,7 @@ namespace ClassicalSharp.Model { Set.RightLegBack = MakeLeg( 0.0625f, 0.3125f, 0.3125f, 0.5625f ); vertices = null; - DefaultSkinTextureId = graphics.LoadTexture( "pig.png" ); + DefaultTexId = graphics.LoadTexture( "pig.png" ); } ModelPart MakeHead() { @@ -41,7 +41,7 @@ namespace ClassicalSharp.Model { protected override void DrawPlayerModel( Player player, PlayerRenderer renderer ) { graphics.Texturing = true; - int texId = DefaultSkinTextureId; + int texId = renderer.MobTextureId <= 0 ? DefaultTexId : renderer.MobTextureId; graphics.Bind2DTexture( texId ); DrawRotate( 0, 0.75f, -0.375f, -pitch, 0, 0, Set.Head ); @@ -55,7 +55,7 @@ namespace ClassicalSharp.Model { public override void Dispose() { Set.Dispose(); - graphics.DeleteTexture( ref DefaultSkinTextureId ); + graphics.DeleteTexture( ref DefaultTexId ); } class ModelSet { diff --git a/Model/PlayerModel.cs b/Model/PlayerModel.cs index d0ab6e0ed..c24608dc6 100644 --- a/Model/PlayerModel.cs +++ b/Model/PlayerModel.cs @@ -41,7 +41,7 @@ namespace ClassicalSharp.Model { using( Bitmap bmp = new Bitmap( "char.png" ) ) { window.DefaultPlayerSkinType = Utils.GetSkinType( bmp ); - DefaultSkinTextureId = graphics.LoadTexture( bmp ); + DefaultTexId = graphics.LoadTexture( bmp ); } } @@ -80,7 +80,7 @@ namespace ClassicalSharp.Model { ModelSet model; protected override void DrawPlayerModel( Player player, PlayerRenderer renderer ) { graphics.Texturing = true; - int texId = renderer.TextureId <= 0 ? DefaultSkinTextureId : renderer.TextureId; + int texId = renderer.PlayerTextureId <= 0 ? DefaultTexId : renderer.PlayerTextureId; graphics.Bind2DTexture( texId ); model = Set64x32; SkinType skinType = player.SkinType; @@ -101,7 +101,7 @@ namespace ClassicalSharp.Model { Set64x32.Dispose(); Set64x64.Dispose(); Set64x64Slim.Dispose(); - graphics.DeleteTexture( ref DefaultSkinTextureId ); + graphics.DeleteTexture( ref DefaultTexId ); } class ModelSet { diff --git a/Model/SheepModel.cs b/Model/SheepModel.cs index 9ea2913fd..f630285f8 100644 --- a/Model/SheepModel.cs +++ b/Model/SheepModel.cs @@ -31,7 +31,7 @@ namespace ClassicalSharp.Model { } vertices = null; - DefaultSkinTextureId = graphics.LoadTexture( "sheep.png" ); + DefaultTexId = graphics.LoadTexture( "sheep.png" ); furTextureId = graphics.LoadTexture( "sheep_fur.png" ); } @@ -65,7 +65,7 @@ namespace ClassicalSharp.Model { protected override void DrawPlayerModel( Player player, PlayerRenderer renderer ) { graphics.Texturing = true; - int texId = DefaultSkinTextureId; + int texId = renderer.MobTextureId <= 0 ? DefaultTexId : renderer.MobTextureId; graphics.Bind2DTexture( texId ); DrawRotate( 0, 1.125f, -0.5f, -pitch, 0, 0, Set.Head ); @@ -88,7 +88,7 @@ namespace ClassicalSharp.Model { public override void Dispose() { Set.Dispose(); - graphics.DeleteTexture( ref DefaultSkinTextureId ); + graphics.DeleteTexture( ref DefaultTexId ); if( Fur ) { graphics.DeleteTexture( ref furTextureId ); } diff --git a/Model/SkeletonModel.cs b/Model/SkeletonModel.cs index e239bf897..f4c1c6212 100644 --- a/Model/SkeletonModel.cs +++ b/Model/SkeletonModel.cs @@ -20,7 +20,7 @@ namespace ClassicalSharp.Model { Set.RightArm = MakeRightArm( 0.25f, 0.375f ); vertices = null; - DefaultSkinTextureId = graphics.LoadTexture( "skeleton.png" ); + DefaultTexId = graphics.LoadTexture( "skeleton.png" ); } ModelPart MakeLeftArm( float x1, float x2 ) { @@ -54,7 +54,7 @@ namespace ClassicalSharp.Model { protected override void DrawPlayerModel( Player player, PlayerRenderer renderer ) { graphics.Texturing = true; graphics.AlphaTest = true; - int texId = DefaultSkinTextureId; + int texId = renderer.MobTextureId <= 0 ? DefaultTexId : renderer.MobTextureId; graphics.Bind2DTexture( texId ); DrawRotate( 0, 1.5f, 0, -pitch, 0, 0, Set.Head ); @@ -67,7 +67,7 @@ namespace ClassicalSharp.Model { public override void Dispose() { Set.Dispose(); - graphics.DeleteTexture( ref DefaultSkinTextureId ); + graphics.DeleteTexture( ref DefaultTexId ); } class ModelSet { diff --git a/Model/SpiderModel.cs b/Model/SpiderModel.cs index 24d335990..d08e8271a 100644 --- a/Model/SpiderModel.cs +++ b/Model/SpiderModel.cs @@ -19,7 +19,7 @@ namespace ClassicalSharp.Model { Set.RightLeg = MakeLeg( 0.1875f, 1.1875f ); vertices = null; - DefaultSkinTextureId = graphics.LoadTexture( "spider.png" ); + DefaultTexId = graphics.LoadTexture( "spider.png" ); } ModelPart MakeHead() { @@ -44,7 +44,7 @@ namespace ClassicalSharp.Model { protected override void DrawPlayerModel( Player player, PlayerRenderer renderer ) { graphics.Texturing = true; - int texId = DefaultSkinTextureId; + int texId = renderer.MobTextureId <= 0 ? DefaultTexId : renderer.MobTextureId; graphics.Bind2DTexture( texId ); graphics.AlphaTest = true; @@ -63,7 +63,7 @@ namespace ClassicalSharp.Model { public override void Dispose() { Set.Dispose(); - graphics.DeleteTexture( ref DefaultSkinTextureId ); + graphics.DeleteTexture( ref DefaultTexId ); } class ModelSet { diff --git a/Model/ZombieModel.cs b/Model/ZombieModel.cs index af7f651f6..f5d99def8 100644 --- a/Model/ZombieModel.cs +++ b/Model/ZombieModel.cs @@ -20,7 +20,7 @@ namespace ClassicalSharp.Model { Set.RightArm = MakeRightArm( 0.25f, 0.5f ); vertices = null; - DefaultSkinTextureId = graphics.LoadTexture( "zombie.png" ); + DefaultTexId = graphics.LoadTexture( "zombie.png" ); } ModelPart MakeLeftArm( float x1, float x2 ) { @@ -53,7 +53,7 @@ namespace ClassicalSharp.Model { protected override void DrawPlayerModel( Player player, PlayerRenderer renderer ) { graphics.Texturing = true; - int texId = DefaultSkinTextureId; + int texId = renderer.MobTextureId <= 0 ? DefaultTexId : renderer.MobTextureId; graphics.Bind2DTexture( texId ); DrawRotate( 0, 1.5f, 0, -pitch, 0, 0, Set.Head ); @@ -67,7 +67,7 @@ namespace ClassicalSharp.Model { public override void Dispose() { Set.Dispose(); - graphics.DeleteTexture( ref DefaultSkinTextureId ); + graphics.DeleteTexture( ref DefaultTexId ); } class ModelSet { diff --git a/Rendering/PlayerRenderer.cs b/Rendering/PlayerRenderer.cs index 0ec7ccd49..575d1718f 100644 --- a/Rendering/PlayerRenderer.cs +++ b/Rendering/PlayerRenderer.cs @@ -14,7 +14,7 @@ namespace ClassicalSharp.Renderers { public Player Player; Texture nameTexture; float nameWidth, nameHeight; - public int TextureId = -1; + public int PlayerTextureId = -1, MobTextureId = -1; int nameTextureId = -1; public PlayerRenderer( Player player, Game window ) { @@ -33,7 +33,7 @@ namespace ClassicalSharp.Renderers { } public void Dispose() { - Graphics.DeleteTexture( ref TextureId ); + Graphics.DeleteTexture( ref PlayerTextureId ); Graphics.DeleteTexture( ref nameTextureId ); }