-
-
Notifications
You must be signed in to change notification settings - Fork 223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Smelting/Furnace data #290
Comments
Have raised this in Burger too as it seems to be missing "upstream"... Seems to be intentionally excluded... |
Yeah basically we would need to check if these recipes could fit in the same format. |
I'd be inclined to put them in a smelting.json (or similar). They have different structures; in/out/timing. There is no shape, no "count":
Thats the raw data from the iron_ingot.json in the minecraft server.jar |
Sounds good to me.
Before doing all this though, could you please check how many recipes that is ? If it's just 2 or 3, we could maybe do something different |
Hi, Based on TkTech/Burger#35 it's ~50 recipes for smelting. But @Pokechu22 raised an interesting point about smokers and blast furnaces too. They also made this suggestion:
|
I'm fine with that. Won't change too much the process I described above. Feel free to work on it then. Probably worth it to do all types of recipes and not only smelting |
If there's any agreed-upon structure for storing the recipes, I can get the ball rolling and implement the missing data for Java and Bedrock. For Java the data can be pretty easily extracted from the datapacks, possibly with changes to Burger or a separate script to just extract the data. For Bedrock, the process is mostly the same, and the data is available for download on minecraft.net. (Some data seems to be missing from here though, so extracting from the app binary may be required, as I have here) Maybe we can get some parity between Java and Bedrock, so here's the differences between the two: minecraft:acacia_stairsJava:
Bedrock:
minecraft:glassJava:
Bedrock: (extracted from binary)
|
Usually, the MC-Data isn't a direct copy of the raw JSON files, but more of a pre-parsed version of it, so we wouldn't have to worry about differences between versions. I also think it would be a good idea to add |
Possible changes: recipes.json:
Switching from "inShape" -> "pattern" is a breaking change, so possibly it could only be done on the bedrock side. or we could add new files for each container, although this could be cumbersome. As far as the blast/smoker furnaces, I'm not exactly sure how they're implemented but I'll look into it. |
I don't believe any changes need to be made to the Smelting data can all be in a single file, so no need to make a new file per container. Just specify the smoker and blast furnace tags, there. This should be pretty compact, too. It's also worth noting that fuel data should be added, though that can be in a different file. |
another source of data that could be useful https://raw.githubusercontent.com/PrismarineJS/prismarine-packet-dumper/fixtures/packets/from-server/declare_recipes/1.parsed |
Yeah, I was thinking about fetching them from the network. On Java I don’t think it matters over the network vs. data pack, but on bedrock it seems that extracting from binary or loading from the network is the way to go. |
The data is available with burger, with data extractors or through the
network yes
https://github.com/PrismarineJS/prismarine-packet-dumper/blob/fixtures/packets/from-server/declare_recipes/1.parsed
…On Thu, Aug 20, 2020, 13:12 extremeheat ***@***.***> wrote:
Yeah, I was thinking about fetching them from the network. On Java I don’t
think it matters over the network vs. data pack, but on bedrock it seems
that extracting from binary or loading from the network is the way to go.
Not sure if there’s any existing automated tool to extract from the
network, but I can create one over the weekend if not.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#290 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAR437TY2HXWMOFSOFMRCXDSBUALTANCNFSM4NPL5CYQ>
.
|
That I've been looking at Burger Burger Extractor... not sure that works with this packer-dumper format? |
I think only filtering recipes for type === "minecraft:blasting" || type === "minecraft:smelting" and saving that to a smelting.json ? |
I'm having issues just getting the burger extractor to work! 😉
|
Burger isn't able to extract biomes in 1.16 currently, so no biome data is generated. |
Thanks @Pokechu22 - so should I use 1.15.x? |
For now, yes, though probably the burger extractor should be modified to not die if any single part of the data is missing. |
ah cool - yes, it worked against a 1.15.2 extraction. |
Going to vote in favor of keeping the recipes in one place, especially if the types of recipes increases in the future. Right now there's different sets of smelting recipes (normal, blast, smoking, campfire), stonecutter recipies, and crafting tables (see protocol). Bedrock notably also has potion recipes. Internally and over the network they're all stored together, so splitting it up into separate JSON files could lead to problems down the road if new crafting methods get introduced later down the line. The server will need to load all the recipes at once anyways so it can send them down to the client. |
I think I agree... From a UX point of view, I was surprised to not find any "recipes" for iron_ore in recipes.json; it's where I expected them to be (although that was before I'd considered some of the points here about the various crafting table types). |
@extremeheat So it sounds like there is no existing tool to parse that |
It looks like that 1.parsed would replace the need to extract from Burger? |
Not that I'm aware of, no. I wrote my own extractor for the datapacks, I might try to merge it into Burger. Or we can just grab them over the network like rom mentioned. Not sure what the consensus is on where to get the data, but feel free to write the parser if you want. |
about where to put recipes, try to figure out how the schema would look like with the new recipes. If changes are minimal it makes sense to put it in the same file |
As I mentioned in TkTech/Burger#35 I'd rather not have more recipe types in burger (I'm actually somewhat tempted to remove the current recipe extractor), since it adds a lot of size to the generated data but requires very little non-trivial code to extract from a datapack. That adds up a fair bit over snapshots and I think it's part of the reason why it takes so long for data to be available on github pages now. |
I'm not super familiar with the generator system but if it's available from there we can just use that rather than going through burger. If it's not available through generators we can write a one-off Jawa script to extract the json. It would just be a copy paste of what the current recipe topping is doing now, but if Pokechu want's recipes out it's not hard to maintain. That said, Pokechu why not just not run the recipe topping for your snapshots? |
dump: Is there any update on this? It has been 3 years! |
Hi,
Maybe I'm missing something here...
Is there any data about how things like Iron Ore gets turns into Iron Ingots? It's obviously not a crafting recipe...
The text was updated successfully, but these errors were encountered: