Example #1
0
    //! Called by unity engine on start up to initialize variables.
    public new void Start()
    {
        base.Start();
        recipes = new BasicMachineRecipe[]
        {
            new BasicMachineRecipe("Copper Ingot", "Copper Wire"),
            new BasicMachineRecipe("Aluminum Ingot", "Aluminum Wire"),
            new BasicMachineRecipe("Iron Ingot", "Iron Pipe"),
            new BasicMachineRecipe("Steel Ingot", "Steel Pipe")
        };

        PlayerController playerController = GameObject.Find("Player").GetComponent <PlayerController>();
        BlockDictionary  blockDictionary  = new BlockDictionary(playerController);

        BasicMachineRecipe[] modRecipes = blockDictionary.GetMachineRecipes("Extruder");
        if (modRecipes != null)
        {
            List <BasicMachineRecipe> recipeList = recipes.ToList();
            foreach (BasicMachineRecipe recipe in modRecipes)
            {
                recipeList.Add(recipe);
            }
            recipes = recipeList.ToArray();
        }
    }
    //! Called by unity engine on start up to initialize variables.
    public new void Start()
    {
        base.Start();
        recipes = new BasicMachineRecipe[]
        {
            new BasicMachineRecipe("Copper Plate", "Copper Gear"),
            new BasicMachineRecipe("Iron Plate", "Iron Gear"),
            new BasicMachineRecipe("Tin Plate", "Tin Gear"),
            new BasicMachineRecipe("Bronze Plate", "Bronze Gear"),
            new BasicMachineRecipe("Steel Plate", "Steel Gear"),
            new BasicMachineRecipe("Aluminum Plate", "Aluminum Gear")
        };

        PlayerController playerController = GameObject.Find("Player").GetComponent <PlayerController>();
        BlockDictionary  blockDictionary  = new BlockDictionary(playerController);

        BasicMachineRecipe[] modRecipes = blockDictionary.GetMachineRecipes("Gear Cutter");
        if (modRecipes != null)
        {
            List <BasicMachineRecipe> recipeList = recipes.ToList();
            foreach (BasicMachineRecipe recipe in modRecipes)
            {
                recipeList.Add(recipe);
            }
            recipes = recipeList.ToArray();
        }
    }
Example #3
0
    //! Called by unity engine on start up to initialize variables.
    public new void Start()
    {
        base.Start();
        recipes = new BasicMachineRecipe[]
        {
            new BasicMachineRecipe("Copper Ore", "Copper Ingot"),
            new BasicMachineRecipe("Iron Ore", "Iron Ingot"),
            new BasicMachineRecipe("Tin Ore", "Tin Ingot"),
            new BasicMachineRecipe("Aluminum Ore", "Aluminum Ingot"),
            new BasicMachineRecipe("Regolith", "Glass Block")
        };

        PlayerController playerController = GameObject.Find("Player").GetComponent <PlayerController>();
        BlockDictionary  blockDictionary  = new BlockDictionary(playerController);

        BasicMachineRecipe[] modRecipes = blockDictionary.GetMachineRecipes("Smelter");
        if (modRecipes != null)
        {
            List <BasicMachineRecipe> recipeList = recipes.ToList();
            foreach (BasicMachineRecipe recipe in modRecipes)
            {
                recipeList.Add(recipe);
            }
            recipes = recipeList.ToArray();
        }
    }
    //! Gets recipes for a specfic machine.
    public BasicMachineRecipe[] GetMachineRecipes(string machineName)
    {
        StateManager stateManager = GameObject.Find("GameManager").GetComponent <StateManager>();
        string       modPath      = Path.Combine(Application.persistentDataPath, "Mods");

        Directory.CreateDirectory(modPath);
        string[] modDirs = Directory.GetDirectories(modPath);
        foreach (string path in modDirs)
        {
            string machinePath = path + "/Machines/";
            Directory.CreateDirectory(machinePath);
            DirectoryInfo d = new DirectoryInfo(machinePath);
            foreach (FileInfo file in d.GetFiles("*.qe"))
            {
                string filePath     = machinePath + file.Name;
                string fileContents = File.ReadAllText(filePath);
                string fileName     = file.Name.Remove(file.Name.Length - 3);
                if (fileName == machineName)
                {
                    string               recipeContents  = fileContents.Split(']')[1];
                    string[]             machineContents = recipeContents.Split('}');
                    BasicMachineRecipe[] machineRecipes  = new BasicMachineRecipe[machineContents.Length - 1];
                    for (int i = 0; i < machineRecipes.Length; i++)
                    {
                        string input  = machineContents[i].Split(':')[0];
                        string output = machineContents[i].Split(':')[1];
                        machineRecipes[i] = new BasicMachineRecipe(input, output);
                    }
                    string modName = new DirectoryInfo(path).Name;
                    if (!stateManager.modRecipeList.Contains(machineName))
                    {
                        stateManager.modRecipeList.Add(machineName);
                        string[] commandLineOptions = Environment.GetCommandLineArgs();
                        if (commandLineOptions.Contains("-devel"))
                        {
                            Debug.Log("Mod " + "[" + modName + "]" + " added recipes for [" + machineName + "]");
                        }
                    }
                    return(machineRecipes);
                }
            }
        }
        return(null);
    }