예제 #1
0
 public void SetAt(int x, int y, EffectFirefly firefly)
 {
     if (firefly == null)
     {
         for (int i = 0; i < list.Count; i++)
         {
             if (list[i].x == x && list[i].y == y)
             {
                 list.RemoveAt(i);
                 return;
             }
         }
     }
     else
     {
         foreach (TileFirefly tf in list)
         {
             if (tf.x == x && tf.y == y)
             {
                 tf.firefly = firefly;
                 return;
             }
         }
         list.Add(new TileFirefly(x, y, firefly));
     }
 }
예제 #2
0
    public EffectFirefly LoadOne(BinaryReader br)
    {
        EffectFirefly firefly = CreateFirefly(br.ReadByte(), (Random)NetworkHelper.EasyDeserialize(br));

        firefly.Load(br);
        return(firefly);
    }
예제 #3
0
    public void Load(BinaryReader br)
    {
        int count = br.ReadInt32();

        while (count-- > 0)
        {
            int           x       = br.ReadInt32();
            int           y       = br.ReadInt32();
            EffectFirefly firefly = LoadOne(br);
            list.Add(new TileFirefly(x, y, firefly));
        }
    }
	public void SetAt(int x, int y, EffectFirefly firefly) {
		if (firefly == null) {
			for (int i = 0; i < list.Count; i++) if (list[i].x == x && list[i].y == y) {
				list.RemoveAt(i);
				return;
			}
		} else {
			foreach (TileFirefly tf in list) if (tf.x == x && tf.y == y) {
				tf.firefly = firefly;
				return;
			}
			list.Add(new TileFirefly(x,y,firefly));
		}
	}
    public EffectFirefly Clone()
    {
        EffectFirefly ret = null;

        using (MemoryStream ms = new MemoryStream()) {
            BinaryWriter bw = new BinaryWriter(ms);
            NetworkHelper.EasySerialize(bw, rand);
            Save(bw);

            ms.Position = 0;
            BinaryReader br = new BinaryReader(ms);
            ret = ModWorld.fireflies.CreateFirefly(GetType(), (Random)NetworkHelper.EasyDeserialize(br));
            ret.Load(br);
        }
        return(ret);
    }
	public void SaveOne(BinaryWriter bw, EffectFirefly firefly) {
		bw.Write((byte)mapFireflyIdByType[firefly.GetType()]);
		NetworkHelper.EasySerialize(bw,firefly.rand);
		firefly.Save(bw);
	}
		public TileFirefly(int x, int y, EffectFirefly firefly) {
			this.x = x;
			this.y = y;
			this.firefly = firefly;
		}
예제 #8
0
 public TileFirefly(int x, int y, EffectFirefly firefly)
 {
     this.x       = x;
     this.y       = y;
     this.firefly = firefly;
 }
예제 #9
0
 public void SaveOne(BinaryWriter bw, EffectFirefly firefly)
 {
     bw.Write((byte)mapFireflyIdByType[firefly.GetType()]);
     NetworkHelper.EasySerialize(bw, firefly.rand);
     firefly.Save(bw);
 }