Jump to content

Budschie

Members
  • Posts

    172
  • Joined

  • Last visited

Everything posted by Budschie

  1. Hello, whilst experimenting with copying attribute maps from a chicken to a player, I stumbled across one peculiar little detail. When copying the movement speed attribute to the player, they become extremely fast. After looking at the code, I could indeed verify that the movement speed of the chicken is (in theory) indeed higher than the speed of the player - the chicken has a movement speed of 0.25D while the player only has a movement speed of 0.1F. I looked deeper in the code and could verify that the chicken's WaterAvoidingRandomStrollGoal has a speed modifier of 1.0D, which means that the movement of the chicken (0.25D) should in theory not be altered. This interesting behavior is not unique to the chicken though - it applies to pretty much every living entity as well. So, this begs the question: Why? Why is the chicken in practice slower than the player? For me, there are two possibilities: Either the player moves too fast for their speed value, or the chicken moves too slow. As of now, I could not verify either of those possibilities. By the way, the reason why I even sought the solution of this issue is that I am currently in the process of creating a new version for my morph mod, and I would like to set the player's speed to the speed of the entity in which you're currently morphed into. I'd be very grateful if someone could help me with this topic, as my expertise and trivia in regards to the code of Minecraft (as well as the hour that I spent trying to solve this issue) is evidently not enough to solve this mystery. With kind regards, - Budschie
  2. Hello there. I am currently stuck in the process of developing a custom dimension with its own chunk generator, as I want to implement features now. But I can't seem to get them working. They just don't appear (at least partially). Something that could cause this issue is the confusing system of having Features and ConfiguredFeatures, simultaneouly, in two very similarly named classes, with the same id. My question is: How can I take advantage of the data driven system (using configured_feature json files) and what do I have to do for this (e. g. do I have to register a ConfiguredFeature, a Feature, or maybe even both?) I'd be happy if you could help me with this problem. Here is my github repo: https://github.com/Budschie/Deepnether-Mod/tree/1.16.5 -Budschie
  3. Hello there! I have an configured as a json for one of my biomes, but the feature just won't spawn. I've already checked if my chunk generator is the cause of this problem, but I doubt it, as I couldn't find any evidence this could be the case by setting breakpoints. Maybe my JSON files are malformed, but wouldn't minecraft then refuse to load the world? Anyway, here are the important files: Biome JSON: https://github.com/Budschie/Deepnether-Mod/blob/1.16.3/src/main/resources/data/deepnether/worldgen/biome/soul_desert_biome.json Configured Feature JSON: https://github.com/Budschie/Deepnether-Mod/blob/1.16.3/src/main/resources/data/deepnether/worldgen/configured_feature/withered_tree_config_feature.json DeepnetherChunkGenerator.java: https://github.com/Budschie/Deepnether-Mod/blob/1.16.3/src/main/java/de/budschie/deepnether/dimension/DeepnetherChunkGenerator.java So, I hope you can help me with this. Thanks for any help, -Budschie.
  4. Is there any good source I can refer to if I want to create(and register) a biome in 1.16.3?
  5. Me: Why do I hear boss music?
  6. @Draco18s But I only use one biome, which is the "green_forest_biome": https://github.com/Budschie/Deepnether-Mod/blob/1.16.3/src/main/java/de/budschie/deepnether/dimension/DeepnetherBiomeProvider.java#L34
  7. @Draco18s But shouldn't this be enough to register a biome: https://github.com/Budschie/Deepnether-Mod/blob/1.16.3/src/main/java/de/budschie/deepnether/biomes/BiomeRegistry.java#L19 https://github.com/Budschie/Deepnether-Mod/blob/1.16.3/src/main/java/de/budschie/deepnether/main/DeepnetherMain.java#L72 Or do I have to do more to register a biome?
  8. @Draco18s You probably mean these lines: BiomeDataHandler.addBiomeData(new ResourceLocation(References.MODID, "green_forest_biome"), new GreenForestBiomeData()); BiomeDataHandler.addBiomeData(new ResourceLocation(References.MODID, "deepnether"), new DeepnetherBiomeData()); But those aren't biome initalizations or anything like that, those are adding a key and data to a list. This list is then being accessed by my chunk generator to read additional information about the biome. There is no need to register a biome named "deepnether:deepnether", as this simply means that the netry in the second line is never used.
  9. As the title suggests, my game lagged and outputted following message: "[m[33m[21:07:58] [Render thread/WARN] [minecraft/BiomeContainer]: Received invalid biome id: -1" So, here is my github repo: https://github.com/Budschie/Deepnether-Mod/tree/1.16.3. I hope you can help me with this issue. -Budschie
  10. Is there maybe something else that could identify a biome uniquely, besides from the registry name?
  11. So, here is my code: Calling Biome#getRegistryName Biome biome = worldGenRegion.getBiome(new BlockPos(posXStart + x, 0, posZStart + z)); BiomeGeneratorBase biomeGenerator = BiomeDataHandler.getBiomeData(biome.getRegistryName()).getBiomeGenerator(); Setup of the BiomeDataHandler: BiomeDataHandler.addBiomeData(new ResourceLocation(References.MODID, "green_forest_biome"), new GreenForestBiomeData()); BiomeDataHandler.addBiomeData(new ResourceLocation(References.MODID, "deepnether"), new DeepnetherBiomeData()); Here is my GitHub-Repo: https://github.com/Budschie/Deepnether-Mod/tree/1.16.3
  12. So, I've recently been trying to create a new chunk generator for my mod. Because I want individual chunk generators per biome, and because the biome class itself can't be extended anymore, I decided to create a hash map with a resource location as an input and a custom class(with the chunk gen) as an output. The thing is, everytime I want to access this hash map with the resource location of the biome, it returns null. After a quick debugging sessions it turns out that the method Biome#getRegistryName always returns null, even on vanilla and hardcoded biomes. How can I solve/avoid this problem? Help would be appreciated. -Budschie
  13. @ChampionAsh5357 Alright, thanks. Everything is clear to me now.
  14. @ChampionAsh5357 Thanks for the reply 🙂 So, I have one last question: I don't fully understand what you mean by: So, answers would be appreciated. -Budschie
  15. @ChampionAsh5357 Thanks again for the reply. So, I'm now slowly getting used to this stuff. But as my old code used quite a few methods in a mod-own biome base class (it contained stuff like biome-specific chunk generation), which inherited from biome (sadly, this behaviour isn't possible anymore, as the biome constructor is private), I started to wonder whether it would be considered good practise to use access transformers to allow me to inherit from the biome class again. So, I'd appreciate answers to this question. -Budschie
  16. @ChampionAsh5357Thanks for your quick reply! So, how do I register a biome/chunkgenerator? Do I just have to register it with a deferred registry? And how exactly should I handle the codec class, and what is its purpose?
  17. So, because I am getting no replies to this topic, I am a bit worried as this could mean that this simply isn't possible. Could it be worth to backport my mod to 1.15, so that I can hardcode my dimensions again?
  18. As an extra, I have no idea how to declare a dimension.
  19. Hello there! Today I decided to get into minecraft modding once more, as game development bored me a bit. So, as the title already suggests, I want to somehow integrate own code into the json-data-driven system that minecraft currently uses for its biome and terrain generation. I'm totally clueless at the moment, as I have no idea how I can achieve something like this. For the biome generator, I need to know how a codec works. And for the terrain generator, I don't even know from what classes to extend from. So, I'd really appreciate help. -Budschie
  20. @ChampionAsh5357 Thanks for responding so quickly. So, I have several questions: How is the json format of biomes and dimensions designed, and are there any examples in the assets of minecraft? What classes should I extend to add an own chunk generator? Additionally, I searched a bit, but I could still not find the blit method, which indicates that I have old mappings(which is a bit strange because I downloaded the latest version of minecraft forge). So, how exactly can I update my mappings to the latest version? Thanks in regards, -Budschie
  21. So, as the title suggests, I'm currently trying to port my mod, which relies heavily on biome, dimension and chunk generation code, to the minecraft version 1.16.3. The problem is, that about everything has changed. Dimension and biome code: Obsolete. GUI code: Useless. Additionally, the mappings doesn't seem to be complete yet, as I can still not find the one called blit() method in the code, just some unmapped names(which is pretty annoying, because the blit method had lots and lots of overloaded methods). I've heard that the biome and dimension code was changed to a json-system system (which seems to be a trend that mojang is trying to push). So, to sum it all up, the issues I discovered whilest trying to port my mod are: The change from code-driven dimension and biome code to json files The still incomplete mappings of the latest Forge MDK version I'd really appreciate if you could help me out with this big issue. I at first thought that it was hard to rewrite my code for 1.15.2, but I had never thought that it could be such an issue to port my code from 1.15.2 to 1.16.
  22. Hello! Altough I've done much OpenGL in the past, minecraft seems to use heavy abstraction when rendering, causing me to lose track of the functioning of the render system. So, I'd be pleased if someone could explain me how the rendering system/rendering pipeline of minecraft works. Thanks for any replys. -Budschie
  23. @diesieben07 Ah, ok, thanks. Now I use this code: public static final RegistryObject<BlockItem> TEST_BLOCK = REGISTRY.register("test_block", () -> new BlockItem(BlockInit.TEST_BLOCK.get(), new Item.Properties().group(ItemGroup.COMBAT))); Is this how I should do this? Or should I avoid getting the test block with TEST_BLOCK.get()?
×
×
  • Create New...

Important Information

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