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);
    }
Beispiel #2
0
 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);
 }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 public void TestGenerateUnit <T> (GenerateUnit <T> gen) where T : Unit
 {
     PerformableTasks.Add(gen);
     gen.Start();
 }