Jump to content

Custom Leaf and Wood registry


ScottKillen

Recommended Posts

When writing a standard WorldGenerator for tree generation, or large structural or landscape features, we do a lot of checks for wood and leaf blocks. If we want to integrate with other mods, or have our trees grow in forest of custom trees,or have other's  trees grow in our forests, and if we want to support the decay of custom leaves on an equal basis with vanilla leaves, we need a registry for leaves and wood.

 

I have coded this in Extrabiomes and have the code ready to turn over to the forge team, but I'm unsure about who to talk to, or how to join the team as a coder. All that is required is two static sets and one interface. This works VERY well in practice with the mods that I have been able to support with Extrabiomes. Other developers play things more close to the vest and cannot be supported by our mod.

 

The results are difficult, for instance, our mod provides entire biomes of custom tree forests. Industrialcraft rubber will spawn in these biomes, but growth is often stifled because our leaves look like unknown block to that mod and so the tree grow fails. RedPower's volcanoes do not remove our leaves when the form, because the WorldGen can't identify our leaves as such and so the results look devastating.

 

I have done/am willing to do the work involved in making this small feature with a big impact available to all forge mods as a part of Forge. I would be grateful if someone could help me understand the process of adding this myself or donating the code to the project.

Link to comment
Share on other sites

Humm, someone actually bothered to make extra trees and think of how to make them interact with each other properly, nice.

Your best bet for getting something into forge, is to clean it up, and submit a Pull Request on Github.

 

Ideally submitting a small example mod to showcase what you're trying to do.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Thanks, LexManos and OvermindDL.

 

Github won't be a problem...I'll probably be needing help after I make my changes, because I am not familiar with the process.

 

I am curious abut what would be a good way to showcase this...I will prepare a mod, but in all honesty, the showcase mod would be about 20 times larger than the change itself...I suppose I could submit my test mod, but I fear that the subtleties of this might make it get lost.

 

I can very easily provide before and after screenshots as well as a save, with part of the terrain generated before the change and part after, to provide contrast in addition to the test mod.

 

What is the forge policy regarding vanilla changes? This feature would require one line changes to the wood block and several of the WorldGens as well as repairing a bug in the WorldGens for jungle trees where the wood block id is hardcoded...

 

If these are allowed, what tool do I use to make the patches to check in?

 

Thank you guys for being so receptive to this!

Link to comment
Share on other sites

Thanks, LexManos and OvermindDL.

 

Github won't be a problem...I'll probably be needing help after I make my changes, because I am not familiar with the process.

 

I am curious abut what would be a good way to showcase this...I will prepare a mod, but in all honesty, the showcase mod would be about 20 times larger than the change itself...I suppose I could submit my test mod, but I fear that the subtleties of this might make it get lost.

Just a basic tree mod would probably work, have new ones grow and use your api properly.

 

I can very easily provide before and after screenshots as well as a save, with part of the terrain generated before the change and part after, to provide contrast in addition to the test mod.

 

What is the forge policy regarding vanilla changes? This feature would require one line changes to the wood block and several of the WorldGens as well as repairing a bug in the WorldGens for jungle trees where the wood block id is hardcoded...

I cannot speak for Lex but vanilla hooks seem to be well accepted if they have a useful purpose, are minimized in code (keep about all the code you can 'elsewhere', like in ForgeHooks.java, with just a single line or two in the vanilla class), and cannot already be done via some other method, like reflection (which your API here fills something that reflection cannot fix).

 

 

If these are allowed, what tool do I use to make the patches to check in?

Forge actually already has a script to do that.

 

You want to get Forge from github, not the source distribution.  The github version has a development set up for working on forge itself.  When set up, make your change, and there is a script that will auto generate patches and so forth.  Just run it, then push back to github as a pull request.  Lex has done an amazing job at keeping it very simple, and as such he can still explain it better.

 

Thank you guys for being so receptive to this!

This would be a very useful little hook, and one that *requires* vanilla changes, which is useful to have in Forge instead of 'other' mods editing base files.

 

It would also be useful if the API could be used to disallow blocks that trees overwrite.  Some mods have rather costly blocks that are often run in tree farm (think RedPower or BuildCraft), and being non-solid a growing tree can grow into and destroy the block, it would be nice to be able to mark a custom mod block as preventing tree growth as well.

Link to comment
Share on other sites

I think I must be doing something wrong...I never have a problem decompiling with the forge releases...but I do the following and I get tons of patch errors...

 

[*]Clone forge from github

[*]Extract mcp into my project directory

[*]Put server jar in jars and copy bin and resource directories there too

[*]install.cmd (Apparently, the install scripts crash when run from forge/install...they like to be up one in forge)

 

Logs are here: http://www.mediafire.com/?wwge0tlo9pmvpo0 Any help would be appreciated (I know I am missing something...I feel like a newb)

Link to comment
Share on other sites

It would also be useful if the API could be used to disallow blocks that trees overwrite.  Some mods have rather costly blocks that are often run in tree farm (think RedPower or BuildCraft), and being non-solid a growing tree can grow into and destroy the block, it would be nice to be able to mark a custom mod block as preventing tree growth as well.

 

I just saw this...I might as well add this while I'm in the code. It would be a nice feature.

Link to comment
Share on other sites

Lex,

 

I tried setup first last night, and I got some errors, so I then treid the process described above...

 

The process I followed tonight is this:

[*]Clone my branch of forge.

[*]Decompress mcp into the MinecraftForge directory (that contains the 'forge' directory.)

[*]Copy minecraft_server.jar and my clean vanilla bin and resource directories to the 'jars' directory.

[*]Run setup.bat

 

All looks fine, except that server recompilation chokes on a syntax error in BlockRedstoneRepeater.java and the application of patches looks good and then many multiple failures.

 

The set up script reports that all is well...but the server will not compile. It has MANY errors.

 

If this is the way it is supposed to be, I will continue, but it feels awkward with the server not compiling.

 

I appreciate your patience and understand that I sound like a complete noob...I just need to get my bearings in the build environment...

 

Once I get it, I'll be able to do get around pretty good.

 

So, is it ok that the server is not compiling?

Link to comment
Share on other sites

Make sure you've copied the conf folder from forge/conf to mcp/conf

The setup script does not automatically do that, {as it would be stupid}

No patches should fail, so thats probably your issue.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Pull request submitted.

 

Showcase mod source attached and at at http://www.mediafire.com/?8qjzvqa36281onq

 

I look forward to the feedback!

 

 

Mod illustrates custom trees (sandstone leaf texture) playing nicely with and behaving like vanilla trees. Also every chunk has a glass tower that leaves grow around, and not through, to illustrate that non-opaque blocks can be registered impervious to leaf growth.

TestMod.zip

Link to comment
Share on other sites

Humm, woke up to your pull request, Will need to look into it and see whats whats, but, you also forgot the server side :P

But, only a bit of a issue there, I would move those tree-lists to just plain Block methods. And make them all world/location {and therefor TileEntity/Metadata} sensitive.

 

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Thanks, Lex...

 

Didn't forget the server side...hesitated because I have never done any server side programming and because of the minor (;D) issue that I cannot get the server's forge patches to apply cleanly...I know this is something I am doing...but I am not doing anything except browsing the code and running a build script...so I'm not sure what behavior to stop on my end...

 

Also, I know I'm going to have to gain experience on server side programming given the way future versions of Minecraft are headed.

 

You know the code better than me, so I will defer to however you feel this should be done. I will recommit with these functions relegated to the block.

 

Any help you, or anyone else can provide with regard to the server implementation would be appreciated.

 

Regarding the server build errors, I clone forge, extract mcp, copy in the binaries to jars, copy forge/conf to mcp/conf and run setup.bat...everything goes great until it tries to apply the patches to server then it goes nuts...unless I am missing a step, I don't know how to fix it. Like you said earlier, it is something on my end, but I don't know what.

Link to comment
Share on other sites

Hmmm...probably not in this case. I just tracked it to a PEBKAC error...  :-[ You'd be right to ban me for wasting your time.

 

Accounted for the idiot at my keyboard...and now it builds fine.

 

I'll revise my code and include the server this time.

Link to comment
Share on other sites

https://github.com/MinecraftForge/MinecraftForge/commit/3b523d57a9ceef4684442b45a787a4441df612ed

You now are rivaling RP for hooks, 26 base edits for just you.

Go! Make many good tutorials on how to use this.

Make mods take advantage of this.

Make RedPower take advantage of this!

Make it worth my while! :P

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Thanks! I always struggle with that...when to start supporting a newer version of forge...

 

We keep older versions of the mod available, and only add new features to the newest version.

 

Right now, some of the features we need are not available until SMP, so as soon as the new Recommended build of forge is out, we will release a new version of our mod. Lots of people are clamoring for SMP.

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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • As the title say, game suddenly crushed during the loading. I got this error message The game crashed whilst rendering overlay Error: java.lang.RuntimeException: null   And Here's the link of crash log bit.ly/3IcVUQG
    • Do these mods have incompatibles: Dynamic View[Forge] (by someaddon) Server Performance - Smooth Chunk Save[Forge/Fabric] (by someaddon) EdivadLib (by 3divad99) Krypton Reforged (by Anthxny) AttributeFix (by DarkhaxDev) Create Stuff & Additions (by Furti_Two) Cristel Lib (by Cristelknight) Resourceful Config (by ThatGravyBoat) Applied Cooking (by ItsSebastrn) Thermal Cultivation (by TeamCoFH) SuperMartijn642's Config Lib (by SuperMartijn642) Create: Bells & Whistles (by sudolev) Thermal Integration (by TeamCoFH) SebastrnLib (by ItsSebastrn) Farmer's Delight (by vectorwing) Right Click, Get Crops (by TeamCoFH) Observable (by tasgon) FPS optimizer (by The_TCT) Dungeons and Taverns (by Nova_Wostra) Explorify – Dungeons & Structures (by bebebea_loste) Fast Leaf Decay (by olafskiii) Create: Vintage Improvements (by Negodya1) Sophisticated Backpacks (by P3pp3rF1y) SuperMartijn642's Core Lib (by SuperMartijn642) Create Crafts & Additions (by MRHminer) Structory (by botanydev) Oculus (by Asek3) Tectonic (by Apollo) Embeddium (Rubidium) Extra (by dimadencep) Athena (by CodexAdrian) Jade 🔍 (by Snownee) Mekanism Tools (by bradyaidanc) Carry On (by Tschipp) Create: Sweets & Treats (by AstralButOnCurseForge) Extreme Reactors Create Compat (by ZeroNoRyouki) AI Improvements (by QueenOfMissiles) AE2 QoL Recipes (by Christofmeg) Create: ComputerCraft (CC: Tweaked) (by EndRage) Create Enchantment Industry (by DragonsPlus) Macaw's Fences and Walls (by sketch_macaw) Better Villages - Forge (by jtl_elisa) Puzzles Lib [Forge & Fabric] (by Fuzs) Mekanism (by bradyaidanc) Create Recycle Everything (by nocubeyt) Searchables (by Jaredlll08) Immersive Paintings [Fabric/Forge] (by Conczin) Create Deco (by talrey) Thermal Foundation (by TeamCoFH) Controlling (by Jaredlll08) Kotlin for Forge (by thedarkcolour) Lithostitched (by Apollo) Let Me Despawn (by frikinjay) MCEF (Minecraft Chromium Embedded Framework) (by ds58) FPS Boost (by The_TCT) Ad Astra (by AlexNijjar) TerraBlender (Forge) (by TheAdubbz) Falling Leaves (Forge) (by Cheaterpaul) CC:C Bridge (by Sammy_echt) Xaero's Minimap (by xaero96) CoFH Core (by TeamCoFH) Create: Applied Kinetics (by Forsteri123) AE Additions - ExtraCells2 Fork (by MasterYodAT9G) Just Enough Items (JEI) (by mezz) Biomes O' Plenty (by Forstride) Curios API (Forge/NeoForge) (by TheIllusiveC4) AE2 Network Analyser (by GlodBlock) Resourceful Lib (by ThatGravyBoat) ChoiceTheorem's Overhauled Village (by ChoiceTheorem) Clockwork: Create x Valkyrien Skies (by triode_) Architectury API (Fabric/Forge/NeoForge) (by shedaniel) Canary (by AbdElAziz333) Structure Essentials[Forge/Fabric] (by someaddon) Library Ferret - Forge (by jtl_elisa) Create Confectionery (by Furti_Two) Leaky - Farm leak detection[Forge/Fabric] (by someaddon) Game Menu Mod Option [Forge] (by morimori0317) Macaw's Bridges (by sketch_macaw) FramedBlocks (by XFactHD) Cherished Worlds (Fabric/Forge/NeoForge/Quilt) (by TheIllusiveC4) Entangled (by SuperMartijn642) Refined Storage: Requestify (by Buuz135) ME Requester (by Relentless) Inventory Sorter (by cpw) Xaero's World Map (by xaero96) William Wythers' Expanded Ecosphere (by Cristelknight) Cloth Config API (Fabric/Forge/NeoForge) (by shedaniel) FTB Library (Forge) (by FTB) Cupboard (by someaddon) Thermal Dynamics (by TeamCoFH) Patchouli (by Vazkii) Entity Culling Fabric/Forge (by tr7zw) Chipped (by terrariumearth) FTB XMod Compat (by FTB) FerriteCore ((Neo)Forge) (by malte0811) Extra Disks (by MelanX) Nature's Compass (by Chaosyr) Thermal Locomotion (by TeamCoFH) TexTrue's Embeddium Options (by TexTrue) Traveler's Backpack (by Tiviacz1337) Geophilic – Vanilla Biome Overhauls (by bebebea_loste) Create: Power Loader (by Lysine) Polymorph (Fabric/Forge/Quilt) (by TheIllusiveC4) Enlightend (by lixir) Create Central Kitchen (by DragonsPlus) Energy Meter (by Relentless) Botarium (by CodexAdrian) FTB Teams (Forge) (by FTB) Storage Drawers (by Texelsaur) Create: Extended Cogwheels (by Rabbitminers) Embeddium/Rubidium Dynamic Lights (by Anthxny) Biome Makeover (Forge) (by Lemonszz) Create Guardian Beam Defense (by ibarnstormer_) Create: The Factory Must Grow (by Dr_Mango_Tea) Create Chunkloading (by embeddedt) Balm (Forge Edition) (by BlayTheNinth) Glodium (by GlodBlock) Thermal Expansion (by TeamCoFH) Chunk-Pregenerator (by Speiger) Advanced Peripherals (by srrendi) Create: Garnished (by DakotaPrideModding) Tidal Towns (by joshieman) Easy Magic [Forge & Fabric] (by Fuzs) Extreme Reactors (by ZeroNoRyouki) Applied Energistics 2 Wireless Terminals (by Mari_023) Redstone Arsenal (by TeamCoFH) ExtraStorage (by 3divad99) Thermal Innovation (by TeamCoFH) Collective (by Serilum) Wizard's Reborn (by MaxBogomol) GraveStone Mod (by henkelmax) Mekanism Additions (by bradyaidanc) Create: New Age (by nilBlade) Refined Storage (by raoulvdberge) Embeddium/Rubidium Extras (by Anthxny) ZeroCore 2 (by ZeroNoRyouki) Mekanism Generators (by bradyaidanc) WebDisplays (by ds58) Clumps (by Jaredlll08) Vein Mining (Fabric/Forge/Quilt) (by TheIllusiveC4) Villager Names (by Serilum) Create Slice & Dice (by possible_triangle) Embeddium (by embeddedt) Create: Steam 'n' Rails (by mattentosh) Get It Together, Drops! (by bl4ckscor3) Sophisticated Core (by P3pp3rF1y) Supplementaries (by MehVahdJukaar) Jade Addons (Forge) (by Snownee) Create: Design n' Decor (by MilkyFur) Construction Wand (by ThetaDev) Create: Diesel Generators (by george8188262) Create : Misc & Things (by to0pa_fr) Valkyrien Skies (Forge/Fabric) (by triode_) Refined Storage Addons (by raoulvdberge) FTB Chunks (Forge) (by FTB) FTB Ranks (Forge) (by FTB) Moonlight Lib (by MehVahdJukaar) CC: Tweaked (by SquidDev) Waystones (by BlayTheNinth) Applied Energistics 2 (by thetechnici4n) Trowels fork (by Luciano_cz) Cooking for Blockheads (by BlayTheNinth) Create (by simibubi) Towns and Towers (by Biban_Auriu)
    • Hi, you guys are probably all tired of having to deal with the same topic everytimes. I want to play mods, but forge doesn't want me to. And after days of videos and forum, i have no choices to ask before giving up.. The classic Error code 1 ( here's my debug.log : https://paste.ee/p/0WMSP). I tryed everything. The Forge version fit the mod version. I have java jdk 17 and the path to java is set. My mods folder is empty. My Minecraft luncher path has been changed. Java, Minecraft and Forged has been reinstalled 3 times. I tryed with the curseforge luncher. The only thing i didn't do, and I think it might be the problem, is updating my graphic card drivers. For the only reason that my computer is an Ace Magician ( Tiny pc) that don't have a graphic card. But then I went with Fabric. And it works just fine.  Anyway I can't find anything so thank you for your help. Sorry for my english if there's any mistake. Razziel.  
    • I am trying to make my own modpack and at the moment it crashes before I can get to the main menu. I have been trying to google and figure it out myself but would really appreciate some help. I've been using CurseForge to install mod and think I've gotten all the dependencies but I'm not 100% sure. I hope I got the paste.ee thing right Thanks in advance! https://paste.ee/p/NXdSO
  • Topics

×
×
  • Create New...

Important Information

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