Jump to content

Rikka0_0

Members
  • Posts

    31
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Rikka0_0's Achievements

Tree Puncher

Tree Puncher (2/8)

3

Reputation

  1. Checkout my example: https://github.com/rikka0w0/librikka/blob/382f6f79847ae666c22b9c2d6cd591207dfb4303/src/main/java/rikka/librikka/Utils.java#L51
  2. Rendering order is important. Can you render your blocks in the Solid or Cutout layer?
  3. In order to let the client communicate with the server, you need to create your own packet. Have a look at my mod: https://github.com/RoyalAliceAcademyOfSciences/SimElectricity/blob/master/src/main/java/simelectricity/essential/utils/network/MessageContainerSync.java And register your custom packet during onCommonSetup(FMLCommonSetupEvent event) event: https://github.com/RoyalAliceAcademyOfSciences/SimElectricity/blob/master/src/main/java/simelectricity/essential/Essential.java If a class contains calls to the Minecraft class, it will crash on the dedicated server. Client-only classes are not available on a dedicated server. In this case, use a DistExecutor (used to be called proxy): public static CommonProxy proxy = DistExecutor.runForDist(()->()->new ClientProxy(), ()->()->new CommonProxy()); https://github.com/RoyalAliceAcademyOfSciences/SimElectricity/blob/master/src/main/java/simelectricity/essential/ClientProxy.java In your case, you should create a ClientProxy class and make a function to return the value of Minecraft.getInstance().objectMouseOver. One last thing, I think you should perform the raytrace on the server side instead of the client side.
  4. You should have a look at its implementation in the super class when you override a method. In most case, you need to call the super method.
  5. A lot of server to client data synchronization needs the list of all players who is using the GUI. In previous versions, this can be done by reading "listeners" field in my own implementation of "detectAndSendChanges". However, this field becomes private in 1.15.2. Does that mean we have to track the listeners by our self, or is there a more elegant way of doing this? Thanks! Forge Version 31.1.47
      • 1
      • Like
  6. Thanks! My BlockStateProvider is now working! I will post a link to the repo once I finish cleaning up the code.
  7. Thanks! As far I as know, this is the only possible way. Also, can anyone confirm that forge blockstate loader has been permanently removed? I put "forge_marker" : 1 but Forge seems to ignore it.
  8. I was convinced One more question, it is possible to specify the model loader in the blockstate file?
  9. How to invoke the DataGenerator? I launched the game, the GatherDataEvent is not fired by MinecraftForge. https://wiki.mcjty.eu/modding/index.php?title=Tut15_Ep15
  10. We may still need StataMappers or its replacement! I'm dealing with blockstates including subtypes(int), facing(Direction) and status(Boolean). Removing subtypes is straightforward. Facing and status controls the appearance of the block. I decided to only keep facing and status in the blockstate, however I encoutered some problems. In 1.12.2, my mod uses StataMapper extensively to avoid writing tons of json files (BlockState json) files and then redirect the loading of variants to my own loader. In 1.15.2, the StataMapper has been removed and the hardcoded logic in ModelBakery::loadBlockstate(ResourceLocation) suggests that it only accepts JSON files! Which means I have to write a JSON Blockstate file for each block, flattening makes things worse as it increases the number of JSON files required. I have three solutions, the first is to write a json blockstate file for each block, it points to a json model file, which then tell forge to use my own IModelLoader to load the model. Although it takes a lot of time, but it is still feasible. The second is to add back the StateMapper, by the MinecraftForge Officials, it will take some effort but I definitely think it is worthwhile. I will be really appreciate if StateMapper is back! The last one is to use IForgeTileEntity::getModelData, but some of my blocks don't have a tileEntity.
  11. ModelLoader.setCustomModelResourceLocation no longer exists in 1.15.1. I have around 30 simple items to register and I would like to avoid writing 30 json files. Looks like Minecraft.getInstance().getItemRenderer().getItemModelMesher().register() is the only way. Or is there a more elegant solution? Thanks
  12. Thanks for this information! Are they building the GUI or it is still in the to-do list?
  13. I'm having exactly the same problem! Fresh forge install (30.0.41) on Minecraft 1.15.1, dev env is Idea 2017, running on Java8. Some other threads suggest that the config gui feature may have not been implemented yet I'm digging through the code and trying to find the answer. Why they abandon the nice 1.12.2 config system and rewrite a broken and incompatible new one?
  14. Has the GUI config button been implemented? (Jan 22, 2020) On Minecraft 1.15.2 Forge 30.0.41, all config buttons are disabled, including the forge one. When will this feature be available? Should I start migrating to 1.15.2 or stay at 1.12.2?
  15. I also have this kind of problem. I do null check in my getActualBlock state. I think possible reason can be, sometimes the IBlockState passed into getActualBlock() can be implemented by a ChunkCache, and the TileEntity doesn't exist in it yet.
×
×
  • Create New...

Important Information

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