Example #1
0
        public Chunk(int x, int y, ChunkTemplate template, Map map)
            : this(x, y, template.Width, template.Height, map)
        {
            for (int tx = 0; tx < Width; ++tx)
            {
                for (int ty = 0; ty < Height; ++ty)
                {
                    GameTile tile = myTiles[tx, ty];
                    tile.IsWall = template.GetIsWall(tx, ty);
                    tile.Skin   = template.GetSkin(tx, ty);
                    tile.Alt    = template.GetAlt(tx, ty);
                }
            }

            myEnts = new List <Entity>();

            foreach (Entity ent in template.Entities)
            {
                if (!Map.AlwaysPlaceEntities && Tools.Random() > ent.Probability)
                {
                    continue;
                }

                Entity clone = Entity.Clone(ent);
                clone.OriginX += X;
                clone.OriginY += Y;
                AddEntity(clone);
            }

            myNeighbours = new Chunk[0];
        }
Example #2
0
        public override object LoadFromArchive(BinaryReader stream)
        {
            ChunkTemplate temp = new ChunkTemplate(stream);

            ChunkTemplate.AddTemplate(temp);
            return(temp);
        }
Example #3
0
        public override ResourceItem[] LoadFromFile(string keyPrefix, string fileName, string fileExtension, FileStream stream)
        {
            ChunkTemplate temp = new ChunkTemplate(stream);

            ChunkTemplate.AddTemplate(temp);
            return(new ResourceItem[] { new ResourceItem(keyPrefix + fileName, temp) });
        }
Example #4
0
        public ChunkConnector(BinaryReader reader, ChunkTemplate template)
        {
            X = reader.ReadByte();
            Y = reader.ReadByte();
            byte data = reader.ReadByte();

            Horizontal    = (data & 0x80) != 0;
            BottomOrRight = (Horizontal && X != 0) || (!Horizontal && Y != 0);
            Size          = data & 0x7F;

            Template = template;
        }
Example #5
0
        public static void AddTemplate(ChunkTemplate template)
        {
            foreach (DungeonClass mapType in template.MapTypes)
            {
                if (!stTemplates.ContainsKey(mapType))
                {
                    stTemplates.Add(mapType, new List <ChunkTemplate>());
                }

                stTemplates[mapType].Add(template);
            }
        }
Example #6
0
 public GenChunkRect(int x, int y, ChunkTemplate template)
     : this(x, y, template.Width, template.Height)
 {
 }