예제 #1
0
파일: YkdResources.cs 프로젝트: kidaa/Pulse
        public void ReadFromStream(Stream stream)
        {
            Offsets = stream.ReadContent<YkdOffsets>();

            Resources = new YkdResource[Offsets.Count];
            for (int i = 0; i < Resources.Length; i++)
            {
                YkdResource resource = Resources[i] = new YkdResource();

                stream.SetPosition(Offsets[i]);
                resource.ReadFromStream(stream);
            }

            if (!stream.IsEndOfStream())
                throw new InvalidDataException();
        }
예제 #2
0
        public void ReadFromStream(Stream stream)
        {
            Offsets = stream.ReadContent <YkdOffsets>();

            Resources = new YkdResource[Offsets.Count];
            for (int i = 0; i < Resources.Length; i++)
            {
                YkdResource resource = Resources[i] = new YkdResource();

                stream.SetPosition(Offsets[i]);
                resource.ReadFromStream(stream);
            }

            if (!stream.IsEndOfStream())
            {
                throw new InvalidDataException();
            }
        }
예제 #3
0
파일: YkdResources.cs 프로젝트: kidaa/Pulse
 public void Duplicate(YkdResource item)
 {
     YkdResource[] oldResources = Resources;
     YkdResource[] newResources = new YkdResource[Count + 1];
     int finded = 0;
     for (int i = 0; i < oldResources.Length; i++)
     {
         YkdResource resource = oldResources[i];
         newResources[i + finded] = resource;
         if (resource == item)
         {
             Offsets.Insert(i, resource.CalcSize());
             newResources[i + 1] = resource.Clone();
             Resources = newResources;
             finded++;
         }
     }
 }
예제 #4
0
        public void Duplicate(YkdResource item)
        {
            YkdResource[] oldResources = Resources;
            YkdResource[] newResources = new YkdResource[Count + 1];
            int           finded       = 0;

            for (int i = 0; i < oldResources.Length; i++)
            {
                YkdResource resource = oldResources[i];
                newResources[i + finded] = resource;
                if (resource == item)
                {
                    Offsets.Insert(i, resource.CalcSize());
                    newResources[i + 1] = resource.Clone();
                    Resources           = newResources;
                    finded++;
                }
            }
        }
예제 #5
0
파일: YkdResources.cs 프로젝트: kidaa/Pulse
        public void Remove(YkdResource item)
        {
            YkdResource[] oldResources = Resources;
            YkdResource[] newResources = new YkdResource[Count - 1];
            int finded = 0;
            for (int i = 0; i < oldResources.Length; i++)
            {
                YkdResource resource = oldResources[i];
                if (i - finded < newResources.Length)
                    newResources[i - finded] = resource;

                if (resource == item)
                {
                    Offsets.Remove(i);
                    Resources = newResources;
                    finded++;
                }
            }
        }
예제 #6
0
        public void Remove(YkdResource item)
        {
            YkdResource[] oldResources = Resources;
            YkdResource[] newResources = new YkdResource[Count - 1];
            int           finded       = 0;

            for (int i = 0; i < oldResources.Length; i++)
            {
                YkdResource resource = oldResources[i];
                if (i - finded < newResources.Length)
                {
                    newResources[i - finded] = resource;
                }

                if (resource == item)
                {
                    Offsets.Remove(i);
                    Resources = newResources;
                    finded++;
                }
            }
        }