PixxiBunny Posted May 1, 2020 Posted May 1, 2020 Hey, I'm struggling with how to make my custom item edible. I get that i probably need a new item group for food items, but I'm pretty new to modding, so could anyone walk me through on how to do this? ❤️ Here's my registry code for my foods: // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", ItemBase::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", ItemBase::new); Quote
Draco18s Posted May 1, 2020 Posted May 1, 2020 I wonder how vanilla does it. Also, Code Style #4 Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
PixxiBunny Posted May 1, 2020 Author Posted May 1, 2020 I've looked through the source, but I wasn't able to find any classes... Quote
poopoodice Posted May 1, 2020 Posted May 1, 2020 (edited) Food is a property, and Foods is a class that has foods there, sounds pretty straight forward isn't it.? Edited May 1, 2020 by poopoodice Quote
PixxiBunny Posted May 1, 2020 Author Posted May 1, 2020 (edited) I've edited the code, it's got a bunch of errors and I'm very confused. // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", Foods::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", Foods::new); Edited May 1, 2020 by PixxiBunny Quote
DavidM Posted May 1, 2020 Posted May 1, 2020 Create an instance of Food.Builder and build your food item with it. Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.
poopoodice Posted May 1, 2020 Posted May 1, 2020 1 minute ago, PixxiBunny said: I've edited the code, it's got a bunch of errors and I'm very confused. // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", Foods::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", Foods::new); I believe Food is a property, and the food itself is an item Quote
PixxiBunny Posted May 1, 2020 Author Posted May 1, 2020 2 minutes ago, DavidM said: Create an instance of Food.Builder and build your food item with it. I'm sorry, but how would I do this? Quote
kaydogz Posted May 2, 2020 Posted May 2, 2020 (edited) 4 minutes ago, PixxiBunny said: I'm sorry, but how would I do this? new Food.Builder(....).build() then when instantiating your item, pass in your food instance: new Item.Properties().food(foodinstance) Edited May 2, 2020 by kaydogz typo Quote
PixxiBunny Posted May 2, 2020 Author Posted May 2, 2020 Here's what I got, still not letting me eat it: // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", ItemBase::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", ItemBase::new); public static class Foods { public static final Food COTTON_STEAK = (new Food.Builder()).hunger(8).saturation(12.8f).meat().build(); } Quote
kaydogz Posted May 2, 2020 Posted May 2, 2020 13 minutes ago, PixxiBunny said: Here's what I got, still not letting me eat it: // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", ItemBase::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", ItemBase::new); public static class Foods { public static final Food COTTON_STEAK = (new Food.Builder()).hunger(8).saturation(12.8f).meat().build(); } It's not letting you eat it because you haven't applied the food to the item's Item.Properties Quote
DavidM Posted May 2, 2020 Posted May 2, 2020 (edited) You need to apply the Food you created to your item. Edited May 2, 2020 by DavidM Quote Some tips: Spoiler Modder Support: Spoiler 1. Do not follow tutorials on YouTube, especially TechnoVision (previously called Loremaster) and HarryTalks, due to their promotion of bad practice and usage of outdated code. 2. Always post your code. 3. Never copy and paste code. You won't learn anything from doing that. 4. Quote Programming via Eclipse's hotfixes will get you nowhere 5. Learn to use your IDE, especially the debugger. 6. Quote The "picture that's worth 1000 words" only works if there's an obvious problem or a freehand red circle around it. Support & Bug Reports: Spoiler 1. Read the EAQ before asking for help. Remember to provide the appropriate log(s). 2. Versions below 1.11 are no longer supported due to their age. Update to a modern version of Minecraft to receive support.
Draco18s Posted May 2, 2020 Posted May 2, 2020 (edited) 2 hours ago, PixxiBunny said: I've looked through the source, but I wasn't able to find any classes... Apparently you didn't look at Items.java where things like cooked porkchop get instantiated to find out what classes were involved. Edited May 2, 2020 by Draco18s Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
PixxiBunny Posted May 2, 2020 Author Posted May 2, 2020 1 hour ago, DavidM said: You need to apply the Food you created to your item. How would I do this? I'm sorry I'm asking so much, I'm fairly new to this. Quote
kaydogz Posted May 2, 2020 Posted May 2, 2020 14 minutes ago, PixxiBunny said: How would I do this? I'm sorry I'm asking so much, I'm fairly new to this. new Item(new Item.Properties().food(foodInstance)) PLEASE learn basic java before you start modding, so you won't have to ask questions like these. Quote
PixxiBunny Posted May 2, 2020 Author Posted May 2, 2020 4 minutes ago, kaydogz said: new Item(new Item.Properties().food(foodInstance)) PLEASE learn basic java before you start modding, so you won't have to ask questions like these. It's saying cannot resolve symbol 'foodInstance'. Also, where would I place this code? // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", ItemBase::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", ItemBase::new); public static class Foods { public static final Food COTTON_STEAK = (new Food.Builder()).hunger(8).saturation(12.8f).meat().build(); } new Item(new Item.Properties().food(foodInstance)) } Quote
kaydogz Posted May 2, 2020 Posted May 2, 2020 (edited) 15 minutes ago, PixxiBunny said: It's saying cannot resolve symbol 'foodInstance'. Also, where would I place this code? // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", ItemBase::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", ItemBase::new); public static class Foods { public static final Food COTTON_STEAK = (new Food.Builder()).hunger(8).saturation(12.8f).meat().build(); } new Item(new Item.Properties().food(foodInstance)) } foodInstance is what I put as a placeholder for the instance of your food, which is for you, Foods.COTTON_STEAK. You would put the line as such: ITEMS.register("itemregistryname", () -> new Item(new Item.Properties().food(foodInstance))); As I said before, please learn java before you start modding. Edit: And please remember to swap my placeholders for your values. Edited May 2, 2020 by kaydogz typo Quote
PixxiBunny Posted May 2, 2020 Author Posted May 2, 2020 2 minutes ago, kaydogz said: foodInstance is what I put as a placeholder for the instance of your food, which is for you, Foods.COTTON_STEAK. You would put the line as such: ITEMS.register("itemregistryname", () -> return new Item(new Item.Properties().food(foodInstance))); As I said before, please learn java before you start modding. Alright, here's what I got. Still some errors though, any idea what's wrong? // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", ItemBase::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", () -> return new Item(new Item.Properties().food(Foods.COTTON_STEAK))); public static class Foods { public static final Food COTTON_STEAK = (new Food.Builder()).hunger(8).saturation(12.8f).meat().build(); } Quote
kaydogz Posted May 2, 2020 Posted May 2, 2020 1 minute ago, PixxiBunny said: Alright, here's what I got. Still some errors though, any idea what's wrong? // Food public static final RegistryObject<Item> COTTON_STEAK_RAW = ITEMS.register("cotton_steak_raw", ItemBase::new); public static final RegistryObject<Item> COTTON_STEAK = ITEMS.register("cotton_steak", () -> return new Item(new Item.Properties().food(Foods.COTTON_STEAK))); public static class Foods { public static final Food COTTON_STEAK = (new Food.Builder()).hunger(8).saturation(12.8f).meat().build(); } Sorry, my bad. I had a typo from before. Just remove the return Quote
PixxiBunny Posted May 2, 2020 Author Posted May 2, 2020 4 minutes ago, kaydogz said: Sorry, my bad. I had a typo from before. Just remove the return That works! Thank you so much, and sorry if I was getting annoying lol. I'd be annoyed at me too. Quote
kazuya Posted February 23, 2024 Posted February 23, 2024 I would recommend watching this video its a verry nice and clear explanation of what you need to do Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.