public TechTreeElement ReadData(RAMBuffer buffer, byte version = NEW_TECH_TREE_VERSION)
            {
                // Eigenschaften lesen
                ElementType     = (ItemType)buffer.ReadByte();
                ElementObjectID = buffer.ReadShort();
                Age             = buffer.ReadByte();
                RenderMode      = (ItemRenderMode)buffer.ReadByte();

                // Deaktivierende Kulturen lesen
                byte disableCivCount = buffer.ReadByte();

                DisableCivs = new List <byte>();
                for (int i = 0; i < disableCivCount; ++i)
                {
                    DisableCivs.Add(buffer.ReadByte());
                }

                // Kindelemente lesen
                short childrenCount = buffer.ReadShort();

                Children = new List <TechTreeElement>();
                for (int i = 0; i < childrenCount; ++i)
                {
                    Children.Add(new TechTreeElement().ReadData(buffer, version));
                }

                // Benötigte Elemente lesen
                short requireCount = buffer.ReadShort();

                RequiredElements = new List <Tuple <ItemType, short> >();
                for (int i = 0; i < requireCount; ++i)
                {
                    RequiredElements.Add(new Tuple <ItemType, short>((ItemType)buffer.ReadByte(), buffer.ReadShort()));
                }

                // Node-Hintergrund lesen
                if (version >= 1)
                {
                    NodeTypeIndex = buffer.ReadInteger();
                }
                else
                {
                    NodeTypeIndex = (int)ElementType;
                }

                return(this);
            }
Exemple #2
0
            public override void ReadData(RAMBuffer buffer)
            {
                // Eigenschaften lesen
                ElementType = (ItemType)buffer.ReadByte();
                ElementObjectID = buffer.ReadShort();
                Age = buffer.ReadByte();
                RenderMode = (ItemRenderMode)buffer.ReadByte();

                // Deaktivierende Kulturen lesen
                byte disableCivCount = buffer.ReadByte();
                DisableCivs = new List<byte>();
                for(int i = 0; i < disableCivCount; ++i)
                    DisableCivs.Add(buffer.ReadByte());

                // Kindelemente lesen
                short childrenCount = buffer.ReadShort();
                Children = new List<TechTreeElement>();
                for(int i = 0; i < childrenCount; ++i)
                    Children.Add(new TechTreeElement().ReadDataInline(buffer));

                // Benötigte Elemente lesen
                short requireCount = buffer.ReadShort();
                RequiredElements = new List<Tuple<ItemType, short>>();
                for(int i = 0; i < requireCount; ++i)
                    RequiredElements.Add(new Tuple<ItemType, short>((ItemType)buffer.ReadByte(), buffer.ReadShort()));
            }