Jump to content


Forge Modder
  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Busti

  1. Tags would also allow for easier searching of the forums. If one were to search for an issue in a specific version, they could filter the search results for that version's tag and might find satisfying results more easily. Tags could even be forced on certain boards, which I think would increase the overall post quality. But that might depend on how advanced the tagging feature is in this forum implementation. The documentation of this forums software states that a minimum required tag count can be set, but I do not know if it can be limited to a specific board / if certain tags can only be used at a specific board and so on. Edit: It seems like tags can be enabled per board. https://invisioncommunity.com/4guides/how-to-use-ips-community-suite/content-discovery/content-tags-and-prefixes-r72/
  2. The thing is, posts like that in General Discussion get drowned rather easily and I would like to avoid bumping them. The people in charge might not be online all the time, so it might need to stay up for a while before it get's read. I guess the "Suggestions" board is a bit better allthough it is also not indented to be used for something like that.
  3. Are mappings privided by forge or are they supplied by mojang? In case the mappings are supplied by forge / any other open source project: How do I contribute? Also, wasn't there some talk about mojang wanting to open source the mappings? Whatever happened to that? In case the mappings are supplied by mojang: Why are there so many unnamed fields? The Questions are mutually exclusive. Only one point can be answered. ?
  4. You need to add your block to the layer lookup table. Run something like this after registering your block. if (FMLEnvironment.dist == Dist.CLIENT) { RenderTypeLookup.setRenderLayer(yourBlock, RenderType.CUTOUT); }
  5. @DragonITA because that will bring you into a problematic situation regarding the copyright of the game.
  6. Then do not cancel the player model render. Just make your own boxes and render them using the provided renderer.
  7. You can for example look at PlayerRenderer and see what methods it provides. For example it has a method called getEntityModel which looks interesting.
  8. They are subscribing to an event and the event is never called. That is an error that lies in the subscription, IMO and not in the code that is being executed. They could also place a println in their subscriber to see if the subscription worked. I have previously experienced relatively unpredictable behaviour when using @Mod.EventBusSubscriber on a top-level class. For some event types it works, for some it won't. DeferredRegister is a lot better than the annotation system IMO, it feels a lot less finicky. But it might be more complicated for new users, who do not have any FP experience. But that won't stop me from recommending it. Edit: I have not used GatherDataEvent or anything related to it yet. So if that's where the problem lies, I won't be able to help here. From the way the post was written it sounded like it was a subscription problem, which is why I replied.
  9. This is likely because the alpha channel in your texture is not set-up properly, or because you did not enable transparency in model. Are you using a custom renderer, or are you using a model.json file for this? Please post the code of these files.
  10. @Ugdhar Thanks for your feedback! I made this, because I find that the dark forum-native highlighting is not very well optimized. I used this post to test some changes I have made to the css and I have now submitted a Pull Request to have the changes applied to the forum here: https://github.com/MinecraftForge/Web/pull/5 The title is partially based on this famous reddit post, which was once the most upvoted post there, but I also wrote title that because this post is not really all that important and should be ignored https://www.reddit.com/r/pics/comments/92dd8/test_post_please_ignore/
  11. RenderPlayerEvent gives you access to the following fields: public PlayerRenderer getRenderer() public float getPartialRenderTick() public MatrixStack getMatrixStack() public IRenderTypeBuffer getBuffers() public int getLight() These should be more than enough to do your own rendering. Using these is basically the same as any other custom entity renderer.
  12. This is likely because the annotation cannot find / generate an instance of your class. Try to use an inner static class instead. Like this: public class DataGenerators { @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) public static class GatherDataSubscriber { @SubscribeEvent public static void gatherData(GatherDataEvent event) { DataGenerator generator = event.getGenerator(); if (event.includeServer()) { generator.addProvider(new Recipes(generator)); generator.addProvider(new LootTables(generator)); } } } } Or use DeferredRegister instead.
  13. @DaemonUmbraThank you, I have submitted a PR. However there are other things that I'd like to request that do not belong anywhere. Where should I put those?
  14. IntelliJ Paste Light: object Test extends App { val string_literal: String = "heck" val numeric_literal: Int = 123; val xml_literal = <html> <a href="test"> Lorem ipsum dolor sit amet </a> </html> type A_TYPE = Seq[String] /** * A comment... */ def a_function(): A_TYPE = { return "foo" + string_literal; } } IntelliJ Paste Dark: object Test extends App { val string_literal: String = "heck" val numeric_literal: Int = 123; val xml_literal = <html> <a href="test"> Lorem ipsum dolor sit amet </a> </html> type A_TYPE = Seq[String] /** * A comment... */ def a_function(): A_TYPE = { return "foo" + string_literal; } } Native Code: object Test extends App { val string_literal: String = "heck" val numeric_literal: Int = 123; type A_TYPE = Seq[String] /** * A comment... */ def a_function(): A_TYPE = { return "foo" + string_literal; } } Native HTML: <!Doctype html> <html> <body> <a href="test" class="foobar"> Lorem ipsum dolor sit amet </a> </body> </html>
  15. I would like to request a board for meta discussion about the forum. I would like to make some suggestions for changes to minor forum related quality of life things, like css changes and so on. I do not feel like this board is the right place to do that. If you think otherwise, please let me know. Best regards, - busti
  16. DeferredRegister is a Type provided by Forge, not by Mojang. Forge code is usually well documented. Since the original source code of the game is decompiled, it does not come with comments by default. Comments are usually added via patches, which are a part of Forge. Mojang might have proper comments and documentation internally, we will likely never know. If they do not choose to share them, that is likely due to legal reasons. You can contribute to the documentation comments by contributing to the forge project itself.
  17. ITextComponent provides an appendText(String text) and an appendSibling(ITextComponent component) method. You can chain these together to get your desired output. I.e. chestEntity.setCustomName(new TranslationTextComponent("chestname.testmod.testA").appendText(" (").appendSibling(new TranslationTextComponent("chestname.testmod.testB")).appendText")"));
  18. DO NOT COPY CODE FROM THE GAME, especially entire files. Are you trying to create an Entity that looks like a player, or are you trying to create a custom model for the player? In the first case you should probably create a custom entity and renderer for that entity. In case it is a Monster, MonsterEntity is probably a good starting point. In case you are trying to render a custom player model, you should have a look at net.minecraftforge.client.event.RenderPlayerEvent. It get's fired whenever a player is being rendered and you can even disable player rendering alltogether and replace it with your own renderer.
  19. I am creating a conveyor belt block for my mod. There are supposed to be several different blocks that can connect to Conveyor belts, including different types of conveyor belt blocks. Should I use Tag<Block> to check wether an adjacent block should be connected to a conveyor block? Or are they supposed to only be used for cosmetic purposes? Should I use an interface and instanceOf checking instead? Or should I use a custom lookup system, i.e. a static Set of blocks that are supposed to connect to a conveyor? I am not asking about testing for the presences of an inventory, conveyor blocks are not supposed to connect to inventories.
  20. Is there a library that provides Multi-Block functionality for 1.15?
  21. I want to code a block that I expect to be placed lots of times in a world. The block does not require a TileEntity, but I want it to have a custom model and a custom animation. The animation could be accompilshed using animated textures, but that would not look good at close distances. I would like to use the animation api, but that would require me to give the block a TileEntity, which would cause unnecessary performance overhead, especially due to the expected number of blocks placed. Is it possible to have a block have a "proper" animation based on the distance of the player to that block? I.e. render it with an animated texture at a distance, but use something similar in ability to a TE(S)R when viewed closely?
  22. Where do I find a list of valid versions to use in the mappings channel entry in build.gradle? Searching around the Forum yields some working results, but so far I was unable to get a 1.15 version. Edit: I found a working version in this thread; It is 20200204-1.15.1; However, I would still greatly appreciate to be able to take a look at a list / the repository these are fetched from.
  23. I mean, just look at this: public final class ModBlocks { public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, SauerkrautMod.MODID); public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, SauerkrautMod.MODID); public static final RegistryObject<Block> BLOCK_COPPER_ORE = BLOCKS.register("copper_ore", () -> new Block(Block.Properties.create(Material.ROCK))); public static final RegistryObject<Item> ITEM_COPPER_ORE = ITEMS.register("copper_ore", BLOCK_COPPER_ORE.lazyMap(block -> new BlockItem(block, new Item.Properties()))); } It's beautiful!
  • Create New...

Important Information

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