Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

CobblestoneTree

Members
  • Joined

  • Last visited

  1. Hi Modders, I'm interested in making a fluid in 1.16.x, but I'm running into an issue with textures not loading for the liquid; I'm wondering if it has something to do with the fluid tags as well, but I'm not sure. Here's my code for registering the fluid: @Mod.EventBusSubscriber public class FluidMod { public static final AmbrosiaFluid.Source AMBROSIA = (AmbrosiaFluid.Source) new AmbrosiaFluid.Source().setRegistryName(BaseMod.MODID, "ambrosia"); public static final AmbrosiaFluid.Flowing AMBROSIA_FLOWING = (AmbrosiaFluid.Flowing) new AmbrosiaFluid.Flowing().setRegistryName(BaseMod.MODID, "ambrosia_flowing"); public static final class Tags extends ForgeRegistryEntry<Tags> { public static final ITag.INamedTag<Fluid> AMBROSIA = FluidTags.makeWrapperTag("ambrosia"); } @SubscribeEvent public static void registerFluids(RegistryEvent.Register<Fluid> event) { event.getRegistry().register(AMBROSIA); event.getRegistry().register(AMBROSIA_FLOWING); } } And here is the class for the fluid itself: public abstract class AmbrosiaFluid extends FlowingFluid { @Override public Fluid getFlowingFluid() { return FluidMod.AMBROSIA_FLOWING; } @Override public Fluid getStillFluid() { return FluidMod.AMBROSIA; } @Override protected boolean canSourcesMultiply() { return true; } @Override protected void beforeReplacingBlock(IWorld worldIn, BlockPos pos, BlockState state) { // If it runs over some grass, what does it do? } /* The shape that this thing forms when it flows out. */ @Override protected int getSlopeFindDistance(IWorldReader worldIn) { return 4; // Same value as water and lava. } /* How far it goes out; water and lava are both 8. */ @Override protected int getLevelDecreasePerBlock(IWorldReader worldIn) { return 3; } /* */ @Override public Item getFilledBucket() { return ItemMod.BUCKET_AMBROSIA; } @Override protected boolean canDisplace(FluidState p_215665_1_, IBlockReader p_215665_2_, BlockPos p_215665_3_, Fluid p_215665_4_, Direction p_215665_5_) { return false; } @Override public int getTickRate(IWorldReader p_205569_1_) { return 60; } @Override protected float getExplosionResistance() { return 100.0f; } @Override protected BlockState getBlockState(FluidState state) { return BlockMod.AMBROSIA_BLOCK.getDefaultState().with(FlowingFluidBlock.LEVEL, Integer.valueOf(getLevelFromState(state))); } @Override public boolean isEquivalentTo(Fluid fluidIn) { return fluidIn == FluidMod.AMBROSIA || fluidIn == FluidMod.AMBROSIA_FLOWING; } @Override protected FluidAttributes createAttributes() { return FluidAttributes.builder( new ResourceLocation(BaseMod.MODID, "textures/block/ambrosia.png"), new ResourceLocation(BaseMod.MODID, "textures/block/ambrosia_flowing.png")) .translationKey("block.examplemod.ambrosia") .build(this); } public static class Flowing extends AmbrosiaFluid { @Override protected void fillStateContainer(StateContainer.Builder<Fluid, FluidState> builder) { super.fillStateContainer(builder); builder.add(LEVEL_1_8); } @Override public boolean isSource(FluidState state) { return false; } @Override public int getLevel(FluidState state) { return state.get(AmbrosiaFluid.LEVEL_1_8); } } public static class Source extends AmbrosiaFluid { @Override public boolean isSource(FluidState state) { return true; } @Override public int getLevel(FluidState state) { return 8; } } } Here is the JSON in the "resources/assets.examplemod/blockstates" folder: { "variants": { "": { "model": "examplemod:block/ambrosia" } } } And the JSON in the "resources/assets.examplemod/models/block" folder: { "textures": { "particle": "examplemod:block/ambrosia" } } In "resources/assets.examplemod/textures/block", I have the following mcmeta files accompanying the textures: ambrosia.png.mcmeta: { "animation": { "frametime": 2 } } ambrosia_flowing.png.mcmeta: { "animation": {} } In "resources/data.examplemod/tags/fluids" I have the following file, "ambrosia.json": { "replace": false, "values": [ "examplemod:ambrosia", "examplemod:ambrosia_flowing" ] } Currently, the fluid appears to be working except for the fact that the texture displays as a purple-black checker pattern. Is it maybe the ambrosia_flowing.png.mcmeta file? All the textures are in the textures folder for blocks. I would really appreciate assistance; I'm actually doing this for a tutoring job (I tutor Minecraft modding on a very basic level), and I would really appreciate insight into what I could do to get the texture to appear. Thank you and thanks in advance!
  2. That was very helpful. I went and got myself JDK 8u291. Thanks!
  3. Hi There, Forge is giving me an error when I run the gradlew genEclipseRuns command in the mod project root folder. My current specs are: JDK 16.0.1 (64-bit version) Forge MDK 1.16.5 Eclipse I do not have the JRE installed as my Eclipse didn't like the version of the JVM associated with it. When I installed the JRE, Eclipse gave me an error upon startup saying "Incompatible JVM. Version 1.8.0_261 of the JVM is not suitable for this product. Version: 11 or greater is required" or something almost exactly along those lines. I realize that not having the JRE installed might cause a bit of a facepalm among the seasoned Java developers here (in case it wasn't already readily apparent, I'm not a seasoned Java developer). I wasn't sure how essential it was to have the JRE if I already have the JDK installed. Any ideas or recommendations would be greatly appreciated!

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.