Exemple #1
0
        public static async Task <Response> AssembleMFunctionAndSaveToMinecraft(HowToHandleMismatch howToHandleMismatch, string saveName)
        {
            return(await Task.Run(() =>
            {
                Response response;
                var mBlocksGluer = new MBlocksGluer();
                var mFunctionComposer = new MFunctionComposer();
                var saveMFunctionToMinecraft = new SaveMFunctionToMinecraft();

                response = mBlocksGluer.Process(_data.CoordsNormalizerOutput, _data.BlockInfosTranslatorOutput);
                if (response.IsError)
                {
                    return response;
                }
                _data.MBlocksGluerOutput = mBlocksGluer.Output;

                response = mFunctionComposer.Process(_data.MBlocksGluerOutput, howToHandleMismatch, _data.ExtractBuildingNameOutput);
                if (response.IsError)
                {
                    return response;
                }
                _data.MFunctionComposerOutput = mFunctionComposer.Output;

                response = saveMFunctionToMinecraft.Save(_data.MFunctionComposerOutput, _data.LoadUserConfigOutput.MinecraftPath, saveName);
                if (response.IsError)
                {
                    return response;
                }

                return new Response(false, "");
            }));
        }
Exemple #2
0
        public override Response Process(List <MBlock> mBlocks, HowToHandleMismatch howToHandleMismatch, string buildingName)
        {
            try
            {
                Output.Name = buildingName != "" ? buildingName : throw new Exception();

                foreach (var item in mBlocks)
                {
                    string line;
                    if (item.Info.IsMismatched)
                    {
                        switch (howToHandleMismatch)
                        {
                        case HowToHandleMismatch.Ignore:
                            break;

                        case HowToHandleMismatch.RedWool:
                            line = $"setblock ~{item.Coords.X} ~{item.Coords.Z} ~{item.Coords.Y} minecraft:red_wool replace";
                            Output.Content.Add(line);
                            break;

                        case HowToHandleMismatch.SignWithText:
                            line = $@"setblock ~{item.Coords.X} ~{item.Coords.Z} ~{item.Coords.Y} minecraft:oak_sign" + @"{Text1:""{\""text\"":\""" + $"{item.Info.Name}" + @"\""}""} replace";
                            Output.Content.Add(line);
                            break;

                        default:
                            throw new Exception();
                        }
                    }
                    else
                    {
                        StringBuilder helper = new StringBuilder($@"setblock ~{item.Coords.X} ~{item.Coords.Z} ~{item.Coords.Y} {item.Info.Name}");
                        if (item.Info.HasAttributes)
                        {
                            helper.Append("[");
                            for (int i = 0; i <= item.Info.Attributes.Count - 2; i++)
                            {
                                helper.Append($"{item.Info.Attributes[i]},");
                            }

                            helper.Append($"{item.Info.Attributes[item.Info.Attributes.Count - 1]}]");
                        }
                        helper.Append(" replace");
                        Output.Content.Add(helper.ToString());
                    }
                }
            }
            catch (Exception)
            {
                return(new Response(true, "Error"));
            }
            return(new Response(false, ""));
        }
Exemple #3
0
        public static void SaveUserConfig(HowToHandleMismatch defaultAlternative, string defaultGameSave, bool isMinecraftPathSaved = true)
        {
            var saveUserConfig = new SaveUserConfig();

            if (isMinecraftPathSaved)
            {
                saveUserConfig.Save(new UserConfig(_data.LoadUserConfigOutput.MinecraftPath, defaultGameSave, defaultAlternative));
            }
            else
            {
                saveUserConfig.Save(new UserConfig($@"{Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)}\.minecraft", defaultGameSave, defaultAlternative));
            }
        }
Exemple #4
0
        public static async Task <Response> AssembleMFunctionAndSave(HowToHandleMismatch howToHandleMismatch)
        {
            return(await Task.Run(() =>
            {
                Response response;
                var mBlocksGluer = new MBlocksGluer();
                var mFunctionComposer = new MFunctionComposer();
                var saveMFunction = new SaveMFunction();

                response = mBlocksGluer.Process(_data.CoordsNormalizerOutput, _data.BlockInfosTranslatorOutput);
                if (response.IsError)
                {
                    return response;
                }
                _data.MBlocksGluerOutput = mBlocksGluer.Output;

                response = mFunctionComposer.Process(_data.MBlocksGluerOutput, howToHandleMismatch, _data.ExtractBuildingNameOutput);
                if (response.IsError)
                {
                    return response;
                }
                _data.MFunctionComposerOutput = mFunctionComposer.Output;

                response = saveMFunction.Save(_data.MFunctionComposerOutput);
                if (response.IsError)
                {
                    return response;
                }

                if (response.IsError == false && response.ErrorMsg == "user canceled")
                {
                    return response;
                }

                return new Response(false, "");
            }));
        }
Exemple #5
0
 public UserConfig(string minecraftPath, string defaultGameSave, HowToHandleMismatch defaultMismatchOption)
 {
     MinecraftPath         = minecraftPath ?? throw new ArgumentNullException(nameof(minecraftPath));
     DefaultGameSave       = defaultGameSave ?? throw new ArgumentNullException(nameof(defaultGameSave));
     DefaultMismatchOption = defaultMismatchOption;
 }