public Environment(SerializationInputStream Stream) { UniqueKey = Stream.ReadString(); TileRuleSet = new TileRuleSet(Stream); MovementMultiplier = Stream.ReadFloat(); _RestrictRoadMovement = Stream.ReadEnumerable(i => i.ReadBoolean()).ToArray(); }
public Tile(SerializationInputStream Stream, Map Map, TileRuleSet RuleSet, IdGenerator IdGenerator) { this.Map = Map; Coordinate = new Coordinate(Stream); HexCoordinate = new HexCoordinate(Coordinate); Id = IdGenerator.GenerateId(); Configuration = new TileConfiguration(Stream); Bounds = CalculateBounds(); this.RuleSet = RuleSet; Rules = new TileRulesCalculator(this); Configuration.OnReconfigure += (sender, e) => Rules.Recalculate(); }
public Tile(Map Map, Coordinate Coordinate, TileRuleSet RuleSet, IdGenerator IdGenerator) { this.Map = Map; this.Coordinate = Coordinate; this.RuleSet = RuleSet; Id = IdGenerator.GenerateId(); HexCoordinate = new HexCoordinate(Coordinate); Bounds = CalculateBounds(); Configuration = new TileConfiguration(); Rules = new TileRulesCalculator(this); Configuration.OnReconfigure += (sender, e) => Rules.Recalculate(); }
public Environment(ParseBlock Block) { var attributes = Block.BreakToAttributes <object>(typeof(Attribute)); UniqueKey = Block.Name; TileRuleSet = (TileRuleSet)attributes[(int)Attribute.TILE_RULE_SET]; MovementMultiplier = (float)(attributes[(int)Attribute.MOVEMENT_MULTIPLIER] ?? 1f); _RestrictRoadMovement = new bool[Enum.GetValues(typeof(UnitClass)).Length]; foreach (UnitClass unitClass in (IEnumerable <UnitClass>)(attributes[(int)Attribute.RESTRICT_ROAD_MOVEMENT] ?? Enumerable.Empty <UnitClass>())) { _RestrictRoadMovement[(int)unitClass] = true; } }
public Environment( string UniqueKey, TileRuleSet TileRuleSet, float MovementMultiplier, IEnumerable <UnitClass> RoadMovementRestricted) { this.UniqueKey = UniqueKey; this.TileRuleSet = TileRuleSet; this.MovementMultiplier = MovementMultiplier; _RestrictRoadMovement = new bool[Enum.GetValues(typeof(UnitClass)).Length]; foreach (UnitClass unitClass in RoadMovementRestricted) { _RestrictRoadMovement[(int)unitClass] = true; } }
public Map(int Width, int Height, Environment Environment, IdGenerator IdGenerator) { this.Environment = Environment; Regions = new List <MapRegion>(); Tiles = new Tile[Width, Height]; TileRuleSet ruleSet = Environment == null ? null : Environment.TileRuleSet; for (int i = 0; i < Width; ++i) { for (int j = 0; j < Height; ++j) { Tiles[i, j] = new Tile(this, new Coordinate(i, j), ruleSet, IdGenerator); } } Ready(); }
public Map(SerializationInputStream Stream, TileRuleSet RuleSet, IdGenerator IdGenerator) { var width = Stream.ReadInt32(); var height = Stream.ReadInt32(); Tiles = new Tile[width, height]; var tiles = Stream.ReadEnumerable(i => new Tile(i, this, RuleSet, IdGenerator)).GetEnumerator(); for (int i = 0; i < width; ++i) { for (int j = 0; j < height; ++j) { tiles.MoveNext(); Tiles[i, j] = tiles.Current; } } Regions = Stream.ReadEnumerable(i => new MapRegion(Stream, Tiles)).ToList(); Ready(); }