Added Entity, Item and Block palletes for 1.17/1 and 1.18/1. Added pallete generators as a command line option. Fixed a minor warning with AttackBot

This commit is contained in:
Dusan Milutinovic 2022-02-13 01:10:10 +01:00
parent 6986902938
commit 61a682a69b
16 changed files with 4488 additions and 72 deletions

View file

@ -23,6 +23,17 @@ namespace MinecraftClient.Mapping.BlockPalettes
/// </remarks>
public static class BlockPaletteGenerator
{
/// <summary>
/// Generate mapping from Minecraft blocks.json
/// </summary>
/// <param name="blocksJsonFile">path to blocks.json</param>
/// <remarks>java -cp minecraft_server.jar net.minecraft.data.Main --reports</remarks>
/// <returns>state => block name mappings</returns>
public static void GenerateBlockPallete(string blocksJsonFile)
{
BlockPaletteGenerator.JsonToClass(blocksJsonFile, "Palette", "Material");
}
/// <summary>
/// Generate mapping from Minecraft blocks.json
/// </summary>
@ -33,6 +44,9 @@ namespace MinecraftClient.Mapping.BlockPalettes
/// <returns>state => block name mappings</returns>
public static void JsonToClass(string blocksJsonFile, string outputClass, string outputEnum = null)
{
string outputPalettePath = Path.Combine(Path.GetDirectoryName(blocksJsonFile), outputClass + "XXX.cs");
string outputEnumPath = Path.Combine(Path.GetDirectoryName(blocksJsonFile), outputEnum + "XXX.cs");
HashSet<int> knownStates = new HashSet<int>();
Dictionary<string, HashSet<int>> blocks = new Dictionary<string, HashSet<int>>();
@ -70,7 +84,7 @@ namespace MinecraftClient.Mapping.BlockPalettes
"",
"namespace MinecraftClient.Mapping.BlockPalettes",
"{",
" public class PaletteXXX : PaletteMapping",
" public class PaletteXXX : BlockPalette",
" {",
" private static Dictionary<int, Material> materials = new Dictionary<int, Material>();",
"",
@ -121,7 +135,7 @@ namespace MinecraftClient.Mapping.BlockPalettes
"}"
});
File.WriteAllLines(outputClass, outFile);
File.WriteAllLines(outputPalettePath, outFile);
if (outputEnum != null)
{
@ -138,7 +152,7 @@ namespace MinecraftClient.Mapping.BlockPalettes
" }",
"}"
});
File.WriteAllLines(outputEnum, outFile);
File.WriteAllLines(outputEnumPath, outFile);
}
}
}

File diff suppressed because it is too large Load diff