Ejemplo n.º 1
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            m_whichCarpet = (CarpetType)reader.ReadInt();
        }
Ejemplo n.º 2
0
		public CarpetAddon( CarpetType type, int width, int height ) : base()
		{
			m_Type = type;
			m_Width = width;
			m_Height = height;

			UpdateComponents();
		}
Ejemplo n.º 3
0
        public CarpetAddon(CarpetType type, int width, int height) : base()
        {
            m_Type   = type;
            m_Width  = width;
            m_Height = height;

            UpdateComponents();
        }
Ejemplo n.º 4
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadEncodedInt();

            m_Type   = (CarpetType)reader.ReadEncodedInt();
            m_Width  = reader.ReadInt();
            m_Height = reader.ReadInt();
        }
Ejemplo n.º 5
0
        public static CarpetInfo GetInfo(CarpetType type)
        {
            int index = (int)type;

            if (index < 0 || index >= m_Infos.Length)
            {
                index = 0;
            }

            return(m_Infos[index]);
        }
Ejemplo n.º 6
0
        public ResizableRugAddon(Rectangle2D rect, CarpetType whichCarpet)
        {
            m_whichCarpet = whichCarpet;

            for (int x = 0; x < rect.Width; x++)
            {
                for (int y = 0; y < rect.Height; y++)
                {
                    if (y == 0 && x != 0 && x != rect.Width - 1)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.Top)), x, y, 0);
                    }
                    if (y == rect.Height - 1 && x != 0 && x != rect.Width - 1)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.Bottom)), x, y, 0);
                    }
                    if (x == 0 && y != 0 && y != rect.Height - 1)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.Left)), x, y, 0);
                    }
                    if (x == rect.Width - 1 && y != 0 && y != rect.Height - 1)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.Right)), x, y, 0);
                    }
                    if (y == 0 && x == 0)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.TopLeft)), x, y, 0);
                    }
                    if (y == 0 && x == rect.Width - 1)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.TopRight)), x, y, 0);
                    }
                    if (y == rect.Height - 1 && x == 0)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.BottomLeft)), x, y, 0);
                    }
                    if (y == rect.Height - 1 && x == rect.Width - 1)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.BottomRight)), x, y, 0);
                    }
                    if (y != 0 && x != 0 && x != rect.Width - 1 && y != rect.Height - 1)
                    {
                        AddComponent(new AddonComponent(RugPieceId(whichCarpet, RugPiece.Center)), x, y, 0);
                    }
                }
            }
        }
Ejemplo n.º 7
0
 private static string GetDisplayName(CarpetType whichCarpet)
 {
     switch (whichCarpet)
     {
     case CarpetType.Plain1:
     case CarpetType.Plain2:
     case CarpetType.Red1:
     case CarpetType.Red2:
     case CarpetType.Red3:
     case CarpetType.Blue1:
     case CarpetType.Blue2:
     case CarpetType.Blue3:
     case CarpetType.Fancy1:
     case CarpetType.Fancy2:
     case CarpetType.Fancy3:
     case CarpetType.Fancy4:
     case CarpetType.Fancy5:
     default:
         return(string.Format("Rug ({0})", whichCarpet.ToString()));
     }
 }
Ejemplo n.º 8
0
 public CarpetAddon(CarpetType type, int width, int height)
     : this((int)type, width, height)
 {
 }
Ejemplo n.º 9
0
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadEncodedInt();

			m_Type = (CarpetType)reader.ReadEncodedInt();
			m_Width = reader.ReadInt();
			m_Height = reader.ReadInt();
		}
Ejemplo n.º 10
0
		public CarpetAddonDeed( CarpetType type, int width, int height )
		{
			m_Type = type;
			m_Width = width;
			m_Height = height;
		}
Ejemplo n.º 11
0
		public static CarpetInfo GetInfo( CarpetType type )
		{
			int index = (int)type;

			if ( index < 0 || index >= m_Infos.Length )
				index = 0;

			return m_Infos[index];
		}
Ejemplo n.º 12
0
		public CarpetAddon( CarpetType type, int width, int height )
			: this( (int)type, width, height )
		{
		}
Ejemplo n.º 13
0
 public ResizableRugDeed(CarpetType whichCarpet)
 {
     Name          = GetDisplayName(whichCarpet);
     m_whichCarpet = whichCarpet;
 }
Ejemplo n.º 14
0
        private int RugPieceId(CarpetType whichCarpet, RugPiece whichPiece)
        {
            switch (whichCarpet)
            {
            case CarpetType.Plain1:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAAA);

                case RugPiece.Bottom: return(0xAAC);

                case RugPiece.Left: return(0xAAD);

                case RugPiece.Right: return(0xAAB);

                case RugPiece.TopLeft: return(0xAAE);

                case RugPiece.TopRight: return(0xAAF);

                case RugPiece.BottomLeft: return(0xAB1);

                case RugPiece.BottomRight: return(0xAB0);

                default: return(0xAA9);
                }

            case CarpetType.Plain2:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAB4);

                case RugPiece.Bottom: return(0xAB6);

                case RugPiece.Left: return(0xAB7);

                case RugPiece.Right: return(0xAB5);

                case RugPiece.TopLeft: return(0xAB8);

                case RugPiece.TopRight: return(0xAB9);

                case RugPiece.BottomLeft: return(0xABB);

                case RugPiece.BottomRight: return(0xABA);

                default: return(0xAB3);
                }

            case CarpetType.Red1:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xACE);

                case RugPiece.Bottom: return(0xAD0);

                case RugPiece.Left: return(0xACD);

                case RugPiece.Right: return(0xACF);

                case RugPiece.TopLeft: return(0xACA);

                case RugPiece.TopRight: return(0xACC);

                case RugPiece.BottomLeft: return(0xAcB);

                case RugPiece.BottomRight: return(0xAC9);

                default: return(0xAC8);
                }

            case CarpetType.Red2:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xACE);

                case RugPiece.Bottom: return(0xAD0);

                case RugPiece.Left: return(0xACD);

                case RugPiece.Right: return(0xACF);

                case RugPiece.TopLeft: return(0xACA);

                case RugPiece.TopRight: return(0xACC);

                case RugPiece.BottomLeft: return(0xAcB);

                case RugPiece.BottomRight: return(0xAC9);

                default: return(0xAC6);
                }

            case CarpetType.Red3:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xACE);

                case RugPiece.Bottom: return(0xAD0);

                case RugPiece.Left: return(0xACD);

                case RugPiece.Right: return(0xACF);

                case RugPiece.TopLeft: return(0xACA);

                case RugPiece.TopRight: return(0xACC);

                case RugPiece.BottomLeft: return(0xAcB);

                case RugPiece.BottomRight: return(0xAC9);

                default: return(0xAC7);
                }

            case CarpetType.Blue1:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAF7);

                case RugPiece.Bottom: return(0xAF9);

                case RugPiece.Left: return(0xAF6);

                case RugPiece.Right: return(0xAF8);

                case RugPiece.TopLeft: return(0xAC3);

                case RugPiece.TopRight: return(0xAC5);

                case RugPiece.BottomLeft: return(0xAC4);

                case RugPiece.BottomRight: return(0xAC2);

                default: return(0xABE);
                }

            case CarpetType.Blue2:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAF7);

                case RugPiece.Bottom: return(0xAF9);

                case RugPiece.Left: return(0xAF6);

                case RugPiece.Right: return(0xAF8);

                case RugPiece.TopLeft: return(0xAC3);

                case RugPiece.TopRight: return(0xAC5);

                case RugPiece.BottomLeft: return(0xAC4);

                case RugPiece.BottomRight: return(0xAC2);

                default: return(0xABD);
                }

            case CarpetType.Blue3:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAF7);

                case RugPiece.Bottom: return(0xAF9);

                case RugPiece.Left: return(0xAF6);

                case RugPiece.Right: return(0xAF8);

                case RugPiece.TopLeft: return(0xAC3);

                case RugPiece.TopRight: return(0xAC5);

                case RugPiece.BottomLeft: return(0xAC4);

                case RugPiece.BottomRight: return(0xAC2);

                default: return(0xABF);
                }

            case CarpetType.Fancy1:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAD7);

                case RugPiece.Bottom: return(0xAD9);

                case RugPiece.Left: return(0xAD6);

                case RugPiece.Right: return(0xAD8);

                case RugPiece.TopLeft: return(0xAD3);

                case RugPiece.TopRight: return(0xAD5);

                case RugPiece.BottomLeft: return(0xAD4);

                case RugPiece.BottomRight: return(0xAD2);

                default: return(0xAD1);
                }

            case CarpetType.Fancy2:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAE0);

                case RugPiece.Bottom: return(0xAE2);

                case RugPiece.Left: return(0xADF);

                case RugPiece.Right: return(0xAE1);

                case RugPiece.TopLeft: return(0xADC);

                case RugPiece.TopRight: return(0xADE);

                case RugPiece.BottomLeft: return(0xADD);

                case RugPiece.BottomRight: return(0xADB);

                default: return(0xADA);
                }

            case CarpetType.Fancy3:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAE8);

                case RugPiece.Bottom: return(0xAEA);

                case RugPiece.Left: return(0xAE7);

                case RugPiece.Right: return(0xAE9);

                case RugPiece.TopLeft: return(0xAE4);

                case RugPiece.TopRight: return(0xAE6);

                case RugPiece.BottomLeft: return(0xAE5);

                case RugPiece.BottomRight: return(0xAE3);

                default: return(0xAEB);
                }

            case CarpetType.Fancy4:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAF3);

                case RugPiece.Bottom: return(0xAF5);

                case RugPiece.Left: return(0xAF2);

                case RugPiece.Right: return(0xAF4);

                case RugPiece.TopLeft: return(0xAEF);

                case RugPiece.TopRight: return(0xAF1);

                case RugPiece.BottomLeft: return(0xAF0);

                case RugPiece.BottomRight: return(0xAEE);

                default: return(0xAEC);
                }

            case CarpetType.Fancy5:
                switch (whichPiece)
                {
                case RugPiece.Top: return(0xAF3);

                case RugPiece.Bottom: return(0xAF5);

                case RugPiece.Left: return(0xAF2);

                case RugPiece.Right: return(0xAF4);

                case RugPiece.TopLeft: return(0xAEF);

                case RugPiece.TopRight: return(0xAF1);

                case RugPiece.BottomLeft: return(0xAF0);

                case RugPiece.BottomRight: return(0xAEE);

                default: return(0xAED);
                }

            default: return(1);
            }
        }
Ejemplo n.º 15
0
 public CarpetAddonDeed(CarpetType type, int width, int height)
 {
     m_Type   = type;
     m_Width  = width;
     m_Height = height;
 }
Ejemplo n.º 16
0
        public override void load(XElement node)
        {
            string strVal = "";

            look_id = node.Attribute("lookid").GetUInt16();
            if (node.Attribute("server_lookid").GetUInt16() != 0)
            {
                look_id = node.Attribute("server_lookid").GetUInt16();
            }

            foreach (XElement child_node in node.Elements())
            {
                if ("carpet".Equals(child_node.Name.LocalName))
                {
                    int alignment;
                    strVal = child_node.Attribute("align").GetString();
                    if (!"".Equals(strVal))
                    {
                        alignment = AutoBorder.EdgeNameToEdge(strVal);
                        if (alignment == BorderType.BORDER_NONE)
                        {
                            if ("center".Equals(strVal))
                            {
                                alignment = BorderType.CARPET_CENTER;
                            }
                            else
                            {
                                Messages.AddWarning("Invalid alignment of carpet node");
                                continue;
                            }
                        }
                    }
                    else
                    {
                        Messages.AddWarning("Could not read alignment tag of carpet node");
                        continue;
                    }
                    bool use_local_id = true;

                    foreach (XElement subchild_node in child_node.Elements())
                    {
                        if ("item".Equals(subchild_node.Name.LocalName))
                        {
                            use_local_id = false;

                            int id     = subchild_node.Attribute("id").GetInt32();
                            int chance = subchild_node.Attribute("chance").GetInt32();

                            if (id == 0)
                            {
                                Messages.AddWarning("Could not read id tag of item node");
                                continue;
                            }

                            if (chance == 0)
                            {
                                Messages.AddWarning("Could not read chance tag of item node");
                                continue;
                            }
                            ItemType it = Global.items.items[id];
                            if (it == null)
                            {
                                Messages.AddWarning("There is no itemtype with id " + id);
                                continue;
                            }

                            if ((it.brush != null) && (it.brush != this))
                            {
                                Messages.AddWarning("itemId " + id + "already has a brush");
                                continue;
                            }
                            it.IsCarpet = true;
                            it.brush    = this;

                            carpet_items[alignment].total_chance += chance;
                            CarpetType t = new CarpetType();
                            t.chance = chance;
                            t.id     = (ushort)id;
                            carpet_items[alignment].items.Add(t);
                        }
                    }

                    if (use_local_id)
                    {
                        int id = child_node.Attribute("id").GetInt32();
                        if (id == 0)
                        {
                            Messages.AddWarning("Could not read id tag of item node");
                            continue;
                        }
                        ItemType it = Global.items.items[id];
                        if (it == null)
                        {
                            Messages.AddWarning("There is no itemtype with id " + id);
                            continue;
                        }
                        if ((it.brush != null) && (it.brush != this))
                        {
                            Messages.AddWarning("itemId " + id + "already has a brush");
                            continue;
                        }
                        it.IsCarpet = true;
                        it.brush    = this;

                        carpet_items[alignment].total_chance += 1;
                        CarpetType t = new CarpetType();
                        t.chance = 1;
                        t.id     = (ushort)id;
                        carpet_items[alignment].items.Add(t);
                    }
                }
            }
        }