Jump to content

[1.12.2] Generating New crops in Villages


_Bedrockbreaker_

Recommended Posts

I have a crop that works, (only problem is that is that is outputs Exception loading model for variant rtap:croppeppers#inventory for item "minecraft:air" on load time)  I want it generate in the village farm land module-thingies though. I know Actually Additions does this, and its code seems to generate an entirely "new" building for their crops. I was wondering if I could just replace some of the existing crops with my crops. (Honestly, generating a new building isn't something I wouldn't do, and I am wondering if it would be the better option.) I don't know how to begin starting on this type of thing, so any help is appreciated. Bonus points if the plant can only generate in desert villages.

Professional Hot Garbage Programmer.

https://github.com/Bedrockbreaker/

Link to comment
Share on other sites

Look at net.minecraft.world.gen.structure.StructureVillagePieces.class

Specifically at Field1 and Field2, I don't know how (you might need to make a coremod) but you could add another crop to the list of crops to pick from.
 

You should also look at how Binnies Extra Trees adds their hops.

 

You could create another field too that would only spawn in desert villages

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

Taking a look at Binnies Trees, seems to do almost the same think Actually Additions does. The only difference is that binnie creates a building, then populates the crops with any of the vanilla crops, or theirs. Actually additions just populates it with their own crops, because they have about 4 different types.

 

So I am thinking, that overriding any crops on world gen isn't going to be the answer, but generating a new building. Both mod's code provides enough detail on how to create a farm module, and register it. However, I don't see a reference to how that building is generated. There is a class in each mod that implements VillagerRegistry.IVillageCreationHandler . But none of the classes seem to be called by anything. Are they called from VillagerRegistry.IVillageCreationHandler , or is there something that I am missing?

 

What would be the "correct" way of spawning the structures only in deserts?

Edited by _Bedrockbreaker_

Professional Hot Garbage Programmer.

https://github.com/Bedrockbreaker/

Link to comment
Share on other sites

So to make your own crop generation you should make a StructureVillagePieces.Village subclass like the vanilla Field1 or Field2 class and add your crop. Then use the IVillageCreationHandler to add it to the generation.

 

The IVillageCreationHandler is supposed to be registered to the village registry with VillageRegistry.instance().registerVillageCreationHandler() method. I'm not sure exactly when it should be registered, but I kinda feel it should be in init loading phase because you'd want it after your blocks are registered (in case you have custom blocks used in your village piece).

 

You also need to register your structure component with MapGenStructureIO.registerStructureComponent() method.

 

To make sure it is only in certain biome, I think in your the buildComponent() method of your IVillageCreationHandler you will get parameters for the mixX, minY and minZ (they call them p1, p2, and p3 in the interface declaration). You can use the position to query what biome you're in and check for desert.

 

I'm not super familiar with the above, but based on inspecting the classes I think it should work.

 

Note that you need to register your village with a "weight" that makes sense. You can learn about how that works here: https://minecraft.gamepedia.com/Village/Structures

 

I have an example of a "cloud house" that uses my cloud blocks for walls here: https://github.com/jabelar/ExampleMod-1.12/blob/master/src/main/java/com/blogspot/jabelarminecraft/examplemod/worldgen/structures/villages/VillageHouseCloud.java 

Edited by jabelar

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

On 2/24/2018 at 5:57 PM, jabelar said:

The IVillageCreationHandler is supposed to be registered to the village registry with VillageRegistry.instance().registerVillageCreationHandler()

My main class doesn't seem to be liking that. Keeps saying that it cannot be resolved or is not a field. The MapGenStructureIO thing seems to work though. And I think this works for checking the biome. world.getBiome(new BlockPos(sBoundingBox.minX, sBoundingBox.minY, sBoundingBox.minZ) . I think.

 

I did get a bit lost in your example code, as I didn't realize that you had both a "cloud house" and "cloud village". Kept getting confused.

 

Still confused, I will post links to my github, with links to related files.

Nothing is printed to the console, which means that villageCropPeppers is never even being ran. This leads me to believe that is is VillagerRegistry.instance().registerVillageCreationHandler(Reference.MODVILLAGEREGISTER); 's fault, (I have commented it out, as it errors), because that part needs to be ran. Otherwise, I think I am good. think

Professional Hot Garbage Programmer.

https://github.com/Bedrockbreaker/

Link to comment
Share on other sites

My example code goes further than just adding a piece. But I've been writing some tutorials on world generation and now have one for village stuff. See: http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-villages.html

 

Note that one section on that page is specifically related to adding a piece to vanilla villages. Follow that part. 

 

 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

Alright, got my code to work, and after several hours of debugging, I realized that the second for loop in the double for loop in the addComponentParts section was checking the first variable, meaning that it would get stuck trying to increase j to basically infinity. much fun was had. After that was done, I finally got it to generate, and now I just have to get the numbers right on where the crops actually spawn.

 

The only problem now is that beet roots don't seem to like the "age" property, and the game crashes if I try to set their age. Is there a solution, or am I going to have to not spawn beetroots at all?

Professional Hot Garbage Programmer.

https://github.com/Bedrockbreaker/

Link to comment
Share on other sites

BlockBeetroot.BEETROOT_AGE

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.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • LadangToto2 adalah pilihan terbaik bagi Anda yang mencari pengalaman bermain slot gacor dengan transaksi mudah menggunakan Bank Mestika. Berikut adalah beberapa alasan mengapa Anda harus memilih LadangToto2: Slot Gacor Terbaik Kami menyajikan koleksi slot gacor terbaik yang menawarkan kesenangan bermain dan peluang kemenangan besar. Dengan fitur-fitur unggulan dan tema-tema menarik, setiap putaran permainan akan memberikan Anda pengalaman yang tak terlupakan. Transaksi Mudah dengan Bank Mestika Kami menyediakan layanan transaksi mudah melalui Bank Mestika untuk kenyamanan dan keamanan Anda. Dengan proses yang cepat dan efisien, Anda dapat melakukan deposit dan penarikan dana dengan lancar dan tanpa hambatan. Hadiah Hingga 100 Juta LadangToto2 memberikan kesempatan untuk meraih hadiah hingga 100 juta dalam kemenangan. Dengan jackpot dan hadiah-hadiah besar yang ditawarkan, setiap putaran permainan bisa menjadi peluang untuk meraih keberuntungan besar.  
    • Mengapa Memilih LadangToto? LadangToto adalah pilihan terbaik bagi Anda yang mencari pengalaman bermain slot gacor WD Maxwin dengan transaksi mudah menggunakan Bank BNI. Berikut adalah beberapa alasan mengapa Anda harus memilih LadangToto: Slot Gacor WD Maxwin Terbaik Kami menyajikan koleksi slot gacor WD Maxwin terbaik yang menawarkan kesenangan bermain dan peluang kemenangan besar. Dengan fitur-fitur unggulan dan tema-tema menarik, setiap putaran permainan akan memberikan Anda pengalaman yang tak terlupakan. Transaksi Mudah dengan Bank BNI Kami menyediakan layanan transaksi mudah melalui Bank BNI untuk kenyamanan dan keamanan Anda. Dengan proses yang cepat dan efisien, Anda dapat melakukan deposit dan penarikan dana dengan lancar dan tanpa hambatan.  
    • Akun Pro Kamboja adalah pilihan terbaik bagi Anda yang mencari pengalaman bermain slot Maxwin dengan transaksi mudah menggunakan Bank Lampung. Berikut adalah beberapa alasan mengapa Anda harus memilih Akun Pro Kamboja: Slot Maxwin Terbaik Kami menyajikan koleksi slot Maxwin terbaik yang menawarkan kesenangan bermain dan peluang kemenangan besar. Dengan fitur-fitur unggulan dan tema-tema menarik, setiap putaran permainan akan memberikan Anda pengalaman yang tak terlupakan. Transaksi Mudah dengan Bank Lampung Kami menyediakan layanan transaksi mudah melalui Bank Lampung untuk kenyamanan dan keamanan Anda. Dengan proses yang cepat dan efisien, Anda dapat melakukan deposit dan penarikan dana dengan lancar dan tanpa hambatan. Anti Rungkat Akun Pro Kamboja memberikan jaminan "anti rungkat" kepada para pemainnya. Dengan fitur ini, Anda dapat merasakan sensasi bermain dengan percaya diri, karena kami memastikan pengalaman bermain yang adil dan menyenangkan bagi semua pemain.  
    • BINGO188: Destinasi Terbaik untuk Pengalaman Slot yang Terjamin Selamat datang di BINGO188, tempat terbaik bagi para pecinta slot yang mencari pengalaman bermain yang terjamin dan penuh kemenangan. Di sini, kami menawarkan fitur unggulan yang dirancang untuk memastikan kepuasan dan keamanan Anda. Situs Slot Garansi Kekalahan 100 Kami memahami bahwa kadang-kadang kekalahan adalah bagian dari permainan. Namun, di BINGO188, kami memberikan jaminan keamanan dengan fitur garansi kekalahan 100. Jika Anda mengalami kekalahan, kami akan mengembalikan saldo Anda secara penuh. Kemenangan atau uang kembali, kami memastikan Anda tetap merasa aman dan nyaman. Bebas IP Tanpa TO Nikmati kebebasan bermain tanpa batasan IP dan tanpa harus khawatir tentang TO (Turn Over) di BINGO188. Fokuslah pada permainan Anda dan rasakan sensasi kemenangan tanpa hambatan. Server Thailand Paling Gacor Hari Ini Bergabunglah dengan server terbaik di Thailand hanya di BINGO188! Dengan tingkat kemenangan yang tinggi dan pengalaman bermain yang lancar, server kami dijamin akan memberikan Anda pengalaman slot yang tak tertandingi. Kesimpulan BINGO188 adalah pilihan terbaik bagi Anda yang menginginkan pengalaman bermain slot yang terjamin dan penuh kemenangan. Dengan fitur situs slot garansi kekalahan 100, bebas IP tanpa TO, dan server Thailand paling gacor hari ini, kami siap memberikan Anda pengalaman bermain yang aman, nyaman, dan menguntungkan. Bergabunglah sekarang dan mulailah petualangan slot Anda di BINGO188!
    • Mengapa Memilih AlibabaSlot? AlibabaSlot adalah pilihan terbaik bagi Anda yang mencari slot gacor dari Pgsoft dengan transaksi mudah menggunakan Bank Panin. Berikut adalah beberapa alasan mengapa Anda harus memilih AlibabaSlot: Slot Gacor dari Pgsoft Kami menyajikan koleksi slot gacor terbaik dari Pgsoft. Dengan fitur-fitur unggulan dan peluang kemenangan yang tinggi, setiap putaran permainan akan memberikan Anda kesenangan dan keuntungan yang maksimal. Transaksi Mudah dengan Bank Panin Kami menyediakan layanan transaksi mudah melalui Bank Panin untuk kenyamanan dan keamanan Anda. Dengan proses yang cepat dan efisien, Anda dapat melakukan deposit dan penarikan dana dengan lancar dan tanpa masalah.  
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.