protected WorldObject(ObjectType type, ObjectGuid guid) { Type = type; Guid = guid; GameData = new GameData(); ModelData = new ModelData(); PhysicsData = new PhysicsData(); }
protected WorldObject(ObjectType type, ObjectGuid guid) { Type = type; Guid = guid; GameData = new GameData(); ModelData = new ModelData(); PhysicsData = new PhysicsData(); Sequences = new SequenceManager(); Sequences.AddSequence(SequenceType.MotionMessage, new UShortSequence(2)); Sequences.AddSequence(SequenceType.Motion, new UShortSequence(1)); }
protected WorldObject(ObjectType type, ObjectGuid guid) { Type = type; Guid = guid; GameData = new GameData(); ModelData = new ModelData(); Sequences = new SequenceManager(); Sequences.AddOrSetSequence(SequenceType.ObjectPosition, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.ObjectMovement, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.ObjectState, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.ObjectVector, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.ObjectTeleport, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.ObjectServerControl, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.ObjectForcePosition, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.ObjectVisualDesc, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.ObjectInstance, new UShortSequence()); Sequences.AddOrSetSequence(SequenceType.Motion, new UShortSequence(1)); PhysicsData = new PhysicsData(Sequences); }
public virtual void SerializeCreateObject(BinaryWriter writer) { writer.WriteGuid(Guid); ModelData.Serialize(writer); PhysicsData.Serialize(this, writer); writer.Write((uint)WeenieFlags); writer.WriteString16L(Name); writer.WritePackedDword(WeenieClassid); writer.WritePackedDwordOfKnownType(Icon, 0x6000000); writer.Write((uint)Type); writer.Write((uint)DescriptionFlags); writer.Align(); if ((DescriptionFlags & ObjectDescriptionFlag.AdditionFlags) != 0) { writer.Write((uint)WeenieFlags2); } if ((WeenieFlags & WeenieHeaderFlag.PuralName) != 0) { writer.WriteString16L(GameData.NamePlural); } if ((WeenieFlags & WeenieHeaderFlag.ItemCapacity) != 0) { writer.Write(GameData.ItemCapacity); } if ((WeenieFlags & WeenieHeaderFlag.ContainerCapacity) != 0) { writer.Write(GameData.ContainerCapacity); } if ((WeenieFlags & WeenieHeaderFlag.AmmoType) != 0) { writer.Write((ushort)GameData.AmmoType); } if ((WeenieFlags & WeenieHeaderFlag.Value) != 0) { writer.Write(GameData.Value); } if ((WeenieFlags & WeenieHeaderFlag.Usable) != 0) { writer.Write((uint)GameData.Usable); } if ((WeenieFlags & WeenieHeaderFlag.UseRadius) != 0) { writer.Write(GameData.UseRadius); } if ((WeenieFlags & WeenieHeaderFlag.TargetType) != 0) { writer.Write((uint)GameData.TargetType); } if ((WeenieFlags & WeenieHeaderFlag.UiEffects) != 0) { writer.Write((uint)GameData.UiEffects); } if ((WeenieFlags & WeenieHeaderFlag.CombatUse) != 0) { writer.Write((byte)GameData.CombatUse); } if ((WeenieFlags & WeenieHeaderFlag.Struture) != 0) { writer.Write((ushort)GameData.Struture); } if ((WeenieFlags & WeenieHeaderFlag.MaxStructure) != 0) { writer.Write((ushort)GameData.MaxStructure); } if ((WeenieFlags & WeenieHeaderFlag.StackSize) != 0) { writer.Write(GameData.StackSize); } if ((WeenieFlags & WeenieHeaderFlag.MaxStackSize) != 0) { writer.Write(GameData.MaxStackSize); } if ((WeenieFlags & WeenieHeaderFlag.Container) != 0) { writer.Write(GameData.ContainerId); } if ((WeenieFlags & WeenieHeaderFlag.Wielder) != 0) { writer.Write(GameData.Wielder); } if ((WeenieFlags & WeenieHeaderFlag.ValidLocations) != 0) { writer.Write((uint)GameData.ValidLocations); } if ((WeenieFlags & WeenieHeaderFlag.Location) != 0) { writer.Write((uint)GameData.Location); } if ((WeenieFlags & WeenieHeaderFlag.Priority) != 0) { writer.Write((uint)GameData.Priority); } if ((WeenieFlags & WeenieHeaderFlag.BlipColour) != 0) { writer.Write((byte)GameData.RadarColour); } if ((WeenieFlags & WeenieHeaderFlag.Radar) != 0) { writer.Write((byte)GameData.RadarBehavior); } if ((WeenieFlags & WeenieHeaderFlag.Script) != 0) { writer.Write(GameData.Script); } if ((WeenieFlags & WeenieHeaderFlag.Workmanship) != 0) { writer.Write(GameData.Workmanship); } if ((WeenieFlags & WeenieHeaderFlag.Burden) != 0) { writer.Write(GameData.Burden); } if ((WeenieFlags & WeenieHeaderFlag.Spell) != 0) { writer.Write((uint)GameData.Spell); } if ((WeenieFlags & WeenieHeaderFlag.HouseOwner) != 0) { writer.Write(GameData.HouseOwner); } /*if ((WeenieFlags & WeenieHeaderFlag.HouseRestrictions) != 0) * { * }*/ if ((WeenieFlags & WeenieHeaderFlag.HookItemTypes) != 0) { writer.Write(GameData.HookItemTypes); } if ((WeenieFlags & WeenieHeaderFlag.Monarch) != 0) { writer.Write(GameData.Monarch); } if ((WeenieFlags & WeenieHeaderFlag.HookType) != 0) { writer.Write(GameData.HookType); } if ((WeenieFlags & WeenieHeaderFlag.IconOverlay) != 0) { writer.WritePackedDwordOfKnownType(GameData.IconOverlay, 0x6000000); } if ((WeenieFlags2 & WeenieHeaderFlag2.IconUnderlay) != 0) { writer.WritePackedDwordOfKnownType(GameData.IconUnderlay, 0x6000000); } if ((WeenieFlags & WeenieHeaderFlag.Material) != 0) { writer.Write((uint)GameData.Material); } /*if ((WeenieFlags2 & WeenieHeaderFlag2.Cooldown) != 0) * writer.Write(0u);*/ /*if ((WeenieFlags2 & WeenieHeaderFlag2.CooldownDuration) != 0) * writer.Write(0.0d);*/ /*if ((WeenieFlags2 & WeenieHeaderFlag2.PetOwner) != 0) * writer.Write(0u);*/ writer.Align(); }