All pastes #556999 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-06-10 20:50 UTC
rendered paste body
        public virtual void CreatePrecachedParts()
        {
            if (m_precachedParts != null)
                m_precachedParts.Clear();
            else
                m_precachedParts = new List<PrecachedPart>(30);

            int sw = (m_texture.Width / 6);
            int sh = (m_texture.Height / 2);

            m_precachedParts.Add(new PrecachedPart(new Rectangle(m_size.X, m_size.Y, m_size.Width, m_size.Height), new Rectangle((m_texture.Width / 3) * 2, 0, (m_texture.Width / 3), (m_texture.Height))));


            for (int x = 1; x * sw <= (m_size.Width - sw); x += 1)
            {
                int wx = sw;

                if (x * sw > (m_size.Width - sw * 2))
                    wx = m_size.Width % sw;

                m_precachedParts.Add(new PrecachedPart(new Rectangle(X + x * sw, Y + 0, wx, sh), new Rectangle(sw * 3, 0, wx, sh)));
                m_precachedParts.Add(new PrecachedPart(new Rectangle(X + x * sw, Y + m_size.Height - sh, wx, sh), new Rectangle(sw * 3, sh, wx, sh)));

            }

            for (int y = 1; y * sh <= (m_size.Height - sh); y += 1)
            {
                int wy = sh;

                if (y * sh > (m_size.Height - sh * 2))
                    wy = m_size.Height % sh;

                m_precachedParts.Add(new PrecachedPart(new Rectangle(X + 0, Y + y * sh, sw, wy), new Rectangle(sw * 2, 0, sw, wy)));
                m_precachedParts.Add(new PrecachedPart(new Rectangle(X + m_size.Width - sw, Y + y * sh, sw, wy), new Rectangle(sw * 2, sh, sw, wy)));
            }

            m_precachedParts.Add(new PrecachedPart(new Rectangle(X + 0, Y + 0, sw, sh), new Rectangle(0, 0, sw, sh)));
            m_precachedParts.Add(new PrecachedPart(new Rectangle(X + 0, Y + m_size.Height - sh, sw, sh), new Rectangle(0, sh, sw, sh)));
            m_precachedParts.Add(new PrecachedPart(new Rectangle(X + m_size.Width - sw, Y + 0, sw, sh), new Rectangle(sw, 0, sw, sh)));
            m_precachedParts.Add(new PrecachedPart(new Rectangle(X + m_size.Width - sw, Y + m_size.Height - sh, sw, sh), new Rectangle(sw, sh, sw, sh)));
        }