Example #1
0
    private static long?GetInt(this UpdateValuesObjectDataFields fields, string field)
    {
        if (field == "OBJECT_FIELD_ENTRY")
        {
            return(fields.EntryID);
        }

        if (field == "OBJECT_DYNAMIC_FLAGS")
        {
            return(fields.DynamicFlags);
        }

        if (fields.Unit != null)
        {
            foreach (var getter in intGetters)
            {
                var pair = getter(fields.Unit);
                if (pair.Item1 == field)
                {
                    return(pair.Item2);
                }
            }
        }

        return(null);
    }
Example #2
0
    private static UniversalGuid?GetGuid(this UpdateValuesObjectDataFields fields, string field)
    {
        if (fields.Unit != null)
        {
            foreach (var getter in guidGetters)
            {
                var pair = getter(fields.Unit);
                if (pair.Item1 == field)
                {
                    return(pair.Item2);
                }
            }
        }

        return(null);
    }
Example #3
0
        public static void UpdateData(this UpdateValuesObjectDataFields fields, IGameObjectData data)
        {
            var go = fields.Gameobject ??= new();

            if (data.CreatedBy != null)
            {
                go.CreatedBy = data.CreatedBy;
            }
            go.Flags = data.Flags;
            if (data.ParentRotation.HasValue)
            {
                go.ParentRotation = data.ParentRotation;
            }
            go.FactionTemplate = data.FactionTemplate;
            go.State           = data.State;
            go.TypeID          = data.TypeID;
            go.PercentHealth   = data.PercentHealth;
            go.DisplayID       = data.DisplayID;
            go.ArtKit          = data.ArtKit;
            go.Level           = data.Level;
        }
Example #4
0
        public static void UpdateData(this UpdateValuesObjectDataFields fields, IUnitData data)
        {
            var unit = fields.Unit ??= new();

            unit.DisplayID                 = data.DisplayID;
            unit.ClassId                   = data.ClassId;
            unit.Sex                       = data.Sex;
            unit.Health                    = data.Health;
            unit.MaxHealth                 = data.MaxHealth;
            unit.Level                     = data.Level;
            unit.ContentTuningID           = data.ContentTuningID;
            unit.ScalingLevelMin           = data.ScalingLevelMin;
            unit.ScalingLevelMax           = data.ScalingLevelMax;
            unit.ScalingLevelDelta         = data.ScalingLevelDelta;
            unit.FactionTemplate           = data.FactionTemplate;
            unit.Flags                     = data.Flags;
            unit.Flags2                    = data.Flags2;
            unit.Flags3                    = data.Flags3;
            unit.RangedAttackRoundBaseTime = data.RangedAttackRoundBaseTime;
            unit.BoundingRadius            = data.BoundingRadius;
            unit.CombatReach               = data.CombatReach;
            unit.MountDisplayID            = data.MountDisplayID;
            unit.StandState                = data.StandState;
            unit.PetTalentPoints           = data.PetTalentPoints;
            unit.VisFlags                  = data.VisFlags;
            unit.AnimTier                  = data.AnimTier;
            unit.CreatedBySpell            = data.CreatedBySpell;
            unit.EmoteState                = data.EmoteState;
            unit.SheatheState              = data.SheatheState;
            unit.PvpFlags                  = data.PvpFlags;
            unit.PetFlags                  = data.PetFlags;
            unit.ShapeshiftForm            = data.ShapeshiftForm;
            unit.HoverHeight               = data.HoverHeight;
            unit.InteractSpellID           = data.InteractSpellID;
            unit.StateSpellVisualID        = data.StateSpellVisualID;
            unit.StateAnimID               = data.StateAnimID;
            unit.StateAnimKitID            = data.StateAnimKitID;
            unit.Race                      = data.Race;
            unit.DisplayPower              = data.DisplayPower;
            unit.EffectiveLevel            = data.EffectiveLevel;
            unit.AuraState                 = data.AuraState;
            unit.DisplayScale              = data.DisplayScale;
            unit.CreatureFamily            = data.CreatureFamily;
            unit.CreatureType              = data.CreatureType;
            unit.NativeDisplayID           = data.NativeDisplayID;
            unit.NativeXDisplayScale       = data.NativeXDisplayScale;
            unit.BaseMana                  = data.BaseMana;
            unit.BaseHealth                = data.BaseHealth;
            if (data.Charm != null)
            {
                unit.Charm = data.Charm;
            }
            if (data.Summon != null)
            {
                unit.Summon = data.Summon;
            }
            if (data.Critter != null)
            {
                unit.Critter = data.Critter;
            }
            if (data.CharmedBy != null)
            {
                unit.CharmedBy = data.CharmedBy;
            }
            if (data.DemonCreator != null)
            {
                unit.DemonCreator = data.DemonCreator;
            }
            if (data.LookAtControllerTarget != null)
            {
                unit.LookAtControllerTarget = data.LookAtControllerTarget;
            }
            if (data.Target != null)
            {
                unit.Target = data.Target;
            }
            if (data.SummonedBy != null)
            {
                unit.SummonedBy = data.SummonedBy;
            }
            if (data.CreatedBy != null)
            {
                unit.CreatedBy = data.CreatedBy;
            }
            unit.NpcFlags.Reserve(data.NpcFlags.Length);
            for (int i = 0; i < data.NpcFlags.Length; ++i)
            {
                unit.NpcFlags[i] = data.NpcFlags[i].ToProto();
            }

            unit.Power.Reserve(data.Power.Length);
            for (int i = 0; i < data.Power.Length; ++i)
            {
                unit.Power[i] = data.Power[i].ToProto();
            }

            unit.MaxPower.Reserve(data.MaxPower.Length);
            for (int i = 0; i < data.MaxPower.Length; ++i)
            {
                unit.MaxPower[i] = data.MaxPower[i].ToProto();
            }

            unit.AttackRoundBaseTime.Reserve(data.AttackRoundBaseTime.Length);
            for (int i = 0; i < data.AttackRoundBaseTime.Length; ++i)
            {
                unit.AttackRoundBaseTime[i] = data.AttackRoundBaseTime[i].ToProto();
            }

            unit.Resistances.Reserve(data.Resistances.Length);
            for (int i = 0; i < data.Resistances.Length; ++i)
            {
                unit.Resistances[i] = data.Resistances[i].ToProto();
            }

            unit.VirtualItems.Reserve(data.VirtualItems.Length);
            for (int i = 0; i < data.VirtualItems.Length; ++i)
            {
                if (data.VirtualItems[i] != null)
                {
                    unit.VirtualItems[i] = data.VirtualItems[i].ToProto();
                }
            }
        }
Example #5
0
 public static void UpdateData(this UpdateValuesObjectDataFields fields, IObjectData data)
 {
     fields.EntryID      = data.EntryID;
     fields.Scale        = data.Scale;
     fields.DynamicFlags = data.DynamicFlags;
 }