2016-11-27 14:47:09 +11:00

92 lines
2.4 KiB
C#

// ClassicalSharp copyright 2014-2016 UnknownShadow200 | Licensed under MIT
using System;
using ClassicalSharp.Entities;
using ClassicalSharp.GraphicsAPI;
using ClassicalSharp.Network;
using OpenTK;
#if FALSE
namespace ClassicalSharp.Model {
public class CustomModel : IModel {
public CustomModel(Game window) : base(window) { }
internal override void CreateParts() { }
internal bool bobbing;
public override bool Bobbing { get { return bobbing; } }
internal float nameYOffset;
public override float NameYOffset { get { return nameYOffset; } }
internal float eyeY;
public override float GetEyeY(Entity entity) { return eyeY; }
internal Vector3 collisonSize;
public override Vector3 CollisionSize { get { return collisonSize; } }
internal AABB pickingBounds;
public override AABB PickingBounds { get { return pickingBounds; } }
protected override void DrawModel(Player p) {
int texId = p.TextureId <= 0 ? cache.HumanoidTexId : p.TextureId;
}
internal void ReadSetupPacket() {
}
internal void ReadMetadataPacket() {
collisonSize = ReadS16Vec3(reader);
pickingBounds.Min = ReadS16Vec3(reader);
pickingBounds.Max = ReadS16Vec3(reader);
nameYOffset = reader.ReadInt16() / 256f;
eyeY = reader.ReadInt16() / 256f;
bobbing = reader.ReadUInt8() != 0;
}
internal void ReadDefinePartPacket() {
ushort partId = reader.ReadUInt16();
byte type = reader.ReadUInt8();
Vector3 min = ReadS16Vec3(reader);
Vector3 max = ReadS16Vec3(reader);
}
internal void ReadRotationPacket() {
ushort partId = reader.ReadUInt16();
byte order = reader.ReadUInt8();
RotateData rotX = ReadRotateData(reader);
RotateData rotY = ReadRotateData(reader);
RotateData rotZ = ReadRotateData(reader);
}
CustomModelPart[] parts;
Vector3 ReadS16Vec3(NetReader reader) {
return new Vector3(reader.ReadInt16() / 256f, reader.ReadInt16() / 256f,
reader.ReadInt16() / 256f);
}
RotateData ReadRotateData(NetReader reader) {
RotateData data = default(RotateData);
data.Origin = reader.ReadInt16() / 256f;
data.Type = reader.ReadUInt8();
data.VarA = reader.ReadInt16() / 512f;
data.VarB = reader.ReadInt16() / 512f;
return data;
}
struct CustomModelPart {
public RotateOrder Order;
public RotateData RotX, RotY, RotZ;
}
struct RotateData {
public float Origin;
public byte Type;
public float VarA, VarB;
}
}
}
#endif