Beispiel #1
0
        public EffectInfo(
            IPoint3D source,
            Map map,
            int effectID,
            int hue             = 0,
            int speed           = 10,
            int duration        = 10,
            EffectRender render = EffectRender.Normal,
            TimeSpan?delay      = null,
            Action callback     = null)
        {
            Map      = map;
            EffectID = effectID;
            Hue      = hue;
            Speed    = speed;
            Duration = duration;
            Render   = render;
            Delay    = delay ?? TimeSpan.Zero;

            if (callback != null)
            {
                Callback += callback;
            }

            SetSource(source);
        }
Beispiel #2
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var version = reader.ReadInt();

            switch (version)
            {
            case 1:
                Active = reader.ReadBool();
                goto case 0;

            case 0:
            {
                _MultiID  = reader.ReadInt();
                _Center   = reader.ReadPoint3D();
                _Render   = reader.ReadFlag <EffectRender>();
                _Duration = reader.ReadInt();
                _Speed    = reader.ReadInt();
                _Interval = reader.ReadTimeSpan();
            }
            break;
            }

            Start();
        }
Beispiel #3
0
		public EffectInfo(
			IPoint3D source,
			Map map,
			int effectID,
			int hue = 0,
			int speed = 10,
			int duration = 10,
			EffectRender render = EffectRender.Normal,
			TimeSpan? delay = null,
			Action callback = null)
		{
			Map = map;
			EffectID = effectID;
			Hue = hue;
			Speed = speed;
			Duration = duration;
			Render = render;
			Delay = delay ?? TimeSpan.Zero;

			if (callback != null)
			{
				Callback += callback;
			}

			SetSource(source);
		}
Beispiel #4
0
            public void EnsureDefaults()
            {
                Expire = DateTime.UtcNow.AddSeconds(300.0);

                EffectID     = 1801;
                EffectHue    = 85;
                EffectRender = EffectRender.ShadowOutline;
            }
Beispiel #5
0
        public static PreviewRegion DisplayPreview(
            this Region r, int hue = 85, int effect = 1801, EffectRender render = EffectRender.SemiTransparent)
        {
            if (r == null || r.Area == null || r.Area.Length == 0)
            {
                return(null);
            }

            if (hue < 0)
            {
                hue = 0;
            }

            if (effect <= 0)
            {
                effect = 1801;
            }

            PreviewRegion pr;

            if (r is PreviewRegion)
            {
                pr              = (PreviewRegion)r;
                pr.EffectID     = effect;
                pr.EffectHue    = hue;
                pr.EffectRender = render;
                pr.Register();

                return(pr);
            }

            var s = GetSerial(r);

            if (s == null)
            {
                return(null);
            }

            if (_Previews.TryGetValue(s, out pr) && pr != null && pr.Area.GetBoundsHashCode() != r.Area.GetBoundsHashCode())
            {
                pr.Unregister();
                pr = null;
            }

            if (pr == null)
            {
                pr = new PreviewRegion(r)
                {
                    EffectHue    = hue,
                    EffectID     = effect,
                    EffectRender = render
                };
            }

            pr.Register();

            return(pr);
        }
Beispiel #6
0
 public static PreviewRegion DisplayPreview(
     string name,
     Map map,
     int hue             = 85,
     int effect          = 1801,
     EffectRender render = EffectRender.SemiTransparent,
     params Rectangle3D[] bounds)
 {
     return(DisplayPreview(new PreviewRegion(name, map, bounds), hue, effect, render));
 }
Beispiel #7
0
 public MovingEffectInfo(
     IPoint3D source,
     IPoint3D target,
     Map map,
     int effectID,
     int hue             = 0,
     int speed           = 10,
     EffectRender render = EffectRender.Normal,
     TimeSpan?delay      = null,
     Action callback     = null)
     : base(source, map, effectID, hue, speed, 0, render, delay, callback)
 {
     SetTarget(target);
 }
Beispiel #8
0
        public GhostMulti(int itemID, int multiID)
            : base(itemID)
        {
            _MultiID  = multiID;
            _Interval = TimeSpan.FromSeconds(3.55);
            _Render   = EffectRender.Normal;
            _Duration = 73;
            _Speed    = 10;

            Name    = "Ghostly Structure";
            Light   = LightType.DarkCircle300;
            Weight  = 0;
            Visible = false;
            Active  = true;
        }
Beispiel #9
0
		public MovingEffectInfo(
			IPoint3D source,
			IPoint3D target,
			Map map,
			int effectID,
			int hue = 0,
			int speed = 10,
			EffectRender render = EffectRender.Normal,
			TimeSpan? delay = null,
			Action callback = null)
			: base(source, map, effectID, hue, speed, 0, render, delay, callback)
		{
			SetTarget(target);
		}
Beispiel #10
0
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);

			int version = reader.ReadInt();

			switch (version)
			{
				case 1:
					Active = reader.ReadBool();
					goto case 0;
				case 0:
					{
						_MultiID = reader.ReadInt();
						_Center = reader.ReadPoint3D();
						_Render = reader.ReadFlag<EffectRender>();
						_Duration = reader.ReadInt();
						_Speed = reader.ReadInt();
						_Interval = reader.ReadTimeSpan();
					}
					break;
			}

			Start();
		}
Beispiel #11
0
		public GhostMulti(int itemID, int multiID)
			: base(itemID)
		{
			_MultiID = multiID;
			_Interval = TimeSpan.FromSeconds(3.55);
			_Render = EffectRender.Normal;
			_Duration = 73;
			_Speed = 10;

			Name = "Ghostly Structure";
			Light = LightType.DarkCircle300;
			Weight = 0;
			Visible = false;
			Active = true;
		}