Jump to content

Corgam

Members
  • Posts

    43
  • Joined

  • Last visited

Everything posted by Corgam

  1. There is, but I am not good at the codecs, how do I use them as conditional functions?
  2. Thank you, and what about the "mod_loaded" condition with Codecs?
  3. Hi, I am just updating my mod from 1.20.1 to 1.20.2 and I saw a big change for the custom RecipeSerializers, they now require Codec<?> serialization instead of a simple fromJson() function. Unfortunately, I am struggling with setting up the Codec for a few of the serialization features: - Using the Forge "mod_loaded" condition (the file should not be loaded when a mod is missing) - Loading an Ingredient field Current Codec Code: The "cagedmobs:environments/red_mushroom_block" JSON recipe:
  4. Nevermind, I found it: BlockEntityRenderers.register(). I will leave this post for others.
  5. Hi, I'm currently updating my mod from 1.16.5 to 1.17.1 and I cannot find the ClientRegistry.bindTileEntityRenderer() function, which I used for one of my tile entity blocks, did it move somewhere? I cannot see it in the ClientRegistry class.
  6. Thanks for answer! I have used the same solution as CraftTweaker uses for writting "Scripts reloaded" after a resource reload!
  7. Hi, I have implemented a few serializers in my mod, which are reading recipes' json files and loading them. I would like to log all loaded recipes into the console, currently I do it one by one in the recipe constructor, but it spams the console with multiple lines of text. Instead I would love to first load all recipes and then to log all loaded recipes in one line. Is there some kind of event that I can listen to to do that and how can I listed to it?
  8. Hi, I have an item that stores entities' EntityType inside it's NBT when used (right clicked) on some living entity, but there is a problem with Entities that can be interacted with, when you right click them with Item, the itemInteractionForEntity(...) function is not run. Is there a way to skip entities' interaction and run item's itemInteractionForEntity(...) function instead?
  9. Stone, endstone, magma block ect;. So the idea is that I can put ItemStack inside of my block and it will render the block from that stack.
  10. I just found out that one way to do it is to use matrix.scale() and squeeze the block almost into a plane, but it still renders all sided of the block, so it's not efficient.
  11. I have never used Tile Entity Rendering before, so I'm new to this part of modding, could you say how to do it?
  12. Hi, I want to use the TileEntityRenderer, to render just the top side of the block, so just a flat quad with top texture of the block. Is it possible in 1.16.2? I already looked at the BotanyPots mod's code and it's using the private void renderQuadsFlat(IBlockDisplayReader blockAccessIn, BlockState stateIn, BlockPos posIn, int brightnessIn, int combinedOverlayIn, boolean ownBrightness, MatrixStack matrixStackIn, IVertexBuilder buffer, List<BakedQuad> list, BitSet bitSet) from BlockModelRenderer class. But in 1.16.2 it looks like it's a private function and I cannot use it.
  13. Hi, I want to add a few mods to my eclipse dev env (jei and Hwyla for now), but I run into some problems. First of all, here is my build.gradle: buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } jcenter() mavenCentral() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true } } apply plugin: 'net.minecraftforge.gradle' // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. apply plugin: 'eclipse' apply plugin: 'maven-publish' version = '1.0' group = 'com.corgam.cagedmobs' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'cagedmobs' sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { // The mappings can be changed at any time, and must be in the following format. // snapshot_YYYYMMDD Snapshot are built nightly. // stable_# Stables are built at the discretion of the MCP team. // Use non-default mappings at your own risk. they may not always work. // Simply re-run your setup task after changing the mappings to update your workspace. mappings channel: 'snapshot', version: '20200514-1.16' // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Default run configurations. // These can be tweaked, removed, or duplicated as needed. runs { client { workingDirectory project.file('run') // Recommended logging data for a userdev environment property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' // Recommended logging level for the console property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } server { workingDirectory project.file('run') // Recommended logging data for a userdev environment property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' // Recommended logging level for the console property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } data { workingDirectory project.file('run') // Recommended logging data for a userdev environment property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' // Recommended logging level for the console property 'forge.logging.console.level', 'debug' args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/') mods { examplemod { source sourceSets.main } } } } } dependencies { minecraft 'net.minecraftforge:forge:1.16.2-33.0.32' // compile against the JEI API but do not include it at runtime compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // at runtime, use the full JEI jar runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Compile against the Hwyla API, but do not include it at runtime compileOnly fg.deobf("mcp.mobius.waila:Hwyla:1.16.2-1.9.23-79:api") // At runtime, use the full Hwyla jar runtimeOnly fg.deobf("mcp.mobius.waila:Hwyla:1.16.2-1.9.23-79") } repositories { maven { url = "https://dvs1.progwml6.com/files/maven/"} maven { url = "https://modmaven.k-4u.nl/"} maven { url "https://maven.tehnut.info/" } } // Example for how to get properties into the manifest for reading by the runtime.. jar { manifest { attributes([ "Specification-Title": "examplemod", "Specification-Vendor": "examplemodsareus", "Specification-Version": "1", // We are version 1 of ourselves "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor" :"examplemodsareus", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } // Example configuration to allow publishing using the maven-publish task // This is the preferred method to reobfuscate your jar file jar.finalizedBy('reobfJar') // However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing //publish.dependsOn('reobfJar') publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file:///${project.projectDir}/mcmodsrepo" } } } So I have run the "build" gradle task and it said: "BUILD SUCCESSFUL", but when I launched runClient, there are no additional mods. Am I missing something? Should I run some another gradle task? Cheers, Corgam
  14. Is there some tutorial or other mod's github page to get some example code?
  15. I hope there is. I feel like it is a common thing to do for modders, to add new blocks with new sounds, so it would be nice to have a easier methode to implement it.
  16. Hi, is there a way to add new methodes and attributes to the ClientPlayNetHandler and ServerPlayNetHandler classes? I want to create a system similar to the existing advancements system, so my goal is to add a new Manager to the ClientPlayNetHandler and also I have created custom Packets and I want to send and process them in ClientPlayNetHandler and ServerPlayNetHandler Cheers, Corgam
  17. What do you mean? You are talking about the register() methode? It is already implemented in DefferedRegister class. Other DefferedRegisters like Blocks or Items worked this way ModBlocks.BLOCKS.register(modEventBus); And also the problem appears only when I try to create a SoundType object. If I register the sounds and don't use them, they work (I can use playsound command inside minecraft and it works fine)
  18. Hi, I'm trying to make a new SoundType for my blocks, but whatever I do I recieve an "java.lang.NullPointerException: Registry Object not present" error. I'm not sure what's exatly going on, maybe you need to assign sounds later or something? Maybe there is some sort of trick to do it that I'm not aware of? Here is the code and the log: In main file: public Slavthology() { final IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); modEventBus.addListener(this::onClientSetup); ModSounds.SOUND_EVENTS.register(modEventBus); ModBlocks.BLOCKS.register(modEventBus); ModItems.ITEMS.register(modEventBus); ModEntityTypes.ENTITIES.register(modEventBus); ModTileEntities.TILE_ENTITIES.register(modEventBus); ModFeatures.FEATURES.register(modEventBus); } In ModSounds: public class ModSounds { public static final DeferredRegister<SoundEvent> SOUND_EVENTS = new DeferredRegister<>(ForgeRegistries.SOUND_EVENTS, Reference.MOD_ID); public static final RegistryObject<SoundEvent> WICKER_WALK = SOUND_EVENTS.register("wicker_walk", () -> new SoundEvent(new ResourceLocation(Reference.MOD_ID,"block.wicker.walk"))); public static final RegistryObject<SoundEvent> WICKER_BREAK = SOUND_EVENTS.register("wicker_break", () -> new SoundEvent(new ResourceLocation(Reference.MOD_ID,"block.wicker.break"))); public static final RegistryObject<SoundEvent> WICKER_PLACE = SOUND_EVENTS.register("wicker_place", () -> new SoundEvent(new ResourceLocation(Reference.MOD_ID,"block.wicker.place"))); } In ModBlocks: static SoundType WICKER_SOUND = new SoundType(1.0F, 1.0F, ModSounds.WICKER_BREAK.get(), ModSounds.WICKER_WALK.get(), ModSounds.WICKER_PLACE.get(), ModSounds.WICKER_WALK.get(), ModSounds.WICKER_WALK.get()); public static final RegistryObject<Block> WICKER_BLOCK = BLOCKS.register("wicker_block", () -> new WillowPlanksBlock(Block.Properties.create(Material.WOOD, MaterialColor.WOOD).hardnessAndResistance(2.0F, 3.0F).sound(WICKER_SOUND))); In sounds.json { "block.wicker.walk": { "category": "block", "subtitle": "The wicker creaked", "sounds": [ { "name": "slavthology:block/block.wicker.walk" } ] }, "block.wicker.place": { "category": "block", "subtitle": "The wicker creaked", "sounds": [ { "name": "slavthology:block/block.wicker.place" } ] }, "block.wicker.break": { "category": "block", "subtitle": "The wicker creaked", "sounds": [ { "name": "slavthology:block/block.wicker.break" } ] } }
  19. Yeap thanks, but how exactly can I wait for ticks?
  20. Hi, I want to rotate a block (change it's property) in onBlockActivated() 4 times, so it rotates back in it's starting position, but the problem right now is that it's doing it too fast, is there a way to wait a few seconds between every rotation? Cheers
  21. I did exactly what you wrote. Everything works as I wanted. Thanks!
  22. What if I want to have a random amout of clicks needed for a block to change? To give some context, I want to create a chisable block, that you need to click 3-5 times with chisel, before it converts to chiseled version of it.
  23. Hi, I think it's a quick and simple question, but I want to know what's the best way to do it, I want do create a block, on which you need to click 3 times with an item before converting it into different block, where do I store the amount of clicks I have already clicked? Do I create a tile entity and store it there (if yes, how do I do it?) , or should I store it as one of the states of the block? Cheers
×
×
  • Create New...

Important Information

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