Jump to content

Recommended Posts

Posted (edited)

Structures need to be added with Biome#addStructure as well. Also, features need to be registered like any block or item not as some anonymous class. Finally, adding anything to the features or structures of different biomes is not thread safe and should be wrapped in a DeferredWorkQueue. Look at how Minecraft handles structures if you need an example.

Edited by ChampionAsh5357
Posted (edited)
  On 6/12/2020 at 11:20 PM, ChampionAsh5357 said:

Structures need to be added with Biome#addStructure as well. Also, features need to be registered like any block or item not as some anonymous class. Finally, adding anything to the features or structures of different biomes is not thread safe and should be wrapped in a DeferredWorkQueue. Look at how Minecraft handles structures if you need an example.

Expand  

My code works however, it's literally just the fact that it doesn't spawn in super flat worlds. I use sample code from a program called MCreator, but that's not really the point. Is there a method like flatGenEnabled or something which I can change?

 

The annotation at the top is actually a tag which allows the class to be implemented into minecraft, if you'd like to know.

Edited by Nicholas Hammond
Posted (edited)
  On 6/13/2020 at 1:01 AM, ChampionAsh5357 said:

My apologies, you might want to try adding it to the following maps in FlatGenerationSettings: FEATURE_STAGES, STRUCTURES, and FEATURE_CONFIGS.

Expand  

Thank you, this was the type of response I was looking for. But how would I do this exactly? Sorry for bothering, I'm a novice. Would I do this in my Level0ChunkGenerator class? I attempted doing something similar to

flatgenerationsettings.getWorldFeatures().put("village", Maps.newHashMap());

but it didn't work.

Edited by Nicholas Hammond
Posted
  On 6/13/2020 at 1:13 AM, ChampionAsh5357 said:

You put your configured feature in the map most likely during the common setup in the DeferredWorkQueue.

Expand  

Would I do this using a similar method like the example I used in my previous reply? Sorry but I don't really understand to what you're referring to exactly by DeferredWorkQueue. Is this a simple thing to do? Could you possibly send an example line of code? Sorry for my questions, I'm mostly modifying pre existing code like a template so I don't really know what all of this means..

Posted
  On 6/13/2020 at 1:17 AM, Nicholas Hammond said:

Would I do this using a similar method like the example I used in my previous reply?

Expand  

No, the maps are a static final variable so it should be accessed directly from calling the class. Just follow the example in FlatGenerationSettings.

  On 6/13/2020 at 1:17 AM, Nicholas Hammond said:

Sorry but I don't really understand to what you're referring to exactly by DeferredWorkQueue. Is this a simple thing to do? Could you possibly send an example line of code?

Expand  

I quote from the source itself "Utility for running code on the main launch thread at the next available opportunity. There is no guaranteed order that work from various mods will be run, but your own work will be run sequentially." Use DeferredWorkQueue#runLater in your FMLCommonSetupEvent to reference and put your feature in the maps.

 

Even if you're modifying preexisting code, you should check all the information regarding whatever you are doing. What I said early refers to the correct way of registering and adding features to biomes. DeferredWorkQueue is a less obvious one unless you have been paying attention to similar threads on the forms or actively keep checking the changelog and source information. A lot of what is in the source code is just a loose template as you say since there are better ways to approach it.

Posted (edited)

Thank you for your patience and answering my questions. I will attempt to do what you have recommended, but I still have some trouble understand exactly what I have to do. From my understanding I have to register my structure somewhere? Is this in the chunk generator class or the structure class? I'm surprised this seems so difficult, but you obviously know much more than I do.

 

 I hope I can ask further questions if I remain stuck :) Sorry for the bothering.

Edited by Nicholas Hammond
Posted (edited)

One other thing, when you refer to the "example in FlatGenerationSettings" you mean the example I sent? I tried replacing "village" with "backrooms:empty_room" but of course it didn't work. Also, are you suggesting I rewrite my code?

Edited by Nicholas Hammond
Posted
  On 6/13/2020 at 1:49 AM, Nicholas Hammond said:

One other thing, when you refer to the "example in FlatGenerationSettings" you mean the example I sent? I tried replacing "village" with "backrooms:empty_room" but of course it didn't work.

Expand  

No, I mean the actual source code example.

  On 6/13/2020 at 1:49 AM, Nicholas Hammond said:

Also, are you suggesting I rewrite my code?

Expand  

Yes. Usually I wouldn't suggest rewriting code unless it was a standardized or core component of creating modifications for the game. Registering features is one of the things that is required along with a few other mentions.

Posted (edited)
  On 6/13/2020 at 2:16 AM, Nicholas Hammond said:

I will not be rewriting code as it is very helpful when using templates from MCreator.

Expand  

Don't use MCreator. It produces broken code as well as clogs up the mod jar with unnecessary fuss. More reasons can be found here.

If you want to mod please learn Java and do it properly.

Edited by DavidM

Some tips:

  Reveal hidden contents

 

Posted (edited)
  On 6/13/2020 at 2:50 AM, Nicholas Hammond said:

I have learned java, it's just very convenient to use MCreator for sample code.

Expand  

Except the "sample code" is extremely inefficient, fails randomly and crashes immediately on a dedicated server.

Edited by DavidM

Some tips:

  Reveal hidden contents

 

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

    • Yes that’s the full log, I managed to get it working last night, the anvil fix mod is what was causing it to crash
    • Hey guys, i'm currently developping a mod with forge 1.12.2 2860 and i'm using optifine and gradle 4.9. The thing is i'm trying to figure out how to show the player's body in first person. So far everything's going well since i've try to use a shader. The player's body started to blink dark when using a shader. I've try a lot of shader like chocapic, zeus etc etc but still the same issue. So my question is : How should i apply the current shader to the body ? At the same time i'm also drawing a HUD so maybe it could be the problem?   Here is the issue :    And here is the code where i'm trying to display the body :    private static void renderFirstPersonBody(EntityPlayerSP player, float partialTicks) { Minecraft mc = Minecraft.getMinecraft(); GlStateManager.pushMatrix(); GlStateManager.pushAttrib(); try { // Préparation OpenGL GlStateManager.enableDepth(); GlStateManager.depthMask(true); GlStateManager.enableAlpha(); GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F); GlStateManager.enableBlend(); GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); // Éclairage correct pour shaders GlStateManager.enableLighting(); RenderHelper.enableStandardItemLighting(); GlStateManager.enableRescaleNormal(); // Active la lightmap pour les shaders mc.entityRenderer.enableLightmap(); // Position de rendu interpolée double px = player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks; double py = player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks; double pz = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks; GlStateManager.translate( px - mc.getRenderManager().viewerPosX, py - mc.getRenderManager().viewerPosY, pz - mc.getRenderManager().viewerPosZ ); // Rendu du joueur sans la tête Render<?> render = mc.getRenderManager().getEntityRenderObject(player); if (render instanceof RenderPlayer) { RenderPlayer renderPlayer = (RenderPlayer) render; boolean oldHeadHidden = renderPlayer.getMainModel().bipedHead.isHidden; boolean oldHeadwearHidden = renderPlayer.getMainModel().bipedHeadwear.isHidden; renderPlayer.getMainModel().bipedHead.isHidden = true; renderPlayer.getMainModel().bipedHeadwear.isHidden = true; setArmorHeadVisibility(renderPlayer, false); renderPlayer.doRender(player, 0, 0, 0, player.rotationYaw, partialTicks); renderPlayer.getMainModel().bipedHead.isHidden = oldHeadHidden; renderPlayer.getMainModel().bipedHeadwear.isHidden = oldHeadwearHidden; setArmorHeadVisibility(renderPlayer, !oldHeadwearHidden); } // Nettoyage post rendu mc.entityRenderer.disableLightmap(); GlStateManager.disableRescaleNormal(); } catch (Exception e) { // silent fail } finally { GlStateManager.popAttrib(); GlStateManager.popMatrix(); } }   Ty for your help. 
    • Item successfully registered, but there was a problem with the texture of the item, it did not insert and has just the wrong texture.     
    • Keep on using the original Launcher Run Vanilla 1.12.2 once and close the game Download Optifine and run optifine as installer (click on the optifine jar) Start the launcher and make sure the Optifine profile is selected - then test it again  
    • Hi everyone, I’m hoping to revisit an old version of Minecraft — specifically around Beta 1.7.3 — for nostalgia’s sake. I’ve heard you can do this through the official Minecraft Launcher, but I’m unsure how to do it safely without affecting my current installation or save files. Are there any compatibility issues I should watch out for when switching between versions? Would really appreciate any tips or advice from anyone who’s done this before! – Adam
  • Topics

×
×
  • Create New...

Important Information

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