public void setup() { StreamReader stream = new StreamReader(@"Assets\Maps\" + map_filename); mapData = MapParser.getMapData(stream); stream = new StreamReader(@"Assets\Maps\" + units_filename); unitsData = MapParser.getMapData(stream); stream.Close(); grid = GetComponentInChildren <GenerateMap>(); units = GetComponentInChildren <GenerateUnit>(); grid.setup(mapData); units.setup(unitsData, grid.getWidth(), grid.getHeight(), grid); }
public bool ExportUnits(ParserState state, string location) { foreach (var(unit, real) in state.Units.Join(state.RealDefs, i => true, i => true, (unit, real) => (unit, real))) { var inner = $"{unit.Name} - {real.WrapName}"; if (inner.Length > Console.WindowWidth) { inner = $"{unit.Name}"; } if (inner.Length < Console.WindowWidth) { var dif = Console.WindowWidth - inner.Length; inner = new string('-', dif / 2 + dif % 2) + inner + new string('-', dif / 2); } Console.WriteLine($"{inner}"); var text = new GenerateUnit(state, unit, real).TransformText(); Console.WriteLine(text); } return(true); }
public bool ExportUnits(ParserState state, string location) { location = Path.Combine(BaseDir, location); if (File.Exists(location)) { throw new HandleException($"Export requires directory, not a file. '{location}' is a file", 0717); } var dirsToCreate = Enumerable.Empty <string>(); var unitsDirectory = Path.Combine(location, "Units"); dirsToCreate = dirsToCreate.Append(location); dirsToCreate = dirsToCreate.Append(unitsDirectory); foreach (var real in state.RealDefs) { var realDir = Path.Combine(unitsDirectory, real.WrapName); var inferedUnitsDirectory = Path.Combine(realDir, "Infered"); dirsToCreate = dirsToCreate.Append(realDir); dirsToCreate = dirsToCreate.Append(inferedUnitsDirectory); } dirsToCreate.CreateDirs(); foreach (var(unit, real) in state.Units.Join(state.RealDefs, i => true, i => true, (unit, real) => (unit, real))) { if (unit is Scalar) { continue; } var path = Path.Combine(unitsDirectory, $"{real.WrapName}"); if (unit.IsInfered) { path = Path.Combine(path, "Infered"); } path = Path.Combine(path, $"{unit.Name}.cs"); var text = new GenerateUnit(state, unit, real).TransformText() .NonEmptyOrWhitespaceLines().ToArray(); File.WriteAllLines(path, text); } return(true); }
public void TestGenerateUnit <T> (GenerateUnit <T> gen) where T : Unit { PerformableTasks.Add(gen); gen.Start(); }