mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-05-28 11:25:50 +00:00
Add Steve64x64Model
This commit is contained in:
@@ -13,8 +13,9 @@ namespace PckStudio.Models
|
||||
public Texture[] textures;
|
||||
|
||||
public EventHandler OnUpdate;
|
||||
protected const float OverlayScale = 1.16f;
|
||||
|
||||
protected void Initialize()
|
||||
protected void Initialize()
|
||||
{
|
||||
foreach (Texture texture in textures)
|
||||
{
|
||||
|
||||
@@ -18,16 +18,17 @@ namespace PckStudio.Models
|
||||
{
|
||||
_ = Textures[0] ?? throw new NullReferenceException(nameof(Textures));
|
||||
Image source = Textures[0].Source;
|
||||
Box head = new Box(source, new Rectangle(8, 0, 16, 8), new Rectangle(0, 8, 32, 8), new Point3D(0f, 0f, 0f), Effects.None);
|
||||
Box headOverlay = new Box(source, new Rectangle(40, 0, 16, 8), new Rectangle(32, 8, 32, 8), new Point3D(0f, 0f, 0f), Effects.None);
|
||||
Box head = new Box(source, new Rectangle( 8, 0, 16, 8), new Rectangle( 0, 8, 32, 8), new Point3D(0f, 0f, 0f));
|
||||
Box headOverlay = new Box(source, new Rectangle(40, 0, 16, 8), new Rectangle(32, 8, 32, 8), new Point3D(0f, 0f, 0f));
|
||||
headOverlay.Scale = OverlayScale;
|
||||
|
||||
Box body = new Box(source, new Rectangle(20, 16, 16, 4), new Rectangle(16, 20, 24, 12), new Point3D(0f, 0f, 0f), Effects.None);
|
||||
Box body = new Box(source, new Rectangle(20, 16, 16, 4), new Rectangle(16, 20, 24, 12), new Point3D(0f, 0f, 0f));
|
||||
|
||||
Box leftArm = new Box(source, new Rectangle(44, 16, 8, 4), new Rectangle(40, 20, 32, 12), new Point3D(0f, 4f, 0f), Effects.FlipHorizontally);
|
||||
Box rightArm = new Box(source, new Rectangle(44, 16, 8, 4), new Rectangle(40, 20, 32, 12), new Point3D(0f, 4f, 0f), Effects.None);
|
||||
Box leftArm = new Box(source, new Rectangle(44, 16, 8, 4), new Rectangle(40, 20, 32, 12), new Point3D(0f, 4f, 0f));
|
||||
Box rightArm = new Box(source, new Rectangle(44, 16, 8, 4), new Rectangle(40, 20, 32, 12), new Point3D(0f, 4f, 0f));
|
||||
|
||||
Box leftLeg = new Box(source, new Rectangle(4, 16, 8, 4), new Rectangle(0, 20, 16, 12), new Point3D(0f, 6f, 0f), Effects.FlipHorizontally);
|
||||
Box rightLeg = new Box(source, new Rectangle(4, 16, 8, 4), new Rectangle(0, 20, 16, 12), new Point3D(0f, 6f, 0f), Effects.None);
|
||||
Box leftLeg = new Box(source, new Rectangle(4, 16, 8, 4), new Rectangle(0, 20, 16, 12), new Point3D(0f, 6f, 0f));
|
||||
Box rightLeg = new Box(source, new Rectangle(4, 16, 8, 4), new Rectangle(0, 20, 16, 12), new Point3D(0f, 6f, 0f));
|
||||
|
||||
Object3DGroup headGroup = new Object3DGroup();
|
||||
|
||||
@@ -38,7 +39,6 @@ namespace PckStudio.Models
|
||||
headGroup.MinDegrees2 = -57f;
|
||||
headGroup.MaxDegrees2 = 57f;
|
||||
|
||||
headOverlay.Scale = 1.16f;
|
||||
headGroup.Add(head);
|
||||
headGroup.Add(headOverlay);
|
||||
|
||||
|
||||
117
PCK-Studio/Classes/Models/DefaultModels/Steve64x64Model.cs
Normal file
117
PCK-Studio/Classes/Models/DefaultModels/Steve64x64Model.cs
Normal file
@@ -0,0 +1,117 @@
|
||||
using PckStudio.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Security.Policy;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PckStudio.Classes.Models.DefaultModels
|
||||
{
|
||||
internal class Steve64x64Model : ModelBase
|
||||
{
|
||||
public Steve64x64Model(Texture texture)
|
||||
{
|
||||
textures = new Texture[1] { texture };
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public override void AddToModelView(MinecraftModelView modelView)
|
||||
{
|
||||
_ = Textures[0] ?? throw new NullReferenceException(nameof(Textures));
|
||||
Image source = Textures[0].Source;
|
||||
Box head = new Box(source, new Rectangle(8, 0, 16, 8), new Rectangle(0, 8, 32, 8), new Point3D(0f, 0f, 0f));
|
||||
Box headOverlay = new Box(source, new Rectangle(40, 0, 16, 8), new Rectangle(32, 8, 32, 8), new Point3D(0f, 0f, 0f));
|
||||
headOverlay.Scale = OverlayScale;
|
||||
|
||||
Box body = new Box(source, new Rectangle(20, 16, 16, 4), new Rectangle(16, 20, 24, 12), new Point3D(0f, 0f, 0f));
|
||||
Box bodyOverlay = new Box(source, new Rectangle(20, 32, 16, 4), new Rectangle(16, 36, 24, 12), new Point3D(0f, 0f, 0f));
|
||||
bodyOverlay.Scale = OverlayScale;
|
||||
|
||||
Box rightArm = new Box(source, new Rectangle(44, 16, 8, 4), new Rectangle(40, 20, 16, 12), new Point3D(0f, 4f, 0f));
|
||||
Box rightArmOverlay = new Box(source, new Rectangle(44, 32, 8, 4), new Rectangle(40, 36, 16, 12), new Point3D(0f, 4f, 0f));
|
||||
rightArmOverlay.Scale = OverlayScale;
|
||||
|
||||
Box leftArm = new Box(source, new Rectangle(36, 48, 8, 4), new Rectangle(32, 52, 16, 12), new Point3D(0f, 4f, 0f));
|
||||
Box leftArmOverlay = new Box(source, new Rectangle(52, 48, 8, 4), new Rectangle(48, 52, 16, 12), new Point3D(0f, 4f, 0f));
|
||||
leftArmOverlay.Scale = OverlayScale;
|
||||
|
||||
Box rightLeg = new Box(source, new Rectangle(4, 16, 8, 4), new Rectangle(0, 20, 16, 12), new Point3D(0f, 6f, 0f));
|
||||
Box rightLegOverlay = new Box(source, new Rectangle(4, 32, 8, 4), new Rectangle(0, 52, 16, 12), new Point3D(0f, 6f, 0f));
|
||||
rightLegOverlay.Scale = OverlayScale;
|
||||
|
||||
Box leftLeg = new Box(source, new Rectangle(20, 48, 8, 4), new Rectangle(16, 52, 16, 12), new Point3D(0f, 6f, 0f));
|
||||
Box leftLegOverlay = new Box(source, new Rectangle( 4, 48, 8, 4), new Rectangle( 0, 52, 16, 12), new Point3D(0f, 6f, 0f));
|
||||
leftLegOverlay.Scale = OverlayScale;
|
||||
|
||||
Object3DGroup headGroup = new Object3DGroup();
|
||||
Object3DGroup bodyGroup = new Object3DGroup();
|
||||
Object3DGroup leftArmGroup = new Object3DGroup();
|
||||
Object3DGroup rightArmGroup = new Object3DGroup();
|
||||
Object3DGroup leftLegGroup = new Object3DGroup();
|
||||
Object3DGroup rightLegGroup = new Object3DGroup();
|
||||
|
||||
headGroup.RotationOrder = RotationOrders.XY;
|
||||
headGroup.MinDegrees1 = -80f;
|
||||
headGroup.MaxDegrees1 = 80f;
|
||||
|
||||
headGroup.MinDegrees2 = -57f;
|
||||
headGroup.MaxDegrees2 = 57f;
|
||||
|
||||
headGroup.Origin = new Point3D(0f, -4f, 0f);
|
||||
headGroup.RotationOrder = RotationOrders.XY;
|
||||
|
||||
headGroup.Position = new Point3D(0f, 8f, 0f);
|
||||
headGroup.Add(head);
|
||||
headGroup.Add(headOverlay);
|
||||
|
||||
bodyGroup.Position = new Point3D(0f, 2f, 0f);
|
||||
bodyGroup.Add(body);
|
||||
bodyGroup.Add(bodyOverlay);
|
||||
|
||||
leftArmGroup.Position = new Point3D(6f, 6f, 0f);
|
||||
leftArmGroup.RotationOrder = RotationOrders.ZX;
|
||||
leftArmGroup.MinDegrees1 = 0f;
|
||||
leftArmGroup.MaxDegrees1 = 160f;
|
||||
leftArmGroup.MinDegrees2 = -170f;
|
||||
leftArmGroup.MaxDegrees2 = 60f;
|
||||
leftArmGroup.Add(leftArm);
|
||||
leftArmGroup.Add(leftArmOverlay);
|
||||
|
||||
rightArmGroup.Position = new Point3D(-6f, 6f, 0f);
|
||||
rightArmGroup.RotationOrder = RotationOrders.ZX;
|
||||
rightArmGroup.MinDegrees1 = -160f;
|
||||
rightArmGroup.MaxDegrees1 = 0f;
|
||||
rightArmGroup.MinDegrees2 = -170f;
|
||||
rightArmGroup.MaxDegrees2 = 60f;
|
||||
rightArmGroup.Add(rightArm);
|
||||
rightArmGroup.Add(rightArmOverlay);
|
||||
|
||||
leftLegGroup.Position = new Point3D(2f, -4f, 0f);
|
||||
leftLegGroup.RotationOrder = RotationOrders.ZX;
|
||||
leftLegGroup.MinDegrees1 = 0f;
|
||||
leftLegGroup.MaxDegrees1 = 70f;
|
||||
leftLegGroup.MinDegrees2 = -110f;
|
||||
leftLegGroup.MaxDegrees2 = 60f;
|
||||
leftLegGroup.Add(leftLeg);
|
||||
leftLegGroup.Add(leftLegOverlay);
|
||||
|
||||
rightLegGroup.Position = new Point3D(-2f, -4f, 0f);
|
||||
rightLegGroup.RotationOrder = RotationOrders.ZX;
|
||||
rightLegGroup.MinDegrees1 = -70f;
|
||||
rightLegGroup.MaxDegrees1 = 0f;
|
||||
rightLegGroup.MinDegrees2 = -110f;
|
||||
rightLegGroup.MaxDegrees2 = 60f;
|
||||
rightLegGroup.Add(rightLeg);
|
||||
rightLegGroup.Add(rightLegOverlay);
|
||||
|
||||
modelView.AddDynamic(headGroup);
|
||||
modelView.AddStatic(bodyGroup);
|
||||
modelView.AddDynamic(rightArmGroup);
|
||||
modelView.AddDynamic(leftArmGroup);
|
||||
modelView.AddDynamic(rightLegGroup);
|
||||
modelView.AddDynamic(leftLegGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user