Пример #1
0
        public static byte[] GetBytes(Data.CommonValues value)
        {
            List <byte[]> data = new List <byte[]>();

            var bytes = CommonValues.Create(value).GetBytes();

            data.Add(bytes.Count().GetBytes());
            data.Add(bytes);

            return(data.ToArray().ToArray());
        }
Пример #2
0
        public static byte[] GetBytes(Data.CommonValues value, ExporterVersion version)
        {
            List <byte[]> data = new List <byte[]>();

            var bytes = CommonValues.Create(value).GetBytes();

            data.Add(bytes.Count().GetBytes());
            data.Add(bytes);

            if (value.LocationEffectType == Data.TranslationParentEffectType.NotBind_FollowParent ||
                value.LocationEffectType == Data.TranslationParentEffectType.WhenCreating_FollowParent)
            {
                data.Add(value.SteeringBehaviorParam.MaxFollowSpeed.Max.GetBytes());
                data.Add(value.SteeringBehaviorParam.MaxFollowSpeed.Min.GetBytes());
                data.Add(value.SteeringBehaviorParam.SteeringSpeed.Max.GetBytes());
                data.Add(value.SteeringBehaviorParam.SteeringSpeed.Min.GetBytes());
            }

            if (version >= ExporterVersion.Ver17Alpha1)
            {
                // Trigger's parameters
                int triggerFlags =
                    ((value.TriggerParam.ToStartGeneration.Value != Data.TriggerType.None) ? (1 << 0) : 0) |
                    ((value.TriggerParam.ToStopGeneration.Value != Data.TriggerType.None) ? (1 << 1) : 0) |
                    ((value.TriggerParam.ToRemove.Value != Data.TriggerType.None) ? (1 << 2) : 0);
                data.Add(((byte)triggerFlags).GetBytes());

                if (value.TriggerParam.ToStartGeneration.Value != Data.TriggerType.None)
                {
                    data.Add(((ushort)value.TriggerParam.ToStartGeneration.GetValue()).GetBytes());
                }
                if (value.TriggerParam.ToStopGeneration.Value != Data.TriggerType.None)
                {
                    data.Add(((ushort)value.TriggerParam.ToStopGeneration.GetValue()).GetBytes());
                }
                if (value.TriggerParam.ToRemove.Value != Data.TriggerType.None)
                {
                    data.Add(((ushort)value.TriggerParam.ToRemove.GetValue()).GetBytes());
                }
            }

            return(data.ToArray().ToArray());
        }
Пример #3
0
        public static byte[] GetBytes(Data.CommonValues value)
        {
            List <byte[]> data = new List <byte[]>();

            var bytes = CommonValues.Create(value).GetBytes();

            data.Add(bytes.Count().GetBytes());
            data.Add(bytes);

            if (value.LocationEffectType == Data.TranslationParentEffectType.NotBind_FollowParent ||
                value.LocationEffectType == Data.TranslationParentEffectType.WhenCreating_FollowParent)
            {
                data.Add(value.SteeringBehaviorParam.MaxFollowSpeed.Max.GetBytes());
                data.Add(value.SteeringBehaviorParam.MaxFollowSpeed.Min.GetBytes());
                data.Add(value.SteeringBehaviorParam.SteeringSpeed.Max.GetBytes());
                data.Add(value.SteeringBehaviorParam.SteeringSpeed.Min.GetBytes());
            }

            return(data.ToArray().ToArray());
        }