deathchanter
Members-
Posts
19 -
Joined
-
Last visited
Everything posted by deathchanter
-
What version of Forge should I use for modding?
deathchanter replied to deathchanter's topic in Modder Support
By the way, in this version I still see a lot of random variable names like p_196271_3_...why is it so if we have mappings? -
What version of Forge should I use for modding?
deathchanter replied to deathchanter's topic in Modder Support
Thanks, so maybe I should study the code for vanilla blocks a bit...! -
Hi, I'm now trying to make my block's affiliated tile entity update using onBlockActivated(). But seems this method doesn't exist in the latest Forge version for 1.16.5...where in earlier tutorials I see peoples using it. So in general, which version offers the most complete and deobfuscated code to work with? Thanks!
-
[1.16.2] Set block property randomly upon placement
deathchanter replied to deathchanter's topic in Modder Support
It will be very nice if you can as well point me to similar codes if you want, so I can browse existing codes as well. -
[1.16.2] Set block property randomly upon placement
deathchanter replied to deathchanter's topic in Modder Support
Hi Ben, but I did create that block entity class for storing the random light level. Is there anything I did wrong there that should be corrected? Also, I'm not very sure about how to access this property from tile entity using lambda as you suggested. Can you perhaps clarify? Thank you! -
[1.16.2] Set block property randomly upon placement
deathchanter replied to deathchanter's topic in Modder Support
Hmmm, I checked out redstone lamp's code and seems that tile entity is not needed, and I can use getStateForPlacement method to set the lightlevel. Can anyone corroborate this? -
Hi, I want to create a type of block such that whenever you place an instance in the world, it gets a different lightlevel randomly in {0,....,15}. To do this, seems I can't use randomness in the constructor. So I tried to override the getlightlevel method of the custom block. But then how do I feed the private field lightlevel of the block tile entity to this getlightlevel method? When initializing tile entities attached to the blocks, I randomly set these lightlevels already. Here's part of my code: public class TestBlock extends Block { // int randLightLevel = rand.nextInt(16); public TestBlock(){ super(AbstractBlock.Properties.of(Material.METAL) .jumpFactor(6) .lightLevel((blockstate) -> 0)); } // @Override // public int getLightValue(BlockState state, IBlockReader world, BlockPos pos) { // return randLightLevel; // } @Nullable @Override public TileEntity createTileEntity(BlockState state, IBlockReader world) { return new TestBlockTile().setLightlevel(); } @Override public boolean hasTileEntity(BlockState state) { return true; } package com.example.examplemod.blocks; import net.minecraft.tileentity.TileEntity; import java.util.Random; import static com.example.examplemod.RegistryHandler.TESTBLOCK_TILE; public class TestBlockTile extends TileEntity{ static private Random rand = new Random(); private int lightlevel; public TestBlockTile(){ super(TESTBLOCK_TILE.get()); } public TileEntity setLightlevel() { this.lightlevel = rand.nextInt(16); return this; } }
-
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
Thanks Ben! I figured this out and put the results and the steps here: https://github.com/ziyuanzhao2000/Forge-API-Documentation/blob/main/README.md. Might be helpful to other new modders. hmmm.... I still see a lot of obfuscated variable names. Are these normal given I was compiling the latest Forge mod? -
Hmmm.. So I'm also looking into the same thing. Is there anyway to suppress errors and just generate the htmls using javadoc?
-
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
Thank you! Obviously the list is so long and I didn't look at it careful enough before... I unzipped and then renamed the folder before attemping: javadoc -d ForgeDocs -classpath ForgeSource -subpackages net But it throw 100 errors due to some unrecognized symbols from other packages. Well, the problem is that I don't quite see any html output. How should I do this correctly? -
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
Not sure exactly which library you are talking about so I'm most likely doing the wrong thing...sorry -
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
Tried to follow the last comment on this post: https://github.com/MinecraftForge/MinecraftForge/issues/1724 using my source.jar_XXXX file, but not quite working yet. -
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
There are a lot of external libraries which I assume are not the forge jar. Then I found this "forge-1.16.5-36.1.2_mapped_official_1.16.5-sources.jar_a3996c759375e74d54b8b3c98f4b2a5e" in build>tmp>expandedArchives. But it's not in jar format. How should I solve this, or am I looking at the wrong file? Is there any other way to inspect all libraries attached to an IntelliJ project. Thanks! -
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
Apologize for the dumb question. But I only see 3 jars in my working environment right now: 1. forge mdk, 2. forge installer, 3. compiled mod jar. I tried these three with javadoc but none quite works. I also tried to search this online, but some older posts I see (like this: ) aren't quite helpful... because I'm still not sure which jar should I use and the ones I used doesn't seem to work. -
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
Great, will try that out! -
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
I do see javadoc when typing code and all possibilities come up for me to autocomplete my lines. But I was wondering if it's able to generate a document for all class and properties, etc. in the latest Forge version locally, with a format like in the link I gave above. I'm not too familiar with how to do that with gradle. Is there any one-liner to do this? -
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
Thanks again, and sorry I should have googled that question. You are right, I should be able to look up the doc in IntelliJ -
Trouble with initializing a new item for registry
deathchanter replied to deathchanter's topic in Modder Support
Thank you! I just checked an youtube tutorial and found the same thing... turns out I'm looking at a slightly outdated java doc for 1.16.5 36.0.15. I wonder if there's an updated java doc for the latest stable version of Forge, like this one: https://nekoyue.github.io/ForgeJavaDocs-NG/javadoc/1.16.5/overview-summary.html. Thanks again for your quick reply! -
Hi all, I'm new to the modding scene, and I've been reading the Forge Java doc recently to familiarize myself with the language of Forge API. However, I just encountered this very simple issue...I tried to register an item, and to set the group, I used "new Item.Properties().group(ItemGroup.TAB_MATERIALS)", but Java is saying that "Cannot resolve method 'group' in 'Properties'", which is very strange. This is my full code for the class. Thanks! package com.example.examplemod; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class RegistryHandler { public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ExampleMod.MODID); public static void init(){ ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); } public static final RegistryObject<Item> TEST = ITEMS.register("test", ()-> new Item( new Item.Properties().group(ItemGroup.TAB_MATERIALS) ) ); }