Version 2.1.0 of Croptopia is the last available for MC 1.18.2, and it has a lot of bugs, and things missing, which I am mostly-successfully repairing. Missing items needed for advancements are all intact ("Food Critic" was particularly badly affected), spelling and continuity errors have been fixed (the Queen's English was only partially implemented), and crafting recipes have been fixed or, in two notable cases, invented.
There are a couple of aspects I'm stumped on, though, and it hasn't been for the lack of trying.
1: Removing Frog Legs and Fried Frog Legs.
Frog Legs and Fried Frog Legs are both present in this version of Croptopia, but frogs weren't introduced until MC 1.19. Looking in the latest Croptopia, though (that's version 4.1.2 for MC 1.21.1), there still isn't a recipe for anything involving frog's legs. So I'd rather remove these outright. I have found several files to which I have added .DISABLED to the filename, to see if they're erased from the game:
- removing these keeps the two items in the JEI menu and Creative Mode, but the Forge tags associated with them have noticeably disappeared (as I'd expect).
- removing these still keeps both items in the JEI menu and selectable in Creative Mode, but now the textures have disappeared and been replaced by the purple and black Battenburg placeholder.
It seems the texture files in /assets/croptopia/textures/item can be left alone, as there is also a texture for Cooked Frog's Legs that I've not seen in the JEI menu, and also one for Dumplings - an ingredient that isn't used to make Chicken And Dumplings or Tofu And Dumplings, and isn't in the JEI menu either.
I am missing a trick, but I can find nothing more where the information would be stored. Unless, that is, it's linked to this:
2: Where is the data stored that determines how many hunger points each food is worth?
This should be held in some .json files somewhere, but I have yet to find them.
Spinach is not a very useful crop - but say I want to change it, so that it restores maximum hunger and saturation points, and also grants the player Strength III for a minute. It must be possible, because regular Minecraft foods can grant status effects (Rotten Flesh being a "food" in the loosest sense of the word). But I cannot for the life of me find where the data is that determines this.
I also find that any OS that tries to search for text inside files will fail to do so. I'm on Windows 7, but I've previously tried with Mac OS 10.(whatever was current in about 2012) and at least three varieties of Linux, and if I search for the text "pack_format" (which I know is in pack.mcmeta), none of these OSs will find it - and I've unpacked all the contents of Croptopia 2.1.0 from its .jar package to look.
Can it be that the location I'm looking for here is also where I'll find how I can delete Frog Legs outright?
ADDENDUM, just in case anyone who can help ever finds this thread:
Something else that I find odd in Croptopia is how capricious the system is for returning bottles and bowls that have been used in a crafting recipe... or not.
Sometimes it works:
A kiwi sorbet is made with one kiwi and one honey bottle - the empty bottle is returned on crafting it, similar to a Minecraft recipe such as crafting a honey block, which requires four honey bottles and will return all four.
Any juice - apple, cranberry, orange, saugaro, and several others - will return the bottle on drinking the juice, similar to a Minecraft water bottle or any potion.
Several snacks require a wooden bowl, and all of those that are specified in the Croptopicon 3rd Edition (i.e. the one supplied with v2.1.0, rather than the one I've edited) will return the bowl on eating the product.
Sometimes it doesn't work:
Beer, wine and all the smoothies require a bottle to craft, but the bottle is not returned when the product is drunk.
Sometimes there is a combination of these effects:
This happens when a crafted product requires an ingredient that uses a bottle or bowl, and there is no rhyme or reason behind whether the container will be returned.
Rum & raisin ice cream requires rum in the recipe, and does not require a bowl. Drinking the rum will return the bottle; also, crafting the ice cream will return the bottle.
Pumpkin spice latte requires coffee in the recipe, and does not require an additional bottle. Drinking the coffee will return the bottle, but drinking the pumpkin spice latte will not return the bottle.
The kale smoothie requires an empty bottle in its recipe, and yoghurt, which requires a bowl. Eating the yoghurt will return the bowl, but the bowl will not be returned on crafting the kale smoothie - and on drinking it, the bottle will not be returned.
There is also the inverse effect with pumpkin soup, which is not crafted using a bowl, but a bowl will be returned out of the aether on eating the soup. This could be considered a way to make bowls without wood, albeit a very expensive way.
I have come to the conclusion that trying to change the hunger points outcome of eating any food, regular Minecraft or Croptopia, requires editing the Java code rather than the JSON. As I have not foung anything in the JSON files that denotes dropping bottles or bowls, I will further conclude that this is also in the Java code.
Am I right? Is there anyone out there who can tell me?
Right. I'll have to leave that alone, at least for the foreseeable future. Everything else I've needed to correct has been a straightforward JSON edit, once I'd worked out enough of how that worked.
As much experience as I have with a disassembler is with Z80 machine code on a ZX Spectrum... which I can handle, as long as it's little more than screen manipulation. I wouldn't have masses of trouble with 6502, either. But Java? Who knows. I've got "Java for Dummies" which my brother had to use for A-level IT (circa 1998-2000) - it's a 1998 edition, so how much use is it likely to be using that as a base to learn Java, if I wanted?
The language itself throughout the years is pretty much the same but now optimized very heavily. They've also removed and renamed a lot of base classes, so if you try following it step-by-step you might end up hitting a roadblock due to a removed/renamed class (which the solution can be searched around for - or if you download the specific version of Java during that era.)
I wouldn't recommend relying on an outdated programming book due to the fact that it can introduce very bad practices that were thought to be good in those days.
You can still go ahead and read it just to get a feel, but just know that some ideas and practices in it can and will be very bad in the modern language.
Nothing so far on this thread, so I'll change tack on updating the mods I've got running with 1.18.2...
Version 2.1.0 of Croptopia is the last available for MC 1.18.2, and it has a lot of bugs, and things missing, which I am mostly-successfully repairing. Missing items needed for advancements are all intact ("Food Critic" was particularly badly affected), spelling and continuity errors have been fixed (the Queen's English was only partially implemented), and crafting recipes have been fixed or, in two notable cases, invented.
There are a couple of aspects I'm stumped on, though, and it hasn't been for the lack of trying.
1: Removing Frog Legs and Fried Frog Legs.
Frog Legs and Fried Frog Legs are both present in this version of Croptopia, but frogs weren't introduced until MC 1.19. Looking in the latest Croptopia, though (that's version 4.1.2 for MC 1.21.1), there still isn't a recipe for anything involving frog's legs. So I'd rather remove these outright. I have found several files to which I have added .DISABLED to the filename, to see if they're erased from the game:
- removing these keeps the two items in the JEI menu and Creative Mode, but the Forge tags associated with them have noticeably disappeared (as I'd expect).
- removing these still keeps both items in the JEI menu and selectable in Creative Mode, but now the textures have disappeared and been replaced by the purple and black Battenburg placeholder.
It seems the texture files in /assets/croptopia/textures/item can be left alone, as there is also a texture for Cooked Frog's Legs that I've not seen in the JEI menu, and also one for Dumplings - an ingredient that isn't used to make Chicken And Dumplings or Tofu And Dumplings, and isn't in the JEI menu either.
I am missing a trick, but I can find nothing more where the information would be stored. Unless, that is, it's linked to this:
2: Where is the data stored that determines how many hunger points each food is worth?
This should be held in some .json files somewhere, but I have yet to find them.
Spinach is not a very useful crop - but say I want to change it, so that it restores maximum hunger and saturation points, and also grants the player Strength III for a minute. It must be possible, because regular Minecraft foods can grant status effects (Rotten Flesh being a "food" in the loosest sense of the word). But I cannot for the life of me find where the data is that determines this.
I also find that any OS that tries to search for text inside files will fail to do so. I'm on Windows 7, but I've previously tried with Mac OS 10.(whatever was current in about 2012) and at least three varieties of Linux, and if I search for the text "pack_format" (which I know is in pack.mcmeta), none of these OSs will find it - and I've unpacked all the contents of Croptopia 2.1.0 from its .jar package to look.
Can it be that the location I'm looking for here is also where I'll find how I can delete Frog Legs outright?
9,000 Minecraft days, 884 screenshots at the start of 2016. These are the worlds I built.
ADDENDUM, just in case anyone who can help ever finds this thread:
Something else that I find odd in Croptopia is how capricious the system is for returning bottles and bowls that have been used in a crafting recipe... or not.
Sometimes it works:
A kiwi sorbet is made with one kiwi and one honey bottle - the empty bottle is returned on crafting it, similar to a Minecraft recipe such as crafting a honey block, which requires four honey bottles and will return all four.
Any juice - apple, cranberry, orange, saugaro, and several others - will return the bottle on drinking the juice, similar to a Minecraft water bottle or any potion.
Several snacks require a wooden bowl, and all of those that are specified in the Croptopicon 3rd Edition (i.e. the one supplied with v2.1.0, rather than the one I've edited) will return the bowl on eating the product.
Sometimes it doesn't work:
Beer, wine and all the smoothies require a bottle to craft, but the bottle is not returned when the product is drunk.
Sometimes there is a combination of these effects:
This happens when a crafted product requires an ingredient that uses a bottle or bowl, and there is no rhyme or reason behind whether the container will be returned.
Rum & raisin ice cream requires rum in the recipe, and does not require a bowl. Drinking the rum will return the bottle; also, crafting the ice cream will return the bottle.
Pumpkin spice latte requires coffee in the recipe, and does not require an additional bottle. Drinking the coffee will return the bottle, but drinking the pumpkin spice latte will not return the bottle.
The kale smoothie requires an empty bottle in its recipe, and yoghurt, which requires a bowl. Eating the yoghurt will return the bowl, but the bowl will not be returned on crafting the kale smoothie - and on drinking it, the bottle will not be returned.
There is also the inverse effect with pumpkin soup, which is not crafted using a bowl, but a bowl will be returned out of the aether on eating the soup. This could be considered a way to make bowls without wood, albeit a very expensive way.
I have come to the conclusion that trying to change the hunger points outcome of eating any food, regular Minecraft or Croptopia, requires editing the Java code rather than the JSON. As I have not foung anything in the JSON files that denotes dropping bottles or bowls, I will further conclude that this is also in the Java code.
Am I right? Is there anyone out there who can tell me?
9,000 Minecraft days, 884 screenshots at the start of 2016. These are the worlds I built.
-
View User Profile
-
View Posts
-
Send Message
ModeratorIt's all hardcoded in.
Where frog legs are registered as an item.
https://github.com/ExcessiveAmountsOfZombies/Croptopia/blob/1.18.2/shared/src/main/java/com/epherical/croptopia/register/Content.java#L624
Where frog legs as an item exists (specifically where the hunger and saturation values are.)
https://github.com/ExcessiveAmountsOfZombies/Croptopia/blob/1.18.2/shared/src/main/java/com/epherical/croptopia/register/Content.java#L413
If you want to modify anything, you'll need to edit the bytecode with a disassembler which is the most difficult method.
Or the easiest method being to edit the code and recompile your own version of the mod.
Right. I'll have to leave that alone, at least for the foreseeable future. Everything else I've needed to correct has been a straightforward JSON edit, once I'd worked out enough of how that worked.
As much experience as I have with a disassembler is with Z80 machine code on a ZX Spectrum... which I can handle, as long as it's little more than screen manipulation. I wouldn't have masses of trouble with 6502, either. But Java? Who knows. I've got "Java for Dummies" which my brother had to use for A-level IT (circa 1998-2000) - it's a 1998 edition, so how much use is it likely to be using that as a base to learn Java, if I wanted?
9,000 Minecraft days, 884 screenshots at the start of 2016. These are the worlds I built.
-
View User Profile
-
View Posts
-
Send Message
ModeratorThe language itself throughout the years is pretty much the same but now optimized very heavily. They've also removed and renamed a lot of base classes, so if you try following it step-by-step you might end up hitting a roadblock due to a removed/renamed class (which the solution can be searched around for - or if you download the specific version of Java during that era.)
I wouldn't recommend relying on an outdated programming book due to the fact that it can introduce very bad practices that were thought to be good in those days.
You can still go ahead and read it just to get a feel, but just know that some ideas and practices in it can and will be very bad in the modern language.