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]; }
public override object LoadFromArchive(BinaryReader stream) { ChunkTemplate temp = new ChunkTemplate(stream); ChunkTemplate.AddTemplate(temp); return(temp); }
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) }); }
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; }
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); } }
public GenChunkRect(int x, int y, ChunkTemplate template) : this(x, y, template.Width, template.Height) { }